projects

Ground Control

Blog post

A retro-looking home control panel.

Ground Control home panel

GIMME DANGER!!

Blog post | Repository

A USB Power Delivery (USB-PD) trigger board running ESPHome. Here's a demo of it negotiating 12V from a USB-C wall adapter and controlling an LED strip through Home Assistant:


spellcaster

Blog post | Repository
A home automation magic wand.


A daisy-chain of electronic shelf labels I made for decorating my office.

elink

elink: A panel made out of 20 small e-paper displays


catprinter

Blog post | Repository

The cat printer is a $20, wireless, portable thermal printer. I reverse engineered its Bluetooth LE protocol from the official Android app and put together a Python script to interface with it instead.

cat printer

God, it's cute


Sugarboat

Blog post | Repository

A digital hydrometer. It floats on top of a solution and measures its density. It's used to track the fermentation process while brewing beer and wine.

sugarboat inside container

Sugarboat in its container


m6-reveng

Blog post | Repository

Reverse engineering the M6 smart fitness band.

hacked m6 band


b-parasite

Repository

An open hardware and open source soil moisture and ambient temperature/humidity sensor. It uses Bluetooth Low Energy (BLE) to broadcast its sensors' data.

b-parasite b-parasite in a plant vase

LIR2450-charger

Repository

An open hardware LIR2450 coin cell battery charger.

Front Back

Front and back of the printed circuit board.


awesomenes

Repository

A Nintendo NES emulator written in Go.

dk smb

Donkey Kong and Super Mario Bros. running on the emulator.


fitless

Blog post | Repository

Hacking a cheap fitness tracker bracelet.

bracelet helloworld

"Hello, world" running on the fitness bracelet


A minimalistic Optical Mark Recognition Python/OpenCV script.

OMR Input OMR Output

On the left, a picture of an answered sheet, used as input. On the right, the output with the automatically recognized answers


secret

Repository

An toy implementation of Shamir's secret sharing scheme in zero-dependencies C. Using this, a secret (for example, a password), can be split between n people, so that k people are needed to reconstruct it.