omnitiles/lib.rs
1// SPDX-License-Identifier: MIT
2// © 2025–2026 Christopher Liu
3
4//! # OmniTiles Firmware
5//!
6//! This crate contains all firmware components for the OmniTiles robotics platform, written in
7//! Rust, targeting an STM32F777 MCU.
8//!
9//! ## Crate Structure
10//!
11//! | Module | Purpose |
12//! | ------ | -------- |
13//! | [`hw`] | MCU-level wrappers around USART, SPI, CAN, timers, etc. |
14//! | [`drivers`] | Device-level drivers (e.g., DRV8873, GDZ468) |
15//! | [`motors`] | Actuator-level structures (lift, tilt) built on top of drivers |
16//! | [`control`] | Control algorithms (PID, high-level control) |
17//!
18//! ## Getting Started
19//!
20//! Build docs:
21//!
22//! ```bash
23//! cargo doc --no-deps --open
24//! ```
25//!
26//! Flash the board:
27//!
28//! ```bash
29//! cargo run --release
30//! ```
31//!
32//! ## Hardware Notes
33//!
34//! * **MCU:** STM32F777VI
35//! * **Debug UART:** USART1 @ 115200 baud
36//! * **Lift Motor:** FIT0185 with DRV8873 driver over SPI4 and TIM2 32-bit quadrature encoder
37//! * **Tilt Motor:** GIM6010-48 over CAN2 with built-in GDZ468 encoder
38//!
39//! ## License
40//!
41//! Licensed under the **MIT License**.
42//! See the `LICENSE` file in the repository root for full terms.
43//!
44//! © 2025–2026 Christopher Liu
45
46#![no_std]
47
48pub mod control;
49pub mod drivers;
50pub mod hw;
51pub mod motors;