Peripheral settings
A handful of prefabs — the Serial/Ethernet Reader and Writer, I2C Reader and Writer, the CAN prefabs, and
SPI-based sensors — talk to a physical bus instead of pure data. Each one exposes a channel constant (for
example serial_channel) that says which bus instance it uses, but the bus’s own parameters (baud rate,
IP address, CAN bit timing, and so on) are not set on the node. They live in the
Global Peripheral Configuration panel, one place for the whole blueprint, because several nodes
often share the same physical bus and must agree on how it’s configured.
This is a separate, dedicated panel in the Blueprint Editor — it is not part of the Ship deploy dialog. The deploy dialog only asks which bundle to deploy to; whatever is currently set in this panel travels with it automatically. See Deploying a blueprint.
At a glance, here is every peripheral type and how many channels it has — the sections below cover each one’s settings in full:
| Peripheral | Card in the panel | Channels | Why |
|---|---|---|---|
| UART / Serial | Serial: Channel N | 0, 1 | Two independent UART controllers on the ESP32-S3. |
| I2C | I2C: Channel N | 0, 1 | Two independent I2C controllers on the ESP32-S3. |
| SPI | SPI: Channel N | 0, 1 | Two independent SPI controllers on the ESP32-S3 — channel 1’s pin mapping is still rolling out on the device side, see below. |
| CAN | CAN: Channel N | 0 only | The ESP32-S3 has a single CAN (TWAI) controller — there is no second one to add a channel 1 for. |
| Ethernet | Ethernet: Channel N | 0 only | A single onboard W5500 module. |
Open the panel
Click the sliders icon (Global Peripheral Configuration) in the canvas toolbar, next to Undo / Redo / Copy / Paste. It’s disabled until the canvas contains at least one peripheral-aware prefab with a channel assigned — placing one and giving it a channel number is what makes a settings card appear.
The panel lists one card per active channel, not per node: drop three I2C sensors that all use
i2c_channel: 0, and you still get a single I2C: Channel 0 card, because they physically share the
same bus and must run at the same speed. Cards are grouped by type (Serial, I2C, SPI, Ethernet, CAN) and
sorted by channel number. Deleting the last node that uses a channel removes its card and forgets its
settings.
Values you set here are saved with the blueprint on Save, and are read back the next time you open it — they are not re-entered on every visit.
UART / Serial
Shown in the panel as Serial: Channel N. Used by prefabs whose channel constant starts with uart —
for example the Serial / Ethernet Reader prefab when reading Serial rather than
Ethernet, and the Serial Writer prefab.
Channels: 0, 1 — matching UART Channel 0 / UART Channel 1 in the device’s
Hardware settings.
| Setting | Options | Default |
|---|---|---|
| Baudrate | 1200 to 921600 bps (14 standard steps) | 115200 |
| Data Bits | 5, 6, 7, 8 | 8 |
| Parity | None, Even, Odd | None |
| Stop Bits | 1, 2 | 1 |
| Flow Control | None, RTS, CTS, RTS/CTS | None |
| Mode | Full Duplex, Half Duplex | Full Duplex |
Switching Mode to Half Duplex (RS-485) forces Flow Control to
None and hides the field — half-duplex mode drives the bus through a
single DE (driver-enable) pin instead. That DE pin is assigned per channel
in the device’s Hardware settings;
without it, the UART bus fails to start.
I2C
Shown in the panel as I2C: Channel N. Used by the I2C Reader / Writer prefabs and any sensor prefab
whose peripheral is i2c (for example onboard/Qwiic sensors).
Channels: 0, 1 — matching I2C Channel 0 / I2C Channel 1 in the device’s
Hardware settings. PRIZM Core Neo
wires its onboard accelerometer and RTC to I2C Channel 1 by default — see
I2C Bus.
| Setting | Options | Default |
|---|---|---|
| Baudrate | 100 000 Hz, 400 000 Hz | 100 000 Hz |
The per-node address constant (the I2C device address) stays on the node — only the bus speed is global.
SPI
Shown in the panel as SPI: Channel N. Used by SPI-based sensor prefabs (for example the BMA400 accelerometer’s SPI variant).
Channels: 0, 1 — the device has two independent SPI controllers, so both channels can be used
at once (for example two different SPI sensors on spi:0 and spi:1).
| Setting | Options | Default |
|---|---|---|
| Clock rate | 1 MHz, 2 MHz, 4 MHz, 8 MHz | 1 MHz |
On the device side, Soft AP hardware settings today only expose pin mapping
for SPI channel 0 — support for assigning SPI channel 1’s pins there
is rolling out. Until it appears on your device, wire SPI-based prefabs to
channel 0.
CAN
Shown in the panel as CAN: Channel N. Used by the CAN Reader/Monitor and CAN Writer prefabs. This sets the bus’s bit rate — CAN requires every node on the bus to run at the same speed, so it can’t be a per-node setting.
Channels: 0 only — the device has a single CAN controller today.
| Setting | Options | Default |
|---|---|---|
| Timing | 25, 50, 100, 125, 250, 500, 800 kbps, 1 Mbps | 250 kbps |
Per-frame details (the arbitration ID to send or filter on) stay on the individual CAN node.
Ethernet
Shown in the panel as Ethernet: Channel N. Used by the Serial / Ethernet Reader prefab when reading Ethernet. Unlike the other buses, Ethernet doesn’t run over GPIO pins you assign yourself — it’s a fixed onboard W5500 module wired internally over SPI — so there’s nothing for it in Hardware settings.
Channels: 0 only — the device has a single onboard Ethernet module.
The device acts as a TCP client: it brings up its own network interface, then opens one TCP connection to a remote host and talks to it.
| Setting | Options | Default | Notes |
|---|---|---|---|
| Init type | DHCP, STATIC | DHCP | How the device gets its own IP address. |
| IP Address | text | — | Static IP for the device. Shown only when Init type is STATIC. |
| Subnet Mask | text | — | Shown only when Init type is STATIC. |
| Gateway | text | — | Shown only when Init type is STATIC. |
| Connect IP | text | — | Always shown. The remote host (server) the device connects out to. |
| Connect Port | text | — | Always shown. The port on the remote host. |
If the TCP connection drops, the device retries automatically — no blueprint change needed — but at most once every 15 seconds, so a flapping link shows gaps rather than a tight reconnect loop.