Migrating duk.io from Ghost to Hugo
I decided to migrate this blog from Ghost to Hugo. If you’re reading this, then the migration was a success.
Generals
A full deck of dynamically generated SVG cards in 47 KB
A full deck of dynamically generated SVG cards in 47 KB. SVG cards are beautiful on hi-DPI devices, but tend to be as large, or larger than raster versions. This doesn’t need be the case.
SolitaireCat.com
SolitaireCat.com game design
SolitaireCat.com is a cat-themed Solitaire playing website and Solitaire history blog, because, why not?
I developed the site as a project to improve my Typescript skills and get some exposure to SolidJS and Supabase.
SolitaireCat.com
Design of the embee.hk pollution monitoring site
Embee is a manufacturer and retailer of IQAir-compatible air filters based in Hong Kong.
In addition to their main ecommerce sales site, I built a website that reports live air quality across Hong Kong at embee.
embee.hk/a/air-quality
How to sleep an ATMega328p on less than 1µA with timer wakeup
How to configure an ATMega328p to consume lest than 1uA, while still retaining the ability to wake the processor up periodically via timer (or external interrupt).
Generals
BT audio player: Conclusion, problems and screwups
Discussion of the design and implementations problems encountered during the design/construction of my in-wall Bluetooth audio player, with environmental sensors, proximity wake-up, metadata display, and cat animations.
Bluetooth Audio Player
BT audio player: Installation and external power
Installation, power, and speaker connections for the custom made in-wall Bluetooth audio player. The wall plate connects to the speaker connections and power control electronics via a single RJ45 cable.
Bluetooth Audio Player
BT audio player: Firmware
Firmware design for the Bluetooth audio player project. The basic architecture uses events to trigger external interrupts. Handlers post the event details into a queue and a simple control loop polls the queue and dispatches events to various handlers.
Bluetooth Audio Player
BT audio player: Mechanical Design
Mechanical design for the in-wall Bluetooth audio player project. The most difficult aspects of the design are mechanical. Fitting the module into a standard electrical junction box without visible fasteners, while allowing for it to be easily removed and look good is quite a challenge.
Bluetooth Audio Player
BT audio player: Circuit and PCB
Circuit and PCB design for the Bluetooth audio player project. The circuit design is not complicated. The main sections are MCU with 8MHz crystal and supporting caps, ...
Bluetooth Audio Player
BT audio player: System Design
My latest project is a cat-themed Bluetooth audio player to be permanently installed in my bathroom. The unit will be housed in a standard electrical junction box on the bathroom wall..
Bluetooth Audio Player
STM32 Microcontroller Cheat Sheet
STM32 microcontroller cheat sheet by product line, feature, model number. Includes product code descriptions and timer/peripheral information.
Generals