Addressing Microchip’s open source problem

Hackaday alum and owner of Dangerous Prototypes [Ian Lesnet] recently wrote an editorial piece calling out Microchip on some of their less than friendly attitudes towards open source.

[Ian] and his company use PIC microcontrollers extensively in their projects, and they have quite a high opinion of their products overall. The gripe that he has (and thinks you should have too) is regarding Microchip’s approach to open source.

You see, Microchip invested in the Arduino IDE and released the chipKIT, a 32-bit Arduino compatible development board, along with big promises of “playing nice” with the open source community. The problem, according to [Ian], is that while Microchip’s compilers are based on GCC, they “keep some special sauce locked up”, which means that certain parts of the chipKIT toolchain are not open. Many in the community, including [Ian] had high hopes for the chipKIT based on the successes seen by Atmel’s open source initiatives, but many things are still locked up behind closed licenses.

An example of this unfriendly attitude towards open source can be seen in Digilent’s recently released network shield. It supports Ethernet and USB features of the chipKIT MEGA, but the TCP/IP and USB stacks are completely closed source. Digilent pushed hard to get the ability to release open drivers for the board, but it was a battle they ultimately lost. This behavior creates roadblocks for seasoned developers of open source products such as Dangerous Prototypes, as well as the curious beginner, which is why [Ian] is making a point in bringing these issues to light.

[Ian] urges Microchip to give something significant back to the community they are tapping, a result which can only be achieved by speaking up. Be sure to check out his editorial, and if after reading it you have any interest in letting your voice be heard, drop Microchip a line and let them know that their one-way relationship with the open source community is something you would like see change.

Or is this only a concern for the likes of dangerous prototypes/adafruit/evil mad scientists etc who do want to sell stuff?
This is an interesting perspective. I’m curious too.

But truth is that Microchip is indeed a rather unflexible monster forever stuck in their own dilbertesque hell. Look how they usually distribute their source code: it comes in zipped or self extracting .exe installers. Wow. I bet it just doesn’t occur to them that the worldhas moved on since 20 years ago.

It winds up being a PITA for customers of OSH who would like to dive into some code. Currently, instead of being able to get all of the source from one place (presumably the guys you bought he HW from), they need to link to a MC website somewhere (which they have no control over), which (hopefully) has the right version of the code on it.

Part of the goals here is to be able to send someone a source tarball (or git/svn url) that actually has everything in it they need – with the current licensing from MC, this simply isn’t legit.

I imagine there may be additional concerns about the longevity of a project when you take into consideration that MC has no obligation to keep older libs around – so that app you wrote 3 years ago may not be able to be used by anyone but you, since you’re not allowed to distribute source for the supporting libraries it requires.

If the tools are not open source, then you are in huge trouble if the tool vendor drops support for it — this can happen for many reasons: poor profitability, company goes out of business, etc.

Case in point:

At my company several years ago, some brilliant person decided we should use the Cypress PSoC platform on one of our embedded devices. Regardless of the suitability of the PSoC microcontroller itself (hint: it’s not good), that’s not the point. We ended up with licenses for the Hitech C compiler and the engineers wrote code for that compiler (many compiler-dependent features used).

So, the compiler we depended upon (and paid $$$$ to purchase a license to) was maintained by the Hitech company. The microcontroller we used was made by Cypress Semiconductor.

A couple of years later, I went to install the toolchain for this device on a new computer so I could build our firmware from source. To my shock, Microchip, a direct competitor to Cypress, had bought the Hitech company and you could no longer download the Hitech C compiler for the PSoC platform! It was gone from the download page and the rest of the web site! We had an old version on CD, but we don’t get any new bug fixes or tech support, and if it has any issues with new operating systems or PC hardware, we’ll be out of luck.

That’s the sad story of a closed-source, locked-in tool.

Now I enjoy using gcc and ARM whenever I can… the tools are fantastic, completely Free in every way, and ARM Cortex-M3 is an incredible flexible and powerful platform.

circa 6 years ago an Italian company decided that they’d like to create some open hardware. and they did it using an Atmel chip.

The chip manufacturer didn’t release everything that they needed open source, e.g. code for stacks was not open source, LUFA for example had to be created by the community for the community.

Isn’t that the same page that we are on now?

The point is… I can create open hardware, And for me, open hardware means spending my time designing something I find useful, and then giving those designs away. There is no warranty given nor implied when you look at my designs for a project. It is what it is, a gift of information for others to look at/copy/improve upon.

People who want to expand of the designs can easily get the non-distributable source from Microchip. this is no more trouble than having to go to one supplier to get a chip and a different to get a programmer.

If Microchip suddenly pull the source [that I can’t distribute] it makes no difference to me, I’ll still have the source as a local copy. sucks for the community, but I may chose to re-write for whatever new code is out there, or someone else may decide to do that. If the project is good enough it’ll keep living and keep developing.

