What’s Between You and the Hardware?

This slide is from my EclipseCon Europe talk with Gordon Williams on Espruino.

It aims to show at a high-level what sits between our user software and the hardware itself and why it matters.

Arduino – an Arduino sketch gets compiled directly to object code and this runs directly on the hardware, i.e ‘bare metal’. This is great for directly accessing hardware but bare metal can be a pain, for instance, when it comes to scheduling when different things should run – then you’re on your own.

Raspberry Pi – is a powerful board that runs the Linux operating system, and an interpreter for Python on top of that. While you can do a lot with a Pi,and they are often used for running servers, sometimes it can be overkill for smaller automated tasks, and then you pay the price in power or battery life.

Espruino – Espruino aims to sit in the gap between the two. Its custom javascript interpreter gives some powerful functionality without having to give up tight control over the hardware. In particular, the interpreter includes scheduler methods which means it knows exactly when to go to sleep and for how long giving huge gains in power saving and therefore battery life.