Always a sad story. I once advised Xilinx on the huge danger of open sourcing the information needed to program their chips, that danger being that thousands of hobbiests might design their chips into designs and their fabs would not be able to keep up.
It is very hard in the chip business, which is usually not filled with much if any software expertise, to explain that the 5 - 10 engineers who 'sit around and do nothing but write software' are the source of your volume. Its easy to see a sales guy + design win = volume. Its easy to see price action + distributor buying = volume. Its extremely hard to measure free software + random designs = volume equation. When I talked with an Atmel FAE who had been with the product since the mid-90's said that Atmels original GCC commitment was simply to avoid going out of business. A "last ditch" attempt to get some business from the 'hobbyist' market.
It is hard to explain to someone that 'hobbyists' are often engineers in their 'day' jobs at some big corporation and if they start using parts in their 'hobby' and get comfortable with them they will bring them into their 'day' job when an opportunity presents itself. Why this is hard to understand I don't know, but it sure seems to be.
"Microchip’s compilers are based on the open source GCC compiler, but they keep some special sauce locked up."
How is this possibly not a GPL violation? Unless they are running their compilers as a service, they must be redistributing the GCC GPL code, in which case it seems they must license their "secret sauce" under the GPL as well.
There are code size limitations (your binary must be no larger than 16 kB, some of these devices have 128 kB of Flash), there are optimization restrictions (you can't use -O3 or -Os, and some -f flags are disabled), and the libc is closed-source. These are the things that bug most people.
The OP here is pointing out issues with closed-source peripheral stacks. That's a whole different issue.
Or peripheral driver code which runs on the Microchip device (and may interact with libc, but not necessarily, and not that it matters from a licensing perspective since there are plenty of non-GPL libc's).
As an aside here, what you can do is have your GPL code load a non-GPL DLL. I've seen that before. (Very frustrating when you're trying to understand how the custom GDB works).
I think Microchip has made more of an effort to be hobbyist- and open-source-friendly than Atmel in several ways:
1) Microchip's IDE is cross-platform (Linux, OSX, and Windows), while Atmel's IDE is Windows-only.
2) Microchip has a company-sponsored bulletin board on their web site for hobbyists (and professionals) to answer and respond questions. Atmel doesn't (avrfreaks.net is not associated with Atmel).
3) Microchip makes more microcontrollers in DIP architecture, which is useful for hobbyists; e.g., there are at least six Microchip microcontrollers with USB ports in DIP layouts, while Atmel has none.
4) At least Microchip is making claims about being open-source-friendly. I have yet to see Atmel mention open-source in their marketing materials.
I am neither surprised nor offended. Atmel makes their money on hardware (have you noticed how expensive AVR's are compared to most other chips?). Microchip instead sells cheap hardware and licenses software. They explore limited free software to lower the barrier to entry, but they have to keep the secret sauce. That's just their business model.
I wouldn't begrudge Microchip their business model if they would drop this "open source" claim. Here's the first sentence of their press release about the ChipKit:
"Microchip Technology Inc., a leading provider of microcontroller, analog
and Flash-IP solutions, and Digilent, Inc. today launched the first
32-bit-microcontroller-based, open-source development platform that
is compatible with Arduino™ hardware and software."
As someone who makes a 32-bit-microcontroller-based development platform that is actually open-source, I don't want them claiming membership in my tribe. It's like exaggerating the specs of your hardware-- don't call it 1 GHz if it only runs at 800 MHz.
Of course, it would even better if they would join the open source tribe for real-- maybe I could have stood on their shoulders instead of next to them.
when chipKIT met with us before launch (adafruit, limor fried and myself) we said this wasn't the first one along with a lot of other things we wanted to see them address and change, they didn't.
that's right! they also said with that "Arduino-compatible" and on the box it said "100% arduino compatible" - it wasn't. and they called it "Uno" which is the same name as the latest arduino :(
Back in the 90's, I was something of a PIC fanboy because their documentation was so damn good, and the PIC16F84 was great to learn on.
Are they just jerks now, or is there some more charitable explanation? Obviously, the company is filled with all sorts of different people, but are the people who have the power to change the marketing claims deliberately blowing off the truth?
It is very hard in the chip business, which is usually not filled with much if any software expertise, to explain that the 5 - 10 engineers who 'sit around and do nothing but write software' are the source of your volume. Its easy to see a sales guy + design win = volume. Its easy to see price action + distributor buying = volume. Its extremely hard to measure free software + random designs = volume equation. When I talked with an Atmel FAE who had been with the product since the mid-90's said that Atmels original GCC commitment was simply to avoid going out of business. A "last ditch" attempt to get some business from the 'hobbyist' market.
It is hard to explain to someone that 'hobbyists' are often engineers in their 'day' jobs at some big corporation and if they start using parts in their 'hobby' and get comfortable with them they will bring them into their 'day' job when an opportunity presents itself. Why this is hard to understand I don't know, but it sure seems to be.