Design phase: no unit has been built or measured yet. Help build the first one

Kits

Pick a kit, then make it yours.

A kit is a short TOML file that sets zones, Peltiers per zone, heatsink, current limit, sensing option and power supplies. It also states what the kit claims to deliver. Our test suite checks those claims against the thermal model, and also checks power-supply load in a warm room and heating without tripping the cutoffs.

Kit picker

Three questions, one suggestion.

How many people sleep in the bed?
Can a qualified person assemble a mains power module, and can you assemble custom PCBs?
How much do the planned biometrics matter to you?

Compare

Side by side, straight from the kit files.

Kit comparison. Temperatures are model estimates.
SpecSolo StarterDuo StandardDuo Reference
TierTier 0 · modules onlyTier 0 · modules onlyTier 1 · reference PCBs
Zones122
Peltiers per zone344
Current cap per Peltier5 A4.5 A5 A
Zone current limit15 A18 A20 A
SensingLoad cellsPneumaticPiezo grid
Power supplies24 V 280 W + 12 V 80 W, plug-in2× 24 V 280 W + 12 V 120 W, plug-in24 V 750 W in a closed power module + aux 100 W
Coldest water (claim)~21.7 °C*model 21.5 °C~18.8 °C*model 18.6 °C~18.5 °C*model 18.3 °C
Warmest water43 °C safety cap43 °C safety cap43 °C safety cap
Peltier input per zone173 W 62 % of supply, within 80 %186 W 66 % of supply, within 80 %230 W 61 % of supply, within 80 %
Aux load40 W of 80 W65 W of 120 W65 W of 100 W
Kit checkClaims holdClaims holdClaims hold

* Model estimate for a sleeper in bed in a 25 °C room. The headline is the kit's claim, which the tests prove the model meets; "model" is the thermal model's own value. No prototype has been measured yet.

What can my kit do?

Coldest water by room temperature.

A warmer bedroom means warmer water. These values come from the open thermal model with a sleeper in bed, at the power each kit draws at that point. Model estimates, not measurements.

Coldest reachable water by room temperature, sleeper in bed. Model estimates.
RoomSolo StarterDuo StandardDuo Reference
20 °C room19.7 °C 171 W/zone16.7 °C 183 W/zone16.4 °C 227 W/zone
25 °C room21.5 °C 173 W/zone18.6 °C 186 W/zone18.3 °C 230 W/zone
28 °C room22.6 °C 174 W/zone19.8 °C 188 W/zone19.4 °C 232 W/zone
30 °C room23.4 °C 175 W/zone20.5 °C 189 W/zone20.2 °C 233 W/zone

Tiers

Modules first. Custom boards when you want them.

Tier 0

Modules only

Off-the-shelf boards and PC-watercooling parts on a DIN rail or carrier plate. No custom PCB, and soldering is optional. Power comes from certified plug-in supplies: you never wire mains.

Tier 1

Reference PCBs

A power board and a cover sensor board. Smaller, quieter and cleaner, but it needs PCB assembly, and its mains module must be assembled by a qualified person.

Both tiers run the same control firmware and speak the same protocol, so parts, software and documentation are shared.

Module mapInside the hub enclosure next to the bed: the hub module talks to the control module over OPL; the control module drives the power module, which feeds the thermal modules; the reservoir feeds the thermal modules, which exchange water with the water mats. Sensing reports to the hub; add-ons connect through Home Assistant.HUB ENCLOSURE · NEAR THE BEDHUB MODULEESP32-S3 + ESPHomeor Raspberry PiCONTROL MODULEPico 2 control MCUsafety firmwarePOWER MODULEcertified 24 V + 12 V suppliesTEC drivers · relaysTHERMAL MODULE ×ZONESTECs · cold plates · heatsinksfans · pump · flow · cutoffsRESERVOIR + PLUMBINGlevel sensor · fill portdry-break couplingsWATER MAT ×ZONES+ optional blanketor pillow coverSENSINGload cells | pneumatic| piezo gridADD-ONSvibration alarm · basespeakerOPLHOME ASSISTANT
Inside the enclosure: hub ⇄ control over OPL, control → power → thermal, reservoir → thermal ⇄ water mat. Outside: sensing reports to the hub, add-ons connect through Home Assistant. The control module is the only safety part.

Bring your own kit

Copy a TOML. Run the tests.

Copy solo-starter.toml, change it, and run the tests. That is the real estimator: the same checks that guard the three kits above run on yours. Safety limits are not configurable in a kit file, and the loader rejects any attempt.

solo-starter.toml in the repository

# one time
git clone <repo> && cd open-bed-climate
cp hardware/kits/solo-starter.toml hardware/kits/my-kit.toml
# edit my-kit.toml, then:
cd software/opod && uv run pytest -q