FreeRTOS is a great tool for those of you who want to get the most out of their microcontrollers and do something more than blink a LED. It enables you to run several tasks concurrently (i.e. simultaneously, but no in parallel) and do things like, while one process is waiting for your I²C interface to finish (the task is blocked) let different process take advantage of the waiting time to do work.
In this post we will take a look at how to create two simple FreeRTOS tasks that run concurrently on Arduino, although this is perfectly applicable to any other microcontroller you have lying around.