Room Tech Lab Prototype build 01
0 of 21 checks
Productize
Build target One working room node

Make one prop react.
See every signal.

One thin ESP32 node reads an RFID item, a pushbutton and a door sensor. It reports raw hardware events on CAN and executes bounded output commands. The central server owns every game decision.

Field backbone24 V + CAN
Node roleThin remote I/O
Decision ownerCentral server
Safety releaseSeparate hardware

Never make an occupied-room exit depend on this system. The emergency opening stays mechanical or hardwired, independent of ESP32, CAN, server and software. Use the ordered lock only on a test prop or cabinet until a qualified professional approves the real installation.

Two-room wiring target One CAN segment · five thin nodes · short local sensor wires
Two escape rooms on one CAN segment with five thin ESP32 nodes An on-prem central server connects to a CAN gateway. One continuous terminated CAN trunk crosses Room 1 and Room 2. Room 1 has three thin ESP32 nodes and Room 2 has two. Each node has a fused 24 volt feed and short local wires to two nearby sensors. CENTRAL CONTROL + ROOM INFRASTRUCTURE WIRED ETHERNET ONE CONTINUOUS CAN_H / CAN_L TRUNK · 125 kbit/s ROOM 1 · 3 NODES one fused branch per node ROOM 2 · 2 NODES room-local sensor wiring FUSED +24 V ROOM RAIL FUSED +24 V ROOM RAIL Each node converts 24 V locally. 0 V reference is shared by every low-voltage module; return and shield details are omitted. Sensors stay close to their node; locks, motors and other noisy loads use separately protected output branches. DECISION LAYER On-prem central server Room state · rules · operator controls TRANSPORT LAYER Ethernet ↔ CAN gateway Routes events · reports bus health LOW-VOLTAGE DISTRIBUTION 24 V DC PSU + protected branches Separate noisy actuator loads in production END A 120 Ω END B 120 Ω Room 1 fuses 3 protected feeds Room 2 fuses 2 protected feeds NODE R1-A Entry RFID ESP32 · CAN · 24→5 V OUT · pilot light NODE R1-B Door prop ESP32 · CAN · 24→5 V OUT · cabinet lock NODE R1-C Effects prop ESP32 · CAN · 24→5 V OUT · lamp + buzzer NODE R2-A Artifact wall ESP32 · CAN · local 24→5 V OUT · reveal lamp NODE R2-B Exit prop ESP32 · CAN · local 24→5 V OUT · prop lock LOCAL PN532 RFID LOCAL Button GPIO LOCAL Reed door LOCAL Limit switch LOCAL IR beam digital LOCAL Button service LOCAL SENSOR PN532 RFID LOCAL SENSOR Load cell LOCAL SENSOR Reed switch LOCAL SENSOR Pushbutton SHORT GPIO / I²C RUNS No raw 3.3 V signal crosses the room. NODE = NEARBY HARDWARE TRANSLATOR It reports raw state; the server decides what it means.
02

System boundary

Keep nodes thin. Centralize the game.

The ESP32 understands attached hardware. The on-prem server understands the room, the story and the session.

DECISION LAYER On-prem central server

Puzzle rules · room state · timers · hints · logging · operator controls

Wired Ethernet · MQTT
TRANSPORT LAYER Room Ethernet ↔ CAN gateway

Translate · route · buffer · report link health

CAN event + command bus
NODE ARFID + inputs

Read · filter · report

NODE BRelays + lamps

Execute · limit · acknowledge

NODE CMotor interface

Drive · stop · confirm

Central server owns

All meaning and all game state

Correct RFID identities, puzzle order, prerequisites, session progress, scoring, hints, cross-prop rules and operator overrides.

ESP32 owns

Hardware translation and physical limits

GPIO and device drivers, debouncing, RFID communication, output switching, watchdogs, limit switches, hard maximum runtimes and result reporting.

Neither system owns

Emergency escape

Required egress remains mechanical or hardwired and professionally designed outside the game-control path.

  1. 01
    PN532 reads a UID

    The node reports the raw identifier; it does not decide whether the object is correct.

  2. 02
    CAN carries the event

    The gateway forwards node, channel, value, sequence and health metadata.

  3. 03
    The server decides

    The active room state machine validates the UID and issues a bounded output command.

  4. 04
    The node executes

    It switches the driver, enforces the maximum runtime and reports the observed result.