Yet when you buy something from any one of the manufacturers I listed earlier warranties are indeed implied, not least because you’re paying for the product. -so it would be a problem for all of these people if support was dropped.

But is open source or open hardware really about supporting these businesses?

The interesting thing will be whether these shops that have a vested interest in having the complete open source, and indeed make their living from these open hardware projects, actually will help in the creation of open source stacks for these chips.

I may have answered my own question. For me, the guy on his own this doesn’t really affect me, I can still give away my own hardware and source designs.

For the maker shops it poses a problem. at least until the community of people have embraced what’s trying to be done and written/re-written open source stuff to actually work with this. -in the same way as the community did for Arduino.

The article implies that microchips hands are currently tied because of their own licensing issues with other vendors, so I wonder if there is a finite term on this license. if it’ll expire and if microchip will actually get what they want, -that is assuming that they want to release everything open source.

I would say that this is mostly an ChipKIT issue. By all means I can see the problems that parts of the source is closed but as dan says: who does this concern?
As a hobbyist I don’t think I will run into these problems anytime soon…

Probably a better use of time and effort to tell Atmel how much you like them and ask them for a 32-bit development board that works with Arduino. Microchip have much ground to make up, Atmel are out in front in the Open Source race.

This concerns all makers that have a stake in the open-hardware and/or open-source movement(s), myself included. It’s Microchip’s (many-years’ record of) piss-poor attitude regarding openness that has led me to totally nix using ANY of their chips in my designs. Giving them any of my business helps them, and reinforces their stance, in my view. The only time Microchip ‘cares’ is when you pay them upfront for a closed-source doo-hickey, and even then only if it’s a hardware fault.

That combined with the availability of tools for Atmel tiny & mega uCs, and even TI’s stuff(!), makes Microchip’s stuff nearly irrelevant to my needs.

As a long-time OSHW developer (some with Microchip parts), and an even longer user of Microchip parts, I’ve been raising a stink for many, many years that they need to get into the ‘open’ game more. The result of that stink was (in part) the ChipKIT/MPIDE project. They even asked me to be on the dev team because I’d been raising this stink for so long. (see, it does pay off)

I think it’s really important for us all to not fall into the trap of “Microchip = 100% bad, Atmel = 100% good”. I do not disagree with Ian at all – his points are valid. I’ve raised the exact same points with Microchip many times. And, they do listen. Change is happening inside that company. Yes, it is very slow to change.

ChipKIT/MPIDE was started by a small group within Microchip as an experiment in open source. The whole rest of the company is looking to see how well it goes. Attitudes are changing. The ChipKIT team is fighting really, really hard to make their project as open as possible. They are making some progress internally at Microchip towards opening up the MAL (Microchip Application Libraries). I really believe it will happen, hopefully someday soon. Some (very vocal) parts of Microchip get it. And OS will spread throughout the company, eventually.

Digilent’s choice to use Microchip’s code for their network board was a smart one, in my opinion. They needed something fast, and this was the fastest way to get a working board into our hands. They are now going to go back and re-write (or use existing OS code) the code so that future versions will be completely open source. Digilent gets it.

Again, as of right now, Ian’s points are very valid. I have exactly the same problems with the user’s of my OSHW designs that use MAL code. Hopefully that will change in the future – but change takes time. It is good for us to push Microchip as hard as we can, but if we really want good change, we can’t be negative and hating about it. Help Microchip see that Open Source can work out well (even in $$$) for everybody – contribute to a ChipKIT library, design a board that uses the ChipKIT bootloader, or write up a project that uses MPIDE. Positive change.

Thanks for your personal input on this issue, and sorry if I came across so harshly. It makes sense, what you’ve said about the changes coming (and being forced, to an extent), and honestly, congrats to you for being asked to develop on Microchip’s team. I can only hope that those movements toward and pleas for openness will be heard (and implemented!) sooner rather than later. There is plenty of room out there for more chip makers; the more the merrier, in my opinion! Your message to not fall into the “Microchip = bad, Atmel = good” trap has not fallen on deaf ears, either. Relegating myself to one or a few IC makers would have me treading water within a few short years, and this is an arena where change is inevitable.

I suppose I should have clarified my own definition of ‘totally nixing’ Microchip’s products in my designs. I have a short catalog of parts to use in my products, and most have had to earn their way into it through various trials; the uCs usually ended up being which one was the least pain-in-my-ass to program. ;) If one of the parts in my catalog just won’t cut the mustard for a specific design (they’re quasi-custom, i.e. somewhat but not entirely based on customer requests), I have no problem shopping around by specifications alone and neglecting the IC maker.

