Firmware Design

RuuviTracker firmware is largely based on eLua embedded scripting platform.

There is no multitasking kernel available. All driver stuff is done in interrupts and main thead is eLua script engine.

Idea is that users hacking RuuviTracker do not need to touch firmware. Every functionality that RuuviTracker offers should be usable from Lua scripts.

Elua
To know more about eLua see:
 * http://www.eluaproject.net/
 * http://www.eluaproject.net/doc/v0.9/en_refman_gen.html
 * http://www.lua.org/pil/contents.html

GSM
The GSM chip on device is Simcom 908. This chip is controlled through UART2 from MCU.

GPS
Sim908 contains also a GPS chip that sends NMEA data to UART3 of MCU.

Interrupt priorities
SMT32F4 is configured to have preemptible interrupt with 7 levels of priorities. No subpriorities used. If higher priority interrupt flag rises the currently running handler is interrupted and new one is served first. Number 0 is higest priority.