RAW EVENT node-01 · rfid.detected · uid=A419… · seq=184
BOUNDED COMMAND node-02 · output.pulse · ch=1 · 500 ms · cmd=8f2…
How this becomes a production system →
03

Before power

Prepare the bench

Start small. Build and prove one node on the desk before anything goes inside a room.

Do these first

Not in confirmed orders

Still needed / optional

  • Shielded 120 Ω CAN cable10 m, one twisted pair. Example: LAPP 2170260 / 2170263. This is the cable to buy in Linz.
  • Fume extraction or good local ventilationThe Weller station solves the heat; it does not remove flux fumes from your breathing zone.
  • Parts and screw storageThe iFixit project mat and the storage boxes discussed earlier were not in the confirmed orders. Reuse labelled packaging or add organisers later.
No special CAN plug is required. Strip the cable and land the two conductors on CAN_H and CAN_L. The small transceiver boards may need their supplied header pins soldered first.

Confirmed tool order

Set up three bench zones

10 product lines · ordered 24 Aug 2026
A Hot work InLine 90 × 60 ESD mat

Weller WE1010 · five ET tips · Stannol 0.5 mm lead-free solder

Ground the mat only as its instructions specify. Never improvise a connection to mains wiring.
B Hold + terminate VEVOR four-arm third hand

BAURIX stripper/crimper + ferrules · Wera electronics drivers

Crimp stranded wire for screw terminals; do not tin it first. Tug-test every ferrule.
C Test + protect Crenova TRMS multimeter

JOREST ATO fuse set · DollaTek D4184 output modules

Measure voltage, polarity and current before choosing a fuse. The smallest supplied fuse is not automatically correct.
04

Stage one

Build the power spine

Keep 24 V for the physical outputs. Convert one fused branch to 5 V for logic.

05

Stage two

Wire the thin room node

The ESP32 translates local hardware into raw events and bounded actions. It contains device drivers and protective limits, but no puzzle rules or room state.

USB-C
ESP32 38-pin NodeMCU
3V3CAN VCC
GNDCommon 0 V
GPIO 21PN532 SDA
GPIO 22PN532 SCL
GPIO 27Button
GPIO 26Reed
CAN TXGPIO 5
CAN RXGPIO 4
Relay IN1GPIO 32
Lamp MOSFETGPIO 25
Buzzer MOSFETGPIO 33
Future inputGPIO 14

Suggested bench map

One function per pin

PartConnectionSetup note
PN532I²C · GPIO 21/22Set its switches/jumpers to I²C. Use GND and the voltage marked on the actual board.
PushbuttonNO → GPIO 27 + GNDUse the ESP32 internal pull-up. Pressed reads LOW.
Reed sensorCOM/NC → GPIO 26 + GNDIdentify wires with a multimeter; magnet state varies by model.
SN65HVD230CTX 5 · CRX 4 · 3.3 VCAN_H/L go to the cable, never directly to ESP32 pins.

Board labels win. Amazon modules vary. Stop if the printed pin names or voltage markings differ from this guide.

06

Stage three

Add outputs without cooking the ESP32

The node receives a bounded command and sends tiny logic signals. Relay and MOSFET modules handle the 24 V loads.

OUT 01

Cabinet lock

Use on a drawer or prop for this prototype.

GPIO 32→Relay IN1→Fused +24 V→Lock
Add one 1N4007 diode across the lock coil. Stripe/cathode toward +24 V. This catches the voltage spike when power turns off.
OUT 02

Green pilot light

Visible “puzzle solved” feedback.

GPIO 25→D4184 module→24 V lamp
Use one lamp first. Check terminal polarity and confirm that the module switches it fully without warming up.
OUT 03

Electronic buzzer

Short confirmation chirp, not a continuous alarm.

GPIO 33→D4184 module→24 V buzzer
Start with a one-second pulse. Verify polarity and actual voltage range printed on the buzzer.

Preferred module

Use the DollaTek D4184 boards.

