Microchip open source USB/TCPIP stack competition with $1100+ bounty

Microchip launched the open source USB/TCPIP stack competition. The developer who writes, or ports, open source USB and TCPIP drivers to the chipKIT will receive a $1000 bounty (now $1100 and growing):

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.

[The contest page is here]. 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!!

It’s a huge development and here’s why: Microchip admits they have a problem, and they’d like to find a solution. Microchip knows they need to have open software to be the de facto choice of the hobbyists and students who go on to become engineers. AVR is eating PIC’s lunch in that department. It isn’t hurting them much today, but thanks to Arduino there will be many more engineers raised on Atmel/AVRs in the very near future. Facing the problem and backing a solution is the big win, a competition with prize money is secondary to that. Kudos to Microchip.

We’re tossing in $100 for each stack they choose too. Several private donors also wrote to ask how they could contribute money to the prize. Does anyone know if there is an online service for something like this?

Join the Conversation


  1. I just posted this on a forum for the finishing year students of my Electrical engeneering college, ETF.rs
    there are a lot of bright kids in there to whom a 1000 usd are things of dreams and I expect some will surely enter the contest.

  2. Maybe make a new project on kickstarter.com. Normally this is for the designer where he/she can show the future project, but I think this might be an easy way for you to collect money and give updates. This way even $5 donaters can participate and make the bounty larger.

    On the other hand, I think kickstarter asks a certain percentage of the pledged money. I don’t know the exact percentage, but if it’s too high you loose a part of the bounty.

    But I think the idea of people being able to contribute even small amounts might make a large bounty (and thus a bigger motivator ;)), and this also increases involvement (beta testers, …)

  3. I’m still incredulous that Microchip wants the public to develop an open-source stack for them. Really? Your licensing agreements prevent you from open-sourcing your current stacks like you want, and $1000 will buy you new stacks? No, Microchip will upsell their existing stacks as an upgrade like the compilers, and continue on the old path, pushing hobbyists and students off to the unsupported, outdated, untouched Github project while still pulling professionals into their licensed lair.

    The problems that DangerousPrototypes already discussed by Ian in are still unaddressed. What changed your tune in the past week?

    1. Nothing I wrote before changes, and I’m also a bit disappointed by the bounty compared to the size of the job and the advertising blast that accompanied the chipKIT, see my break-down here:

      Honestly though, I’m really surprised they did this at all. They let the USB/network board launch go with closed drivers and no explanation, obviously it wasn’t a concern to them. People have been trolling slahsdot knocking Microchip over open source for years. Microchip doesn’t care. Now with the chipKIT they’ve kinda cornered themselves into doing something. Now they’re on the record that the lack of an open stack is a problem, and they’re doing something about it. It’s more than Atmel did to support LUFA development, for example.

      I think it’s a huge step in the right direction, and I want to reward good behavior. It’s not everything they talked up at the chipKIT launch, but they didn’t have to do anything, and a week ago it didn’t look like they intended to do anything.

      1. Here’s my comment on the contest proposal from that thread:

        That is amazing, it’s great to see Microchip is getting behind a solution to the problem. I’ve also had a few emails from other donors who want to contribute to a bounty. We’re checking to see if there is an online escrow service we can use to pool the private bounties. Has anyone asked Digilent to be involved?

        Both projects are huge, especially the TCPIP stack. If some demos (http server, ftp, etc) and documentation are involved it’s a labor of love. If things are still in flux, please pitch this as a long term investment in the educational (and to lesser extent open hardware) markets.

        A $1000 prize is a great incentive, and I won’t knock it, but it pales in comparison to marketing expenses. A quarter page ad in make is $2000, a half-page is $6K. Maker Faire entry fee is 5K-15K+ plus expenses.

        This isn’t just a core part of chipKIT, but your whole product line. A share-able USB and TCPIP stack will get your products out there and in the hands of students, engineers, and hobbyists in a way that advertising can’t.

  4. Very good comment Ian. Indeed, compared to a simple marketing campaign this amount is rather small. On the other hand, did Atmel reward the creator(s) ? I honestly don’t know.

    So maybe there are a few hardcore PIC lovers that would like to do this, who knows.

    1. I hope someone who is doing it for fun/hobby already gets a nice bonus for polishing it up. The JTR-Honken stack developed in the forum here, in my opinion, is far superior to the Microchip version and it would be amazing to see the developers get a big windfall for that otherwise “for fun” work.

      1. No offense, but how long has the JTR-Honken stack been tested? A few months?
        Also, has any product shipped with the JTR-Honken stack and passed the USB validation test suite?
        I don’t doubt that you enjoy the DP stack more than the MCHP stack, but the reliability is vastly different.

      2. You’re totally right, as usual. I just meant that I realize $1100 isn’t enough to hire coders to write a stack from scratch, but maybe it would be a nice bonus/windfall for someone who did it as a personal passion.

  5. simly put 1000usd is a lot of cash for third world countires, and there are a lot of programers with the know how to implement the stack in those counties, this way they get the cash they can only dream of, and microchip and the comunity gets a open source stack

  6. This really sounds like a joke.

    Instead of trying to put together a group of people, some resources and coordination for development of an open source stack we get enticed to compete with each other for a bounty.

    BTW what code has to be on a single file ?

    And, Contiki is not an Ethernet Stack …


  7. $1000 – are you kidding? If this gets done, I hope the Author (or Authors) license the code in such a way as to explicitly deny use by Microchip Technologies. But do take the money, just to add insult to injury.

  8. Interesting moral issues, too. Who will submit “The JTR-Honken stack” first?
    As others have said, this isn’t a $1000 payment to develop a stack. This is a $1000 award for polishing your existing stack to the standards of the contest, and submitting it to the contest. “Want to be famous like Dean Camera? Submit your code and Microchip will use it, mention it, AND pay you $1000!”
    I’m not sure what “all demos must work with no API changes” means WRT the USB stack, though. Is there an existing Arduino USB API?”

    1. Good question, WestfW. There are many existing demos for the Microchip PIC which use their existing USB Stack. What they’re saying is that they want an open replacement that doesn’t require existing PIC firmware to be rewritten.

      That would be very interesting to see a cross-platform USB Stack that worked on both PIC and AVR. I wonder if anyone has succeeded in completely abstracting the USB peripheral hardware away from the rest of the firmware. Hardware Abstraction Layers are not uncommon, but they usually exist in technology areas where there is already a lot of standardization. I somehow doubt that USB hardware is that similar.

  9. My impression was that for the ethernet, they wanted library compatibility with the Arduino ethernet library (which is actually a socket-level TCP library, mostly, since the TCP is in the wiznet chip.) For USB, they could be looking for a stack that’s compatible with the existing “USB Host” shield as used by the the android-related shields, or they could be looking for compatibility with the existing microchip stack…

    1. Based on the requirements at http://www.microchip.com/stacks/, for the Ethernet library, you don’t need compatibility with the Arduino Ethernet library. You need:

      Functionality with the current chipKIT Ethernet Library .. i.e. Can run current examples

      Similarly, for USB, they want all current examples for the chipKIT to run. They want to have compatibility between their MAL libraries (See http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2680&dDocName=en547784), which the Microchip staff behind this program (Marc, the “Academic Program guy”) can’t convince the higher-ups to release under an open source license.

      From http://dangerousprototypes.com/2011/08/30/editorial-our-friend-microchip-and-open-source/#comment-16641, when asked about the license restrictions that would prevent them from relicensing the libraries that they own, Marc replied:

      I’m the Academic Program guy so I’m not privy to such information and it wasn’t really discussed in any detail at our meeting.

      This isn’t Microchip, the $6.5 billion market cap integrated circuit company, struggling to figure out how to write Arduino or open-source compatible TCPIP and USB libraries, failing, and turning to the community for help where they’ve failed. This is Marc, just trying to do his job without the support of the higher-ups in the company, who still aren’t friendly to open source.

  10. First of all lets try not to confuse things, there is not such thing as an “Ethernet Stack”, may be drivers or library but not a “stack” which normally refers to higher level protocols.

    Normally the Ethernet layers, physical and logical are being taking care of by specific devices or modules, in the PIC32MX case (the ones with the incorporated Ethernet module) the PIC does not include the physical layer (PHY) and an external Ethernet transceiver is required (that is the chip on the new chipKIT Ethernet shield).

    The Ardunio Ethernet shield and other variants out there and several “embedded TCP/IP modules” rely on a single or multiple chip implementations that include the Ethernet controller and transceiver, and different flavors of embedded MCUs that run * proprietary* and *closed* implementations of limited TCP/IP stacks, and that provide APIs to configure the stack and establish TCP connections and/or send UDP datagrams, etc. There is no standard about how you communicate between the application MCU and these “embedded TCP/IP solutions” being WizNet one of the most popular ones and featured in the Arduinio Shield.

    What Microchip is looking for is for an “open source” replacement of their “free to use but not to share” TCP/IP Stack where you can run the same demos in both implementations, which sounds kind of unfeasible because the Microchip TCP/IP API as far as I know is covered by the current license restrictions so I believe you can’t use the same function names, structures and such (unless Microchip agrees to put most of the stuff in the public domain and release the license restrictions.

    The argument that they are not able to make the current libraries “open” is 100% BS, they own the current code but they don’t want to release control and distribution of it.

    True Microchip is a $6.6B market cap company with 6,900+ employees with a net profit margin of over 25% and with increasing sales, very good managed company and there is a good reason for it, besides direct and equity compensation their top execs are making a shload of money, for example on 2010 Microchip paid about $1.715 dividend per share, Steve Sanghi (Microchip’s CEO) holds over 6 million shares, you make the math. In summary the top execs don’t give a squat about open source unless we keep making noise and it turns to be a pain in the arse and a negative image for Microchip.

    The chipKIT is not an effort from Microchip to get into the “open source” arena, it is just a marketing program to capture some of the academic market and ride on the popularity of the Arduino platform.

    Compared with the PIC32 contest (I was a participant and got very good stuff from Microchip, including a non restricted full license of the C32 compiler) when the PIC32MX was launched and hundreds participated and prizes and goodies were awesome (each contestant got a free starter kit and other stuff), the proposed contest (rules are unclear and flaky) is really a joke.

    I recognize that Marc is trying and this will be a very hard ball to get rolling inside Microchip, but we are far away to consider this a serious attempt from Microchip (the company, not the academic folks) to get into open source mode.

    For starters Microchip should first:
    – Release without restrictions the current gcc code including the special juice
    – Put in writing a license or document where they state that all header include files are freely to use, modify, copy and redistribute
    – Same as above for all the API/library headers for the Microchip TCP/IP stack

    I’m not very familiar with the Microchip USB stack but I’d say that probably we need some clarity about the restrictions of the current API license.

    If Microchip is willing to take this step that will be a clear sign that we are headed in the right direction, if not, you still can do whatever you please on your own without getting Microchip involved and imposing “conditions”.

    My .02

    1. > … the Microchip TCP/IP API as far as I know is covered by the current license restrictions so I believe you can’t use the same function names, structures and such unless Microchip agrees to put most of the stuff in the public domain and release the license restrictions.

      They need at least to release an API for their current code in the public domain. Whether or not the Java API can be considered copyrighted is currently up for debate: see http://www.groklaw.net/article.php?story=20110907141407472. AFAIK, IANAL, you can use the same function names and structures (the externally visible ones, at least), without getting in trouble. In any case, it seems obvious that someone at Microchip thinks that you can do this.

    2. Variable and function names and other typical parts of an API often do not meet the (low) requirements for copyright protection. I would be extremely reluctant to make a sweeping statement on copyright protection on an API in any jurisdiction. That having said, even if an API is under copyright protection (which is under doubt and a this year forthcoming ECJ-decision may clarify this for the EU), any protection will be weak. Meaning that even a very slight variation on such an API is likely not to be deemed plagiarising it. So I am not sure whether this should be a real problem.

      And yes, I am a lawyer, only not practicing in the US and therefore allowed to give a legal opinion outside a client-attorney relationship. :-)

  11. What I want clarified: “current demos and examples.” Is that the Microchip stack demos and examples, or the ChipKit demos and examples (which are the Arduino examples, which are not compatible with the microchip stack, and which there have been complaints because chipKit isn’t fully compatible.) If the former, It’s not going to make the Arduino/ChipKit users all that happy. If the latter, there are other issues (“WHAT USB examples?!”)

    1. I don’t have answers to all of your questions, but I will say that the PIC chips that support USB have plenty of examples for working USB Devices based on the Microchip USB Stack.

  12. All the examples are intended to do is confirm stack operation. So perhaps a simple enumeration for the USB or maybe a Web Client for the TCP/IP. Doesn’t need to be too elaborate.

    The idea of this contest is to kick start things.

    There is a chipkit.contest@microchip.com email as well if you have any questions we can answer directly.


    I spoke with our development tools team. If you guys prefer the prize to be development tools, we can arrange something like $1500 USD worth of tools from http://www.microchipdirect.com. Is this something you’d prefer instead of the $1000 cash prize? We’re open to suggestions.

  13. I think the general tone is too negative.

    If we analyze the situation we would see that Microchip is extending an opportunity here.

    Microchip comes and offers a monetary incentive to create a couple of open source stacks, they are developing a cross platform IDE(MPLAB X), all for the benefit of the community and you guys are complaining?? Where’s the open source philosophy of creating code for the benefit of others so that they can learn from your work and produce greater projects which you might build on someday. If you’re doing open source it’s because you want help others, not for some prize. I think PIC users are just as worthy of open source stacks as any other hobbyist, and Microchip is trying to do something to promote that.

    No manufacturer fostered or promoted the creation of the existing open source stacks, here we have Microchip breaking away from that, and I think it’s a great move. Look at Marc he’s trying to get feedback to perhaps improve the prizes for the contest. Would any other manufacturer do the same?

    Jorge Garcia

    In the end Microchip is trying to address these problems listening to a very vocal minority, let’s show them some support, I can’t think of any other company who has responded the way they have.

    1. It is not just complaining and for sure any benevolent actions from any company to assist in the advancement of microcontroller technologies and its applications is always welcomed.
      I don’t know how much you have used Microchip’s Stacks and tried to share what you learned and did with others, or how many times you got a “friendly” letter from their legal department reminding you about the Licensing Terms of theirs stuff.

      Nobody is saying that Microchip is evil and I’m more than 100% convinced that Marc is trying to do the right or best thing with whatever is at his disposal.

      But the point is that Microchip as a company and their top execs IMHO don’t give a squat about Open Source.

      BTW you need to do more research about how some companies do substantial contributions to the Open Source community, even companies that you would think or believe are against it such as Microsoft Corp.

      Microchip is a public and commercial company, not a non-profit organization, as a customer, shareholder and supporter I’d be very concerned if they take out their eyes from the bottom line, MPLAB X is not just to provide a benefit to the community but to expand their reach on what platforms are supported for development with their products.

      And to conclude, the legalese associated with Microchip’s offer is very murky.

      My .02


      1. I have used Microchip’s USB Stack extensively, and never had a problem distributing my work. It’s a simple matter to build an MPLAB project where the stack source is in a different directory, and collaborators are simply required to download the Microchip source separately. I really do not see a need to redistribute their source, at least not so long as they continue to supply the sources. I have never heard of the Microchip source being unavailable, so I really do not understand the complaints from a practical standpoint.

    1. Yeah, I noticed that too. Don’t know what happened I just came here to report what you just beat me to. Maybe it was your post on the microchip forum that I saw.

      Anyway, I don’t morn if the whole thing has fallen over. Not from the point of view of the USB stack anyway. Open source belongs to the community and it is up to the community to support it fairly and without turning people from cooperation to competition and creating issues of who “owns” what etc.

  14. Let me clarify few points, so the criticism does not sound as negative as it looks. First of all, I like Microchip as a company, their products, their support and their people.

    I still believe that developing open source software. particularly protocol stacks for TCP/IP, USB, IEEE802.15.4, etc., is a great idea and will benefit the developer community, enthusiasts, hobbyists, students, and obviously Microchip.

    While it is not a written rule, open source software becomes a good resource when it is developed by a community of people interested and motivated to create it, there are many cases when somebody does a “solo” development and offers it to the rest of the community as open source, but when there is multiple participation, diversity and combined creativity and experience from many individuals the end product is much better.

    Then, while I still consider developing an open source set of stacks a good idea, I don’t believe the approach is the best one, given that with a contest or competition instead of creating a community with a common end goal we are dividing it so individuals or groups can compete against each other, and with an obscure set of rules on how to evaluate it just by Microchip does not sound very “open.”

    Implementing a protocol stack is not as easy as it sounds, if done in a group it requires planning, coordination and leadership, a set of common tools, and the most precious resource in the universe: Time, and as you probably know the old saying “Time is money.”

    There is nothing that restricts companies (if they have the will) such as Microchip to act as sponsors and provide some of the resources needed for an open source development, without “owning” the process, and the end product. This is something that companies like Microsoft, Intel, IBM, etc., do on a daily basis.

    Few simple examples, to facilitate coordination of a distributed group of developers working in a common project, there are tools such as text/audio/video/collaboration that can be provided by Microchip, something simple as paying the Skype fees for a group conference, or any other tools like bug trackers, collaboration, repositories, project management/tracking, a private forum, etc.
    And obviously for those really interested to contribute but not having the monetary resources to acquire the hardware, some free or discounted access to it.

    BTW, the page at Microchip’s site seems to be up again.

    My .02

    1. Well said Jorge. Totally agree that the motivation must come from and be for the community. Microchip and other companies can be part of that community and support via the lore and mores of that community.

      In my own case, I am some dollars short of being able to purchase the minimum realistic level of hardware and spending dollars in the hope that I might win some back with a stack that I fully acknowledge is only about half of my own work is not something I can consider both from a practical and ethical view.

      Personally, I look at this competition with dismay that dollars are being offered to the first person who can possibly “lift” code written by someone else who has spend hundreds of dollars and hundreds of hours of their own creating.

      Even more to the point I find it disappointing that. Oh, forget it…

Leave a comment

Your email address will not be published. Required fields are marked *

Notify me of followup comments via e-mail. You can also subscribe without commenting.