That said, I *have* used Microchip’s ICs in the past. One was the PIC18F2431, for a college class, an experience which led me to find the extent of their support for their products (many years ago, so probably irrelevant now that I think of it). The others were Microchip EEPROMs and a voltage references. I was 100% satisfied with their performance and price, for whatever that’s worth. If the timing and price is right, AND they’re committed to open-sourcing as we all hope, it might warrant another look at their PICs and other uCs in the future.

Perhaps, if time and money allow, I’ll even attempt to write a persuasive argument for openness, using one of my own designs as a real-world example of why it’s so important. At this stage, I feel it may be a wasted effort, but time will tell.

Microchip are almost certainly bound by the licence terms of the people they buy the stacks from – you don’t think they write them themselves do you? It’s an expedient route to market.
The supplier’s concern is that they no longer have a viable business if they open source their stack(s)
It’s non-trivial to write a tcp stack (and I imagine a USB stack, although I’ve only done the former). Non-trivial enough that microchip would rather subcontract it. There’s nothing stopping the community writing drop on replacements for these stacks though…

As far as I’m aware, Microchip does write their own stacks. I’ve spoken with the guys at Microchip that wrote their USB stack – and they were not subcontractors or 3rd party people. Microchip has a surprisingly large number of software engineers.

I don’t really have a problem with the compilers – you can download free versions (although optimisation is crippled!) from Microchip’s website.

However, I would love to see the licence terms on MAL a little more open. At present, you can’t distribute MAL source with your own code, so you have to point interested parties to download MAL separately.

I understand Microchip has put in a reasonable effort with the MAL libraries, and I’m not suggesting they completely open up the licence effectively allowing it to be targeted to any XYZ MCU, but it would be nice if they could relax the distribution rights and allow customers to distribute MAL provided it’s used with a Microchip device and maybe with a URL so end users can find and download the latest version if they so choose.

This must be a Digilent problem, because Microchip has open source USB and TCP/IP stacks. They are ‘open’ in editable C source, only caveat is that the source has to be used on a board with a Microchip part. Not a big deal since the stack requires the Microchip hardware (Microchip NIC or Microchip PIC with USB peripheral).

Technically, you do get the source for their stacks when you download the monster zip file. However, you are not allowed to re-distribute the code. That part of the license makes things tough. Microchip wants to be the only place that you can get the code, so they know who has it and can keep control over its future.

Digilent has been great about open source the whole way, Microchip is wary of open source. The USB stack and TCPIP stack both have restrictive licenses that don’t allow distribution and, among other things, let them search your house to see if you comply with the license.

The idea that you’re giving Microchip unfettered access to your house is ridiculous. Companies can write whatever they like into contracts it does not make them either legal, nor enforceable. Microchip can come to my house as many times as they like, but they cannot come in. regardless of whether I make use of their tools and code (I do) the contract wouldn’t stand up in a court.

Where it would stand up is if they believed that I’d broken said contract then they could take me to court, who may like to seize my computers to have them analysed to make sure that I am compliant, but as a computer user I run the risk of FAST doing this anyway. -if they suspect that I’m going against the EULA terms, -for example making illegal copies.

I don’t really get what more people are asking for.

They give chips away to people (students/businesses/individuals) to learn on.

The IDE is free, as much of the tool chain as they seem to be able to open source has been. That which they haven’t been able to open source they’ve created free versions of. (the hi tec C compiler)

Hardware and software designs for the programmers have been available on their site for years.
indeed they seem to actively encourage people to clone the PICkit2 ICSP programmer, (which can also act as a logic analyser…)

What more do people want?
Currently we’re given free chips,
free tool chains,
free designs for programmers (which are still I believe the cheapest programmers and cheapest logic analysers…)

Uhm wouldn’t those kinds of terms actually encourage unlawful behavior? I’m specifically talking about placing the code where it can’t be ‘recovered’ (read: destroyed). Not that it’s likely to ever happen. It just seems like they put anything they can in the 1-sided ‘agreements’ since nothing prevents it from a legal standpoint. The actual enforcement of terms is a different matter that I won’t go into.

Thanks for all of the positive comments about Digilent’s open source attitude, but I’d like to make sure that everyone is aware that this isn’t a case of Digilent being the open source hero battling against an evil empire. From day one on the chipKIT project everyone involved (including the chipKIT team in Microchip) has been working from the position that as much of this will be open source as we can make it. All of the people involved have been advocates of this being a completely open source system.

Microchip is a large company with its own internal politics and entrenched interests (many of which have legitimate business and economic interests and concerns) among the various groups within the company. There are certainly factions within Microchip who are advocating for and trying to convince other factions of the value of making things open source.

