Skip to content

Repository files navigation

BeamControl

BeamControl controls four-channel RF receiver boards from a Raspberry Pi 5 over CAN.

flowchart LR
    operator["Operator<br/>beamctl / dashboard"] --> pi["Raspberry Pi 5<br/>CAN node 0"]
    pi -->|"CAN 2.0B<br/>500 kbit/s"| stm32["STM32 receiver board<br/>node 1..30"]
    stm32 --> channels["RF channels 0..3"]
Loading

One board is one CAN node. Phase shifters and DVGAs are board-local devices.

Layout

Path Purpose
pi/ Python client, CLI, monitor, dashboard, deployment
stm32/ STM32F072 firmware
protocol/ Shared Python/C vectors
simulation/ Docker/SocketCAN/Renode E2E
tools/ Setup, checks, bundles
docs/ Protocol, RF, operations

Develop

make setup
make doctor
make test
make check
make simulation-test

Firmware

make firmware NODE=1
make firmware-size NODE=1

Node IDs are 1..30 and must be unique. Outputs are under stm32/app/build/.

Controller

beamctl discover
beamctl ping 1
beamctl set-phase 1 --state 128 --channel 2
beamctl set-phase 1 --states 128 64 32 16
beamd --config /etc/uorocketry/beamcontrol.toml

beamctl supports individual and four-channel phase, VGA, combined, and safe commands. See the Pi controller for the complete CLI. beamd serves a read-only dashboard on port 8080 and remains available when CAN is offline.

Docs

About

No description, website, or topics provided.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages