Krishang Talsania

Krishang Talsania

Solving problems I created solving other problems.

stuff

Scalable 4-Core Mesh Network-on-Chip

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.

SystemVerilog Artix-7 Vivado UART Computer Networks
Autonomous Ornithopter (Flapping-Wing UAV)

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.

Embedded C PID IMU Fusion NAVIC ROS2 HIL
Space Invaders on FPGA

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.

Verilog FPGA VGA AXI-Stream ESP32 UART
Half-Humanoid Robot Development

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.

ROS2 MoveIt2 Pinocchio Dynamixel URDF C++
Custom ROM Development

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.

AOSP Bash HAL Kernel