Computing stuff tied to the physical world

Adding a new Arduino platform

The Arduino IDE (currently version 1.6.5) supports multiple µC architectures (called “boards” and “platforms” in Arduino IDE-speak). Here’s what it includes out of the box:

Screen Shot 2015 10 08 at 19 42 16

As you can see, there are various AVR-based 8-bit boards as well as ARM-based 32-bit boards. Many of these differ only in minor details, such as the clock speed, the mechanism used to upload, and the exact pin assignments for each particular board.

From a user prespective, adding a new platform is quite simple – as described here for the ESP8266 WiFi module, and here for various STM32-based boards. This adds the following options to the IDE (in the Tools => Board menu) – for the STM32, we’ll see this:

Screen Shot 2015 10 08 at 20 23 48 copy

As you can see, there are several groups of µC architectures, with one or more different boards in each. Once you choose a board, further options appear under the Tools menu:

Screen Shot 2015 10 08 at 20 33 56

All of this is driven by an large set of configuration settings in files called boards.txt, platform.txt, and programmers.txt – these must be located in a sub-folder of the hardware/ directory inside the “Sketch Folder”.

Luckily, there is a fair amount of documentation about all this stuff on the Arduino Wiki. Another good source is by Adafruit: Adding Third Party Boards to the Arduino v1.6.4+ IDE.

That’s a lot of information to take in, and quite a bit of configuration to figure out, but it looks like all the mechanisms exist to start adding an entry – what we’re after is this:

Screen Shot 2015 10 08 at 20 55 09

As it happens, some of the footwork was already done in a previous project. Stay tuned…

[Back to article index]