Available for Summer 2026 Co-op

Nirmal
Arunkumar

>

Building at the intersection of hardware, firmware, and intelligence. Third-year ECE at the University of Toronto, shipping things that spin, sense, and think.

SCROLL
01 / About

Engineer, tinkerer, team lead.

Nirmal Arunkumar

I'm a third-year Electrical & Computer Engineering student at the University of Toronto with a minor in Robotics & Mechatronics, focused on embedded firmware, real-time DSP, robotics, and neurotech.

I co-lead UofT's Combat Robotics Association's Meltybrain subteam — an 8-person team that places top 5 in Canada. I was also part of the team that took home Rookie of the Year at the World Robot League championship. I've also co-founded two startups through UofT's Hatchery incubator: Carbon Array (satellite + ML for agricultural carbon credits) and Align (mental health tech through physical biomarkers).

I like problems that sit between domains — where the bit you care about isn't the algorithm or the circuit, but the place they meet. This is the place where things come to life, where the software isn't just code and the hardware isn't just wires, but something that can sense, act, and think in the physical world. Recently that's meant building a robotic arm and its algorithms at 3 am in the morning.

8
Team Size Led
2
Startups Co-founded
Top 5
National Ranking
02 / Selected Work

Projects

A mix of combat-grade firmware, brain signals, six-axis kinematics, and climate tech — click any card to open the technical deep dive.

PROJECT / 01

Meltybrain Full-Body Spinner — Combat Robotics

Embedded C Communication protocols PID Control PCB Design KiCAD Real-Time Firmware

Built a meltybrain combat robot targeting 3000+ RPM. Top-5 national ranking and one of the teams representing Canada at the NHRL World Robot Championship as lead of an 8-member team.

  • Translational drift on ATmega32U4 using an H3LIS331DL ±400G accelerometer over I2C.
  • RPM estimation via centripetal formula with 2-point zero-G calibration and an EEPROM-persisted correction table with linear interpolation.
  • 50 Hz PID throttle loop (Kp=0.3, Ki=0.2, Kd=0.1) chasing target RPM from the transmitter.
  • Dual-timer interrupt architecture: Timer3 hot loop @ 2000 Hz + Timer1 DShot @ 500 Hz.
  • Implemented D-Shot communicationfor faster communication than PWM by taking advantage of digital duty cycle
  • Safety: RC failsafe with 3 s stale-checksum timeout, hardware watchdog, 2-tier battery monitor.
  • Hardware: Designed 4-layer 2 oz copper PCB, 20 A continuous, thermal vias, 4S LiPo telemetry. Custom 3D-printed chassis.
PROJECT / 02

6-DOF Robotic Arm — Kinematics, Closed-Loop Control & Vision-Guided Pick-and-Place

Embedded C++ IK / FK YOLOv8 STM32 PCA9685 Computer Vision

Full-stack 6-DOF arm from scratch — DH parameter derivation, a geometric inverse kinematics solver, closed-loop potentiometer feedback, and a YOLOv8 vision pipeline that lets the arm pick up cubes and drop them into a bowl autonomously.

  • Geometric IK solver with ZYZ-Euler wrist decomposition, explicit singularity handling, and FK/IK dry-run verification.
  • 4-joint potentiometer encoder feedback with a 2-phase closed-loop driver: open-loop ramp followed by encoder-nudge trim to a 2.5° tolerance.
  • Collision-avoidance retract → rotate → extend motion planner for large base moves.
  • YOLOv8n trained on a custom cube/bowl dataset; affine homography camera calibration maps pixels to workspace coordinates.
  • 10-step pick-and-place orchestrator tying vision → IK → servo commands.
  • Parallel STM32 UART path @ 115200 baud for future migration off the PCA9685.
PROJECT / 03

SSVEP Brain-Computer Interface — Neural Control of a Bionic Arm

Python DSP OpenBCI CCA MATLAB Arduino Biomedical

End-to-end BCI system that reads steady-state visually-evoked potentials from my occipital cortex and uses them to drive individual fingers on a 5-servo bionic arm in real time.

  • SSVEP stimulus rendered in the browser at 7–15 Hz using requestAnimationFrame.
  • Signal pipeline: OpenBCI Cyton → BrainFlow → Python → MATLAB → Arduino Uno.
  • Classification: bandpass filtering → FFT → Canonical Correlation Analysis against reference sinusoids.
  • Spatial averaging across occipital electrodes to boost SNR against background EEG.
  • Actuation: Arduino Uno drives 5 independent servos, mapping classified frequencies to individual fingers.
  • Built around a custom Ultracortex electrode placement for the occipital montage.
