|
ProtoCore v0.0.1
Deterministic, zero-heap network stack for embedded targets
|
Layer: Foundation ยท Build flags: PC_ENABLE_ZWAVE, PC_ENABLE_GATEWAY
A Z-Wave mesh plugged into the gateway through a Silicon Labs 500 / 700-series controller speaking its Serial API over UART. When a node reports, we pull the source node id + payload and publish it northbound.
A Serial API data frame is SOF | LEN | Type | Command | Data | Checksum, and each is acknowledged by a single ACK byte (or NAK / CAN). services/zwave frames + verifies them:
pc_zwave_build_frame() assembles a command the same way (this sketch sends GetVersion at boot). The checksum is 0xFF XOR-folded over LEN..last-data. The codec is host-tested against the documented GetVersion frame (01 03 00 15 E9) in test/test_zwave.
| Controller | ESP32 |
|---|---|
| TX | GPIO 16 (RX) |
| RX | GPIO 17 (TX) |
| VCC | 3V3 |
| GND | GND |
115200 8N1 (a ZM5304 / EFR32 module or a UZB stick's UART).
The flags must reach the library build, so pass them as build flags: