Controller & field wiring
This page is for the field technician doing the install, and the developer who needs to know what
the copper actually is. It covers the ModBerry controller, every terminal, the parts list, how RISER
ties into three ages of boiler, and the safety chain you must never touch. Read it alongside the
System blueprint — the tags here (S1, R1, SF2…) are the boxes on that
drawing.
Working drawing, not for construction without field verification. Confirm polarity, part numbers, and terminal assignments on the actual unit before you energize anything.
The controller: ModBerry 500 CM4
Section titled “The controller: ModBerry 500 CM4”The edge controller (C1) is a ModBerry 500 CM4 (TECHBASE) — a Raspberry Pi Compute Module 4
in an industrial, DIN-rail enclosure. One box carries everything RISER needs:
- Analog inputs for the 4–20 mA temperature and pressure transmitters,
- a thermocouple input for the flue,
- RS-485 for the onboard sensor module and the boiler’s own controller,
- a digital output that drives the interposing relay,
- and LTE for the backhaul.
It runs Debian + systemd, and the RISER edge agent is the program on it. The agent’s control loop and safety interlocks run on this box, not in the cloud.
Fallback controller. Where the ModBerry doesn’t fit, the design drops in a Revolution Pi
Connect 5 plus AIO + DIO modules, an external 4G router, and a UPS. The RevPi reads RTDs natively
but costs more per unit. Both are built against the same IODriver interface, so the agent code does
not change — see From code to copper.
Terminal map
Section titled “Terminal map”Wire the controller to these terminals. Physical IDs (AI1, DO1, TC1) are what the installer
lands wire on; the config IDs (ai0, do0, tc0) are what the code uses — the mapping is in
From code to copper.
| Terminal | Direction | Signal | Lands |
|---|---|---|---|
AI1 |
in | 4–20 mA | Supply water temp (S1) |
AI2 |
in | 4–20 mA | Return water temp (S2) |
AI3 |
in | 4–20 mA | Steam pressure (S3, steam only) |
AI4 |
in | 4–20 mA | Outdoor air temp (S4) |
TC1 |
in | Type-K | Flue gas temp (S5) |
RS-485 A/B/G |
in/out | Modbus RTU | Onboard sensor module + boiler controller (B2) |
DO1 |
out | 24 V | Interposing relay coil (R1) |
PWR |
in | 24 VDC | From the DIN PSU / UPS |
ANT |
in | RF | LTE antenna (N1) |
Bill of materials
Section titled “Bill of materials”Keyed to the tags on the blueprint. This is the shopping list per building.
Field sensors
Section titled “Field sensors”| Tag | Component | Part / detail | Signal | Connects to |
|---|---|---|---|---|
S1 |
Supply water temp | M12TXSS RTD probe + 4–20 mA transmitter | 4–20 mA | Controller AI1 |
S2 |
Return water temp | M12TXSS RTD probe + 4–20 mA | 4–20 mA | Controller AI2 |
S3 |
Steam pressure | Dwyer 616KD + diaphragm siphon (steam only) | 4–20 mA | Controller AI3 |
S4 |
Outdoor air temp | Outdoor RTD transmitter (weather-reset) | 4–20 mA | Controller AI4 |
S5 |
Flue gas temp | Tempco TPW00036 thermocouple | Type-K | Controller TC1 |
Edge controller & power
Section titled “Edge controller & power”| Tag | Component | Part / detail | Signal | Connects to |
|---|---|---|---|---|
C1 |
Edge controller | ModBerry 500 CM4, runs the RISER agent | all I/O + LTE | Hub for everything |
P1 |
AC service feed | 120 VAC building supply | 120 VAC | PSU P2 + switched line to R1 |
P2 |
DC power supply | 24 VDC DIN-rail PSU | 24 VDC | UPS P3, controller PWR |
P3 |
UPS | Battery ride-through | 24 VDC | Controller PWR |
Actuation, boiler & native safety
Section titled “Actuation, boiler & native safety”| Tag | Component | Part / detail | Signal | Connects to |
|---|---|---|---|---|
R1 |
Interposing relay | Briidea 24 V coil → 120 V SPDT contact | 24 V coil / 120 V | Driven by DO1, switches B1 call-for-heat |
B1 |
Boiler / burner | Existing plant under control | — | Call-for-heat from R1, gated by SF chain |
B2 |
Boiler Modbus controller | Modern boilers only | RS-485 | Controller RS-485 (read + write) |
SF1 |
Aquastat (high limit) | Native safety, never bypassed | line | Series burner-enable string |
SF2 |
Low-water cutoff (LWCO) | Native safety, never bypassed | line | Series burner-enable string |
SF3 |
Pressure relief valve (PRV) | Native mechanical safety | — | Boiler vessel / burner |
Connectivity & cloud
Section titled “Connectivity & cloud”| Tag | Component | Part / detail | Signal | Connects to |
|---|---|---|---|---|
N1 |
Cellular antenna | External LTE antenna | RF | Controller ANT |
N2 |
Carrier SIM | T-Mobile data SIM | — | Controller modem |
N3 |
LTE network | Carrier cellular | RF / IP | Internet |
N4 |
Internet | Public network | HTTPS | Backend K1 |
K1 |
RISER backend | FastAPI application | HTTPS | Receives telemetry, serves commands |
K2 |
Database | PostgreSQL | SQL | Backend K1 |
K3 |
Operator web app | Browser dashboard | HTTPS | Backend K1 |
Boiler integration: three ages of boiler
Section titled “Boiler integration: three ages of boiler”RISER meets the boiler where it is. How you connect depends on how modern the boiler’s own controls are.
| Boiler age | How RISER connects | Control you get |
|---|---|---|
| Modern | RS-485 Modbus straight to the boiler controller (B2). Reads status, writes setpoints. |
Full read + setpoint write |
| Older | Interposing relay (R1) to the aquastat terminals, plus RISER’s own sensors for visibility. |
On/off + rich monitoring |
| Really old | Interposing relay (R1) switches the 120 VAC call-for-heat. |
On/off only |
In every case RISER adds its own sensors (S1–S5) for visibility — even a really-old boiler
gets full telemetry, it just gets simpler control.
The interposing relay (why it exists)
Section titled “The interposing relay (why it exists)”The controller output (DO1) is a low-voltage 24 V signal. The boiler’s call-for-heat is line
voltage. The interposing relay R1 bridges the two: the controller energizes the 24 V coil, and
the relay’s contact switches the 120 V.
Safety-critical wiring. RISER never switches line voltage from the controller. It only energizes a relay coil. Confirm relay polarity so that energized coil = boiler enabled — the de-energized (power-loss) state must fall back to the boiler’s native controls, heat available.
The native safety chain — never bypassed
Section titled “The native safety chain — never bypassed”The aquastat (SF1), low-water cutoff (SF2), and pressure relief valve (SF3) are the
boiler’s own, independent, code-required safeties. They are wired in series as the burner-enable
string. RISER’s call-for-heat passes through this string; any one device can shut the burner down
on its own.
RISER is wired in addition to, never in place of, the native safety chain. If you find yourself jumpering out an aquastat or a low-water cutoff to make RISER work, stop — that is wrong. The whole design depends on those devices remaining live and independent.
Power & ride-through
Section titled “Power & ride-through”120 VAC (P1) → 24 VDC DIN PSU (P2) → UPS (P3) → controller. The UPS gives the controller
ride-through so a brief power sag doesn’t reboot it mid-cycle. On a full outage the boiler’s native
controls keep heat available regardless of the controller’s state.