Cheran
Thangamuthu

Embedded firmware for STM32. Final-year EEE at SASTRA, Thanjavur.

I build stuff. Sometimes it . Sometimes it . Either way, I . Tap a word and watch the scope.

CH1 1.00 V/div5.00 V

Who am I?

Pick a question. Short answers, no filler.

Things I built

Each project has something you can poke. The behaviour is taken from my own measurements and code.

A small car with a real car's wiring

A Raspberry Pi sees the lane, traffic lights and stop signs. It never touches a motor. Three STM32 ECUs do the sensing, driving and display, and they all talk over one CAN bus, the way a real vehicle splits its electronics.

  • 4 nodes on one bus
  • 500 kbps CAN, 11-bit IDs
  • 500 ms safety watchdog
  • 0.36 ms mean command/feedback round trip over 100 tests
  • STM32F103, Raspberry Pi, SocketCAN, OpenCV, Embedded C, Python

Drive the robot

Real screenshots from the robot's perception window. Pick what's in front of the camera.

ADAS perception window
DRIVING

Try to break the CAN bus

A live model of my four-node network, slowed down 4× so you can see the frames. The log uses the same IDs and byte layout as my firmware.

HL
Motor: RUNNING Left 198 rpm Right 196 rpm
Time since last safety frame (0x100), limit 500 ms

[FSM] DRIVING

Rules the Motor ECU follows: an unsafe 0x100 stops the motors at once. No 0x100 for 500 ms also stops them. After recovery it waits for a fresh 0x200 command, so an old command is never replayed.

Encoder feedback is used for RPM monitoring and fault checks. A closed-loop speed controller is the next step.

How this network was specified and tested before and after the boards were wired: HIL with CANoe.

My pinout

Every pin is a peripheral I've actually used. Hover or tap one to see where.

Languages: Embedded C, C++, Python, MATLAB

Boards: STM32F1 (Cortex-M3), Arduino Uno (ATmega328P), ESP32, Raspberry Pi

Tools: STM32CubeIDE and CubeMX, Vector CANoe (CAPL, CANdb++, Panel Designer, test modules), VN5620A, MATLAB/Simulink, Stateflow, Simscape, Simulink Coder, KiCad, Altium Designer, oscilloscope

Getting into: TI C2000, AUTOSAR, ROS2

How I got here

  1. Aug 2023

    B.Tech, Electrical and Electronics Engineering

    SASTRA Deemed University, Thanjavur. CGPA 7.99 / 10.

  2. Jun to Jul 2025

    Embedded and Robotics Intern, Crobot Technologies

    STM32 firmware and sensor interfaces for a vision-guided robot, working alongside a Raspberry Pi running OpenCV. First look at ROS2.

  3. Final year

    Buck converter, CAN robot, model-based safety

    The three projects above, plus a conference paper on the CAN architecture in preparation.

  4. Oct 2026

    In-Vehicle Networking capstone

    The robot's CAN network built and tested in Vector CANoe, then rerun on a hardware-in-the-loop bench with real STM32 ECUs. 19 / 19 tests pass on both.

  5. Now

    Looking for embedded firmware roles

    Automotive, power electronics or robotics. I want to work where the code has to meet a real board.

Have a board that needs firmware?
Let's talk.

Email me Download resume

cheran10cn@gmail.com, Tiruppur, Tamil Nadu

Email address copied