Making it Easier to Build Firmware


Most microcontroller manufacturers give you some kind of free development toolchain or IDE with their silicon products. Often it’s crippled, closed source, and a large download. This is pretty inconvenient when you want to have firmware that’s easy to build and distribute. I’ve found many of these toolchains to be annoying to use, and requiring closed source software to build open source firmware seems less than desirable.

It’s possible to build code for most microcontrollers using command line tools. You’ll need a compiler, the device manufacturer’s libraries and header files, and some method of flashing the device. A lot of these tools are open source, which lets you have an open source toolchain that builds your project.

Setting up these tools can be a bit tricky, so I’m building a set of templates to make it easier. Each template has instructions on setting up the toolchain, a Makefile to build the firmware, and sample code to get up and running quickly. It’s all public domain, so you can use it for whatever you’d like.

Currently there’s support for AVR, MSP430, Stellaris ARM, and STM32L1. More devices are in the works, and suggestions are welcome. Hopefully this helps people get started building firmware that’s easy to build and distribute with projects.


  1. Lloyd Atkinson says:

    Only plans to support PIC18 and PIC32? Microchip have been producing their line of C compilers for PIC’s all the way down to 12F, seems strange to ignore everything below PIC 18.

  2. Oh, and if anyone wants to contribute, let me know!

  3. polossatik says:

    Excellent initiative !
    Let’s hope people help you out with this .

  4. x3n0x says:

    Honestly, Atmel’s stuff has always been free and non-crippled. The IDE is actually really nice if your running windows. None the less, this will be a great tool, especially for a lot of the new ARM stuff coming out!

  5. Ant says:

    I think that we will be able to talk about Open Source Hardware when the architecture of the processor itself is Open Source, like for the COFE processor (open source hardware developped for academical purposes) that could be synthetized on an FPGA. Taking an open source IDE for developing on ARM based processors and others are not enough, but important though.

    • Yes, an open source architecture that’s actually available in silicon would be very cool. The OpenRISC is one example of an open core, but it’s not widely used since you need to run it on a FPGA. They’re working on an ASIC though apparently.

    • Pete says:

      I’ve seen this advocated, and I can see why it’s interesting, but I can’t see why it’s _useful_, or more useful than a sufficiently accessible and documented platform. For all practical purposes you’re going to want an ASIC.

  6. Ren says:

    I’d help but sadly lacking in that arena B^(

  7. Daid says:

    CodeBlocks pretty much has template and compiler settings for AVR build into it. Making it very easy to do AVR building. (Not sure about the rest of the chips)

  8. Willaim says:


  9. willrandship says:

    This sounds wonderful. Especially for my 2 stellaris launchpads, which have remained mostly unused (even with the stellarisware+gcc post earlier, it was just so much of a hassle to build for)

  10. Cyril says:

    Including a disassembler would make this. <- pun intended

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


Get every new post delivered to your Inbox.

Join 93,648 other followers