This repository contains the software side of the CSULB-EATS Micromouse project.
It includes firmware, examples, and implementation guides for building and testing a HAL-based embedded control system using the NUCLEO-TOF400 (or similar STM32 board).
The project is written in C/C++ using the STM32 HAL library, structured for modularity and ease of testing.
Micromouse-Firmware/
β
βββ /Core/ # STM32 HAL core files (system init, startup) This should be within the STM32CubeMX/IDE built-in
βββ /Drivers/ # STM32 HAL drivers (GPIO, TIM, ADC, UART, etc.) This one as well *
|
βββ /Examples/ # Example projects for hardware testing
β βββ IR_Test/
β βββ Motor_Test/
β βββ Encoder_Test/
β βββ IMU_Test/
β βββ UART_Debug/
β
βββ README.md
- Board: STM32 Board Specific
- IDE: STM32CubeIDE (or VS Code)
- Libraries: STM32 HAL, CMSIS
- Debugging Tools: ST-Link V2, logic analyzer (optional)
- Version Control: Git / GitHub
File β Import β Existing Projects into Workspace
Connect your board via USB and click Run β Debug.
Verify your ST-Link configuration matches the NUCLEO-TOF400 target.
- Modular HAL Design: Each subsystem (motors, sensors, encoders) isolated in its own BSP layer
- PID Control: Tunable motor control with adjustable gain parameters
- Sensor Fusion: Combines IMU and encoder data for precise movement
- Serial Debug: UART logging for live telemetry and diagnostics
- Examples Provided: Quick validation for hardware bring-up and driver testing
All modules follow the HAL-based modular architecture and should include:
- Header (
.h) and source (.c) files - Initialization, configuration, and runtime functions
- Clear documentation in
/Docsfor setup and testing
Please follow existing naming conventions and formatting.
This project is open-source for educational and research purposes.
Β© 2025 CSULB Embedded Application Technology Society (EATS)