Glowing Polyhedrons
Building wireframe polyhedra made from LED filaments, using graph theory to devise geometry and driving strategies.
Recent content in Recent Posts on Tim's Blog
Building wireframe polyhedra made from LED filaments, using graph theory to devise geometry and driving strategies.
Combining a deep-depthwise CNN architecture with variable quantization in BitNetMCU achieves state-of-the-art MNIST accuracy on a low-end 32-bit microcontroller with 4 kB RAM and 16 kB flash.
(Guest article on the Nous Research blog) Anecdotal evidence suggests open weight models produce significantly more tokens for similar tasks than closed weight models. This report systematically investigates these observations. We confirm this trend to be generally true, but observe significant differences depending on problem domain.
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.
Using capacitive sensing to measure the oscillation of a candle flame and converting it to a 1 Hz clock
Massively parallel operations in a 64kx1 DRAM from the 1980ies
A browser based interactive application that visualizes simple multi-layer perception (MLP) neural networks for the inference of 8x8 pixel images.
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 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.
Analyzing a battery powered LED tea light with 24h timer functionality. Discovering that it is surprisingly based on a low-cost 8-bit microcontroller integrated into the LED package.
The Electronic Die of the Future
8 Bit CPU implemented in 100x100um^2 IC area for TinyTapeout
Taking a closer look at the PWM behavior of the WS2812: Why does it have 11 bit PWM resolution when only 8 bits are used for color data?
Dissects a cheap multicolor LED string and its phosphor-converted LEDs, revealing shared driver quirks.
Reverse-engineers a whole-wire LED Christmas string that encodes data on the supply rails, mapping its protocol.
Analysis of a RGB LED string and recreating its functionality
A modern-day reimagining of the NE555/CD4017 electronic dice
A Microprocesser designed in a digital logic family based on the NE555
Work in progress: Flow to synthesize VHDL/Verilog code into a PCB
What would it take to build an addressable LED like the WS2812 (aka Neopixel) using only discrete transistors? Time for a small “1960 style logic meets modern application” technology fusion project.
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.
Reaching sub 1 ns propogation delay with LEDs and bipolar transistors.
Optimizing NMOS logic gates made of discrete transistors
Exploring the undocumented Resistance to Frequency Converter (RFC) peripheral of the Padauk PFS173 Microcontroller
Explores analog chaos with Schmitt triggers, filters, and feedback to create Chua-like oscillations on breadboard.
A TTL CPU I built a long time ago when I bought a huge stock of NOS TTL chips on ebay
Builds an addressable seven-segment display module using Padauk MCUs, covering protocol details and firmware.
Experiments on optimizing discrete logic gates based on bipolar transistors
Explores the special transistors that enabled 10 Mhz clock speed in the 1960ies.
This projects tracks my efforts to develop discrete LED-Transistor logic building blocks and designing a CPU from them.
Attempting to build a LED candle with integrated light sensing using the ‘3‑cent MCU’
Review of the sub $0.10 Microcontroller segment.
Analyzing the SK9822 addressable RGB-LED, a clone of the SPI based APA102.
Implementing a touch controller electronic dice on an ATtiny10 using PlexingPlus.
Analyzing a new addressable RGB LED: The SK6812.
Can we reverse engineer the flickering pattern of a real candle to improve artificial candle LEDs? Measuring and analyzing the temporal light output of a real candle.
PlexingPlus - Driving the seven LEDs of a dice using only two GPIO pins and clever multiplexing.
Dissects APA102 timing details to explain start frames, data forwarding, and reliable end-frame clocking.
Investigating the SPI-based APA102/APA102C LED, outlining its SPI protocol, global brightness control, and fast PWM behavior.
The Nanite 85 ATtiny85 board, a very tiny breadboardable development board with USB bootloader and reset button.
Tear down of a simple external USB battery, identifying key ICs.
Implementing a stripped down version of V-USB including a WS2812 controller on a minimal ATtiny10 MCUs with only 1kb of flash.
Background and implementation of an interrupt-free V-USB variant that allows to shrink the Micronucleus V2 bootloader while boosting USB throughput.
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.
Analyzing and understanding the WS2812 timing, protocol tolerances, and hardware behavior to enable a reliable driver implementation.
Reverse-engineering the algorithm of a candle flicker LED by statistical analysis of its light output pattern.