Embedded firmware for the McMaster Exoskeleton project. This repository contains hardware APIs and test projects for the sensors and motors used in the exoskeleton system, targeting STM32 Nucleo-F446RE development boards.
All active test projects live under the stm32-tests/ folder. Each project is a standalone STM32CubeIDE project that can be opened, built, and flashed independently. Every project includes:
- A
docs/folder with API reference and testing instructions - A
scripts/folder with Python scripts for UART-based testing from your computer
Pick the project you need below and follow its testing instructions to get up and running.
exoskeleton-embedded/
├── stm32-tests/
│ ├── sensor-testing/ <-- IMU (LSM6DS3TR-C) test project
│ │ ├── docs/
│ │ │ ├── lsm6ds3tr-api.md # IMU driver API reference
│ │ │ └── testing-instructions.md # How to set up and test the IMU
│ │ ├── scripts/
│ │ │ └── imu_uart_test.py # Python script for IMU testing over UART
│ │ └── Core/ # STM32CubeIDE source (firmware)
│ │
│ └── motor-api-tests/ <-- Motor (AK70-9) test project
│ ├── docs/
│ │ ├── ak70-9-api.md # Motor CAN API reference
│ │ └── testing-instructions.md # How to set up and test the motor
│ ├── scripts/
│ │ └── motor_test.py # Python script for motor testing over UART
│ └── Core/ # STM32CubeIDE source (firmware)
│
├── CONTRIBUTING.md # Contribution guidelines and coding standards
└── README.md # This file
Tests the LSM6DS3TR-C 6-axis IMU (accelerometer + gyroscope) over I2C. The Nucleo board reads sensor data continuously and exposes it over UART so you can query values from your computer using the Python script.
Quick start:
- Open
stm32-tests/sensor-testingin STM32CubeIDE and flash the firmware. - Run
python scripts/imu_uart_test.pyto send commands and read sensor data. - See
docs/testing-instructions.mdfor full setup and wiring details. - See
docs/lsm6ds3tr-api.mdfor the driver API reference.
Tests the CubeMars AK70-9 brushless motor over CAN bus. The Nucleo board sends motor commands and receives motor feedback, with a UART telemetry interface for monitoring from your computer using the Python script.
Quick start:
- Open
stm32-tests/motor-api-testsin STM32CubeIDE and flash the firmware. - Run
python scripts/motor_test.pyto send commands and read motor telemetry. - See
docs/testing-instructions.mdfor full setup, wiring, and CAN transceiver details. - See
docs/ak70-9-api.mdfor the motor CAN API reference.
- STM32CubeIDE -- for building and flashing firmware
- Python 3.6+ with
pyserial(pip install pyserial) -- for running test scripts - Nucleo-F446RE board connected via USB
Please see CONTRIBUTING.md for guidelines on how to contribute to this project.