Posts by Category

projects

Basic CH32V Zephyr Support

Added core support for the CH32X035 along with USB FS, USB PD, ADC, and UART drivers. Supporting other CH32V parts will be relatively straightforward.

RViCE ADC

First time using a RISC-V microcontroller, iCE40 FPGA, and an LTC2320 ADC. It streams 8 channels of differential 16-bit 48kHz ADC readings over USB as audio.

Basic LPC845 Zephyr Support

While still lacking in many features, I’ve added just enough support to get the LPC845-BRK and my own LIN breakout working.

OSRO (Open-Source Reflow Oven)

An easy to deploy hardware and software solution for converting any oven into a Wi-Fi enabled reflow oven. This is just one.

Lightsaber v5

With much more experience under my belt, I challenged myself both in size and processing power in the next version of my lightsaber.

solarFRAM

First time trying solar power, PIC, and FRAM.

Revisiting Tag-Connect

Recreating patented technology yet again but this time using OSH Park for the PCBs.

keyboard

First try at a BLE project with the Pi Pico W since SDK support was recently added.

FT4232H JTAG

A breakout for the FT4232H so I can do JTAG/SWD.

STM32 ESC

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.

JABICAN-USB Pro

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.

STM32 DAPLink

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

AVRISP MKII

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

6wire

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.

MMv3

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

Spartan 7 Breakout

During the great chip shortage of 2021, I decided it was about time I designed something with an FPGA on it.

K66F Breakout

This board marks quite a few firsts including using a BGA part, solder stencil, ethernet PHY, custom DAPLink, and Zephyr RTOS.

FTDI Xilinx JTAG Programmer

Thanks to some netizens dumping FTDI EEPROMs, I was able to hack together my own Xilinx programming cables.

Getting Started With PetaLinux

A rough guide to getting Linux booted on Zynq using Vivado and PetaLinux written by someone taking their first steps into that wonderful world.

stbridge

My first legitimately useful open source project, stbridge is a Python wrapper for the STLINK-V3’s bridge API.

STM32 APRS

A low cost compact device that provides APRS messaging capabilities to cheap HAM radios.

Simple EEPROM Wear Leveling

A one bit overhead wear leveling algorithm for storing fixed size data in EEPROM. Based on Danny Chouinard’s work.

PCB Agitator

This glorified camera slider halves my etch times and improves etching consistency all in an overkill but stylish form factor.

Custom Black Magic Probe

The Black Magic Probe is a pretty interesting open source ARM debugger project, so I decided to modify the existing design and make one myself.

DIY Tag-Connect Cable

While browsing through KiCad, I learned about the clever Tag-Connect system. Given the high cost, I decided to replicate the design for myself.

Custom ST-Link V2-1

After my ST-Link V2 clone broke, I scoured the web for a way to build one from scratch. I ended up with a custom ST-Link with built-in UART VCP.

UR@B Battery Pack

For a first try, not a terrible attempt at designing my own battery pack for UR@B. It did save quite a bit of money.

MMv2

The logical next step to Concept Micromouse v1. I still haven’t gotten to full maze solving, but it’s a step forward.

Concept Micromouse v1

With a week of winter break left, I tried my hand at designing a concept Micromouse to inspire our next generation of Micromouses for the DeCal.

BSWelder v1

It’s about time I stop soldering wires directly to lithium batteries so I salvaged a microwave transformer to make a cheap battery spot welder.

Server Upgrade!

I started off my winter break by finally upgrading the Pi 3 that had been powering my website to a proper x86-64 server.

MMSim

Just for fun, I wrote a simulator for the flood fill algorithm for the Micromouse DeCal I helped teach this semester.

DIY DC Current Clamp

In a relatively straightforward build, I learned how DC current clamp meters work and ended up with a surprisingly functional device.

Wireless Accelerometer

Curiosity as to the identity of a mystery accelerometer taught me about logic analyzers, the ATtiny817, and low level communication with the nRF24l01+.

Arc Lighter v2

Turned a leftover arc lighter kit into an even smaller version of my first one.

Arc Lighter v1

What better way to light things on fire than with electricity?

PCB Laminator

After trying basically every other method in the book, I finally made a tool that allowed me to make PCBs at home easily, reliably, and precisely.

Pi Zero W USB Dongle

All the power, convenience, and GPIO of a Raspberry Pi in the compact form factor of a USB stick.

Pi Zero Gameboy

A functional and fun Pi Zero powered Gameboy to relive some nostalgic memories.