TI C6000 DSP lab setup
PROJECT / 04

DSP Lab Internship — Real-Time Embedded Systems

MATLAB / Simulink TI C6000 DSP Embedded Coder

DSP Lab Intern at UofT ECE (May–Aug 2025). Built a MATLAB Simulink → Code Composer Studio workflow for TI C6000 boards and developed new lab modules on quantization and multi-rate DSP — cutting student lab implementation time by roughly 50%.

  • Authored Simulink models that auto-generate optimized C for the TI C6000 through Embedded Coder.
  • Designed new lab modules covering quantization effects, multi-rate systems, and spectrum analysis.
  • Wrote student-facing documentation and validated the full toolchain against reference DSP outputs on a Tektronix scope.
PROJECT / 05

FPGA Face Detection — Real-Time Template Matching on DE1-SoC

C Verilog DE1-SoC Computer Vision Memory-Mapped I/O VGA

Real-time face detection on a DE1-SoC FPGA running bare-metal C — multi-scale template matching on binarized frames with VGA output and live error percentage on the HEX displays. ~70% accuracy.

  • Image binarization: RGB565 frames converted to 1-bit-per-pixel using the NTSC grayscale formula (0.299R + 0.587G + 0.114B), threshold at 25, packed into 32-bit words for efficient bitwise comparison.
  • Multi-scale template matching across 7 scales; a sliding window (50 px step) compares each region against a scaled reference bitmap — error % = mismatched pixels ÷ total pixels × 100.
  • Hardware I/O: framebuffer memory-mapped at 0x8000000 (320×240 RGB565), hardware timer at 0xFF202000 for precise scan timing, HEX display at 0xFF200020 showing live error percentage as the scan runs.
  • Bounding box rendering drawn directly into the framebuffer pixels on match (error < 50%), bypassing any OS or GPU.
  • All code runs bare-metal on the ARM HPS side of the DE1-SoC with no OS or libraries beyond the standard C runtime.
Tree species detection from aerial imagery
PROJECT / 06

Carbon Array — Satellite ML for Agricultural Carbon Credits

Machine Learning Satellite Imagery Python Climate Tech Startup

Co-founded Carbon Array through UofT's Hatchery incubator. We use satellite imagery and ML to quantify carbon sequestration for smallholder farmers in developing countries, generating verifiable agricultural carbon credits.

  • Trained object-detection models on aerial imagery for per-species tree identification (spruce / pine / birch / aspen) to feed biomass estimation.
  • 2000+ validation responses and 50+ farmer interviews across target markets during the Hatchery program.
  • End-to-end vertical: imagery ingest → species detection → biomass model → credit issuance pipeline.

Simple CPU Design

Designed a small processor from scratch in Verilog: custom ISA, ALU, FSM control unit, and VGA-driven debug display.

Verilog Computer Arch FPGA

Safety-Focused GIS

C++ routing application optimizing paths by crime and safety data. Placed top-10 / top-50 at the UofT GIS competition.

C++ Graph Algorithms GIS
03 / Toolkit

Skills & Stack

The languages, hardware, and tools I reach for when building from silicon up to application layer.

< / > Languages

Python C / C++ Embedded C MATLAB Verilog Assembly

◎ Hardware

STM32 ATmega32U4 TI C6000 Arduino PCA9685 OpenBCI FPGA (DE1-SoC)

⚙ Tools

KiCAD SolidWorks MATLAB Simulink PlatformIO Code Composer Studio

◈ Domains

Embedded Firmware Real-Time DSP Robotics & Kinematics BCI / Neurotech Computer Vision PCB Design Control Systems
04 / Leadership

Building Teams & Companies

Leading engineering teams and co-founding startups — technical responsibility beyond individual projects.

Sept 2023 — Present

UofT Combat Robotics Association (UTRA)

Team Lead

Lead an 8-member engineering team across firmware, PCB design, mechanical, and driver roles. Took the team from unranked to a top-5 national placement and Rookie of the Year at the NHRL World Robot Championship.

2025

Align

Co-founder — UofT Hatchery

Mental health tech platform built through UofT's Hatchery incubator, focused on accessible support for post-secondary students.

2024

Carbon Array

Co-founder — UofT Hatchery

Climate tech startup using satellite imagery and ML to issue agricultural carbon credits for smallholder farmers. 2000+ validation responses and 50+ farmer interviews during the Hatchery program.

05 / Contact

Let's build something.

Open to co-op, research, and collaboration opportunities in embedded systems, robotics, neurotech, and hardware.