They were ordered specifically for the lamp and buzzer outputs. Confirm the labels on the delivered boards, share 0 V with the ESP32 and bench-test each load. If a board or load gets warm, looks dim or behaves weakly, stop.

Reserve modules

Keep the IRF520 boards for comparison.

Do not make them the default ESP32 output. Their gate drive may be weak at 3.3 V. The four-channel relay still needs a separate active-low bench test before attaching the lock.

07

Stage four

Make a real CAN segment

A segment is simply one continuous two-wire CAN trunk between two terminating resistors. Each ESP32 joins it through one transceiver.

Two rooms share one continuous CAN segment with five short node stubs and two end terminators CAN high and CAN low run as one continuous pair from a 120 ohm terminator on the left to a 120 ohm terminator on the right. Room 1 connects three ESP32 nodes and Room 2 connects two ESP32 nodes using short paired stubs. CAN_H CAN_L 120 Ω END A 120 Ω END B R1-A · Entry RFID + button R1-B · Door reed + limit R1-C · Effects beam + button R2-A · Artifact RFID + load cell R2-B · Exit prop reed + button ONE TRUNK · NO STAR SPLITS FIVE SHORT STUBS · TARGET ≤ 30 CM TWO TERMINATORS TOTAL
01The cable is not Ethernet.

It may look similar, but use a shielded 120 Ω twisted-pair CAN cable. The ordered speaker cable is only for 24 V power.

02125 kbit/s is deliberate.

Your puzzle messages are tiny. The lower rate buys noise margin and reliable distance; the cable’s theoretical gigabit capability is irrelevant to the CAN electronics.

03Only two terminators.

Install one 120 Ω resistor across CAN_H and CAN_L at each physical end—not at every room node.

04Keep the trunk straight.

Daisy-chain H to H and L to L. Keep each node’s short branch under roughly 30 cm. Connect signal ground; bond the shield at one end only.

08

Acceptance run

Prove one complete puzzle loop

Run this sequence every time the wiring or firmware changes.

  1. 00:00
    Cold inspection

    Power off. Tug every wire gently. Check polarity, fuse, diode stripe and exposed copper.

  2. 00:30
    Power only

    Verify 24 V, then 5.0 V. Nothing smells, heats, buzzes or moves unexpectedly.

  3. 01:00
    Read inputs

    Press the button, move the magnet and present one NTAG213 sticker, one S50 card and the PN532 kit tag.

  4. 02:00
    Send raw CAN events

    The harness sees the node, channel, UID or input value and increasing sequence. The node never reports “solved.”

  5. 03:00
    Apply one test rule centrally

    A laptop script or temporary Node B harness validates the test UID and sends bounded lamp and buzzer commands.

  6. 04:00
    Release and verify the prop

    The harness commands a brief relay pulse. Node A enforces its maximum duration; the separate reed sensor reports that the prop actually opened.

  7. 05:00
    Failure test

    Unplug CAN, stop Node B and reboot Node A. The emergency opening remains completely unaffected.

09

Ordered inventory

Every product has a job

All 32 confirmed product lines across the prototype and workshop orders are mapped below. Pack surplus becomes labelled room stock, not mystery leftovers.

