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.