Brussels / 30 & 31 January 2016



A C++ API to ease microcontroller programming

This project provides a C++ library that eases microcontroller programming. Its aim is to provide an interface simple enough to be able to create complex applications, and optimized enough to enable small microcontrollers to execute these applications.

The other aspect of this library is to be multiplatform. Indeed, it is designed to provide the same API for a simulator (named SASIAE) and for AVR-based and ARM-based microcontrollers.

The project began in 2014 while my association, Eirbot, was participating to the French contest of Eurobot. Indeed, the association faced a new challenge. The robots, which were controlled by AVR-based microcontrollers would be controlled by ARM-based microcontrollers. The objective was to renew an old code written in C, and make use of a simulator to test the code.

To solve these issues, and some others, Aversive++ offers these services :

  • Provide a base code to design control systems.

  • Provide a communication layer with some systems used in robotics (GPS, accelerometers, etc...)

  • Provide a lot of tools to manage the application's memory securely, mainly by applying the same constraints as in the aeronautics industry.

  • Follow the C++ philosophy : what you don't use doesn't cost you.

  • Being able to execute the application of a microcontroller on a simulator.

  • Being multi platform. Actually, being able to use the same application code on different microcontollers with a few or no modification.

  • Provide a compile-time verification feature. Indeed, it is possible to warn the user when he is using badly the microcontroller before even executing the code. This will help the testing phase of an embedded project.

You can go to the project website :


Loïc Dauphin