Lighted switch + separate state-indicator LED (ESP32-S3 master โ†” Modbus sub)

wheel / pinch = zoom ยท drag = pan
switch_indicator_twoboard 2014 RAM 1500 Carputer โ€” LIGHTED SWITCH + SEPARATE STATE-INDICATOR LED, on the two-board chain (ESP32-S3 MASTER <-> Modbus IO SUB over RS485) Design: the switch's OWN light is a dumb ALWAYS-ON locator (find it in the dark). A SEPARATE LED mounted ABOVE the switch shows TRUE LOAD STATE, driven by a Waveshare DO. Two light jobs, decoupled: locator = hardwired to 12V (Waveshare never touches it) ยท state indicator = low-side switched by a DO (12V on the anode, DO grounds the cathode). Why: on a MOMENTARY switch a contact-tied light can't stay lit. Separating them keeps the state light in sync with voice/app/auto, and frees switch choice. LEGEND:   blue = contact->DI   ยท   green = indicator LED- ->DO (sink = load ON)   ยท   red = +12V   ยท   black = GND   ยท   magenta = RS485   ยท   purple dashed = DO->load relay sw LIGHTED MOMENTARY SWITCH (ON)-OFF pin NO (contact) pin COM (contact) LED+ (locator) LED- (locator) gnd GND rail (panel) sw:com->gnd COM->GND sw:lm->gnd locator LED- ->GND (always on) mod Modbus RTU IO 8CH @ PANEL (RS485 SLAVE, addr 2) no brain โ€” master polls/commands it DI1 (switch) DO1 (state LED) V+ 7-36V GND RS485 A RS485 B sw:no->mod:di1 NO->DI1 (24 AWG, signal) ind STATE-INDICATOR LED (mounted ABOVE the switch) anode + cathode - ind:k->mod:do1 cathode->DO1 (sinks when load ON = true state) v12 +12V rail (panel) fused ~1-2A off the house bus v12->sw:lp 12V->locator LED+ (always on) v12->ind:a 12V->indicator anode v12->mod:v module power gnd->mod:g house +12V always-on house bus house->v12 tap + 1-2A fuse ctrl Waveshare ESP32-S3-POE-ETH-8DI-8DO โ€” RS485 MASTER holds the load STATE (source of truth) ยท ESPHome ยท WiFiโ†’MQTTโ†’dash RS485 A RS485 B DO load mod:a->ctrl:a RS485 A (Cat5 pair1) mod:b->ctrl:b RS485 B relay Bosch relay (relay/fuse box) ctrl:ld->relay DO trigger (mA) note WIRING โ€” ONE CONTROL POINT = 1 DI + 1 DO โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ Switch locator LED:   LED+ -> 12V rail,  LED- -> GND rail   = ALWAYS glowing (dumb; Waveshare never drives it). Switch contact:       NO -> DI1,  COM -> GND rail            = dry contact; press pulls DI1 to ground. State indicator LED:  anode -> 12V rail,  cathode -> DO1     = DO sinks when load ON -> LED lights (true state).   Use a 12V pre-resistored indicator LED (no external resistor).  DO sinks 500mA; an LED is ~15mA. ONE cable home (sub -> master): solid Cat5 -> pair1 = RS485 A/B ยท pair2 = 12V + GND ยท 2 spare. One 8DI/8DO sub hosts up to 8 of these switch+indicator pairs. SIGNAL FLOW on a press:   1. press -> NO closes -> DI1 to GND.   2. master polls SUB over RS485 -> sees DI1 change.   3. master toggles load state -> fires the Bosch relay (DO load).   4. master commands SUB DO1 -> indicator LED lights (true state).   5. master publishes state over WiFi/MQTT -> dash.   (app / voice take the SAME path -> switch + indicator + dash stay in sync.) load THE LOAD (light / accessory, house 12V, fused) relay->load switched + fused (carries the load)

open the PDF version โ€บ

โ€น prevnext โ€บ