Engineering & Robotics

2025 · in progress

STM32 Odometry Computer

An embedded robotics board concept for improving FTC field position estimation with better heading data and faster odometry updates.

  • Embedded Systems
  • Electronics
  • Robotics
  • Odometry
STM32 Odometry Computer Rev 1 board

Overview

In FIRST Tech Challenge, accurate field position data is central to high-performance autonomous driving, and tracking wheel integration is one of the most common ways teams estimate robot motion. If mechanical slip is held equal, the two largest factors are heading drift/error and integration update rate. I set out to create an STM32-based odometry computer that could improve both.

Goals

  • Provide higher quality heading data using a modern IMU, rather than the outdated IMU in the FTC control system
  • Pre-integrate encoder inputs at a high frequency, decoupled from the main robot code loop rate

What it involved

  • Learning STM32 hardware board design
  • Writing STM32 HAL C code
  • Setting up the STM32 project and firmware workflow

Breadboard prototype

Before committing the design to a custom PCB, I built and tested the core sensing and integration idea with a Nucleo and breadboard.

  • Brought up the IMU, and encoder input path on a breadboard
  • Used the prototype to validate the firmware approach before board design
  • Moved from breadboard testing into a Rev 1 PCB

Rev 1 Board

The Rev 1 board turned the breadboard prototype into a compact STM32-based hardware platform for odometry and sensor integration.

  • STM32F4 microcontroller with USB
  • ISM330 IMU for modern heading data
  • Bidirectional ESD protection on all IO
  • Input power mux to prevent USB backfeed

Rev 2 Board

Rev 2 was a full re-layout focused on making the odometry computer smaller and denser.

  • Full PCB re-layout
  • Smaller board outline
  • Denser component placement and routing

Software

The software work focused on turning the board into a usable odometry computer rather than just a sensor breakout.

  • Built STM32 HAL firmware for sensor bring-up and encoder processing
  • Implemented offset calibration support for practical robot setup