STM32 Gaming Keypad

A fun little keypad mostly used to make sure I don’t break my keyboard with how much gaming I do.

Mission Possible 2018

For the SciOly 2018 season, I tackled the numerous challenges involved in making a device for the Mission Possible event and placed 2nd at Nationals.

Hovercraft 2018

For the SciOly 2018 season, the numerous rule changes for the Hovercraft event proved a fun and respectable challenge.

PCB Reflow Oven

Repurposing a toaster oven that’s older than I am to help out with reflow soldering.

Lightsaber v4

With a bit of free time and a bunch of parts I had lying around, I constructed the 4th iteration of my lightsaber.

CNC Router

Seeing how much a 3D printer revolutionized my engineering, I decided to design and build my own CNC router.

Hovercraft 2017

What initially seemed simple turned out to be an incredibly fun and rewarding experience. An interesting challenge with a clever solution to match.

Robot Arm 2017

Tasked with the manipulation of stacks of pennies, I went through 4 revisions of robot arms before I had one good enough for the National competition.

Electric Vehicle 2017

My attempt at an Electric Vehicle for the SciOly 2017 season which, due to a few key mistakes, did fail.

Lightsaber v3

The perfect addition to any Star War fan’s lightsaber collection. Also one of my favorite projects and it has stayed working for far longer than I expected.

Coil Gun v3

With more experience around my belt, I decided to try my hand at making another coil gun, but this time smaller and without the long charge times.

Electric Vehicle 2016

For the SciOly 2016 season, I built an Electric Vehicle and optimized multiple factors to maximize speed while maintaining accuracy.

Robot Arm 2016

During my first year in the Troy SciOly team, I had a really fun experience building and competing with my robot arm. It was the perfect event for me.

Lightsaber v2

Excited with the completion of v1, I challenged myself to build another lightsaber, but this time using the crossguard style. Also, it had to be red.

Lightsaber v1.5

Just for fun, I built another lightsaber as a test platform for different hilt designs and blade mounting ideas.

Lightsaber v1

With a reignited love of Star Wars, I got to work building my very own lightsaber in true Jedi fashion.

PVC Compound Bow

Something fun I put together after I built a regular PVC bow.

PVC Bow

During the Hunger Games craze back in the day, I decided to take a look at archery. I ended up with something I want to do for a lifetime.

Mobile RC Robot Arm

During the summer before high school, I decided to try my hand at making my very own robot. It was the perfect opportunity to try a bunch of new things.

Lego Crossbow

I’ve been playing with Lego for as long as I can remember. This was one of my favorite builds and surprisingly still intact today.

Coil Gun v2

After finishing v1, I decided to crank things up and make a six-stage one. It was big, bulky, and barely functional, but a lot of fun to operate.

Coil Gun v1

One of my earliest projects. It bridged my love of Lego guns with my newfound passion of electrical engineering.

Gaming Computer

For my birthday, I asked my dad if I could build my very own gaming computer. He said yes.

Back to Top ↑

school

Cheatsheets

A compiled list of the cheatsheets I made while at Berkeley.

2022 Courses

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

MMv3

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

2021 Courses

Another year, another bunch of courses.

2020 Courses

It’s a bit much to make a post for every single class I take, so here’s all the major courses I took during Spring 2020 and Fall 2020.

UR@B Battery Pack

For a first try, not a terrible attempt at designing my own battery pack for UR@B. It did save quite a bit of money.

MMv2

The logical next step to Concept Micromouse v1. I still haven’t gotten to full maze solving, but it’s a step forward.

Concept Micromouse v1

With a week of winter break left, I tried my hand at designing a concept Micromouse to inspire our next generation of Micromouses for the DeCal.

MMSim

Just for fun, I wrote a simulator for the flood fill algorithm for the Micromouse DeCal I helped teach this semester.

CS170 Final Project

The thrilling final project for CS170 tasked us with finding the best algorithm for approximating the optimal solution for an NP-hard problem.

CS61C - Computer Architecture

A course with a bit of an information overload about the big ideas of computer architecture that ended up being one of my favorite courses.

DIY DC Current Clamp

In a relatively straightforward build, I learned how DC current clamp meters work and ended up with a surprisingly functional device.

EE16B

A brief overview of the voice controlled robot that took up most of the semester’s lab time.

Micromouse DeCal

A class on the Micromouse competition. Map out a maze, solve it, then speed through it.

HOPE PCB Decal

