Skip to content
Back to projects
hardware

UART Board

STM32-based UART board multiplexing six peripherals over UART, RS-232, and RS-485 onto a single USB upstream link.

Team
McGill Robotics, Rover Electrical Division
MCU
STM32G474RET6
Channels
4 UARTs, 1 RS-232, 1 RS-485, 1 USB 2.0 FS
GPS
UBX-NAV-PVT with Kalman filter
  • STM32
  • Altium
  • C
  • Python
  • UART
  • GPS

Drag to rotate, scroll to zoom

  • Co-designed the schematics and PCB layout in Altium Designer, multiplexing six peripherals onto a single USB upstream link
  • Bare-metal C capable of running two GPS modules and the pantilt camera board

Custom UART board for McGill Robotics’ Rover Electrical Division. I worked on the schematics, PCB layout, bare-metal C firmware, and a Python API for the Jetson Nano.

The board multiplexes six peripherals over UART, RS-232, and RS-485 onto a single USB upstream link back to the rover’s main computer. It uses COBS to ensure a known format via USB. It uses a hardware watchdog to ensure it does not remain unresponsive in case of a firmware failure.

Three of those channels are currently being used for:

  • UBX-NAV-PVT GPS fixes, run through a Kalman filter on the firmware side to cut noise before the data reaches the rover.
  • pantilt camera control commands and diagnostic data including camera angles.
  • terminal passthrough including receive and transmit.