32product lines shown
Ordered productPackFirst useRest of pack
01 Youmile IP65 ABS box · 200 × 120 × 75 mm1 kitNode A enclosure; terminal strip and PG7 glands handle entry and strain reliefAll included hardware stays with Node A
02 1N4007 rectifier diodes100One flyback diode across the 24 V lock coilLabelled protection spares for future inductive loads
03 24 V electromagnetic cabinet lock · replacement model1Bench prop or drawer, switched by relay channel 1None; never use as an occupied-room safety exit
04 ARCELI 3–24 V electronic buzzers5One Node A confirmation chirpNodes B/C, one installed spare, one workshop spare
05 Gebildet 22 mm 12–24 V pilot lights12Red/yellow/blue/green status set for Node AMatching four-colour sets for Nodes B and C
06 GERUI IRF520 MOSFET modules10Bench comparison / reserve only; D4184 is the default for Node ALabel clearly as non-preferred for direct 3.3 V ESP32 drive
07 ELEGOO four-channel 5 V relay board1Channel 1 switches the lock; 5 V power from the buckChannels 2–4 reserved for future isolated prop contacts
08 KAOLALI six-way ATO fuse box1Protects lock, lamps, buzzer, buck and next node branchesOne branch remains spare; use measured, correctly sized ATO fuses
09 deleyCON 2 × 1.5 mm² copper cable20 m24 V / 0 V trunk and short output branchesFuture room power branches; never use as CAN cable
10 Wago 221 connector set75Serviceable low-voltage power and load distributionSorted by 2-, 3- and 5-way type for later nodes
11 MZHOU 24 V → 5 V buck converter1Creates the fused 5 V logic railPermanent Node A supply after bench USB testing
12 POPPSTAR 5.5 × 2.5 mm terminal adapters5 pairsOne female adapter breaks out the LEICKE supplyThree node/prop service disconnects plus one spare pair
13 LEICKE 24 V · 3 A · 72 W supply1Low-voltage source for the whole prototypeDo not open or modify the mains side
14 120 Ω · 1% resistors100Two CAN terminators, one at each physical endBagged bus spares for future segments
15 BOJACK breadboards + jumper set2 large + 2 smallLarge board for Node A logic; small board for Node B monitorOne large output-control mockup and one small spare; logic only
16 Gebildet recessed NO/NC reed sensors3Node A prop-open confirmationOne sensor allocated to each of Nodes B and C
17 Gebildet 22 mm momentary pushbuttons3Red/yellow/green manual input—one per nodeNodes B/C receive the remaining two
18 NTAG213 adhesive NFC tags15Five tagged props allocated to Node AFive tags each reserved for Nodes B and C
19 MIFARE S50 RFID keycards10Node A builder/test cardsCards for Node B/C testing plus labelled spares
20 Hailege PN532 NFC/RFID reader V3 kit1 kitNode A reader; reads both NTAG213 and MIFARE Classic test itemsIncluded card/keyfob become known-good diagnostic tags
21 ARCELI SN65HVD230 CAN transceivers5One each for ESP32 Nodes A, B and CTwo labelled hot spares
22 USB-C ESP32 NodeMCU / WROOM-32 boards3Node A puzzle controller; Node B desk CAN monitorNode C is the next-room controller / programmed spare
23 Wera 2035/6 A electronics screwdriver set6 + rackSmall screw terminals, module hardware and enclosure workKeep on the bench rack; use the correct blade rather than forcing a terminal
24 Stannol Kristall 611 lead-free solder · 0.5 mm100 gHeaders, diode leads and deliberate soldered jointsStore dry and labelled; do not solder stranded wire before a screw terminal
25 Crenova 6000-count TRMS multimeter1Polarity, 24 V / 5 V rails, continuity, load current and CAN resistanceLow-voltage prototype measurements only; inspect leads before every use
26 Weller WE1010 soldering station1 stationControlled soldering for board headers, diode and wire preparationReturn the iron to its safety stand; switch off when the bench is unattended
27 JOREST standard ATO blade-fuse assortment60 · 2–40 AFit only after measuring each branch and calculating an appropriate ratingSort by rating; buy sub-2 A fuses separately if a branch needs them
28 BAURIX crimper + stripper + ferrulesSet · 2,000 ferrulesTerminate stranded low-voltage wire for screw terminalsSort ferrules by conductor size; every finished crimp gets a pull test
29 DollaTek D4184 MOSFET modules5Preferred low-side switches for Node A lamp and buzzerNodes B/C plus one tested spare after voltage, temperature and load checks
30 InLine antistatic work mat · 90 × 60 cm1 + leadMain protected bench surface for controller and module assemblyConnect only to a verified ESD grounding point according to its instructions
31 Weller ET genuine tip set5 tipsChoose the largest clean tip that comfortably fits the jointChange only when cold; keep tinned and never file the plated surface
32 VEVOR magnetic four-arm third hand1 stationHold loose boards, headers and wires during assemblyIts clamps are mechanical holders, not electrical ground connections

The two RFID families are deliberately different: NTAG213 stickers are NFC Type 2; the S50 cards are MIFARE Classic 1K. The PN532 can read both, but your software should treat them as separate puzzle item types. The iFixit magnetic project mat and the storage organisers discussed later were not present in the confirmed orders, so they are not counted here.

Pin map copied