Recent Posts


Wanting to demystify how commodity ESCs work, I built a trapezoidal sensorless BLDC driver. It doesn’‘t have FOC (yet) but it does have LIN.

nRF24 Remote

Transmits button, microphone, accelerometer, and magnetometer data when awake and sips 2.5uA while asleep.


Designed as an open-source alternative to the PCAN-USB Pro, JABICAN-USB Pro runs JABI to provide isolated CAN and LIN access over USB.

ATtiny10 LIN Node

Since LIN transceivers are glorified level translators and LIN is slow enough to bit-bang, I built a LIN node using an ATtiny10.

100BASE-T1 Converter

By connecting the RMII interfaces of two PHYs, this board bidirectionally converts between 100BASE-T1 and 100BASE-TX packets.

Zephyr LIN Driver

Inspired by the CAN API, I designed a LIN API for Zephyr along with one implementation built on top of the UART driver.

JABI (Just Another Bridge Interface)

Easily access any microcontroller’s peripherals from anywhere! Supports all major operating systems and libraries are available for C++, Python, and gRPC.

2022 Courses

Finally graduated! The end of one amazing chapter and the start of another.


After parsing through much documentation, I learned enough to design a DAPLink probe based around the ever-popular STM32F103.


I might be a couple years late to the party, but here’s a tiny board powered by LUFA’s AVRISP MKII project.’


After learning about the 6 wire measurement technique in industry, I decided to make a board to try it out. It’s also an auto-ranging 4-wire ohmmeter.


It still can’t do maze-solving (from lack of trying and resources), but it’s much smaller, easier to assemble, and runs Python.