diff --git a/.github/workflows/sitl-smoke.yml b/.github/workflows/sitl-smoke.yml index 019dcc9..d647f4e 100644 --- a/.github/workflows/sitl-smoke.yml +++ b/.github/workflows/sitl-smoke.yml @@ -18,6 +18,7 @@ jobs: uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - name: Check host-SITL contracts + working-directory: firmware run: | python3 -m unittest tools/sitl/test_kaptan_sim.py python3 tools/sitl/world-structure-test.py @@ -37,4 +38,4 @@ jobs: cargo test --locked -p kaptan-sitl - name: Run Docker closed-loop smoke - run: tools/sitl/e2e-smoke.sh + run: firmware/tools/sitl/e2e-smoke.sh diff --git a/docs/src/boards/geprc-f722-v2.md b/docs/src/boards/geprc-f722-v2.md index 3bcbd51..4206621 100644 --- a/docs/src/boards/geprc-f722-v2.md +++ b/docs/src/boards/geprc-f722-v2.md @@ -9,9 +9,10 @@ schedule, and an `INFO` optional-log threshold. The platform verifies these values against the checked SPI3/USART2 typestate route before it enables peripherals. They are compiled image policy, not ground-station parameters. -Build and package from the workspace root: +Build and package from the firmware workspace: ```sh +cd firmware cargo build --release -p kaptan-geprc-f722-v2 --target thumbv7em-none-eabihf ./scripts/create-dfu-image.sh target/thumbv7em-none-eabihf/release/kaptan-geprc-f722-v2 ``` diff --git a/docs/src/boards/kakute-f7-mini-v3.md b/docs/src/boards/kakute-f7-mini-v3.md index df6a063..d8074e8 100644 --- a/docs/src/boards/kakute-f7-mini-v3.md +++ b/docs/src/boards/kakute-f7-mini-v3.md @@ -3,7 +3,7 @@ The Holybro Kakute F7 Mini V3 board declaration uses the MPU-6000 on SPI1, MAVLink telemetry on USART1, and the MTF01 range/optical-flow route on UART4. The checked-in manufacturer datasheet is -`boards/kakute-f7-mini-v3/datasheet.pdf`. +`firmware/boards/kakute-f7-mini-v3/datasheet.pdf`. Its immutable board policy selects the MPU-6000 body-aligned mount, logical MAVLink `Serial1`, endpoint `1/1`, 115200 baud, the documented telemetry @@ -13,9 +13,10 @@ peripherals. They are compiled image policy, not ground-station parameters. ## Build and package -From the workspace root: +From the firmware workspace: ```sh +cd firmware cargo build --release -p kaptan-kakute-f7-mini-v3 --target thumbv7em-none-eabihf ./scripts/create-dfu-image.sh target/thumbv7em-none-eabihf/release/kaptan-kakute-f7-mini-v3 ``` diff --git a/docs/src/development.md b/docs/src/development.md index ec30d3b..bbfce54 100644 --- a/docs/src/development.md +++ b/docs/src/development.md @@ -3,6 +3,7 @@ ## Fast host checks ```sh +cd firmware cargo test --workspace --offline cargo clippy --workspace --all-targets --offline --exclude kaptan-geprc-f722-v2 --exclude kaptan-kakute-f7-mini-v3 -- -D warnings cargo clippy -p platform-stm32f7 --all-targets --offline -- -D warnings @@ -13,6 +14,7 @@ git diff --check ## Target checks ```sh +cd firmware cargo check -p kaptan-geprc-f722-v2 --release --target thumbv7em-none-eabihf --offline cargo check -p kaptan-kakute-f7-mini-v3 --release --target thumbv7em-none-eabihf --offline ``` @@ -20,6 +22,7 @@ cargo check -p kaptan-kakute-f7-mini-v3 --release --target thumbv7em-none-eabihf ## Strict core coverage ```sh +cd firmware scripts/report-test-coverage.sh ``` @@ -32,6 +35,7 @@ the gate. ## Simulation acceptance ```sh +cd firmware python3 tools/sitl/world-structure-test.py python3 -m unittest tools/sitl/test_kaptan_sim.py tools/sitl/e2e-smoke.sh diff --git a/docs/src/getting-started.md b/docs/src/getting-started.md index f5bfaf7..ddda287 100644 --- a/docs/src/getting-started.md +++ b/docs/src/getting-started.md @@ -2,12 +2,13 @@ ## Prerequisites -Use the repository toolchain, Rust 1.90. The workspace declares the embedded -F7 targets and `llvm-tools-preview` in `rust-toolchain.toml`. +Use the firmware toolchain, Rust 1.90. The firmware workspace declares the +embedded F7 targets and `llvm-tools-preview` in `firmware/rust-toolchain.toml`. For host development, run: ```sh +cd firmware cargo test --workspace --offline cargo clippy --workspace --all-targets --offline --exclude kaptan-geprc-f722-v2 --exclude kaptan-kakute-f7-mini-v3 -- -D warnings ``` @@ -19,10 +20,11 @@ target-specific commands in [Development and verification](development.md). | Path | Responsibility | | --- | --- | -| `boards/` | Immutable board declarations and linker layouts. | -| `platforms/stm32f7/` | Reviewed F722 RTIC platform and peripheral ownership. | -| `libs/` | Typed math, estimation, control, safety, protocol, and driver crates. | -| `tools/sitl/` | Host-only closed-loop Gazebo simulation. | +| `firmware/boards/` | Immutable board declarations and linker layouts. | +| `firmware/platforms/stm32f7/` | Reviewed F722 RTIC platform and peripheral ownership. | +| `firmware/libs/` | Typed math, estimation, control, safety, protocol, and driver crates. | +| `firmware/tools/sitl/` | Host-only closed-loop Gazebo simulation. | +| `ground-suite/` | Desktop ground-control application. | | `docs/` | This Markdown documentation site. | Do not add board-local READMEs. Add a page here instead, then link it from diff --git a/docs/src/index.md b/docs/src/index.md index da6abd2..5eaff7a 100644 --- a/docs/src/index.md +++ b/docs/src/index.md @@ -12,6 +12,8 @@ Markdown. ## Index - New contributors should read [Getting started](getting-started.md). +- Firmware source and its Rust workspace begin in `firmware/`; the desktop + application is a sibling project in `ground-suite/`. - Board work belongs under [Boards](boards/index.md). - The currently supported closed-loop simulation is [Host SITL](sitl.md). - [Configuration](configuration.md) distinguishes the current SITL profile @@ -22,9 +24,11 @@ Markdown. ## Documentation conventions -Documentation is centralized in `docs/src/`; source directories do not carry -README files. Keep pages in Markdown, add each page to `SUMMARY.md`, and place -commands beside the assumptions and safety boundary they depend on. +Documentation is centralized in `docs/src/`; individual crates and board +directories do not carry README files. The top-level `firmware/README.md` +only defines the firmware workspace boundary. Keep pages in Markdown, add each +page to `SUMMARY.md`, and place commands beside the assumptions and safety +boundary they depend on. The current configuration contract is intentionally deployment-specific. A SITL Quad-X profile is a bounded restart-only CBOR snapshot; F722 hardware diff --git a/docs/src/reference.md b/docs/src/reference.md index 554580b..8626173 100644 --- a/docs/src/reference.md +++ b/docs/src/reference.md @@ -20,6 +20,7 @@ upload sequence, [Logs](logs.md) for receiver decoding and filtering, and Before review, run: ```sh +cd firmware cargo fmt --all --check cargo test --workspace --locked --offline cargo clippy --workspace --all-targets --locked -- -D warnings diff --git a/docs/src/safety-boundary.md b/docs/src/safety-boundary.md index 86efe97..884f530 100644 --- a/docs/src/safety-boundary.md +++ b/docs/src/safety-boundary.md @@ -17,6 +17,7 @@ arming-sequence reference. It does not grant hardware access or authority. Run the structural guard after any platform or board change: ```sh +cd firmware cargo test -p platform-stm32f7 --test platform_safety_boundary --offline ``` diff --git a/docs/src/sitl.md b/docs/src/sitl.md index 3e89fb4..df7c085 100644 --- a/docs/src/sitl.md +++ b/docs/src/sitl.md @@ -11,6 +11,7 @@ It is a pre-bench software gate, not a physical-flight validation. ## Run the closed loop ```sh +cd firmware docker compose -f tools/sitl/compose.yaml up -d --build tools/sitl/kaptan-sim ready tools/sitl/kaptan-sim move 5 3 1 --wait @@ -21,6 +22,7 @@ docker compose -f tools/sitl/compose.yaml down For the reproducible command-path gate, use: ```sh +cd firmware tools/sitl/e2e-smoke.sh ``` diff --git a/.dockerignore b/firmware/.dockerignore similarity index 100% rename from .dockerignore rename to firmware/.dockerignore diff --git a/Cargo.lock b/firmware/Cargo.lock similarity index 100% rename from Cargo.lock rename to firmware/Cargo.lock diff --git a/Cargo.toml b/firmware/Cargo.toml similarity index 100% rename from Cargo.toml rename to firmware/Cargo.toml diff --git a/firmware/README.md b/firmware/README.md new file mode 100644 index 0000000..3ad8ce8 --- /dev/null +++ b/firmware/README.md @@ -0,0 +1,26 @@ +# Firmware + +This directory is the Kaptan flight-controller firmware workspace. It owns the +Rust workspace manifest, board declarations, platform implementation, reusable +firmware crates, simulator, firmware scripts, and firmware test fixtures. + +```text +firmware/ +├── boards/ immutable board declarations and linker layouts +├── libs/ reusable no_std firmware crates +├── platforms/ hardware platform composition +├── tools/ SITL and firmware development tooling +├── scripts/ packaging, analysis, and coverage helpers +└── tests/ firmware integration-test fixtures +``` + +Run Cargo commands from this directory: + +```sh +cd firmware +cargo test --workspace --locked --offline +``` + +The sibling `ground-suite/` directory is the desktop ground-control +application. It is intentionally a separate project and does not participate +in the firmware Cargo workspace. diff --git a/boards/geprc-f722-v2/Cargo.toml b/firmware/boards/geprc-f722-v2/Cargo.toml similarity index 100% rename from boards/geprc-f722-v2/Cargo.toml rename to firmware/boards/geprc-f722-v2/Cargo.toml diff --git a/boards/geprc-f722-v2/build.rs b/firmware/boards/geprc-f722-v2/build.rs similarity index 100% rename from boards/geprc-f722-v2/build.rs rename to firmware/boards/geprc-f722-v2/build.rs diff --git a/boards/geprc-f722-v2/memory.x b/firmware/boards/geprc-f722-v2/memory.x similarity index 100% rename from boards/geprc-f722-v2/memory.x rename to firmware/boards/geprc-f722-v2/memory.x diff --git a/boards/geprc-f722-v2/src/board.rs b/firmware/boards/geprc-f722-v2/src/board.rs similarity index 100% rename from boards/geprc-f722-v2/src/board.rs rename to firmware/boards/geprc-f722-v2/src/board.rs diff --git a/boards/geprc-f722-v2/src/main.rs b/firmware/boards/geprc-f722-v2/src/main.rs similarity index 100% rename from boards/geprc-f722-v2/src/main.rs rename to firmware/boards/geprc-f722-v2/src/main.rs diff --git a/boards/kakute-f7-mini-v3/Cargo.toml b/firmware/boards/kakute-f7-mini-v3/Cargo.toml similarity index 100% rename from boards/kakute-f7-mini-v3/Cargo.toml rename to firmware/boards/kakute-f7-mini-v3/Cargo.toml diff --git a/boards/kakute-f7-mini-v3/build.rs b/firmware/boards/kakute-f7-mini-v3/build.rs similarity index 100% rename from boards/kakute-f7-mini-v3/build.rs rename to firmware/boards/kakute-f7-mini-v3/build.rs diff --git a/boards/kakute-f7-mini-v3/datasheet.pdf b/firmware/boards/kakute-f7-mini-v3/datasheet.pdf similarity index 100% rename from boards/kakute-f7-mini-v3/datasheet.pdf rename to firmware/boards/kakute-f7-mini-v3/datasheet.pdf diff --git a/boards/kakute-f7-mini-v3/memory.x b/firmware/boards/kakute-f7-mini-v3/memory.x similarity index 100% rename from boards/kakute-f7-mini-v3/memory.x rename to firmware/boards/kakute-f7-mini-v3/memory.x diff --git a/boards/kakute-f7-mini-v3/src/board.rs b/firmware/boards/kakute-f7-mini-v3/src/board.rs similarity index 100% rename from boards/kakute-f7-mini-v3/src/board.rs rename to firmware/boards/kakute-f7-mini-v3/src/board.rs diff --git a/boards/kakute-f7-mini-v3/src/main.rs b/firmware/boards/kakute-f7-mini-v3/src/main.rs similarity index 100% rename from boards/kakute-f7-mini-v3/src/main.rs rename to firmware/boards/kakute-f7-mini-v3/src/main.rs diff --git a/libs/kaptan-actuator/Cargo.toml b/firmware/libs/kaptan-actuator/Cargo.toml similarity index 100% rename from libs/kaptan-actuator/Cargo.toml rename to firmware/libs/kaptan-actuator/Cargo.toml diff --git a/libs/kaptan-actuator/src/dshot.rs b/firmware/libs/kaptan-actuator/src/dshot.rs similarity index 100% rename from libs/kaptan-actuator/src/dshot.rs rename to firmware/libs/kaptan-actuator/src/dshot.rs diff --git a/libs/kaptan-actuator/src/lib.rs b/firmware/libs/kaptan-actuator/src/lib.rs similarity index 100% rename from libs/kaptan-actuator/src/lib.rs rename to firmware/libs/kaptan-actuator/src/lib.rs diff --git a/libs/kaptan-actuator/src/pwm.rs b/firmware/libs/kaptan-actuator/src/pwm.rs similarity index 100% rename from libs/kaptan-actuator/src/pwm.rs rename to firmware/libs/kaptan-actuator/src/pwm.rs diff --git a/libs/kaptan-board/Cargo.toml b/firmware/libs/kaptan-board/Cargo.toml similarity index 100% rename from libs/kaptan-board/Cargo.toml rename to firmware/libs/kaptan-board/Cargo.toml diff --git a/libs/kaptan-board/src/lib.rs b/firmware/libs/kaptan-board/src/lib.rs similarity index 100% rename from libs/kaptan-board/src/lib.rs rename to firmware/libs/kaptan-board/src/lib.rs diff --git a/libs/kaptan-config-derive/Cargo.toml b/firmware/libs/kaptan-config-derive/Cargo.toml similarity index 100% rename from libs/kaptan-config-derive/Cargo.toml rename to firmware/libs/kaptan-config-derive/Cargo.toml diff --git a/libs/kaptan-config-derive/src/expand.rs b/firmware/libs/kaptan-config-derive/src/expand.rs similarity index 100% rename from libs/kaptan-config-derive/src/expand.rs rename to firmware/libs/kaptan-config-derive/src/expand.rs diff --git a/libs/kaptan-config-derive/src/lib.rs b/firmware/libs/kaptan-config-derive/src/lib.rs similarity index 100% rename from libs/kaptan-config-derive/src/lib.rs rename to firmware/libs/kaptan-config-derive/src/lib.rs diff --git a/libs/kaptan-config-derive/src/parse.rs b/firmware/libs/kaptan-config-derive/src/parse.rs similarity index 100% rename from libs/kaptan-config-derive/src/parse.rs rename to firmware/libs/kaptan-config-derive/src/parse.rs diff --git a/libs/kaptan-config-derive/tests/pass/aggregate_sections.rs b/firmware/libs/kaptan-config-derive/tests/pass/aggregate_sections.rs similarity index 100% rename from libs/kaptan-config-derive/tests/pass/aggregate_sections.rs rename to firmware/libs/kaptan-config-derive/tests/pass/aggregate_sections.rs diff --git a/libs/kaptan-config-derive/tests/pass/root_bool.rs b/firmware/libs/kaptan-config-derive/tests/pass/root_bool.rs similarity index 100% rename from libs/kaptan-config-derive/tests/pass/root_bool.rs rename to firmware/libs/kaptan-config-derive/tests/pass/root_bool.rs diff --git a/libs/kaptan-config-derive/tests/section.rs b/firmware/libs/kaptan-config-derive/tests/section.rs similarity index 100% rename from libs/kaptan-config-derive/tests/section.rs rename to firmware/libs/kaptan-config-derive/tests/section.rs diff --git a/libs/kaptan-config-derive/tests/ui.rs b/firmware/libs/kaptan-config-derive/tests/ui.rs similarity index 100% rename from libs/kaptan-config-derive/tests/ui.rs rename to firmware/libs/kaptan-config-derive/tests/ui.rs diff --git a/libs/kaptan-config-derive/tests/ui/default_below_minimum.rs b/firmware/libs/kaptan-config-derive/tests/ui/default_below_minimum.rs similarity index 100% rename from libs/kaptan-config-derive/tests/ui/default_below_minimum.rs rename to firmware/libs/kaptan-config-derive/tests/ui/default_below_minimum.rs diff --git a/libs/kaptan-config-derive/tests/ui/default_below_minimum.stderr b/firmware/libs/kaptan-config-derive/tests/ui/default_below_minimum.stderr similarity index 100% rename from libs/kaptan-config-derive/tests/ui/default_below_minimum.stderr rename to firmware/libs/kaptan-config-derive/tests/ui/default_below_minimum.stderr diff --git a/libs/kaptan-config-derive/tests/ui/default_violates_finite.rs b/firmware/libs/kaptan-config-derive/tests/ui/default_violates_finite.rs similarity index 100% rename from libs/kaptan-config-derive/tests/ui/default_violates_finite.rs rename to firmware/libs/kaptan-config-derive/tests/ui/default_violates_finite.rs diff --git a/libs/kaptan-config-derive/tests/ui/default_violates_finite.stderr b/firmware/libs/kaptan-config-derive/tests/ui/default_violates_finite.stderr similarity index 100% rename from libs/kaptan-config-derive/tests/ui/default_violates_finite.stderr rename to firmware/libs/kaptan-config-derive/tests/ui/default_violates_finite.stderr diff --git a/libs/kaptan-config-derive/tests/ui/default_violates_nonzero.rs b/firmware/libs/kaptan-config-derive/tests/ui/default_violates_nonzero.rs similarity index 100% rename from libs/kaptan-config-derive/tests/ui/default_violates_nonzero.rs rename to firmware/libs/kaptan-config-derive/tests/ui/default_violates_nonzero.rs diff --git a/libs/kaptan-config-derive/tests/ui/default_violates_nonzero.stderr b/firmware/libs/kaptan-config-derive/tests/ui/default_violates_nonzero.stderr similarity index 100% rename from libs/kaptan-config-derive/tests/ui/default_violates_nonzero.stderr rename to firmware/libs/kaptan-config-derive/tests/ui/default_violates_nonzero.stderr diff --git a/libs/kaptan-config-derive/tests/ui/duplicate_id.rs b/firmware/libs/kaptan-config-derive/tests/ui/duplicate_id.rs similarity index 100% rename from libs/kaptan-config-derive/tests/ui/duplicate_id.rs rename to firmware/libs/kaptan-config-derive/tests/ui/duplicate_id.rs diff --git a/libs/kaptan-config-derive/tests/ui/duplicate_id.stderr b/firmware/libs/kaptan-config-derive/tests/ui/duplicate_id.stderr similarity index 100% rename from libs/kaptan-config-derive/tests/ui/duplicate_id.stderr rename to firmware/libs/kaptan-config-derive/tests/ui/duplicate_id.stderr diff --git a/libs/kaptan-config-derive/tests/ui/duplicate_range.rs b/firmware/libs/kaptan-config-derive/tests/ui/duplicate_range.rs similarity index 100% rename from libs/kaptan-config-derive/tests/ui/duplicate_range.rs rename to firmware/libs/kaptan-config-derive/tests/ui/duplicate_range.rs diff --git a/libs/kaptan-config-derive/tests/ui/duplicate_range.stderr b/firmware/libs/kaptan-config-derive/tests/ui/duplicate_range.stderr similarity index 100% rename from libs/kaptan-config-derive/tests/ui/duplicate_range.stderr rename to firmware/libs/kaptan-config-derive/tests/ui/duplicate_range.stderr diff --git a/libs/kaptan-config-derive/tests/ui/empty.rs b/firmware/libs/kaptan-config-derive/tests/ui/empty.rs similarity index 100% rename from libs/kaptan-config-derive/tests/ui/empty.rs rename to firmware/libs/kaptan-config-derive/tests/ui/empty.rs diff --git a/libs/kaptan-config-derive/tests/ui/empty.stderr b/firmware/libs/kaptan-config-derive/tests/ui/empty.stderr similarity index 100% rename from libs/kaptan-config-derive/tests/ui/empty.stderr rename to firmware/libs/kaptan-config-derive/tests/ui/empty.stderr diff --git a/libs/kaptan-config-derive/tests/ui/missing_id.rs b/firmware/libs/kaptan-config-derive/tests/ui/missing_id.rs similarity index 100% rename from libs/kaptan-config-derive/tests/ui/missing_id.rs rename to firmware/libs/kaptan-config-derive/tests/ui/missing_id.rs diff --git a/libs/kaptan-config-derive/tests/ui/missing_id.stderr b/firmware/libs/kaptan-config-derive/tests/ui/missing_id.stderr similarity index 100% rename from libs/kaptan-config-derive/tests/ui/missing_id.stderr rename to firmware/libs/kaptan-config-derive/tests/ui/missing_id.stderr diff --git a/libs/kaptan-config-derive/tests/ui/missing_metadata.rs b/firmware/libs/kaptan-config-derive/tests/ui/missing_metadata.rs similarity index 100% rename from libs/kaptan-config-derive/tests/ui/missing_metadata.rs rename to firmware/libs/kaptan-config-derive/tests/ui/missing_metadata.rs diff --git a/libs/kaptan-config-derive/tests/ui/missing_metadata.stderr b/firmware/libs/kaptan-config-derive/tests/ui/missing_metadata.stderr similarity index 100% rename from libs/kaptan-config-derive/tests/ui/missing_metadata.stderr rename to firmware/libs/kaptan-config-derive/tests/ui/missing_metadata.stderr diff --git a/libs/kaptan-config-derive/tests/ui/mixed_section_scalar.rs b/firmware/libs/kaptan-config-derive/tests/ui/mixed_section_scalar.rs similarity index 100% rename from libs/kaptan-config-derive/tests/ui/mixed_section_scalar.rs rename to firmware/libs/kaptan-config-derive/tests/ui/mixed_section_scalar.rs diff --git a/libs/kaptan-config-derive/tests/ui/mixed_section_scalar.stderr b/firmware/libs/kaptan-config-derive/tests/ui/mixed_section_scalar.stderr similarity index 100% rename from libs/kaptan-config-derive/tests/ui/mixed_section_scalar.stderr rename to firmware/libs/kaptan-config-derive/tests/ui/mixed_section_scalar.stderr diff --git a/libs/kaptan-config-derive/tests/ui/range_minimum_exceeds_maximum.rs b/firmware/libs/kaptan-config-derive/tests/ui/range_minimum_exceeds_maximum.rs similarity index 100% rename from libs/kaptan-config-derive/tests/ui/range_minimum_exceeds_maximum.rs rename to firmware/libs/kaptan-config-derive/tests/ui/range_minimum_exceeds_maximum.rs diff --git a/libs/kaptan-config-derive/tests/ui/range_minimum_exceeds_maximum.stderr b/firmware/libs/kaptan-config-derive/tests/ui/range_minimum_exceeds_maximum.stderr similarity index 100% rename from libs/kaptan-config-derive/tests/ui/range_minimum_exceeds_maximum.stderr rename to firmware/libs/kaptan-config-derive/tests/ui/range_minimum_exceeds_maximum.stderr diff --git a/libs/kaptan-config-mavlink/Cargo.toml b/firmware/libs/kaptan-config-mavlink/Cargo.toml similarity index 100% rename from libs/kaptan-config-mavlink/Cargo.toml rename to firmware/libs/kaptan-config-mavlink/Cargo.toml diff --git a/libs/kaptan-config-mavlink/src/command.rs b/firmware/libs/kaptan-config-mavlink/src/command.rs similarity index 100% rename from libs/kaptan-config-mavlink/src/command.rs rename to firmware/libs/kaptan-config-mavlink/src/command.rs diff --git a/libs/kaptan-config-mavlink/src/lib.rs b/firmware/libs/kaptan-config-mavlink/src/lib.rs similarity index 100% rename from libs/kaptan-config-mavlink/src/lib.rs rename to firmware/libs/kaptan-config-mavlink/src/lib.rs diff --git a/libs/kaptan-config-mavlink/src/protocol.rs b/firmware/libs/kaptan-config-mavlink/src/protocol.rs similarity index 100% rename from libs/kaptan-config-mavlink/src/protocol.rs rename to firmware/libs/kaptan-config-mavlink/src/protocol.rs diff --git a/libs/kaptan-config-mavlink/src/service.rs b/firmware/libs/kaptan-config-mavlink/src/service.rs similarity index 100% rename from libs/kaptan-config-mavlink/src/service.rs rename to firmware/libs/kaptan-config-mavlink/src/service.rs diff --git a/libs/kaptan-config-mavlink/src/service/import.rs b/firmware/libs/kaptan-config-mavlink/src/service/import.rs similarity index 100% rename from libs/kaptan-config-mavlink/src/service/import.rs rename to firmware/libs/kaptan-config-mavlink/src/service/import.rs diff --git a/libs/kaptan-config-mavlink/src/service/query.rs b/firmware/libs/kaptan-config-mavlink/src/service/query.rs similarity index 100% rename from libs/kaptan-config-mavlink/src/service/query.rs rename to firmware/libs/kaptan-config-mavlink/src/service/query.rs diff --git a/libs/kaptan-config-mavlink/src/service/replay.rs b/firmware/libs/kaptan-config-mavlink/src/service/replay.rs similarity index 100% rename from libs/kaptan-config-mavlink/src/service/replay.rs rename to firmware/libs/kaptan-config-mavlink/src/service/replay.rs diff --git a/libs/kaptan-config-mavlink/src/service/session.rs b/firmware/libs/kaptan-config-mavlink/src/service/session.rs similarity index 100% rename from libs/kaptan-config-mavlink/src/service/session.rs rename to firmware/libs/kaptan-config-mavlink/src/service/session.rs diff --git a/libs/kaptan-config-mavlink/src/wire.rs b/firmware/libs/kaptan-config-mavlink/src/wire.rs similarity index 100% rename from libs/kaptan-config-mavlink/src/wire.rs rename to firmware/libs/kaptan-config-mavlink/src/wire.rs diff --git a/libs/kaptan-config/Cargo.toml b/firmware/libs/kaptan-config/Cargo.toml similarity index 100% rename from libs/kaptan-config/Cargo.toml rename to firmware/libs/kaptan-config/Cargo.toml diff --git a/libs/kaptan-config/src/error.rs b/firmware/libs/kaptan-config/src/error.rs similarity index 100% rename from libs/kaptan-config/src/error.rs rename to firmware/libs/kaptan-config/src/error.rs diff --git a/libs/kaptan-config/src/field.rs b/firmware/libs/kaptan-config/src/field.rs similarity index 100% rename from libs/kaptan-config/src/field.rs rename to firmware/libs/kaptan-config/src/field.rs diff --git a/libs/kaptan-config/src/lib.rs b/firmware/libs/kaptan-config/src/lib.rs similarity index 100% rename from libs/kaptan-config/src/lib.rs rename to firmware/libs/kaptan-config/src/lib.rs diff --git a/libs/kaptan-config/src/lifecycle.rs b/firmware/libs/kaptan-config/src/lifecycle.rs similarity index 100% rename from libs/kaptan-config/src/lifecycle.rs rename to firmware/libs/kaptan-config/src/lifecycle.rs diff --git a/libs/kaptan-config/src/storage.rs b/firmware/libs/kaptan-config/src/storage.rs similarity index 100% rename from libs/kaptan-config/src/storage.rs rename to firmware/libs/kaptan-config/src/storage.rs diff --git a/libs/kaptan-config/src/validation.rs b/firmware/libs/kaptan-config/src/validation.rs similarity index 100% rename from libs/kaptan-config/src/validation.rs rename to firmware/libs/kaptan-config/src/validation.rs diff --git a/libs/kaptan-control/Cargo.toml b/firmware/libs/kaptan-control/Cargo.toml similarity index 100% rename from libs/kaptan-control/Cargo.toml rename to firmware/libs/kaptan-control/Cargo.toml diff --git a/libs/kaptan-control/src/lib.rs b/firmware/libs/kaptan-control/src/lib.rs similarity index 100% rename from libs/kaptan-control/src/lib.rs rename to firmware/libs/kaptan-control/src/lib.rs diff --git a/libs/kaptan-data-channel/Cargo.toml b/firmware/libs/kaptan-data-channel/Cargo.toml similarity index 100% rename from libs/kaptan-data-channel/Cargo.toml rename to firmware/libs/kaptan-data-channel/Cargo.toml diff --git a/libs/kaptan-data-channel/src/lib.rs b/firmware/libs/kaptan-data-channel/src/lib.rs similarity index 100% rename from libs/kaptan-data-channel/src/lib.rs rename to firmware/libs/kaptan-data-channel/src/lib.rs diff --git a/libs/kaptan-data-channel/src/mailbox.rs b/firmware/libs/kaptan-data-channel/src/mailbox.rs similarity index 100% rename from libs/kaptan-data-channel/src/mailbox.rs rename to firmware/libs/kaptan-data-channel/src/mailbox.rs diff --git a/libs/kaptan-dma/Cargo.toml b/firmware/libs/kaptan-dma/Cargo.toml similarity index 100% rename from libs/kaptan-dma/Cargo.toml rename to firmware/libs/kaptan-dma/Cargo.toml diff --git a/libs/kaptan-dma/src/lib.rs b/firmware/libs/kaptan-dma/src/lib.rs similarity index 100% rename from libs/kaptan-dma/src/lib.rs rename to firmware/libs/kaptan-dma/src/lib.rs diff --git a/libs/kaptan-drivers/Cargo.toml b/firmware/libs/kaptan-drivers/Cargo.toml similarity index 100% rename from libs/kaptan-drivers/Cargo.toml rename to firmware/libs/kaptan-drivers/Cargo.toml diff --git a/libs/kaptan-drivers/src/icm42688/error.rs b/firmware/libs/kaptan-drivers/src/icm42688/error.rs similarity index 100% rename from libs/kaptan-drivers/src/icm42688/error.rs rename to firmware/libs/kaptan-drivers/src/icm42688/error.rs diff --git a/libs/kaptan-drivers/src/icm42688/mod.rs b/firmware/libs/kaptan-drivers/src/icm42688/mod.rs similarity index 100% rename from libs/kaptan-drivers/src/icm42688/mod.rs rename to firmware/libs/kaptan-drivers/src/icm42688/mod.rs diff --git a/libs/kaptan-drivers/src/icm42688/sample.rs b/firmware/libs/kaptan-drivers/src/icm42688/sample.rs similarity index 100% rename from libs/kaptan-drivers/src/icm42688/sample.rs rename to firmware/libs/kaptan-drivers/src/icm42688/sample.rs diff --git a/libs/kaptan-drivers/src/icm42688/service.rs b/firmware/libs/kaptan-drivers/src/icm42688/service.rs similarity index 100% rename from libs/kaptan-drivers/src/icm42688/service.rs rename to firmware/libs/kaptan-drivers/src/icm42688/service.rs diff --git a/libs/kaptan-drivers/src/lib.rs b/firmware/libs/kaptan-drivers/src/lib.rs similarity index 100% rename from libs/kaptan-drivers/src/lib.rs rename to firmware/libs/kaptan-drivers/src/lib.rs diff --git a/libs/kaptan-drivers/src/lidar_lite_v3/datasheet.pdf b/firmware/libs/kaptan-drivers/src/lidar_lite_v3/datasheet.pdf similarity index 100% rename from libs/kaptan-drivers/src/lidar_lite_v3/datasheet.pdf rename to firmware/libs/kaptan-drivers/src/lidar_lite_v3/datasheet.pdf diff --git a/libs/kaptan-drivers/src/lidar_lite_v3/error.rs b/firmware/libs/kaptan-drivers/src/lidar_lite_v3/error.rs similarity index 100% rename from libs/kaptan-drivers/src/lidar_lite_v3/error.rs rename to firmware/libs/kaptan-drivers/src/lidar_lite_v3/error.rs diff --git a/libs/kaptan-drivers/src/lidar_lite_v3/mod.rs b/firmware/libs/kaptan-drivers/src/lidar_lite_v3/mod.rs similarity index 100% rename from libs/kaptan-drivers/src/lidar_lite_v3/mod.rs rename to firmware/libs/kaptan-drivers/src/lidar_lite_v3/mod.rs diff --git a/libs/kaptan-drivers/src/lidar_lite_v3/registers.rs b/firmware/libs/kaptan-drivers/src/lidar_lite_v3/registers.rs similarity index 100% rename from libs/kaptan-drivers/src/lidar_lite_v3/registers.rs rename to firmware/libs/kaptan-drivers/src/lidar_lite_v3/registers.rs diff --git a/libs/kaptan-drivers/src/lidar_lite_v3/service.rs b/firmware/libs/kaptan-drivers/src/lidar_lite_v3/service.rs similarity index 100% rename from libs/kaptan-drivers/src/lidar_lite_v3/service.rs rename to firmware/libs/kaptan-drivers/src/lidar_lite_v3/service.rs diff --git a/libs/kaptan-drivers/src/mpu6000/config.rs b/firmware/libs/kaptan-drivers/src/mpu6000/config.rs similarity index 100% rename from libs/kaptan-drivers/src/mpu6000/config.rs rename to firmware/libs/kaptan-drivers/src/mpu6000/config.rs diff --git a/libs/kaptan-drivers/src/mpu6000/datasheet.pdf b/firmware/libs/kaptan-drivers/src/mpu6000/datasheet.pdf similarity index 100% rename from libs/kaptan-drivers/src/mpu6000/datasheet.pdf rename to firmware/libs/kaptan-drivers/src/mpu6000/datasheet.pdf diff --git a/libs/kaptan-drivers/src/mpu6000/error.rs b/firmware/libs/kaptan-drivers/src/mpu6000/error.rs similarity index 100% rename from libs/kaptan-drivers/src/mpu6000/error.rs rename to firmware/libs/kaptan-drivers/src/mpu6000/error.rs diff --git a/libs/kaptan-drivers/src/mpu6000/mod.rs b/firmware/libs/kaptan-drivers/src/mpu6000/mod.rs similarity index 100% rename from libs/kaptan-drivers/src/mpu6000/mod.rs rename to firmware/libs/kaptan-drivers/src/mpu6000/mod.rs diff --git a/libs/kaptan-drivers/src/mpu6000/registers.rs b/firmware/libs/kaptan-drivers/src/mpu6000/registers.rs similarity index 100% rename from libs/kaptan-drivers/src/mpu6000/registers.rs rename to firmware/libs/kaptan-drivers/src/mpu6000/registers.rs diff --git a/libs/kaptan-drivers/src/mpu6000/sample.rs b/firmware/libs/kaptan-drivers/src/mpu6000/sample.rs similarity index 100% rename from libs/kaptan-drivers/src/mpu6000/sample.rs rename to firmware/libs/kaptan-drivers/src/mpu6000/sample.rs diff --git a/libs/kaptan-drivers/src/mpu6000/service.rs b/firmware/libs/kaptan-drivers/src/mpu6000/service.rs similarity index 100% rename from libs/kaptan-drivers/src/mpu6000/service.rs rename to firmware/libs/kaptan-drivers/src/mpu6000/service.rs diff --git a/libs/kaptan-drivers/src/mtf01/mod.rs b/firmware/libs/kaptan-drivers/src/mtf01/mod.rs similarity index 100% rename from libs/kaptan-drivers/src/mtf01/mod.rs rename to firmware/libs/kaptan-drivers/src/mtf01/mod.rs diff --git a/libs/kaptan-drivers/src/mtf01/mtf01-decoding.pdf b/firmware/libs/kaptan-drivers/src/mtf01/mtf01-decoding.pdf similarity index 100% rename from libs/kaptan-drivers/src/mtf01/mtf01-decoding.pdf rename to firmware/libs/kaptan-drivers/src/mtf01/mtf01-decoding.pdf diff --git a/libs/kaptan-flight-config/Cargo.toml b/firmware/libs/kaptan-flight-config/Cargo.toml similarity index 100% rename from libs/kaptan-flight-config/Cargo.toml rename to firmware/libs/kaptan-flight-config/Cargo.toml diff --git a/libs/kaptan-flight-config/src/cbor.rs b/firmware/libs/kaptan-flight-config/src/cbor.rs similarity index 100% rename from libs/kaptan-flight-config/src/cbor.rs rename to firmware/libs/kaptan-flight-config/src/cbor.rs diff --git a/libs/kaptan-flight-config/src/lib.rs b/firmware/libs/kaptan-flight-config/src/lib.rs similarity index 100% rename from libs/kaptan-flight-config/src/lib.rs rename to firmware/libs/kaptan-flight-config/src/lib.rs diff --git a/libs/kaptan-flight-config/src/profile/active.rs b/firmware/libs/kaptan-flight-config/src/profile/active.rs similarity index 100% rename from libs/kaptan-flight-config/src/profile/active.rs rename to firmware/libs/kaptan-flight-config/src/profile/active.rs diff --git a/libs/kaptan-flight-config/src/profile/candidate.rs b/firmware/libs/kaptan-flight-config/src/profile/candidate.rs similarity index 100% rename from libs/kaptan-flight-config/src/profile/candidate.rs rename to firmware/libs/kaptan-flight-config/src/profile/candidate.rs diff --git a/libs/kaptan-flight-config/src/profile/control.rs b/firmware/libs/kaptan-flight-config/src/profile/control.rs similarity index 100% rename from libs/kaptan-flight-config/src/profile/control.rs rename to firmware/libs/kaptan-flight-config/src/profile/control.rs diff --git a/libs/kaptan-flight-config/src/profile/ids.rs b/firmware/libs/kaptan-flight-config/src/profile/ids.rs similarity index 100% rename from libs/kaptan-flight-config/src/profile/ids.rs rename to firmware/libs/kaptan-flight-config/src/profile/ids.rs diff --git a/libs/kaptan-flight-config/src/profile/mod.rs b/firmware/libs/kaptan-flight-config/src/profile/mod.rs similarity index 100% rename from libs/kaptan-flight-config/src/profile/mod.rs rename to firmware/libs/kaptan-flight-config/src/profile/mod.rs diff --git a/libs/kaptan-flight-config/src/profile/observability.rs b/firmware/libs/kaptan-flight-config/src/profile/observability.rs similarity index 100% rename from libs/kaptan-flight-config/src/profile/observability.rs rename to firmware/libs/kaptan-flight-config/src/profile/observability.rs diff --git a/libs/kaptan-flight-config/src/profile/registry.rs b/firmware/libs/kaptan-flight-config/src/profile/registry.rs similarity index 100% rename from libs/kaptan-flight-config/src/profile/registry.rs rename to firmware/libs/kaptan-flight-config/src/profile/registry.rs diff --git a/libs/kaptan-flight-config/src/profile/safety.rs b/firmware/libs/kaptan-flight-config/src/profile/safety.rs similarity index 100% rename from libs/kaptan-flight-config/src/profile/safety.rs rename to firmware/libs/kaptan-flight-config/src/profile/safety.rs diff --git a/libs/kaptan-flight-config/src/profile/timing.rs b/firmware/libs/kaptan-flight-config/src/profile/timing.rs similarity index 100% rename from libs/kaptan-flight-config/src/profile/timing.rs rename to firmware/libs/kaptan-flight-config/src/profile/timing.rs diff --git a/libs/kaptan-flight-runtime/Cargo.toml b/firmware/libs/kaptan-flight-runtime/Cargo.toml similarity index 100% rename from libs/kaptan-flight-runtime/Cargo.toml rename to firmware/libs/kaptan-flight-runtime/Cargo.toml diff --git a/libs/kaptan-flight-runtime/src/lib.rs b/firmware/libs/kaptan-flight-runtime/src/lib.rs similarity index 100% rename from libs/kaptan-flight-runtime/src/lib.rs rename to firmware/libs/kaptan-flight-runtime/src/lib.rs diff --git a/libs/kaptan-i2c/Cargo.toml b/firmware/libs/kaptan-i2c/Cargo.toml similarity index 100% rename from libs/kaptan-i2c/Cargo.toml rename to firmware/libs/kaptan-i2c/Cargo.toml diff --git a/libs/kaptan-i2c/src/lib.rs b/firmware/libs/kaptan-i2c/src/lib.rs similarity index 100% rename from libs/kaptan-i2c/src/lib.rs rename to firmware/libs/kaptan-i2c/src/lib.rs diff --git a/libs/kaptan-log-derive/Cargo.toml b/firmware/libs/kaptan-log-derive/Cargo.toml similarity index 100% rename from libs/kaptan-log-derive/Cargo.toml rename to firmware/libs/kaptan-log-derive/Cargo.toml diff --git a/libs/kaptan-log-derive/src/lib.rs b/firmware/libs/kaptan-log-derive/src/lib.rs similarity index 100% rename from libs/kaptan-log-derive/src/lib.rs rename to firmware/libs/kaptan-log-derive/src/lib.rs diff --git a/libs/kaptan-log-derive/tests/ui.rs b/firmware/libs/kaptan-log-derive/tests/ui.rs similarity index 100% rename from libs/kaptan-log-derive/tests/ui.rs rename to firmware/libs/kaptan-log-derive/tests/ui.rs diff --git a/libs/kaptan-log-derive/tests/ui/enum.rs b/firmware/libs/kaptan-log-derive/tests/ui/enum.rs similarity index 100% rename from libs/kaptan-log-derive/tests/ui/enum.rs rename to firmware/libs/kaptan-log-derive/tests/ui/enum.rs diff --git a/libs/kaptan-log-derive/tests/ui/struct.rs b/firmware/libs/kaptan-log-derive/tests/ui/struct.rs similarity index 100% rename from libs/kaptan-log-derive/tests/ui/struct.rs rename to firmware/libs/kaptan-log-derive/tests/ui/struct.rs diff --git a/libs/kaptan-log-derive/tests/ui/struct.stderr b/firmware/libs/kaptan-log-derive/tests/ui/struct.stderr similarity index 100% rename from libs/kaptan-log-derive/tests/ui/struct.stderr rename to firmware/libs/kaptan-log-derive/tests/ui/struct.stderr diff --git a/libs/kaptan-log-derive/tests/ui/union.rs b/firmware/libs/kaptan-log-derive/tests/ui/union.rs similarity index 100% rename from libs/kaptan-log-derive/tests/ui/union.rs rename to firmware/libs/kaptan-log-derive/tests/ui/union.rs diff --git a/libs/kaptan-log-derive/tests/ui/union.stderr b/firmware/libs/kaptan-log-derive/tests/ui/union.stderr similarity index 100% rename from libs/kaptan-log-derive/tests/ui/union.stderr rename to firmware/libs/kaptan-log-derive/tests/ui/union.stderr diff --git a/libs/kaptan-log-mavlink/Cargo.toml b/firmware/libs/kaptan-log-mavlink/Cargo.toml similarity index 100% rename from libs/kaptan-log-mavlink/Cargo.toml rename to firmware/libs/kaptan-log-mavlink/Cargo.toml diff --git a/libs/kaptan-log-mavlink/src/lib.rs b/firmware/libs/kaptan-log-mavlink/src/lib.rs similarity index 100% rename from libs/kaptan-log-mavlink/src/lib.rs rename to firmware/libs/kaptan-log-mavlink/src/lib.rs diff --git a/libs/kaptan-log/Cargo.toml b/firmware/libs/kaptan-log/Cargo.toml similarity index 100% rename from libs/kaptan-log/Cargo.toml rename to firmware/libs/kaptan-log/Cargo.toml diff --git a/libs/kaptan-log/src/crash.rs b/firmware/libs/kaptan-log/src/crash.rs similarity index 100% rename from libs/kaptan-log/src/crash.rs rename to firmware/libs/kaptan-log/src/crash.rs diff --git a/libs/kaptan-log/src/facade.rs b/firmware/libs/kaptan-log/src/facade.rs similarity index 100% rename from libs/kaptan-log/src/facade.rs rename to firmware/libs/kaptan-log/src/facade.rs diff --git a/libs/kaptan-log/src/filter.rs b/firmware/libs/kaptan-log/src/filter.rs similarity index 100% rename from libs/kaptan-log/src/filter.rs rename to firmware/libs/kaptan-log/src/filter.rs diff --git a/libs/kaptan-log/src/hub.rs b/firmware/libs/kaptan-log/src/hub.rs similarity index 100% rename from libs/kaptan-log/src/hub.rs rename to firmware/libs/kaptan-log/src/hub.rs diff --git a/libs/kaptan-log/src/level.rs b/firmware/libs/kaptan-log/src/level.rs similarity index 100% rename from libs/kaptan-log/src/level.rs rename to firmware/libs/kaptan-log/src/level.rs diff --git a/libs/kaptan-log/src/lib.rs b/firmware/libs/kaptan-log/src/lib.rs similarity index 100% rename from libs/kaptan-log/src/lib.rs rename to firmware/libs/kaptan-log/src/lib.rs diff --git a/libs/kaptan-log/src/mailbox.rs b/firmware/libs/kaptan-log/src/mailbox.rs similarity index 100% rename from libs/kaptan-log/src/mailbox.rs rename to firmware/libs/kaptan-log/src/mailbox.rs diff --git a/libs/kaptan-log/src/report.rs b/firmware/libs/kaptan-log/src/report.rs similarity index 100% rename from libs/kaptan-log/src/report.rs rename to firmware/libs/kaptan-log/src/report.rs diff --git a/libs/kaptan-log/src/shutdown.rs b/firmware/libs/kaptan-log/src/shutdown.rs similarity index 100% rename from libs/kaptan-log/src/shutdown.rs rename to firmware/libs/kaptan-log/src/shutdown.rs diff --git a/libs/kaptan-log/src/text.rs b/firmware/libs/kaptan-log/src/text.rs similarity index 100% rename from libs/kaptan-log/src/text.rs rename to firmware/libs/kaptan-log/src/text.rs diff --git a/libs/kaptan-math/Cargo.toml b/firmware/libs/kaptan-math/Cargo.toml similarity index 100% rename from libs/kaptan-math/Cargo.toml rename to firmware/libs/kaptan-math/Cargo.toml diff --git a/libs/kaptan-math/src/lib.rs b/firmware/libs/kaptan-math/src/lib.rs similarity index 100% rename from libs/kaptan-math/src/lib.rs rename to firmware/libs/kaptan-math/src/lib.rs diff --git a/libs/kaptan-mavlink/Cargo.toml b/firmware/libs/kaptan-mavlink/Cargo.toml similarity index 100% rename from libs/kaptan-mavlink/Cargo.toml rename to firmware/libs/kaptan-mavlink/Cargo.toml diff --git a/libs/kaptan-mavlink/build.rs b/firmware/libs/kaptan-mavlink/build.rs similarity index 100% rename from libs/kaptan-mavlink/build.rs rename to firmware/libs/kaptan-mavlink/build.rs diff --git a/libs/kaptan-mavlink/definitions/kaptan.xml b/firmware/libs/kaptan-mavlink/definitions/kaptan.xml similarity index 100% rename from libs/kaptan-mavlink/definitions/kaptan.xml rename to firmware/libs/kaptan-mavlink/definitions/kaptan.xml diff --git a/libs/kaptan-mavlink/definitions/kaptan/config.xml b/firmware/libs/kaptan-mavlink/definitions/kaptan/config.xml similarity index 100% rename from libs/kaptan-mavlink/definitions/kaptan/config.xml rename to firmware/libs/kaptan-mavlink/definitions/kaptan/config.xml diff --git a/libs/kaptan-mavlink/definitions/kaptan/error.xml b/firmware/libs/kaptan-mavlink/definitions/kaptan/error.xml similarity index 100% rename from libs/kaptan-mavlink/definitions/kaptan/error.xml rename to firmware/libs/kaptan-mavlink/definitions/kaptan/error.xml diff --git a/libs/kaptan-mavlink/definitions/kaptan/log.xml b/firmware/libs/kaptan-mavlink/definitions/kaptan/log.xml similarity index 100% rename from libs/kaptan-mavlink/definitions/kaptan/log.xml rename to firmware/libs/kaptan-mavlink/definitions/kaptan/log.xml diff --git a/libs/kaptan-mavlink/definitions/kaptan/shutdown.xml b/firmware/libs/kaptan-mavlink/definitions/kaptan/shutdown.xml similarity index 100% rename from libs/kaptan-mavlink/definitions/kaptan/shutdown.xml rename to firmware/libs/kaptan-mavlink/definitions/kaptan/shutdown.xml diff --git a/libs/kaptan-mavlink/src/commands/arm.rs b/firmware/libs/kaptan-mavlink/src/commands/arm.rs similarity index 100% rename from libs/kaptan-mavlink/src/commands/arm.rs rename to firmware/libs/kaptan-mavlink/src/commands/arm.rs diff --git a/libs/kaptan-mavlink/src/commands/mod.rs b/firmware/libs/kaptan-mavlink/src/commands/mod.rs similarity index 100% rename from libs/kaptan-mavlink/src/commands/mod.rs rename to firmware/libs/kaptan-mavlink/src/commands/mod.rs diff --git a/libs/kaptan-mavlink/src/encoder.rs b/firmware/libs/kaptan-mavlink/src/encoder.rs similarity index 100% rename from libs/kaptan-mavlink/src/encoder.rs rename to firmware/libs/kaptan-mavlink/src/encoder.rs diff --git a/libs/kaptan-mavlink/src/lib.rs b/firmware/libs/kaptan-mavlink/src/lib.rs similarity index 100% rename from libs/kaptan-mavlink/src/lib.rs rename to firmware/libs/kaptan-mavlink/src/lib.rs diff --git a/libs/kaptan-mavlink/src/receiver.rs b/firmware/libs/kaptan-mavlink/src/receiver.rs similarity index 100% rename from libs/kaptan-mavlink/src/receiver.rs rename to firmware/libs/kaptan-mavlink/src/receiver.rs diff --git a/libs/kaptan-mavlink/src/transmitter.rs b/firmware/libs/kaptan-mavlink/src/transmitter.rs similarity index 100% rename from libs/kaptan-mavlink/src/transmitter.rs rename to firmware/libs/kaptan-mavlink/src/transmitter.rs diff --git a/libs/kaptan-navigation/Cargo.toml b/firmware/libs/kaptan-navigation/Cargo.toml similarity index 100% rename from libs/kaptan-navigation/Cargo.toml rename to firmware/libs/kaptan-navigation/Cargo.toml diff --git a/libs/kaptan-navigation/src/eskf.rs b/firmware/libs/kaptan-navigation/src/eskf.rs similarity index 100% rename from libs/kaptan-navigation/src/eskf.rs rename to firmware/libs/kaptan-navigation/src/eskf.rs diff --git a/libs/kaptan-navigation/src/lib.rs b/firmware/libs/kaptan-navigation/src/lib.rs similarity index 100% rename from libs/kaptan-navigation/src/lib.rs rename to firmware/libs/kaptan-navigation/src/lib.rs diff --git a/libs/kaptan-navigation/src/observation.rs b/firmware/libs/kaptan-navigation/src/observation.rs similarity index 100% rename from libs/kaptan-navigation/src/observation.rs rename to firmware/libs/kaptan-navigation/src/observation.rs diff --git a/libs/kaptan-safety/Cargo.toml b/firmware/libs/kaptan-safety/Cargo.toml similarity index 100% rename from libs/kaptan-safety/Cargo.toml rename to firmware/libs/kaptan-safety/Cargo.toml diff --git a/libs/kaptan-safety/src/lib.rs b/firmware/libs/kaptan-safety/src/lib.rs similarity index 100% rename from libs/kaptan-safety/src/lib.rs rename to firmware/libs/kaptan-safety/src/lib.rs diff --git a/libs/kaptan-sensor/Cargo.toml b/firmware/libs/kaptan-sensor/Cargo.toml similarity index 100% rename from libs/kaptan-sensor/Cargo.toml rename to firmware/libs/kaptan-sensor/Cargo.toml diff --git a/libs/kaptan-sensor/src/imu.rs b/firmware/libs/kaptan-sensor/src/imu.rs similarity index 100% rename from libs/kaptan-sensor/src/imu.rs rename to firmware/libs/kaptan-sensor/src/imu.rs diff --git a/libs/kaptan-sensor/src/lib.rs b/firmware/libs/kaptan-sensor/src/lib.rs similarity index 100% rename from libs/kaptan-sensor/src/lib.rs rename to firmware/libs/kaptan-sensor/src/lib.rs diff --git a/libs/kaptan-sensor/src/optical_flow.rs b/firmware/libs/kaptan-sensor/src/optical_flow.rs similarity index 100% rename from libs/kaptan-sensor/src/optical_flow.rs rename to firmware/libs/kaptan-sensor/src/optical_flow.rs diff --git a/libs/kaptan-sensor/src/range.rs b/firmware/libs/kaptan-sensor/src/range.rs similarity index 100% rename from libs/kaptan-sensor/src/range.rs rename to firmware/libs/kaptan-sensor/src/range.rs diff --git a/libs/kaptan-spi/Cargo.toml b/firmware/libs/kaptan-spi/Cargo.toml similarity index 100% rename from libs/kaptan-spi/Cargo.toml rename to firmware/libs/kaptan-spi/Cargo.toml diff --git a/libs/kaptan-spi/src/lib.rs b/firmware/libs/kaptan-spi/src/lib.rs similarity index 100% rename from libs/kaptan-spi/src/lib.rs rename to firmware/libs/kaptan-spi/src/lib.rs diff --git a/libs/kaptan-time/Cargo.toml b/firmware/libs/kaptan-time/Cargo.toml similarity index 100% rename from libs/kaptan-time/Cargo.toml rename to firmware/libs/kaptan-time/Cargo.toml diff --git a/libs/kaptan-time/src/lib.rs b/firmware/libs/kaptan-time/src/lib.rs similarity index 100% rename from libs/kaptan-time/src/lib.rs rename to firmware/libs/kaptan-time/src/lib.rs diff --git a/libs/kaptan-tx/Cargo.toml b/firmware/libs/kaptan-tx/Cargo.toml similarity index 100% rename from libs/kaptan-tx/Cargo.toml rename to firmware/libs/kaptan-tx/Cargo.toml diff --git a/libs/kaptan-tx/src/lib.rs b/firmware/libs/kaptan-tx/src/lib.rs similarity index 100% rename from libs/kaptan-tx/src/lib.rs rename to firmware/libs/kaptan-tx/src/lib.rs diff --git a/platforms/stm32f7/Cargo.toml b/firmware/platforms/stm32f7/Cargo.toml similarity index 100% rename from platforms/stm32f7/Cargo.toml rename to firmware/platforms/stm32f7/Cargo.toml diff --git a/platforms/stm32f7/src/f722/board.rs b/firmware/platforms/stm32f7/src/f722/board.rs similarity index 100% rename from platforms/stm32f7/src/f722/board.rs rename to firmware/platforms/stm32f7/src/f722/board.rs diff --git a/platforms/stm32f7/src/f722/clock.rs b/firmware/platforms/stm32f7/src/f722/clock.rs similarity index 100% rename from platforms/stm32f7/src/f722/clock.rs rename to firmware/platforms/stm32f7/src/f722/clock.rs diff --git a/platforms/stm32f7/src/f722/data_channel.rs b/firmware/platforms/stm32f7/src/f722/data_channel.rs similarity index 100% rename from platforms/stm32f7/src/f722/data_channel.rs rename to firmware/platforms/stm32f7/src/f722/data_channel.rs diff --git a/platforms/stm32f7/src/f722/firmware.rs b/firmware/platforms/stm32f7/src/f722/firmware.rs similarity index 100% rename from platforms/stm32f7/src/f722/firmware.rs rename to firmware/platforms/stm32f7/src/f722/firmware.rs diff --git a/platforms/stm32f7/src/f722/interrupts.rs b/firmware/platforms/stm32f7/src/f722/interrupts.rs similarity index 100% rename from platforms/stm32f7/src/f722/interrupts.rs rename to firmware/platforms/stm32f7/src/f722/interrupts.rs diff --git a/platforms/stm32f7/src/f722/mod.rs b/firmware/platforms/stm32f7/src/f722/mod.rs similarity index 100% rename from platforms/stm32f7/src/f722/mod.rs rename to firmware/platforms/stm32f7/src/f722/mod.rs diff --git a/platforms/stm32f7/src/f722/motor_inhibit.rs b/firmware/platforms/stm32f7/src/f722/motor_inhibit.rs similarity index 100% rename from platforms/stm32f7/src/f722/motor_inhibit.rs rename to firmware/platforms/stm32f7/src/f722/motor_inhibit.rs diff --git a/platforms/stm32f7/src/f722/peripherals/clock.rs b/firmware/platforms/stm32f7/src/f722/peripherals/clock.rs similarity index 100% rename from platforms/stm32f7/src/f722/peripherals/clock.rs rename to firmware/platforms/stm32f7/src/f722/peripherals/clock.rs diff --git a/platforms/stm32f7/src/f722/peripherals/dma_buffer.rs b/firmware/platforms/stm32f7/src/f722/peripherals/dma_buffer.rs similarity index 100% rename from platforms/stm32f7/src/f722/peripherals/dma_buffer.rs rename to firmware/platforms/stm32f7/src/f722/peripherals/dma_buffer.rs diff --git a/platforms/stm32f7/src/f722/peripherals/gpio.rs b/firmware/platforms/stm32f7/src/f722/peripherals/gpio.rs similarity index 100% rename from platforms/stm32f7/src/f722/peripherals/gpio.rs rename to firmware/platforms/stm32f7/src/f722/peripherals/gpio.rs diff --git a/platforms/stm32f7/src/f722/peripherals/i2c1.rs b/firmware/platforms/stm32f7/src/f722/peripherals/i2c1.rs similarity index 100% rename from platforms/stm32f7/src/f722/peripherals/i2c1.rs rename to firmware/platforms/stm32f7/src/f722/peripherals/i2c1.rs diff --git a/platforms/stm32f7/src/f722/peripherals/mod.rs b/firmware/platforms/stm32f7/src/f722/peripherals/mod.rs similarity index 100% rename from platforms/stm32f7/src/f722/peripherals/mod.rs rename to firmware/platforms/stm32f7/src/f722/peripherals/mod.rs diff --git a/platforms/stm32f7/src/f722/peripherals/spi1.rs b/firmware/platforms/stm32f7/src/f722/peripherals/spi1.rs similarity index 100% rename from platforms/stm32f7/src/f722/peripherals/spi1.rs rename to firmware/platforms/stm32f7/src/f722/peripherals/spi1.rs diff --git a/platforms/stm32f7/src/f722/peripherals/spi3.rs b/firmware/platforms/stm32f7/src/f722/peripherals/spi3.rs similarity index 100% rename from platforms/stm32f7/src/f722/peripherals/spi3.rs rename to firmware/platforms/stm32f7/src/f722/peripherals/spi3.rs diff --git a/platforms/stm32f7/src/f722/peripherals/tim2.rs b/firmware/platforms/stm32f7/src/f722/peripherals/tim2.rs similarity index 100% rename from platforms/stm32f7/src/f722/peripherals/tim2.rs rename to firmware/platforms/stm32f7/src/f722/peripherals/tim2.rs diff --git a/platforms/stm32f7/src/f722/peripherals/time.rs b/firmware/platforms/stm32f7/src/f722/peripherals/time.rs similarity index 100% rename from platforms/stm32f7/src/f722/peripherals/time.rs rename to firmware/platforms/stm32f7/src/f722/peripherals/time.rs diff --git a/platforms/stm32f7/src/f722/peripherals/usart.rs b/firmware/platforms/stm32f7/src/f722/peripherals/usart.rs similarity index 100% rename from platforms/stm32f7/src/f722/peripherals/usart.rs rename to firmware/platforms/stm32f7/src/f722/peripherals/usart.rs diff --git a/platforms/stm32f7/src/f722/peripherals/usart1_tx_dma2_stream7.rs b/firmware/platforms/stm32f7/src/f722/peripherals/usart1_tx_dma2_stream7.rs similarity index 100% rename from platforms/stm32f7/src/f722/peripherals/usart1_tx_dma2_stream7.rs rename to firmware/platforms/stm32f7/src/f722/peripherals/usart1_tx_dma2_stream7.rs diff --git a/platforms/stm32f7/src/f722/peripherals/usart2_tx_dma1_stream6.rs b/firmware/platforms/stm32f7/src/f722/peripherals/usart2_tx_dma1_stream6.rs similarity index 100% rename from platforms/stm32f7/src/f722/peripherals/usart2_tx_dma1_stream6.rs rename to firmware/platforms/stm32f7/src/f722/peripherals/usart2_tx_dma1_stream6.rs diff --git a/platforms/stm32f7/src/f722/routes.rs b/firmware/platforms/stm32f7/src/f722/routes.rs similarity index 100% rename from platforms/stm32f7/src/f722/routes.rs rename to firmware/platforms/stm32f7/src/f722/routes.rs diff --git a/platforms/stm32f7/src/f722/sensors.rs b/firmware/platforms/stm32f7/src/f722/sensors.rs similarity index 100% rename from platforms/stm32f7/src/f722/sensors.rs rename to firmware/platforms/stm32f7/src/f722/sensors.rs diff --git a/platforms/stm32f7/src/lib.rs b/firmware/platforms/stm32f7/src/lib.rs similarity index 100% rename from platforms/stm32f7/src/lib.rs rename to firmware/platforms/stm32f7/src/lib.rs diff --git a/platforms/stm32f7/tests/platform_safety_boundary.rs b/firmware/platforms/stm32f7/tests/platform_safety_boundary.rs similarity index 100% rename from platforms/stm32f7/tests/platform_safety_boundary.rs rename to firmware/platforms/stm32f7/tests/platform_safety_boundary.rs diff --git a/rust-toolchain.toml b/firmware/rust-toolchain.toml similarity index 100% rename from rust-toolchain.toml rename to firmware/rust-toolchain.toml diff --git a/scripts/analyze-fw.py b/firmware/scripts/analyze-fw.py similarity index 100% rename from scripts/analyze-fw.py rename to firmware/scripts/analyze-fw.py diff --git a/scripts/create-dfu-image.sh b/firmware/scripts/create-dfu-image.sh similarity index 100% rename from scripts/create-dfu-image.sh rename to firmware/scripts/create-dfu-image.sh diff --git a/scripts/mavlink-debug.py b/firmware/scripts/mavlink-debug.py similarity index 100% rename from scripts/mavlink-debug.py rename to firmware/scripts/mavlink-debug.py diff --git a/scripts/report-test-coverage.sh b/firmware/scripts/report-test-coverage.sh similarity index 100% rename from scripts/report-test-coverage.sh rename to firmware/scripts/report-test-coverage.sh diff --git a/scripts/summarize-test-coverage.py b/firmware/scripts/summarize-test-coverage.py similarity index 100% rename from scripts/summarize-test-coverage.py rename to firmware/scripts/summarize-test-coverage.py diff --git a/scripts/test-summarize-test-coverage.py b/firmware/scripts/test-summarize-test-coverage.py similarity index 100% rename from scripts/test-summarize-test-coverage.py rename to firmware/scripts/test-summarize-test-coverage.py diff --git a/tests/hitl/.gitkeep b/firmware/tests/hitl/.gitkeep similarity index 100% rename from tests/hitl/.gitkeep rename to firmware/tests/hitl/.gitkeep diff --git a/tests/sitl/.gitkeep b/firmware/tests/sitl/.gitkeep similarity index 100% rename from tests/sitl/.gitkeep rename to firmware/tests/sitl/.gitkeep diff --git a/tools/sitl/CMakeLists.txt b/firmware/tools/sitl/CMakeLists.txt similarity index 100% rename from tools/sitl/CMakeLists.txt rename to firmware/tools/sitl/CMakeLists.txt diff --git a/tools/sitl/Cargo.toml b/firmware/tools/sitl/Cargo.toml similarity index 100% rename from tools/sitl/Cargo.toml rename to firmware/tools/sitl/Cargo.toml diff --git a/tools/sitl/Dockerfile b/firmware/tools/sitl/Dockerfile similarity index 100% rename from tools/sitl/Dockerfile rename to firmware/tools/sitl/Dockerfile diff --git a/tools/sitl/compose.yaml b/firmware/tools/sitl/compose.yaml similarity index 100% rename from tools/sitl/compose.yaml rename to firmware/tools/sitl/compose.yaml diff --git a/tools/sitl/e2e-smoke.sh b/firmware/tools/sitl/e2e-smoke.sh similarity index 100% rename from tools/sitl/e2e-smoke.sh rename to firmware/tools/sitl/e2e-smoke.sh diff --git a/tools/sitl/gazebo-entrypoint.sh b/firmware/tools/sitl/gazebo-entrypoint.sh similarity index 100% rename from tools/sitl/gazebo-entrypoint.sh rename to firmware/tools/sitl/gazebo-entrypoint.sh diff --git a/tools/sitl/kaptan-sim b/firmware/tools/sitl/kaptan-sim similarity index 100% rename from tools/sitl/kaptan-sim rename to firmware/tools/sitl/kaptan-sim diff --git a/tools/sitl/src/config/logging.rs b/firmware/tools/sitl/src/config/logging.rs similarity index 100% rename from tools/sitl/src/config/logging.rs rename to firmware/tools/sitl/src/config/logging.rs diff --git a/tools/sitl/src/config/mod.rs b/firmware/tools/sitl/src/config/mod.rs similarity index 100% rename from tools/sitl/src/config/mod.rs rename to firmware/tools/sitl/src/config/mod.rs diff --git a/tools/sitl/src/config/runtime.rs b/firmware/tools/sitl/src/config/runtime.rs similarity index 100% rename from tools/sitl/src/config/runtime.rs rename to firmware/tools/sitl/src/config/runtime.rs diff --git a/tools/sitl/src/config/store.rs b/firmware/tools/sitl/src/config/store.rs similarity index 100% rename from tools/sitl/src/config/store.rs rename to firmware/tools/sitl/src/config/store.rs diff --git a/tools/sitl/src/config/tests.rs b/firmware/tools/sitl/src/config/tests.rs similarity index 100% rename from tools/sitl/src/config/tests.rs rename to firmware/tools/sitl/src/config/tests.rs diff --git a/tools/sitl/src/kaptan_sitl_quad.cc b/firmware/tools/sitl/src/kaptan_sitl_quad.cc similarity index 100% rename from tools/sitl/src/kaptan_sitl_quad.cc rename to firmware/tools/sitl/src/kaptan_sitl_quad.cc diff --git a/tools/sitl/src/main.rs b/firmware/tools/sitl/src/main.rs similarity index 100% rename from tools/sitl/src/main.rs rename to firmware/tools/sitl/src/main.rs diff --git a/tools/sitl/src/protocol.rs b/firmware/tools/sitl/src/protocol.rs similarity index 100% rename from tools/sitl/src/protocol.rs rename to firmware/tools/sitl/src/protocol.rs diff --git a/tools/sitl/test_kaptan_sim.py b/firmware/tools/sitl/test_kaptan_sim.py similarity index 100% rename from tools/sitl/test_kaptan_sim.py rename to firmware/tools/sitl/test_kaptan_sim.py diff --git a/tools/sitl/world-structure-test.py b/firmware/tools/sitl/world-structure-test.py similarity index 100% rename from tools/sitl/world-structure-test.py rename to firmware/tools/sitl/world-structure-test.py diff --git a/tools/sitl/worlds/kaptan-sitl-quad.sdf.in b/firmware/tools/sitl/worlds/kaptan-sitl-quad.sdf.in similarity index 100% rename from tools/sitl/worlds/kaptan-sitl-quad.sdf.in rename to firmware/tools/sitl/worlds/kaptan-sitl-quad.sdf.in