Solving problems I created solving other problems.
stuff
Chipmonk Hardware Hackathon 2026 · Mumbai
2x2 mesh NoC in SystemVerilog on an Artix-7 100T (Nexys A7). Each router has 5 ports with XY dimension-order routing (no deadlocks), a 5x5 round-robin switch allocator with packet-locking, and an AND-OR crossbar. Hits 3.4 Gbps per port at 100 MHz, so 40.8 Gbps total fabric bandwidth. Built a UART bridge for testing directly from a PC. Fits in 2,063 LUTs and 4,316 FFs (under 4% of the chip) at 0.133 W. 3rd Runner-up out of 82 teams across India at a hardware hackathon.
ISRO RESPOND BASKET 2024 (RES-SAC-2024-005) · SAC Ahmedabad
Flight avionics for an autonomous ornithopter under ISRO's RESPOND grant. Working on NAVIC-based positioning, a live video payload, and IP65 compliance. The tricky part is closed-loop PID stabilization across 6-DOF with IMU sensor fusion (accelerometers, gyros, inclinometers) since flapping wings vibrate a lot and drift characterization matters more than on a fixed-wing. Telemetry, fail-safe firmware, and autonomous navigation are all being worked out in ROS2 with HIL simulation before we touch the actual bird.
PDEU · Gandhinagar
VGA 640x480 @ 60 Hz Space Invaders in Verilog with an AXI-Stream graphics pipeline on Nexys A7. Got a PS5 DualSense working as the controller over BLE via an ESP32 bridge into a UART receiver (115200 baud, 16x oversampling), which feeds 8-byte packets into the game logic. Has the usual stuff: player ship, bullets, a 3x8 enemy grid with AABB collision, and a state machine handling menu/playing/game-over.
Robotics Lab · IIT Gandhinagar
18-DOF half-humanoid with dual 8-DOF arms and a 2-DOF head. Wrote the MoveIt2 config and URDF from scratch, then built Dynamixel drivers for extended position control, obstacle avoidance, and gesture recognition. Replaced the default KDL IK solver with a Newton-Raphson implementation in Pinocchio as a custom MoveIt2 plugin and got roughly 2x faster convergence. Pick-and-place works with pre-grasp/pre-place waypoints and ROS2 actions handling motion coordination.
Built and flashed PixelExperience for spes after unlocking the bootloader. Touched device trees, BoardConfig.mk, kernel sources, and vendor blobs to get it booting. Set up ccache and build scripts to make compilation less painful. Spent a lot of time on HAL mismatches since vendor modules don't always play nice with a custom base.