Microcontroller
Candle Flame Oscillations as a Clock
·1856 words·9 mins
Todays candles have been optimized not to flicker. But it turns out when we bundle three of them together, the resulting triplet will start to naturally oscillate. Amazingly, the frequency is rather stable at ~9.9 Hz as it mainly depends on gravity and diameter of the flame. We detect the oscillation with a suspended wire and divide it down to 1 Hz.
BitNetPDK: Neural Networks (MNIST inference) on the "3-cent" Microcontroller
·1227 words·6 mins
Is it possible to implement reasonably accurate inference of MNIST, the handwritten numbers dataset, on a “3 cent” Microcontroller with only 64 bytes of RAM and 1K of instruction memory?
BitNetMCU: Implementing Neural Networks on the “10-cent” RISC-V MCU without Multiplier
·972 words·5 mins
BitNetMCU is a project focused on the training and inference of low-bit quantized neural networks, designed to run efficiently on low-end microcontrollers like the CH32V003. Quantization aware training (QAT) and fine-tuning of model structure allowed surpassing 99% Test accuracy on a 16x16 MNIST dataset in only 2kb of RAM and 16kb of Flash.
Ultra low power LED flasher
·1604 words·8 mins
Flashing a LED is certainly among the first set of problems any burgeoning electronics specialist is tackling, may it be by using an ancient NE555 or, more recently, a microcontroller to control the LED. As it turns out, we can turn any trivial problem into a harder one by changing its constraints.
Intelligent 7-Segment Display
·1454 words·7 mins
Builds an addressable seven-segment display module using Padauk MCUs, covering protocol details and firmware.
A LED candle based on the 3 cent MCU
·1343 words·7 mins
Attempting to build a LED candle with integrated light sensing using the ‘3‑cent MCU’
DICE10 - electronic dice controlled by two GPIO
·57 words·1 min
Implementing a touch controller electronic dice on an ATtiny10 using PlexingPlus.
Measuring the length of a WS2812 string
·724 words·4 mins
How to estimate WS2812 string length by measuring supply-voltage sag from the LEDs’ current draw.
The Nanite 85
·807 words·4 mins
The Nanite 85 ATtiny85 board, a very tiny breadboardable development board with USB bootloader and reset button.
u-Wire – USB on an ATtiny 10
·942 words·5 mins
Implementing a stripped down version of V-USB including a WS2812 controller on a minimal ATtiny10 MCUs with only 1kb of flash.
Interrupt-free V-USB
·1785 words·9 mins
Background and implementation of an interrupt-free V-USB variant that allows to shrink the Micronucleus V2 bootloader while boosting USB throughput.
Light_WS2812 library V2.0 - Part II: The Code
·623 words·3 mins
Implementation of the optimized light_ws2812 driver with hand crafted assembly inner loop that bit-bangs LEDs even at 4 MHz without timing violations on an AVR.