How gaucho-rocket-project/gse works
GSE is a two-board rocket ground-support system: operators use a local web console to configure and command a host link engine, which exchanges framed messages with a ground bridge and vehicle firmware; the vehicle independently enforces output safety. The graph follows that route and separates host controls, shared protocol, firmware logic, and hardware. README documents key operating-mode, countdown, telemetry, logging, radio configuration, and simulator capabilities. Unsampled subsystems are included only at supported directory granularity; edges without direct evidence are omitted.
Main entry points: engine.rs Link engine · hal.rs Hardware abstraction · vehicle.rs Vehicle controller · ground.rs Ground bridge
Components 25
Operator host
- Web console
crates/gse-app/web/app.js - HTTP and SSE
crates/gse-app/src/http.rs - Link engine
crates/gse-app/src/engine.rs - Host interlocks
crates/gse-app/src/safety.rs - Shared state
crates/gse-app/src/state.rs - Settings
crates/gse-app/src/config.rs - USB serial
crates/gse-app/src/serial/mod.rs - Transport
crates/gse-app/src/transport.rs - Session logs
crates/gse-app/src/logging.rs
Wire protocol
- Framing and codec
crates/gse-proto/src/frame.rs - Wire messages
crates/gse-proto/src/message.rs - Controls and events
crates/gse-proto/src/control.rs - State snapshot
crates/gse-proto/src/state.rs - Control state machine
crates/gse-proto/src/fsm.rs
Board firmware
- Ground bridge
crates/gse-fw-core/src/ground.rs - Vehicle controller
crates/gse-fw-core/src/vehicle.rs - Hardware abstraction
crates/gse-fw-core/src/hal.rs - Radio drivers
crates/gse-fw-core/src/radio.rs - E28 radio support
crates/gse-fw-core/src/e28.rs
Hardware and simulation
- Board simulator
crates/gse-sim/src/main.rs - Simulator TCP
- STM32 hardware
firmware/stm32h753/src/hw.rs - RF link
- Vehicle outputs
Other components
- Operator
Connections 30
- Operator → Web console: operates
- Web console → HTTP and SSE: requests
crates/gse-app/src/http.rs - HTTP and SSE → Link engine: submits commands
crates/gse-app/src/http.rs - Link engine → Host interlocks: checks gates
crates/gse-app/src/engine.rs - Link engine → Shared state: publishes state
crates/gse-app/src/engine.rs - HTTP and SSE → Shared state: serves snapshots
crates/gse-app/src/http.rs - Link engine → Transport: uses transport
crates/gse-app/src/engine.rs - Link engine → Settings: uses settings
crates/gse-app/src/engine.rs - Transport → USB serial: opens serial
crates/gse-app/src/transport.rs - Link engine → Session logs: records sessions
crates/gse-app/src/engine.rs - Link engine → Framing and codec: encodes frames
- Framing and codec → Wire messages: encodes messages
crates/gse-proto/src/frame.rs - Wire messages → Controls and events: uses identifiers
crates/gse-proto/src/message.rs - Wire messages → State snapshot: carries state
crates/gse-proto/src/message.rs - Control state machine → Controls and events: evaluates actions
crates/gse-proto/src/fsm.rs - Control state machine → State snapshot: checks state
crates/gse-proto/src/fsm.rs - Ground bridge → Hardware abstraction: uses hardware
crates/gse-fw-core/src/ground.rs - Vehicle controller → Hardware abstraction: drives hardware
crates/gse-fw-core/src/vehicle.rs - Vehicle controller → Control state machine: enforces controls
- Ground bridge → RF link: bridges frames
- Vehicle controller → RF link: exchanges frames
- Hardware abstraction → Radio drivers: supports radios
crates/gse-fw-core/src/radio.rs - Hardware abstraction → E28 radio support: supports E28
crates/gse-fw-core/src/e28.rs - STM32 hardware → Ground bridge: implements bridge
- STM32 hardware → Vehicle controller: implements vehicle
- Hardware abstraction → Vehicle outputs: sets outputs
crates/gse-fw-core/src/hal.rs - Board simulator → Ground bridge: runs state machines
- Board simulator → Vehicle controller: runs state machines
- Link engine → Simulator TCP: connects in sim mode
- Board simulator → Simulator TCP: serves simulation