Some of the hateful comments being presented aren’t really helpful to anyone. There are implication being thrown about that Microchip is being dishonest or duplicitous. From my perspective, this is completely not the case. There may have been some overly optimistic statements made in the early days about how much would be open source, but there has never been any intent to deceive.

It’s still a project in development as well. The fact that some parts aren’t open source today doesn’t mean that they won’t be in the future. It’s evolving over time and the movement is certainly going to be in the direction of more open source.

I’ve purchased the ChipKit UNO and have the newly released I/O shield on the way. Lack of resources closer to the metal have not been an issue for me yet. But I see some coming.

I’ve been looking at Android Development Kit prototyping boards and see a brilliant opportunity for Digilent here. Google anointing Atmel chips by using them on the first official “Arduino” branded Android ADK board should have been a shot across the bow for MicroChip.

I certainly wouldn’t go with a MicroChip based Android ADK based board without full disclosure of the TCP/IP and USB stacks.

Either:
1. further openness is in the works,
2. slow in coming,
or
selling MicroChip PICs through Radio Shack is good enough for them and as far as they will ever be able to tap the hobbyist market.

Dan said “Why does it concern him”? That is a clear answer. As a maker, if you like to tear stuff apart, change it, and put it back together again then it matters to you. MicroChip way of doing things is handing you a black box and saying you can’t open it, change it, improve it, you can only use it, and you can’t change it. If you agree with those principals by all means then buy Microchip’s PIC’s. The same time Microchip is doing this they are taking the best the open source world has to offer and using it for their business.

To me as an software engineer that keeps me from opening new products, improvements etc. I like to tear apart software and see what it does. That isn’t possible without open sourced code.

As a maker, and engineer I have a responsibility to other makers to stand up for what we need. We need the ability to take any product, modify it, sell it, give it away, without being held back by the manufacturer. Because Microchip takes the stance of not opening their source, I will not use their chips.

Apoc said “MicroChip way of doing things is handing you a black box and saying you can’t open it, change it, improve it, you can only use it, and you can’t change it.”

This isn’t really correct. The complete source code to the Microchip Application Library is on their web site. You can look at it and modify it to your heart’s content. You can build it into a product and sell it. The only thing that you’re not allowed to do is redistribute the source code or sell a product running their code on someone else’s hardware.

This doesn’t seem to me to be that onerous or unreasonable a restriction.

In the context of making something useful for other people to build upon it is accurate. You said it perfectly, I can only sell, not redistribute updates I’ve made to the code. If I wanted to make something useful for the community, then give it away freely, I wouldn’t be able to. That puts a huge limiting factor on the code, and I will not put any time into code I can’t redistribute.

If Microchip’s ChipKit TCP/IP stack is anything like their PIC TCP/IP stack then you don’t really want it anyway. :) While it is impressive that they put a working TCP/IP stack into 4k of RAM, it isn’t what I’d call “good”. It took several bug fixes, tweaks and customizations to get it working for a production system.

Microchip is in the business of selling hardware, not software. They should make the software as easily available and user friendly as possible, to not get in the way of their hardware sales. Apparently they’ve (finally) started to realize this, but they don’t seem like a company that can change quickly.

In the meanwhile hobbyists and engineering students increasingly use the alternatives.

It’s not like I’m going to get the Microchip tools and use them on AVR. I have to pay money to get PICs. So they could give away software so that you can use their microcontrollers easily.
That’s the reason I’m using AVR. I can compile code on any platform I want, the AVRStudio is a great tool for development (free, too), there’s a lot of support on the net.
I’m not going back to PIC. If we all do this, maybe Microchip sales will go down and they will see that something is wrong :)

*Looks at free box of parts that recently arrived in mail*
They have free samples to try to get people used to their architecture and tools. If a part doesn’t have firmware license terms that I like, then I’ll simply go to another vendor. I’ll be sure to tell Microchip why, though. Being civil is more than fair considering how much time and effort both parties brought to the table.

