Skip to main content
shopping_basket Basket 0

OpenDrum - the Open-Source Drumless

OpenDrum is the open-source version of Drumless - an award-winning air-drumming system. It is built around an Arduino Nano 33 BLE (Sense).

Parts list

Qty Product Part number
1 Arduino, Nano 33 BLE Module 192-7587
1 Arduino, Nano 33 BLE Sense Module with headers 192-7592
1 Arduino, Nano 33 BLE Module with headers 192-7591
1 Arduino, Nano 33 BLE Sense Module 192-7588


I have a BEng in Electrical & Electronic Engineering and an MSc in Artificial Intelligence. I like to combine knowledge from both fields in my work. In short, I make computers walk, talk, hear, see and understand.


March 4, 2021 10:42

"Let's say that the sensor data had to be read every 2 ms and that the data had to be fused every 5 ms, but reading the data took 1 ms and fusing the data took 3 ms." That adds up to 110% processor usage before the overhead of RTOS is added (100% * 1ms/2ms + 100% * 3ms/5ms)). Probably not such a useful example as it is impossible to meet the specification.

0 Votes

March 12, 2021 07:58

Hi, @icelnz! Thank you for the note. Please correct me if I'm wrong, but the processor doesn't do any useful work while data is being transmitted using SPI - there is a separate SPI block on the chip that does it. A naive implementation of the code would wait for the SPI data transmission to complete, keeping the CPU from doing anything useful (i.e. the SPI data transmission will be blocking). You could imagine that something like "while (spi.transfer_done != true) {}" would be happening inside the function while data is being transmitted. An RTOS implementation allows you to do something else during the transmission (e.g. sensor fusion) instead of iterating an empty loop.

Related Content

DesignSpark Electrical Logolinkedin