Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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…GuideVisible to clients as
a sensorAdd a sensorstatus fields of the sensors service
a settingAdd a ConfigSectiona section in rohi config
a runtime part with stateAdd a servicea service in rohi status
an operationAdd a control operation or an actionan action in rohi action
networkingUse IP networkingthe network / wifi services
another boardAdd or support a boarda 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

  1. Write the portable logic in a feature crate and test it on the host (Host testing).
  2. Describe it: a config section for its settings, a service for its status and, if it has operations, its actions.
  3. Register it in the firmware (firmwares/altruist-urban: config.rs for sections, control.rs for services).
  4. Build for the chip and flash it (Quick start).
  5. Open it with rohi: rohi status, rohi config, rohi action show it.
  6. Record what you verified in the support matrix.

Complete examples

For the contracts behind each step, follow the links to the SDK component pages and the crate rustdoc in SDK crates.