I agree that it’s pretty onerous to worry about rather you’ll be able to legally give someone the ability to build open-source hardware depending on code that had the license rescinded… The temptation for some is to use it anyway and then illegally redistribute the code. Which is of course not very wise. :( Is there a plan for a runtime module license? This would be a little less painful if you’re allowed to give them that single fraction of the development kit.

I have used PICs, AVRs and Propellers, among other options and FPGAs. Am I the only one on HAD that actually prefers Microchip? I know this may be news to some of you guys who think integrated circuit manufacturers solely exist to provide for the hacking/open source/hobbyist community, but they actually make most of their business from companies that are ordering hundreds of thousands of parts in a production run. These complaints about open sourcing are just a drop in the ocean as far as possible business.

I like PICs — for a well matching application. And I like other processors for other jobs. At least for me, there are a lot of factors, many not technical, that go into selecting the right micro-controller.

I think it’s a mistake in this day and age to discount the hacking/hobbyist community. Certainly some companies, like ST, have made a successful business supporting only other large companies (with large development budgets). But Microchip has had a lot of big design wins because some designer somewhere knew how to use a PIC because he/she’d played with it prior. I’ve done this (and remember the manufacturer’s rep for another company moaning “why does everyone always choose PIC”).

To a degree it may be that history that’s behind this. Microchip has had a long history in the hacking/hobbyist community so that community is trying to correct some bad behavior. There would probably not be a similar expectation with a company like ST.

This subject is more a sideline interest for me, I personally don’t like the PIC (original or 32 bit MIPS) or the atmel AVR lines. Can’t say why, just don’t like the way they feel, have tried both, have dev boards for both, just don’t like them.

Anyway, Engineers (at least good ones), tend to play outside of work. They do little things around the house, to have fun, to teach kids, etc. The easier it is for them to do that, the more familiar they become with your part.

So, an engineer has been playing with your part at home, has a toolchain they are familiar with, experience using your peripherals, interrupts, etc, and knows how to use your part and make it do what they need easily.

Now, they are at work and a problem pops up that needs something to fix it and let work happen. A company’s multi-million/billion dollar product line needs an answer now. Guess what the engineer is going to lean on? What can they make work now and get the project back on track? Maybe they even have a small run of boards they were playing with at home that can be used while the company gears up so there is no lost time to market.

I have done this, and seen it done enough to know the value. Reps I have worked with are usually more than happy to give me dev boards and make it easy to develop at home with their products, knowing that they have been designed in for no other reason than I knew their line when push came to shove.

Make it difficult for the engineer to work at home, and your chance of a design win just dropped.

I do all of the things that you just mentioned. I play at home. I typically end up using PICs for my own boards and it easily transfers over to my work. So despite all the complaints around here, somehow I managed to like PIC processors from a hobby perspective, imagine that! The representatives I’ve dealt with at Microchip and the meetings/conferences/seminars they have held with us have been very helpful and informative. So I’m still not sure why Microchip is getting a bad rap. Sure they have internal power struggles and bureaucratic BS but don’t we all? With the introduction of MPLAB X I really think they’re going in the right direction, even though their business strategy isn’t perfect.

Anyway, so from what you say they bar of annoyance isn’t high enough to drive you to one of the other platforms. That’s great, but they are driving others away because of the ability to quickly leverage. The proof is simply this article.

What I was trying to point out, is that this costs Microchip real design wins. It isn’t just that it irritates hobbyists, but that it will cost them the contracts they want.

With the 32 bit stuff, Microchip went to MIPS cores and competes with ARM cores for those spots on boards, and I think the new ARM cores are competing very favorably when the PIC used to be king, the small 8 bit areas. So, if I look at the line up, I need a reason to pick the oddball (pic, AVR, MIPS, MSP, etc), and I see things like this, giving me a reason to mark it off my list (actually, MAL was one of the reasons that Microchip MCUs got struck from my list).

So, to convince people like me, you need something to make you stand out from the crowd, a reason to look at your spiffy new offering.

As I said before, this is more of a special interest story to me, I just started looking to ARM families, where you can go small (cortex) to large (A series) and have one toolchain etc. Not quite there, but that is what they are competing against for mindshare

I use PICS for a lot of things. I think the responses we are seeing here is from people that don’t want to understand the hardware. It is nice to be able to blink and LED with a simple library but when the user starts to rely on that type of support they are shooting themselves in the foot. They provide data sheets for all their chips that detail every single function and anyone is free to write their own code . In my experience the PIC community is very open and helpful.

I think you are confusing AVR with arduino, while arduino uses an AVR micro controller its mostly a fancy software wrapper so PORTB = 0xF0 means pinMode(Blahblahblah)

Atmel provides a ton of different micro controllers based on that same AVR core with all sorts of different features. All data sheets are provided and application notes are there as well (though not quite as friendly as microchips)

support is available everywhere from avr freaks to arduino

in short I have no idea what your argument was, even arduino people dont use a library to blink a led (though they use a wrapper which has been ported to pic cause apparently its popular)

It’s true that the majority of microchip’s revenue comes from hardware manufacturers that embed their parts (rather than hobbyists). However, the software stack is a significant part of any new development project and I certainly care about how much open source software exists for a processor when I’m selecting one. The point that microchip seems to miss is that by being open, the community is likely repay many times the revenue lost in development licenses or the ‘marketing value’ of forcing people to register for downloads.

Sadly, in a big company, there are usually many more people who can say NO to an idea than people who can force a YES decision. And then there’s the lawyers…

FYI, I’ve talked to people at Microchip and they KNOW their software stacks suck. Believe it or not, they use their own software and they know all the faults. I was discussing it with a rep and he knew about every issue I brought up, I really got the impression that they actually use their software and they don’t just throw it out there. They are hearing these common complaints from many different companies and from what I understand they are going to be making changes.

Here Here for the Asshats of the world (tip a glass).
Asshats in the business world generally eventually fall by the way side. These problems work them selves out. They are competing with other companies who do provide everything the customers want. It’s not about a few companies who want to sell the parts(dangerous prototypes/adafruit/evil mad scientists etc). It’s about the basis of this whole idea of being able to modify or improve Any portion of the hardware or to make it better or make it do exactly what they want. It’s called innovation. It isn’t supposed to be a neat little Apple finished product that is very usable but not modifiable.

AVR is clearly the company to work with if open is important to you. I used to use PICs 10 years ago and dropped them the second I saw a company making a effort to use the open tools. AVR has their issues to (like their JTAG MK-II protocol being closed), but for the most part there is a strong community and a effort to release a great deal of information.

My question is why would anyone use a PIC at this point? For that matter why would anyone run Windows?

I’m about to go order some (mostly analog) stuff from Motor-err I mean OnSemi and just got done ordering 2 DIP-40 Propellers with some stickers for my prototyping boards. The really expensive stuff I couldn’t afford was the nice-looking kits and software at Parallex. I don’t do this for a job, so I have to use the cheapest options first.

I’m trying the PICs for the simple reason that they are pretty easy from a hardware point of view. It’s very easy to get people up to speed on soldering DIP sockets instead of airflow soldering or pick’n’place (name?). I’m thinking my next hack might be finding a cheap way to solder those horribly tiny QFN modules. They’re essential if you want to do any microwave-frequency work. http://store.curiousinventor.com/guides/Surface_Mount_Soldering/QFN/ is a good start. ;)

The thing to understand here is that microchip does provide all the information for the hardware in the data sheets. If they don’t want to open source their software then write your own. This isn’t like when someone like broadcom tosses out a soc and a limited data sheet and you are stuck using their libraries . All the information that is needed to write any library to run on these chips is in the data sheet. When I see people asking microchip to give away the source to code I have to wonder why are you not creating the code yourself and giving it away ? Sure them giving away source code would make it easier for some but by not giving away source code that doesn’t suddenly make the chip incapable of doing the job. It isn’t like they are keeping something from people that they cannot already do if they are willing to do the work.

As a professional working with PIC MCUs and using them in my spare time I really don’t understand all that fuss around this topic.
Perhaps it is just trolling for another flamewar – bashing Microchip is not unexpected in arduino-haxor circles, with 99% of library jockeys.

Watching from the sidelines (don’t like the PIC (8 or 32bit) or the AVR lines, and really don’t like the arduino.

Anyway, I think the big issue here is Microchip is trying to enter an established space, but doesn’t want to meet the target audiences expectations for that space. People are pointing out that to make it they need to approach this differently. From what I can see, it isn’t hate, but a desire for them to enter the space successfully that is being voiced.

Yes, people can do the work themselves, but if their interest doesn’t lie in a USB stack, and they have multiple options, some with an existing stack, some without, why should they choose the one that creates more work in an area they don’t have an interest in playing?

Miroslav:
“Same PIC micro, but different versions (16F874 vs 16F874A) use different methods to burn internal flash.”
What is wrong with that?
You don’t build your programmer, do you? And if you even do, supporting 874 and 874A is matter of few lines in programmer code, for competent programmer. Been there, done that.

“16F874A was “new” in 2003. Now is listed as obsolescent. So planed obsolescence is built in.”
What? Every MCU has its life cycle, the same as ATMega8 vs Mega8A. There is replacement for 874A.
By the way, 874A and even 874 is still manufactured and I believe it will be manufactured at least 5-10 years. That is excellent! Some manufacturers (for example Freescale, I hate them wholeheartedly) have much shorter life cycle with no replacement.

“Linux support is non-existent, as svofski et al. pointed out. I keep 1 old Windows machine just to run MPLAB IDE for programming.”
Bad Miroslav, bad. I use MPLABX on my Linux machines. Linux support is there, you have full blown, ready-to-go IDE to work with.
If you don’t want IDE, you can download sources or executables for open-sourced command line PicKIt2 tool and burn it from Linux, as many of us does.

I do tinker with my own programmers :) There is no reason why on Earth every chip would have a different procedure for Flash writing (and pretty much everything else). Except to daze and confuse customers into buying new stuff (the Apple way).. “Oh your connector is 2 years old, you need a new one. That will be 50 bucks please.”

There is nothing wrong with the chip – why replace it? Intel still sells 804x first made in 70’s, last time I checked.

MPLAB for Linux? Give me a link, I would like to to check it out. My guess is: it is in self-extracting exe file :)

