I am a great fan of Automation and with my recent venture into Hardware manufacturing( + limited resources) the need for automation has been highlighted.
In a previous post I explained how to deploy firmware to hundreds of Micro-controllers with a simple script. My next adventure is with Toolchains. Toolchains are the software utilities/tools needed to compile, build and deploy firmware. With our venture into ARM microcontrollers we have wandered of the familiar Arduino path.
Arduino provided a simple, all in-one solution to developed embedded devices. The problem we were facing was that we have outgrown it and needed to move on to more complex environments.
Vagrant to the rescue!!! Setting up the working environment for new microcontrollers can be very time-consuming/complex and I wanted to insure that I do this once so that the work space can be re-used for future projects. Vagrant filled the gap. Basically it is a way of configure OS’s/work-space’s via a scripts, making them reusable. Vagrant uses Virtualbox to create the virtual environment and then applies the settings to the newly created virtual machine. (Disposable work environments that can easily be distributed)
As an example I created an Ubuntu/Linux setup that has the GCC toolchain setup and ready to go to compile and build exported projects from the online mBed IDE.
The Vagrantfile to build the mBed GCC toolschain is available from Github. We are also looking at Adafruits cross-platform arm debugger to automated J-link/OSD programming of ARM chips.