It’s great that Microchip invested in the Arduino open source IDE. Unfortunately the contributions seem to stop with support for their product. Parts of chipKIT toolchain are still closed-source, and Microchip isn’t contributing open source drivers for the highly-advertised USB and Ethernet features of the chipKIT Mega.
We buttressed this editorial by saying we’re huge fans of Microchip stuff. It’s their time-honored right to deal in closed source software – most companies do! With the chipKIT, however, Microchip wants to tap the Arduino buzz. They want promote products using the work of an open source community, but they’re not participating in the spirit of that community. It’s not illegal, it’s being a bad neighbor.
We urge Microchip to give something significant back to the community they’re tapping. Open source drivers for the chipKIT shield would be a great first step.
We had a couple customers ask if we planned to stock the chipKIT, we’d love to, so we’ve said “not yet” – we’d like to see Microchip & Digilent address these issues Ian outlined, they’re off to a great start (and that should be commended!) – we’d love to see the product evolve to fully open-source hardware! We are here waiting with open arms 🙂
Adafruit has had paid day off for voting for our team for years, if you need help getting that going for your organization, let us know – we can share how and why we did this as well as the good results. Here are some resources for voting by mail, voting in person, and some NY resources for our NY based teams as well. If there are additional resources to add, please let us know – adafruit.com/vote
Stop breadboarding and soldering – start making immediately! Adafruit’s Circuit Playground is jam-packed with LEDs, sensors, buttons, alligator clip pads and more. Build projects with Circuit Playground in a few minutes with the drag-and-drop MakeCode programming site, learn computer science using the CS Discoveries class on code.org, jump into CircuitPython to learn Python and hardware together, TinyGO, or even use the Arduino IDE. Circuit Playground Express is the newest and best Circuit Playground board, with support for CircuitPython, MakeCode, and Arduino. It has a powerful processor, 10 NeoPixels, mini speaker, InfraRed receive and transmit, two buttons, a switch, 14 alligator clip pads, and lots of sensors: capacitive touch, IR proximity, temperature, light, motion and sound. A whole wide world of electronics and coding is waiting for you, and it fits in the palm of your hand.
Get the only spam-free daily newsletter about wearables, running a "maker business", electronic tips and more! Subscribe at AdafruitDaily.com !
Wow – this is low-class as far as I’m concerned. Like taking soup from the soup kitchen when your rich, and littering on the floor without care on the way out.
Put simply – I will NOT buy anything DIY-related unless it is open-source software and drivers. They may get some sales, but I do think they will feel the displeasure of the community as well (and I buy alot of kits!)
Thanks for pointing this out Adafruit – the only way to really change people like this is to vote with our wallets, and that only works of the “takers” get pointed out in the crowd of good makers doing right – the open-source way.
@Kris: I think it’s a little unfair to just outright label Microchip as “low-class”. They may have something in the works that we don’t know about, or they may be unaware of how these things work. ChipKIT is not so old that we can definitively say “this is what they’re doing.”
(Politely) making out a list of grievances, as Ian has done, is the best thing for the community to do. Now Microchip cannot claim they didn’t know — it’s been laid out for them. And they also have a rough roadmap of what steps they should take to remedy the situation.
Hmm… perhaps Dave Jones should do a rant on the EEVblog, and get the head of Microchip to send him back a response video? 🙂 (well, it worked last time!)
Disclaimer: I am not a lawyer. This is not legal advice. Do not take internally. Not for the other use. And stuff like that!
The issue is if they used any LGPL code in the version of libc.a that they distribute with GCC. If so, then yes – that entire library should be required to be open-source. However, that expansion of GPL-edness ends at the boundary of the library… other code (i.e, your programs) don’t get “sucked-in” by it. If not (i.e, the entire libc.a is new code written by them) then GPL/LGPL doesn’t apply in this case, and therefore they wouldn’t have done anything prohibited by the license on GCC.
Of course, that doesn’t mean that they shouldn’t release all the interesting bits… especially as they are in the business of selling PIC chips, and doing so would enhance their standing in the community (and, hopefully, sales).
I dunno. Everything is black&white if you’re an “only open-source anything” and “all open source should be fully viral” sort of person, but I sort-of welcome this exploration of how to implement a partially-open product. Microchip (and technically, ChipKit is not a Microchip product, right?) is doing better than many other vendors…
@K: nothing requires that C libraries and the C compiler have the same license. gcc is GPL, the gnu-supported libc is LGPL, avr-libc is “modified BSD”. msp430-libc apparently contains files with about six different licenses (none are any form of GPL.) Including “The copyright owner and licensing of malloc/free cannot be identified.” Things get complicated when you start to aggregate large collections of basically trivial code. There has been an implication in microchip postings that they essentially commissioned a pic32-libc from some vendor, and it’s THAT vendor that has the (non-open) license requirements.
@westfw – this is amazing to watch and we’re thrilled microchip is moving more towards open-source hardware! we said that before, we’ll say it again. we said it to them in person too 🙂
netduino is a great example of who is doing this “the best” right now, just our opinion.
the issue that customers and fans seem to be having is…
“Parts of chipKIT toolchain are still closed-source, and Microchip isn’t contributing open source drivers for the highly-advertised USB and Ethernet features of the chipKIT Mega.”
they promised this, at least that’s how it’s perceived:
from our point of view, and also keep in mind they visited us and we specifically talked about these issues (and more) before launch.
it’s been months and if you look at comments around the web they need to address some of the issues we brought up as well as the ones ian outlined in his article.
they’re banking on the arduino name and community in many ways, so it will be reasonable for them to get constructive feedback on how to be part of the community they wish to be in and market hardware to.
it’s *really* complicated, we agree!
>> netduino is doing this “the best” right now
Is the .net c# compiler open source? Or even visible-source? That seems to be a very similar “problem.” (I see that there *is* an open source compiler, but is it the one actually being used?)
I’ve been a little disappointed that the chipkit “core” even bothers to use the microchip peripheral libraries (instead of being written on the bare metal. Though that seems to be the trend for 32bit cpus.) (OTOH, creating a chipkit “ethernet” library without using the microchip code for the tcp and drivers never seemed reasonable or likely.)
“There’s a free and open source toolchain for Netduino available courtesy of the Mono team at Novell. Works on Linux, Mac, and Windows. Full details are in the Mono forum over at the Netduino community forums.
The Mono C# compiler, Microsoft’s .NET MF post-processor, the Netduino source, and the entire .NET Micro Framework are all open source using traditional open source licenses.”
Clarification, Microchip did not invest in the IDE. The mulitplatform changes were a project by Mark, and me to allow the Arduino IDE to support multiple toolchains. My test version has the hooks for several toolchains, and I’m trying to solve the delivery of toolchains, and conform to a spec that is hosted on the Arduino site. There is nothing closed sourced, about this and the plan is to incorporate into Arduino IDE when possible.
Microchip invested in an Open Source version of their toolchain, If the toolhain is not fully open there is a mistake on their part that needs to be corrected. They were looking into using newlib. They should hurry up and do that. It’s unfortunate that good open hardware has to use USB, and Ethernet drivers that are closed. it would be easiest if Microchip open sourced them, but so far no.
I do believe the goal of multiplatform Arduino is important. People should be able to learn about a chip on various platforms using Arduino libraries, and then dig deeper into it the chip when they want capabilities not available.
I could do a build that uses the Pinguino as long as the libraries compile, and if someone is willing to help fix them if their are bugs. I can help get the platforms.txt file updated, and the compiler dropped into the hardware folder and working.
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.