An excellent crash course on the circuit board design process. It’s also the perfect intro to my favorite EDA software KiCad.

Mission Possible 2018

For the SciOly 2018 season, I tackled the numerous challenges involved in making a device for the Mission Possible event and placed 2nd at Nationals.

Hovercraft 2018

For the SciOly 2018 season, the numerous rule changes for the Hovercraft event proved a fun and respectable challenge.

Cardboard Chair

Ergonomic, economical, and manufacturable - these were the design goals of the cardboard chair for our final project in IB Design Tech.

Salad Tongs

Star Wars themed salad tongs I made during IB Design Tech.

Mousetrap Vehicle

For a Physics C project, we built a mousetrap vehicle according to the SciOly rules for that year.

CalState LA Internship

For my summer internship during junior year of high school, I worked at CalState LA designing a low-cost, lightweight robot arm for a teleoperation robot.

Hovercraft 2017

What initially seemed simple turned out to be an incredibly fun and rewarding experience. An interesting challenge with a clever solution to match.

Robot Arm 2017

Tasked with the manipulation of stacks of pennies, I went through 4 revisions of robot arms before I had one good enough for the National competition.

Electric Vehicle 2017

My attempt at an Electric Vehicle for the SciOly 2017 season which, due to a few key mistakes, did fail.

Tower

For our Physics 2 project, we had to build a wooden tower based off the year’s SciOly rules. For a first try, I didn’t do too bad.

Electric Vehicle 2016

For the SciOly 2016 season, I built an Electric Vehicle and optimized multiple factors to maximize speed while maintaining accuracy.

Robot Arm 2016

During my first year in the Troy SciOly team, I had a really fun experience building and competing with my robot arm. It was the perfect event for me.

Robo-Cross 2015

Just a brief overview of what Muscatel did for Robo-Cross in 2015. With the time that I had, I helped somewhat.

Robo-Cross 2014

An exciting event that came in from rotation that marked the start of my tinkering with robotics.

Back to Top ↑

scioly

Mission Possible 2018

For the SciOly 2018 season, I tackled the numerous challenges involved in making a device for the Mission Possible event and placed 2nd at Nationals.

Hovercraft 2018

For the SciOly 2018 season, the numerous rule changes for the Hovercraft event proved a fun and respectable challenge.

Hovercraft 2017

What initially seemed simple turned out to be an incredibly fun and rewarding experience. An interesting challenge with a clever solution to match.

Robot Arm 2017

Tasked with the manipulation of stacks of pennies, I went through 4 revisions of robot arms before I had one good enough for the National competition.

Electric Vehicle 2017

My attempt at an Electric Vehicle for the SciOly 2017 season which, due to a few key mistakes, did fail.

Electric Vehicle 2016

For the SciOly 2016 season, I built an Electric Vehicle and optimized multiple factors to maximize speed while maintaining accuracy.

Robot Arm 2016

During my first year in the Troy SciOly team, I had a really fun experience building and competing with my robot arm. It was the perfect event for me.

Robo-Cross 2015

Just a brief overview of what Muscatel did for Robo-Cross in 2015. With the time that I had, I helped somewhat.

Robo-Cross 2014

An exciting event that came in from rotation that marked the start of my tinkering with robotics.

Back to Top ↑

other

Moving to Jekyll

After several years on WordPress, I realized my use case would be better suited for a static generator like Jekyll. To better maintainability and security!

Adventures in Lock Picking

A retelling of my adventures in lock picking during the school year. Of course, I made sure I didn’t do anything illegal.

Back to Top ↑

how-to

Getting Started With PetaLinux

A rough guide to getting Linux booted on Zynq using Vivado and PetaLinux written by someone taking their first steps into that wonderful world.

Simple EEPROM Wear Leveling

A one bit overhead wear leveling algorithm for storing fixed size data in EEPROM. Based on Danny Chouinard’s work.

Tinkering With QTouch

Just a short little tutorial about getting a basic QTouch example up and running.

Setting Up the CAN Bus on STM32

A little how-to on the basics of getting the CAN bus up and running on an STM32 microcontroller using Mbed or STM32CubeIDE.

Back to Top ↑

cool-chips

ATtiny10 - Tiny, Low-Cost MCU

Curiosity about the cheapest Atmel MCU led to the ATtiny10. Despite what at first may seem like severe limitations, it’s pretty capable.

TPS61201 - 3.3v Booster

A nifty little chip whose versatile features gave it a very warm welcome into my parts bin.

Back to Top ↑