rbAmp STD — technical reference
Full technical reference for the rbAmp STD module line: register map, transports, commands, measurement and energy model, firmware update, diagnostics and host integration.
Register-map version
0x36.
This reference describes the firmware core shared by every STD module. Members: STD-UI1
(1 voltage + 1 current channel) and STD-U3I3 (3 voltage + 3 current channels, three-phase).
They run the same map and differ only in N_VOLTAGE / N_CURRENT and the variant code, so
everything here is written generically by channel count.
Contents
| # | File | Covers |
|---|---|---|
| 1 | Identity & discovery | magic, versions, capabilities, variant codes, channel counts, UID, board id |
| 2 | I²C transport | 16-bit pointer, read/write sequences, clock stretching, address change |
| 3 | Modbus RTU transport | framing, profiles, register spaces, exceptions, UNLOCK, behaviour rules |
| 4 | Register map | every block with address, type, units, scale, access |
| 5 | Commands | command register, busy/result semantics, error codes, gating |
| 6 | Data-ready output & events | DRDY contract, WIN_SEQ, event flags, thresholds, alarm |
| 7 | Measurement & energy model | windows, units, energy counters, history, event log, time |
| 8 | Configuration, persistence & calibration | what survives reset/power-off, how to save, user-visible calibration |
| 9 | Firmware update | host-side OTA protocol over I²C and Modbus |
| 10 | Diagnostics | status flags, reset cause, counters, health checklist, LEDs |
| 11 | Hardware interface | signals, wiring, interface mode switch, DRDY, reset |
| 12 | Host integration | raw register sequences without our libraries; library pointers |
| 13 | Sequences | canonical step-by-step flows: init, commands, config, address change, energy, history, OTA, unlock |
Conventions used throughout
- Addresses. I²C register addresses are 16-bit, written
0xNNNN. Modbus register addresses are a separate namespace (see Modbus transport); a Modbus address never equals "the I²C address of the same value" — mapping tables are given explicitly. - Byte order. Multi-byte values on I²C are little-endian. On Modbus the native profile is big-endian word order ABCD (configurable), the SDM profile is always ABCD.
- Units (fixed-scale integers, never float, on I²C and the Modbus native profile):
| Quantity | Unit | To SI |
|---|---|---|
| Voltage | mV | ÷1000 → V |
| Current | µA | ÷1 000 000 → A |
| Active power | mW (signed) | ÷1000 → W |
| Reactive power | mvar (signed) | ÷1000 → var |
| Apparent power | mVA | ÷1000 → VA |
| Power factor | Q10 (signed) | ÷1024 → PF |
| Frequency | cHz | ÷100 → Hz |
| Cumulative energy | Wh / varh (i64, signed) and mWh (i64); µWh (i64) and µvarh (i64) counters | — |
| Voltage phase angle | centi-degree (i16, signed) | ÷100 → ° |
| Per-window energy | mW·samples (i64, signed) | see measurement model |
| THD | centi-percent | ÷100 → % |
- Signs. P > 0 = import (consumption); export is negative. Q follows IEC 62053-23 (Q > 0 inductive). PF carries the sign of P. Import/export energy is kept in separate counters.
- Sentinels — per transport. A field a given build does not offer reads, on the Modbus native
profile, a sentinel:
0x8000(i16),0x80000000(i32),0xFFFF(u16); in the SDM profile it reads 0; on I²C such fields simply read 0, and unmapped I²C addresses read0xFF. - Gating rule. A master must gate channel access on
N_VOLTAGE/N_CURRENTand feature access onCAPABILITIES— registers of channels ≥ N and of absent features are not data.