Brussels / 1 & 2 February 2014


The xpcc microcontroller framework

An efficient, object-oriented approach to embedded software development.

This talk introduces the xpcc framework for efficient object-oriented programming for micro-controllers.

Originally developed by the Roboterclub Aachen e.V. for the Eurobot competition, xpcc became a separate project in 2009 and since then focussed on a new approach to cross target microcontroller libraries. It stands out for its extensive use of static C++ classes and templates which is unusual in this field, but lends itself well to the static nature of embedded development. The main goal of xpcc is to provide a simple API which is efficient enough to be deployed on a small ATtiny, yet powerful enough to make use of advanced capabilities found on 32bit ARM Cortex-M.

The xpcc library main features are:

  • efficient object-oriented C++ API,
  • support of AVR and ARM Cortex-M based micro-controllers from Atmel, NXP and ST,
  • build system based on SCons and Jinja2 template engine,
  • cross platform peripheral interfaces: Gpio, Uart, I²C, Spi, Can,
  • write once, run anywhere external IC drivers using these interfaces, and
  • lightweight, non-blocking workflow using timers and cooperative multitasking.


Niklas Hauser
Kevin Laeufer