Skip to content

Latest commit

 

History

History
91 lines (64 loc) · 4.12 KB

README.md

File metadata and controls

91 lines (64 loc) · 4.12 KB

HYDRA   Build Status docs-badge

HYper Dynamic Rocketry Avionics

uORocketry's next-generation avionics system


Getting Started

If you are in a DevContainer skip to step 5.

  • Install Rust: https://www.rust-lang.org/tools/install
  • Install necessary build tools:
    • cargo-make: cargo install cargo-make
    • probe-rs: cargo install probe-rs --features cli
  • Install the ARM GNU Toolchain (last tested with 13.2) and have it available in your PATH
  • Build: cargo build
    • In case it fails, try cargo build --release
  • Run tests:
    • In the host machine: cargo make test-host
    • In the device: cargo make test-device
  • Flash on hardware: cargo run --bin main

For more detailed instructions on flashing, debugging, and more, please see the wiki.

Windows Users

Setting up with Docker

  • Install Docker
  • Install VS Code
  • From VS Code, install the "Dev Containers" extension
  • press ctrl + shift + p, and search for Dev Containers: Open Folder in Container

Setting up with WSL

Flashing

After plugging in J-Link, it will likely show up as unknown.

  1. Install Zadig: https://zadig.akeo.ie/
  2. From Zadig, select J-Link as the device and WinUSB as the driver
  3. click Install Driver

If using WSL or Docker with a WSL backend (you probably are), you need to tell Windows to share J-Link with WSL.

  • From WSL, install linux-tools-generic
    • on Ubuntu: sudo apt install linux-tools-generic
  • Install usbipd-win: https://github.com/dorssel/usbipd-win/releases
  • Open command prompt/powershell with admin privileges and run usbipd list
  • Make note of the entry called J-Link and run usbipd bind --busid <busid>
  • Next, run usbipd attach --wsl --busid <busid>
  • You can now follow the flashing instructions in Getting Started

Documentation

Run cargo doc --open to build and open the documentation. Most documentation for this repo is contained in the common-arm crate.

Documentation is also automatically built and deployed to https://hydra-docs.uorocketry.ca/common_arm

Project Structure

The project is structured in a way to allow reuse of the code across various boards and other projects.

  • boards: Folder containing each individual board's binary crates. Any code in those crates should only contain logic specific to the board.
  • debug: Useful files for debugging, such as GDB and OpenOCD configuration.
  • examples: Example projects that can be used to quickly start a new board. Simply copy and paste one of those creates to the boards folder, and rename as needed.
  • libraries:
    • common-arm: Common code that depends on embedded-specific logic or crates.

License

This project is licensed under GPLv3-only.

We please ask for any derivatives of this work to be kept open-source, even if such derivative is only for internal use.