Close

Libraries libraries libraries

A project log for AND!XOR DEFCON 24 Badge

Building our own electronic badge. ARM Cortex M3 and Arduino based

zappZapp 01/06/2016 at 17:450 Comments

As our code base has grown so have the dependencies on various Arduino libraries. Adafruit GFX, SSD1306, RFM69, etc etc. Each has its quirks and we've had to make tweaks here and there to make them work together. Example, to preserve analog IO, we need to move the NeoMaple library off its default pin of PA0 to something else.

This, of course, makes configuration management a nightmare. Not only do we have to deviate from the libraries but we now must maintain our changes independently and keep them synchronized in our git repo between our various computers.

To date, we've used the Arduino IDE for development. Managing libraries and their various versions has proven to be difficult. Arduino supports multiple library folders but the source folder with the .ino file doesn't support folders. Each source file becomes a tab across the top and unmanageable at scale.

Our next goal is to move the development over to Eclipse using the Arduino plugin. This still requires the Arduino IDE to compile and configure the boards. But Eclipse is much easier to manage large code bases than Arduino is. Hopefully it will have better library management too!

Maybe something like cmake or platform.io is a better alternative.

Discussions