ARC4 Stream Cipher Cracker
I designed and implemented, in SystemVerilog, a parallel brute-force key-cracking engine using two simultaneous decryption cores, each searching a disjoint half of the 24-bit key space, achieving roughly 2x speedup over a single core-implementation.
The project involved building the complete ARC4 algorithm from scratch, including state initialization, key-scheduling and pseudo-random byte generation across modular hardware components communicating via a ready/enable handshake protocol.
The on-chip M10K SRAM blocks were used extensively for cipher state and message storage, and correctness was verified through RTL and post-synthesis simulation testbenches. The design was also deployed on a physical DE1-SoC FPGA board, where correct decryption was verified by inspecting live memory contents and decoded key values on the seven-segment displays.
High-Density H743 Flight Controller PCB Design
I designed this 4-layer PCB flight controller using STM32H743 to support a 13-servo payload with a custom power architecture using four independent buck convertors for redundancy and to isolate noise.
This board features built in IMU, barometer, analog OSD video chip, CAN tranceiver, SPI flash memory and multiple connectors/headerpins for external SPI, UART and CAN sensors. I have also included a built in option to enable a 120 ohm terminator resistor for the CAN bus. To ensure reliability,
I added in ESD protection on both the USB and CAN connectors as well as overvoltage and reverse polarity protection on the power pads. As a way to future proof the design for my needs, I added both analog and digital video OSD.
High-speed traces were routed as short as physically possible and are surrounded by a ground plane to protect against noise.
This project demonstrates my ability to bridge the gap between custom PCB layout and low-level firmware integration.
Self-Balancing Robot
I created this self-balancing robot along with two other members in my group. The base requirements were to have a robot balance by itself on 2 wheels and the ability to control it wirelessly using an Arduino Nano BLE.
By implementing and tuning a PID controller in C++ and programming a remote control system in Python communicating via Bluetooth, this requirement was met. I also trained an object detection ML model uploaded to an ESP32 WROVER to detect objects.
Extra features: Matrix LEDs via ATMega328p over I²C · UDP packets from Ableton to make the robot dance to music · Ears that move toward detected signs.
Wireless Remote
I designed this remote to control a Python program I made, as well as output PWM on the receiver. Both the receiver and remote are powered through USB-C.
Wireless communication is done through an NRF24L01 module, programmed using STM32 Blue Pill. The remote collects analog voltage inputs from joysticks and sends RF signals to the receiver, which interprets them and outputs 3 PWM pins.
Metal Detecting RC Robot
In a group of 6, we designed and built a metal detecting remote controlled robot. The robot could be controlled from the remote, detect metal, send metal strength back to the remote and pick up metal with an electromagnet.
I focused on assembling the robot, making the circuits and programming the communication between the robot and remote using JDY-40 radio transceivers. The remote used ATMega 328p and the robot used EFM8, both programmed in C.
Reflow Oven Controller
In a group of 6, we designed and built a reflow oven controller used to solder surface mount components. A K-type thermocouple detected temperature and sent values to an N76E003 microcontroller programmed in assembly, which output PWM to control the oven.
I focused on designing and building the circuit and programming the finite state machine. Key features included temperature reading from 25°C–240°C, PWM power control, button input for state changes, and a Python-based temperature strip chart.
Line Following Robot
In a group of 3, we programmed a line following robot using a PIC18F46K42 microcontroller. We implemented functions to handle distractions, sharp turns, end-of-track recovery and landing pad stops — all in C.
The robot used infrared sensors to detect the track. Extensive testing was required to find correct threshold values for smooth operation.
RC Plane
I built a remote controlled plane twice — first alone, then in a group of 4. The second time I taught my group members how the plane worked and how to build it, from electrical hardware to the body.
Built from foam board, wood, and fiberglass. Features a brushless motor with 1kg max thrust, servos on control surfaces, and a 2.4GHz receiver. Weighed 450g with an estimated 45-minute flight time.