STM32 Sensor Interface (GPS & IMU)
Published:
Overview
As part of the Embedded Systems module at HTWG Konstanz, I contributed to a team project in cooperation with Baumer Group.
My task was to develop firmware for sensor integration and data collection using the STM32 NUCLEO-H7A3ZI-Q.
→ GPS Code Repository
→ IMU Code Repository
→ KiCad Schematic (.kicad_sch)
The focus was on integrating a GPS module (Adafruit Ultimate GPS HAT) and an IMU sensor (Adafruit BNO055), enabling real-time data processing and transmission for downstream visualization and evaluation.
BNO055 to STM32 Pin Mapping:
BNO055 Pin | STM32 H7A3 Pin |
---|---|
Vin | 5V |
GND | GND |
SDA | PB9 |
SCL | PB8 |
GPS Module to STM32 Pin Mapping:
GPS Module Pin | STM32 H7A3 Pin |
---|---|
Vin | 3V3 |
GND | GND |
RX | TX (PB6) |
TX | RX (PB15) |
UART Configuration for GPS Module:
Parameter | Value |
---|---|
Baud Rate | 9600 Bits/s |
Word Length | 8 Bits (including Parity) |
Parity | None |
Stop Bits | 1 |
My Contribution
- Implementation of UART-based communication with Adafruit Ultimate GPS HAT
- I²C-based driver development for Adafruit BNO055 IMU
- GPS message validation (NMEA checks, fix state verification)
- Real-time data processing using FreeRTOS tasks and queues
- Formatting and transmission of combined sensor data to a host PC
Tools & Platform
- Microcontroller: STM32 NUCLEO-H7A3ZI-Q
- IDE: STM32CubeIDE
- RTOS: FreeRTOS
- Protocols: UART, I²C, NMEA
- Languages: C