Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
37 changes: 28 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,33 @@
# exoskeleton-power
Repository containing code for the power subteam for McMaster Exoskeleton

The Power Architecture team is running an STM32 MCU on the Low Voltage (LV) PCB for the 2025-2026 year. It is being used to monitor voltage and current throughout the power system, as well as controlling a pre-charge circuit. The MCU will communicate with the Dashboard via CAN protocol.
Code for the Power subteam of the McMaster Exoskeleton team.

When working on code:
- Code gets pushed to main in a new folder once it has been tested.
- New programs should incorporate as much of the previously tested code as practical, to reduce testing complexity.
- Leave clear instructions in a README file or commented at the top of the code on how to implement the code.
For the 2025–2026 year, the Power Architecture team runs an STM32 MCU on the Low Voltage (LV) PCB. It monitors voltage and current across the power system using INA228 sensors, controls a precharge circuit (main contactor and motor relays), and reports telemetry to the Dashboard over the CAN bus.

Refer to the Embedded Repository's README for coding standards, APIs, CAN communication, etc...
## Repository Layout

We use the STM32CubeIDE Version 1.19 for all testing with the NUCLEO-F446RE development board.
Pyserial library is used for UART communication for testing purposes.
Each STM32CubeIDE project represents a tested milestone. New projects build on previously tested code to keep testing complexity down. The current integrated system lives at the top level; earlier milestones are kept under `tests/stm32/`.

| Folder | Description |
| --- | --- |
| [`power_system/`](./power_system) | Current integrated system: precharge FSM, five-sensor monitoring, CAN telemetry, and UART data logger. Start here. |
| [`tests/stm32/precharge_system/`](./tests/stm32/precharge_system) | Precharge state-machine and contactor control development |
| [`tests/stm32/ina228_double_logger/`](./tests/stm32/ina228_double_logger) | Two-sensor INA228 logging |
| [`tests/stm32/ina228_logger/`](./tests/stm32/ina228_logger) | Single-sensor INA228 UART data logger |
| [`tests/stm32/dashboard_integration/`](./tests/stm32/dashboard_integration) | CAN integration with the Dashboard |

See [`power_system/README.md`](./power_system/README.md) for the full firmware and host-tool documentation (CAN frame format, I2C addresses, configuration reference, and Python scripts).

## Toolchain

- **IDE:** STM32CubeIDE 1.19.0
- **Dev board:** NUCLEO-F446RE
- **Host testing:** PySerial for UART communication; `python-can` for CAN

## Working on Code

- Push to `main` in a new folder only once the code has been tested.
- Reuse as much previously tested code as practical to reduce testing complexity.
- Document how to build and run each project in a README or in a comment block at the top of the code.

Refer to the [Embedded Repository's README](https://github.com/McMaster-Exoskeleton/exoskeleton-embedded#readme) for shared coding standards, APIs, and CAN communication conventions.
193 changes: 0 additions & 193 deletions data_logger/INA228 Data Logger.py

This file was deleted.

44 changes: 0 additions & 44 deletions data_logger/README.md

This file was deleted.

Loading