Create & customize
A firmware is a composition of SDK components plus your own. These guides show how to add each kind of capability; every one of them becomes visible to generic clients without changing a client.
| I want to add… | Guide | Visible to clients as |
|---|---|---|
| a sensor | Add a sensor | status fields of the sensors service |
| a setting | Add a ConfigSection | a section in rohi config |
| a runtime part with state | Add a service | a service in rohi status |
| an operation | Add a control operation or an action | an action in rohi action |
| networking | Use IP networking | the network / wifi services |
| another board | Add or support a board | a new row in the support matrix |
With an AI assistant
Every guide above can be driven by an AI coding assistant. Customize firmware with AI explains the workflow, what to give the assistant and ready-to-use prompts for each kind of change.
The path from code to a client
- Write the portable logic in a feature crate and test it on the host (Host testing).
- Describe it: a config section for its settings, a service for its status and, if it has operations, its actions.
- Register it in the firmware (
firmwares/altruist-urban:config.rsfor sections,control.rsfor services). - Build for the chip and flash it (Quick start).
- Open it with
rohi:rohi status,rohi config,rohi actionshow it. - Record what you verified in the support matrix.
Complete examples
firmwares/altruist-urban: the reference firmware.examples/: one program per sensor and a configuration self-test.- Location: a small, complete service with a section, status and telemetry.
For the contracts behind each step, follow the links to the SDK component pages and the crate rustdoc in SDK crates.