“There is no reason why on Earth every chip would have a different procedure for Flash writing (and pretty much everything else)…”
“…There is nothing wrong with the chip – why replace it?”

You are joking, are you?

Microchip introduced 16F874 first.
Customers were asking for lower price, so they come with 16F874A with DIFFERENT chip layout and FLASH organisation, pin and mostly SW compatible with 16F874. Customers were asking for even lower price, so they came out with 16F884, then 16F724 or new 16F1xxx parts.
All those parts are still manufactured and you can buy it. By the way, can you buy AT90S1200? It is chip as old as 16F874. Nope, you can’t, but you can buy 16F874. What is your point?
Nobody forces you to buy new chips, if you don’t like them. Nobody is replacing it. You have new alternatives, but you can still use the old parts. Microchip is making progress and makes engineers work easier and more effective, but there are still people complaining about it.
Regarding the FLASH writing “issue” – are you aware that smaller process geometry and different FLASH layout brings also different FLASH pages and probably program/erase times? Do I have to comment more?

“MPLAB for Linux? Give me a link, I would like to to check it out. My guess is: it is in self-extracting exe file :)”
Please, grow up.

If you wish just to program parts and you don’t want IDE for it, you can use PK2CMD – software for accessing PicKit2 programmer. Check out http://www.microchip.com/pickit2 and search for “Linux” on this page. You can download complete source or binary.

Next time, do a few minutes of googling before complaining on something you don’t know ;-)

heres my long gripe:
give it up already. when there was no open source you all cried afowl, now that there is open source your still crying afowl, now pic “MIGHT” be “MORE” (more as in more then b4 but less then 100%) open and your still crying fowl, seriously, if everyone that hated PIC wrote a letter to PIC right now and if everyone that hobbys with PICs dropped thier yearly purchases they would either change or just change buisness direction. WHATEVER MAKES MONEY and they push LOTS OF PRODUCT EVERYDAY!!! where does it go? it gets the label scraped off and now its in your home and u think its a custom controller?

anyway, honestly ive never b*****d before about this but seriously, if u hate pic buy avr, if u hate those damm arduinos buy pic. the markets will (ahem already hav) sort this out.

PS i use arduino and wish radioshack/thesourcebycircuitcity would
GO BAK TO SELLING SHACKS OF RADIO PARTS!!!
and and and more things like uC dev kits or at least the dammd chips.

dammitnowimhungry4chips lol

how do we as a community solve this huge fight that has been on for years? bombard the local stores TO CARRY BOTH chips ON A SHELF WITH ADVERTISING! (& explain that ppl fight ovr which is better) and see who wins. i bet that store will make a LOT of money they never did before and they will be happy. maybe they will start a parts revolution and start selling bare 10W LEDs IN PERSON TO REAL PEOPLE THAT CAN PICK IT UP AND KNOW ITS ON ITS WAY HOME NNNOOOWWW!!!

there could be great competition here, but sadly we have to enter creditcard info online and parents of teenagers will never know what it looks like or “so what DOES it do again?”

… think of the phrases
“what do you mean it can do anything?”
— VS —
“oh that thing advertised over there”

think of it this way, if we pump up the sales FIRST, then they will listen very well.

and lastly, i personally know a lot of people that HATE computers, but actually think uC’s are neat/useful

A couple of points which is not obvious to some:
1) Microchip makes the source code of MAL available.
2) How is Atmel better? LUFA, V-USB, uIP and other major application libraries are all community driven. “They are competing with other companies who do provide everything the customers want. ”

This is why I almost got a stroke when years ago Microchip attempted to buy Atmel. They are hostile to the Open Source paradigm just like Microsoft and many others; that move would have meant the death of a competitor and the switch to an even more closed behavior because of total market domination.

And I’m writing this as a 100% PIC user, but planning to make the switch to AVR once my development system (EasyPIC 4 by Mikroelektronika) becomes obsolete.

I was first exposed to microchip in the late 90s. The first chip I used was the eprom based pic16c74a. Microchip has come a long way since then. I absolutely love the 16-bit PIC24/dsPIC33 architectures as well as the PIC32 chip. I think the MIPS M4K core (and in the future the M14K) is a very viable competitor to the ARM Cortex M3/M0 Processors and will have staying power. Microchip offer better datasheets and appnotes and a better customer experience overall than most MCU suppliers. Furthermore I like the Microchip model of being able to purchase silicon and low cost dev tools (PICkit3) and download free (even if they are closed) IDE and Toolchains from the same supplier. I prefer this model to the ARM Model where you have to choose a silicon supplier and a tool supplier. Developing a cross platform IDE (MPLABX IDE) and toolchains is sealing the choice of Microchip for most of my MCU needs.

