← Halloween 2026

Cross-Pollination

Laboratory Spec ready · prototype target

Magnetic-wand plant-hybrid puzzle across six identical autonomous cabinets, then an analog Seed Station finish.

On this page

Overview & player flow

Player uses a magnetic wand at a Pollination Cabinet to interact with nine plant specimens. They work trials across the Yellow, Purple, and Blue strains — identifying missing traits, creating hybrids, testing them, repairing unstable combinations. Completing the cabinet yields a Hybrid Index. They take the index to the Seed Station, use the Field Guide + worksheet to solve more clues, and assemble the correct materials in a clear specimen capsule.

Each of the six cabinets is autonomous. Networking / telemetry / coordinated effects are additive and never required for local gameplay.

Photos Cross-Pollination cabinet

Cross-Pollination cabinet.

Identity & readiness
FieldValue
Device classcross_pollination
Instancescross_pollination_01_06 (6 cabinets, interchangeable)
ControllersArduino Mega (game brain) + ESP32 (show/service)
RoomLaboratory
Instance selector0–9 BCD thumbwheel on ESP32 (0 = unassigned/service)
Spec statusDesign received (working spec); Brett original doc pending
Prototype statusNot yet built — first prototype target
Open questions10 (see below)
Firmware
⚠ Placeholder — no firmware built yet Nothing below is a real build. Real entries (version, build hash, download, changelog) get filled once firmware exists and is pushed. Until then these are mockups of the intended layout.

Latest firmware

ImageBoard targetVersionDownload
Cross-Pollination applicationArduino Mega 2560 v0.0.0 Placeholder Placeholder — no build yet
Show-network firmwareESP32 v0.0.0 Placeholder Placeholder — no build yet
Changelog
⚠ Placeholder changelog Example of the format only — Placeholder. No real releases exist. Each real entry: version · date · board target · what changed · compatible units.
Build list / BOM — per cabinet (×6)

Supplier part numbers are Placeholder until sourcing is locked. Components and quantities below are real (from the working spec).

QtyComponentRole / notesSupplier P/N
1Arduino Mega 2560Local game brain — needs 16 analog inputsPH
1ESP32Show-network / service endpointPH
16Analog Hall sensors (49E / SS49E)To Mega A0–A15; shared 5 V + GNDPH
98×8 addressable RGB matrices576 px; WS2812B or WS2815 — verifyPH
9UV / blacklight zonesIndependent; MOSFET-drivenPH
34-channel MOSFET PWM boards9 UV channels usedPH
1Magnetic wandNo electronicsPH
1DFPlayer Mini / YX5200 + microSDSemantic cues → tracksPH
1Passive full-range speakerA/B test in cabinetPH
1Regulated 5 V supplyElectronics + RGB (parallel injection)PH
112 V UV supplySubject to tape verificationPH
10–9 BCD thumbwheel selectorOn ESP32PH
Wiring & service diagram / harness
⚠ Placeholder — pending first prototype The final one-sided ~8.5×5.5 in landscape B/W service diagram and the wire harness / formboard (loom) doc are produced from the reference cabinet, then frozen (pin map, component locations, harness routing, connector IDs, wire labels, cut lengths). None exist yet.

Hall sensor grid (real — 16 sensors → 9 chambers)

S0 ------- S1 ------- S2 ------- S3
 | Box 1  | Box 2  | Box 3  |
S4 ------- S5 ------- S6 ------- S7
 | Box 4  | Box 5  | Box 6  |
S8 ------- S9 ------ S10 ------ S11
 | Box 7  | Box 8  | Box 9  |
S12 ----- S13 ----- S14 ----- S15

Each chamber is scored from its four surrounding sensors. RGB: three data chains by row (1–3 / 4–6 / 7–9); distribute 5 V in parallel — never rely on matrix-to-matrix power transfer. Common ground with the controller.

Game logic

Chamber map (3×3)

1 Pure Branching | 2 Yellow/Flowering | 3 Pure Upright
4 Yellow/Branch  | 5 Pure Flowering   | 6 Purple/Upright
7 Purple/Branch  | 8 Blue/Flowering   | 9 Blue/Upright

Family pairs: Yellow = 2+4, Purple = 6+7, Blue = 8+9. Missing-form answers: Yellow missing Upright = 3; Purple missing Flowering = 5; Blue missing Branching = 1.

State machine

IDLE → TRIAL_1_{YELLOW|PURPLE|BLUE} → TRIAL_2_… → TRIAL_3_…
→ TRIAL_4_{STABLE|WEAK|FAILED} → TRIAL_5_{WEAK_REPAIR|FAILED_REPAIR}
→ TRIAL_6_STEP_{1|2|3} → FINALE → HYBRID_INDEX → RESET

Trial-specific game logic from Brett's brief is authoritative; engineering must not silently rewrite it.

Media manifest

Audio cue naming — example from the brief; final list TBD (not placeholder-fake, but not the frozen manifest either):

001_START · 010_T1_YELLOW_OK … 032_T3_BLUE_OK
040/041/042_T4_* · 050/051_T5_* · 060/061/062_T6_*
090…095_WRONG_* · 101…106_INDEX_*
Show-control / tunable values (future)
⚠ Placeholder — future show-edit mode These are the named parameters an operator would adjust by voice in "show edit mode," resolved to an exact device + value and pushed live via Bifrost. Names, ranges, and defaults below are Placeholder illustrations — not wired to anything yet.
ParameterTargetRangeDefault
rgb_brightness PHRGB matrices0–255180
uv_hold_ms PHUV zones0–100003000
success_volume PHDFPlayer0–3022
Open questions — shop demo checklist
  1. Characterize Hall sensors with the actual wand + cabinet; log raw values.
  2. Test centers / dividers / corners / distances / orientations → thresholds, filtering, ambiguity margin, sensitivity normalization.
  3. Identify actual RGB panel type (WS2812B vs WS2815) before freezing V/data.
  4. Validate one RGB row (3 chambers) + parallel 5 V power injection.
  5. Verify UV tape: voltage, polarity, pad topology, current, common +/− ; confirm 12 V rail. Prototype one MOSFET channel.
  6. Prototype DFPlayer UART playback + volume; A/B the passive speaker.
  7. Bring up Mega↔ESP32 semantic identity/status (DESCRIBE) exchange.
  8. Demonstrate ESP-NOW telemetry with NO gameplay dependency.
  9. Verify BCD selector changes logical identity (_01…_06) without reflashing.
  10. Confirm 3-data-chain RGB layout on real hardware.

Open design item: the Seed Station second phase (Field Guide, worksheet, capsule) is analog and not yet specified electronically.