I also love Atmel’s ATMega and ATTiny micros but prefer the 16/32-bit products from Microchip over the XMEGAs and AVR32s.

It would be nice if Microchip made their compilers (atleast the gcc-based C30 and C32) and MAL open source.

I don’t have a single Apple product and likely never will. They are overpriced pieces of s**t. Last good Apple product was Steve Wozniak’s design: Apple II.

Now, if only Microchip wasn’t following Apple policy in producing 50 incompatible chips per year, and Atmel actually had reasonable prices, hardware community would be much better off. They all presently su**, to various degrees.

@Jaromir: I started installing MPLAB X, and they wan’t me to intall JRE first. Ccc … I don’t like JRE one bit. Will see how the overall install will go.

Hey Everyone: I’ve already posted this response on Dangerous Prototypes but thought I’d copy it on both Hackaday and Adafruit.

We (Microchip) read your blog and comments, and we do agree with you. Though we are a corporation, with a lot of suits (not really, actually I think we have a policy against suits), we know the community has been and is a large part of why Microchip successful today. We put our best code forward, but we know it has usage limitations. Clearly this is an area where we can do better. The points made in the blog are important, so we set up a meeting with our management team yesterday, and both our CEO and COO joined us because they too thought it was important. Really, we weren’t just playing Frisbee golf as you might have thought. We understand why you guys are upset and this is an issue we need to address. Bottom line, we can’t release our existing stacks because we have contractual obligations to many of our customers that prevent us from making them open source.

So how about this: We offer a prize for anyone who writes these stacks for the community. To get started, the two that we want to target are the TCP/IP and USB stacks. Heck, who better to write these than the experts in the community…? The goal is that the entries would be compatible with the chipKit MAX32 (PIC32MX795F512L). Digilent Inc. will help us decide which stack first meets the requirements. For our part, we will pony up the prize and provide technical support for those who want to get involved.

Thanks for all your posts and I’ll follow up with additional details shortly.

Wanted to follow up on the previous post. I’ve posted this to Dangerous Prototypes and will also post to Adafruit’s blog as well. I’ve been spending the day going back and forth over some of the logistics of the competition (want to keep it fair and all) but have some preliminary news for you. Prizes look like they’ll be around $1000 for each stack developed/ported and that’s in your pocket. We’ll gross up the amount to cover the taxes. I spoke with our Development Tools team and they have 10 chipKIT MAX32 boards and Network Shields that they’ll donate to the first 10 people to sign up. Once all of the T’s are crossed and I’s dotted on the rules and regs, I’ll post them on a “contest” site along with the email address to get the free boards.

Seems like things have gone kinda quite on this one. I thought I’d post the contest as I did on adafruit and dangerous prototypes blogs. Hey Everyone:

The contest page is finally up at http://www.microchip.com/stacks/. The submission email address is ChipKit.Contest@microchip.com. If you have any difficulties whatsoever, just post here and I’ll keep an eye on the blog. As for the 10 kits we have to give away, I kind of like the idea that the first 10 submissions will each get a kit. If anyone has any objections to this we can certainly modify this requirement based on suggestions. Nothing’s set in stone for that portion of the contest. Anyhoo…good luck!!

Why does no one bring up Digi? Not one of their products is open source, but the OHS community supports them. Microchip is a tool. It’s up to you to figure out if it works for you. Not every company has a community. I sit on the fence, as I appreciate open hardware (when there is a community).

My solution was to dump Microchip and go all in the ARM world. The dsPIC was a disaster (took forever to introduce), the PIC32 is a disaster (in my opinion – dough!!! here come the religious flames), and ARM has much more to offer. Thank God Microchips was unsuccessful in their Atmel take over. Microchip has some very good innovative design solutions yet the business development team seems bound to make poor core choices. Say, Isn’t MIPS up for sale (According to today’s EDN Newsletter at least – c.f. Broadcom deal). Wonder if Steve and his team are considering a MIPS acquisition???

So microchip spent so much money as salary to the engineers to write their libraries and people want it for free? Their datasheet gives you all the data required to write your own library. Nothing against open source but most companies want to get products into market fast and so they go with libraries written by the manufacturer along with “support” – a key feature you can’t easily find in open source community. For hobbyist what microchip gives is a truck load of goodies. They moved from the old MPLAB to MPLABX to help people with close minded OS preference which is awesome. Things are happening slowly.

Microchip, bringing you yesterday’s technology tomorrow! I worked there for several years. In 2009, was approved to teach a Masters conference course on embedded and GNU/Linux. They cancelled my class. I created a Linux installer for their inductive touch product. They didn’t care. They told me the reason for cancellation of this and a Linux project I was working on being cancelled was there was very little audience need.

Also, I believe a few years they were looking for someone who was community driven. Ironically, they had several of us there for years that left due to disappointment in the direction.