Festival Carousel Horse LED Controller Schematic

Work done
  • Completed the remaining schematic updates: replaced the RS-485 placeholder with U5 MAX485CSA+, powered it from 5V, wired UART/control nets, corrected DMX polarity labels to DMX_PLUS / DMX_MINUS, and updated the battery monitor divider to R32=10kΩ / R33=3.3kΩ.
  • Verified OLED is on 3V3 with I2C_SDA / I2C_SCL, dual XLR connectors are wired in parallel, and the user-input nets remain present for the 11 pots, 5 illuminated pushbuttons, and 4 toggles including LOW_BATT_OVERRIDE.
  • Updated the project notes with the four-block organization and full GPIO/signal assignment table: Carousel Horse LED Controller Design Notes.
Success criteria review
  • ✅ User inputs implemented and documented.
  • ✅ Comms/display updates completed, including MAX485, OLED, DMX XLRs, and monitor inputs.
  • ✅ ALL_CAPS net labels used for the updated/significant nets.
  • ✅ GPIO assignment table added to project notes.
  • ✅ ERC check reports no ERROR or WARNING items.
Next steps
  • The schematic is complete; next I can proceed to PCB layout cleanup/placement for the newly replaced MAX485 and then routing/manufacturing checks.
Organize placement
Run layout DRC
Export revision files
Check BOM availability
SW1
U4
U10
U9
OLED1
U8
U1
U7
R32 P2 - R33 P1
J11 Negative - J12 Negative
U5 ~RE~ - U1 GPIO32
VR8 WIPER - C19 P1
RV1 CW - VR1 CW
GND
U5 DI - U1 GPIO27
J1 P1 - D1 A
U1 GPIO23 - U2 A6
R5 P2 - J5 Pin_2
F1 2 - U3 VI
F1 2 - U3 VI
R3 P2 - J3 Pin_2
U5 RO - U1 GPIO26
U7 DefOpen - R12 P1
RV1 CW - VR1 CW
RV1 CW - VR1 CW
F1 2 - U3 VI
RV1 CW - VR1 CW
U9 DefOpen - R14 P1
RV1 CW - VR1 CW
VR1 WIPER - C12 P1
R36 P2 - C40 P1
VR7 WIPER - C18 P1
R23 P2 - U7 LED +
RV1 CW - VR1 CW
VR10 WIPER - C21 P1
RV1 CW - VR1 CW
U1 GPIO13 - R27 P1
VR2 WIPER - C13 P1
U1 GPIO13 - R27 P1
U1 GPIO18 - U2 A2
RV1 CW - VR1 CW
F1 2 - U3 VI
J11 Negative - J12 Negative
F1 2 - U3 VI
RV1 CW - VR1 CW
RV1 CW - VR1 CW
SW4 2 - R18 P1
VR4 WIPER - C15 P1
F1 2 - U3 VI
R3 P2 - J3 Pin_2
VR7 WIPER - C18 P1
VR5 WIPER - C16 P1
U6 AIN- - R34 P1
R9 P2 - J9 Pin_2
U2 B6 - R9 P1
J11 Positive - J12 Positive
RV1 CW - VR1 CW
SW1 DefOpen - R11 P1
U7 DefOpen - R12 P1
RV1 CW - VR1 CW
F1 2 - U3 VI
RV1 CW - VR1 CW
VR5 WIPER - C16 P1
SW6 2 - R19 P1
VR1 WIPER - C12 P1
SW2 2 - R16 P1
U3 + OUT - U4 VIN
J2 P1 - D2 A
RV1 CW - VR1 CW
U8 DefOpen - R13 P1
U2 B5 - R8 P1
SW3 2 - R17 P1
U10 DefOpen - R15 P1
R5 P2 - J5 Pin_2
R8 P2 - J8 Pin_2
U1 GPIO18 - U2 A2
U6 AOUT - R35 P2
U1 GPIO19 - U2 A3
R24 P2 - U8 LED +
J11 Negative - J12 Negative
VR10 WIPER - C21 P1
VR3 WIPER - C14 P1
U3 + OUT - U4 VIN
VR9 WIPER - C20 P1
R22 P2 - SW1 LED +
R32 P2 - R33 P1
R32 P2 - R33 P1
R4 P2 - J4 Pin_2
U1 GPIO21 - U2 A4
U7 DefOpen - R12 P1
J11 Positive - J12 Positive
SW1 DefOpen - R11 P1
RV1 CW - VR1 CW
U6 AOUT - R35 P2
R10 P2 - J10 Pin_2
F1 2 - U3 VI
R6 P2 - J6 Pin_2
U8 DefOpen - R13 P1
U2 B6 - R9 P1
F1 2 - U3 VI
RV1 CW - VR1 CW
R20 P1 - U1 EN
VR9 WIPER - C20 P1
J1 P1 - D1 A
F1 2 - U3 VI
VR2 WIPER - C13 P1
R6 P2 - J6 Pin_2
U1 GPIO16 - U2 A0
R23 P2 - U7 LED +
RV1 WIPER - C11 P1
GND
GND
RV1 WIPER - C11 P1
VR6 WIPER - C17 P1
VR3 WIPER - C14 P1
SW2 2 - R16 P1
RV1 CW - VR1 CW
U2 B3 - R6 P1
R26 P2 - U10 LED +
U3 + OUT - U4 VIN
SW6 2 - R19 P1
U2 B2 - R5 P1
U2 B0 - R3 P1
J11 Negative - J12 Negative
RV1 CW - VR1 CW
J11 Positive - J12 Positive
R9 P2 - J9 Pin_2
U8 DefOpen - R13 P1
U1 GPIO14 - R28 P1
RV1 CW - VR1 CW
U10 DefOpen - R15 P1
J11 Positive - J12 Positive
F1 2 - U3 VI
SW1 DefOpen - R11 P1
U3 + OUT - U4 VIN
U2 B4 - R7 P1
F1 2 - U3 VI
F1 2 - U3 VI
U1 GPIO14 - R28 P1
U3 + OUT - U4 VIN
J11 Positive - J12 Positive
F1 2 - U3 VI
U1 GPIO19 - U2 A3
U9 DefOpen - R14 P1
U3 + OUT - U4 VIN
R8 P2 - J8 Pin_2
VR7 WIPER - C18 P1
U1 GPIO25 - U2 A7
U6 AIN- - R34 P1
RV1 CW - VR1 CW
SW4 2 - R18 P1
D1 K - D2 K
U1 GPIO14 - R28 P1
R7 P2 - J7 Pin_2
RV1 CW - VR1 CW
RV1 CW - VR1 CW
U3 VO_Adj - R37 P1
SW2 2 - R16 P1
RV1 CW - VR1 CW
U2 B1 - R4 P1
U1 GPIO25 - U2 A7
R4 P2 - J4 Pin_2
D1 K - D2 K
R24 P2 - U8 LED +
SW6 2 - R19 P1
U1 GPIO17 - U2 A1
VR3 WIPER - C14 P1
VR8 WIPER - C19 P1
U5 DI - U1 GPIO27
R7 P2 - J7 Pin_2
U1 GPIO23 - U2 A6
U2 B4 - R7 P1
RV1 CW - VR1 CW
U2 B1 - R4 P1
RV1 CW - VR1 CW
U2 B7 - R10 P1
D1 K - D2 K
F1 2 - U3 VI
RV1 CW - VR1 CW
RV1 CW - VR1 CW
VR6 WIPER - C17 P1
SW4 2 - R18 P1
R25 P2 - U9 LED +
VR10 WIPER - C21 P1
RV1 WIPER - C11 P1
U3 + OUT - U4 VIN
U1 GPIO16 - U2 A0
R20 P1 - U1 EN
RV1 CW - VR1 CW
U5 ~RE~ - U1 GPIO32
VR2 WIPER - C13 P1
U1 GPIO13 - R27 P1
U6 AIN- - R34 P1
U3 VO_Adj - R37 P1
U1 GPIO21 - U2 A4
R10 P2 - J10 Pin_2
RV1 CW - VR1 CW
J2 P1 - D2 A
RV1 CW - VR1 CW
SW3 2 - R17 P1
U1 GPIO17 - U2 A1
SW3 2 - R17 P1
U2 B5 - R8 P1
U1 GPIO13 - R27 P1
RV1 CW - VR1 CW
RV1 CW - VR1 CW
RV1 CW - VR1 CW
D1 K - D2 K
U5 ~RE~ - U1 GPIO32
U9 DefOpen - R14 P1
U2 B7 - R10 P1
U2 B2 - R5 P1
D1 K - D2 K
VR4 WIPER - C15 P1
U1 GPIO22 - U2 A5
R26 P2 - U10 LED +
U10 DefOpen - R15 P1
F1 2 - U3 VI
F1 2 - U3 VI
VR9 WIPER - C20 P1
U6 AOUT - R35 P2
R25 P2 - U9 LED +
U2 B3 - R6 P1
RV1 CW - VR1 CW
RV1 CW - VR1 CW
U3 + OUT - U4 VIN
F1 2 - U3 VI
RV1 CW - VR1 CW
R36 P2 - C40 P1
VR1 WIPER - C12 P1
RV1 CW - VR1 CW
VR4 WIPER - C15 P1
RV1 CW - VR1 CW
RV1 CW - VR1 CW
RV1 CW - VR1 CW
J11 Negative - J12 Negative
VR5 WIPER - C16 P1
RV1 CW - VR1 CW
R36 P2 - C40 P1
U5 RO - U1 GPIO26
U3 + OUT - U4 VIN
R22 P2 - SW1 LED +
VR6 WIPER - C17 P1
RV1 CW - VR1 CW
U1 GPIO14 - R28 P1
VR8 WIPER - C19 P1
U1 GPIO22 - U2 A5
U2 B0 - R3 P1
R22
Resistance
1.5kΩ
U10 LED - - R11 P2
GND
MH1 terminal - U12 terminal
R7
Resistance
330Ω
GND
R9
Resistance
330Ω
GND
GND
U11 VSS - U11 A0
RV1 CCW - VR1 CCW
R31
Resistance
560Ω
R16 P2 - R17 P2
U10 LED - - R11 P2
R35
Resistance
100kΩ
GND
GND
RV1 CCW - VR1 CCW
R16 P2 - R17 P2
GND
R26
Resistance
1.5kΩ
RV1 CCW - VR1 CCW
GND
R34
Resistance
2kΩ
J3 Pin_3 - J4 Pin_3
GND
GND
GND
U10 LED - - R11 P2
GND
RV1 CCW - VR1 CCW
R12
Resistance
10kΩ
GND
R4
Resistance
330Ω
R37
Resistance
21kΩ
R31 P2 - J11 GND
GND
GND
RV1 CCW - VR1 CCW
R29
Resistance
120Ω
RV1 CCW - VR1 CCW
RV1 CCW - VR1 CCW
RV1 CCW - VR1 CCW
GND
R31 P2 - J11 GND
RV1 CCW - VR1 CCW
GND
R3
Resistance
330Ω
RSHUNT1
Resistance
0.0005 ohms
GND
GND
GND
R25
Resistance
1.5kΩ
R20
Resistance
10kΩ
U11 VSS - U11 A0
RV1 CCW - VR1 CCW
R16 P2 - R17 P2
RV1 CCW - VR1 CCW
R23
Resistance
1.5kΩ
RV1 CCW - VR1 CCW
J3 Pin_3 - J4 Pin_3
RV1 CCW - VR1 CCW
R16 P2 - R17 P2
RV1 CCW - VR1 CCW
GND
U10 LED - - R11 P2
GND
R18
Resistance
10kΩ
U10 LED - - R11 P2
GND
J3 Pin_3 - J4 Pin_3
RV1 CCW - VR1 CCW
U10 LED - - R11 P2
GND
R15
Resistance
10kΩ
J3 Pin_3 - J4 Pin_3
RV1 CCW - VR1 CCW
MH1 terminal - U12 terminal
J3 Pin_3 - J4 Pin_3
R13
Resistance
10kΩ
R30
Resistance
560Ω
GND
RV1 CCW - VR1 CCW
R28
Resistance
4.7kΩ
MH1 terminal - U12 terminal
RSHUNT1 P2 - R34 P2
RV1 CCW - VR1 CCW
R8
Resistance
330Ω
R36
Resistance
1kΩ
U6 BIN- - U6 BOUT
GND
GND
RV1 CCW - VR1 CCW
J3 Pin_3 - J4 Pin_3
R31 P2 - J11 GND
GND
J3 Pin_3 - J4 Pin_3
R11
Resistance
10kΩ
R19
Resistance
10kΩ
GND
GND
GND
GND
U6 BIN- - U6 BOUT
R24
Resistance
1.5kΩ
RSHUNT1 P2 - R34 P2
GND
GND
R32
Resistance
10 kΩ
R33
Resistance
3.3 kΩ
J3 Pin_3 - J4 Pin_3
RV1 CCW - VR1 CCW
GND
R10
Resistance
330Ω
GND
GND
R21
Resistance
10kΩ
MH1 terminal - U12 terminal
R6
Resistance
330Ω
RV1 CCW - VR1 CCW
R16
Resistance
10kΩ
R17
Resistance
10kΩ
R5
Resistance
330Ω
R14
Resistance
10kΩ
R27
Resistance
4.7kΩ
RV1 CCW - VR1 CCW
VR2
C24
Capacitance
100nF
C16
Capacitance
100nF
C28
Capacitance
100nF
C11
Capacitance
100nF
C14
Capacitance
100nF
C17
Capacitance
100nF
VR4
VR1
C12
Capacitance
100nF
C31
Capacitance
100nF
C20
Capacitance
100nF
C30
Capacitance
100nF
C22
Capacitance
100nF
C23
Capacitance
100nF
C19
Capacitance
100nF
C34
Capacitance
100nF
C33
Capacitance
100nF
C32
Capacitance
100nF
C37
Capacitance
10uF
C25
Capacitance
100nF
C39
Capacitance
10uF
C21
Capacitance
100nF
VR6
C29
Capacitance
100nF
C38
Capacitance
10uF
VR3
C40
Capacitance
100nF
C36
Capacitance
10uF
C26
Capacitance
100nF
VR9
C6
Capacitance
1000uF
C13
Capacitance
100nF
C15
Capacitance
100nF
VR8
VR10
C7
Capacitance
1000uF
C8
Capacitance
470uF
C35
Capacitance
100nF
RV1
C18
Capacitance
100nF
C10
Capacitance
470uF
VR5
C27
Capacitance
100nF
VR7
SW3
U6
U5
U11
U3
MH3
MH2
SW2
U2
D2
J8
MH4
J4
J2
SW4
MH1
J10
J6
J9
J1
J7
J3
D1
SW6
J5
J11
J12
F1
D3

Refine this doc
Ask about this doc
Schematic organization
The schematic is organized into four functional blocks:
  1. Power — battery/charger OR-ing, 12V protection, buck, 3V3 LDO, voltage/current sensing.
  2. ESP32_Core + LevelShifter + WS2815 — ESP32-DEVKITC-32UE, 74HCT245, and 8 WS2815 strip outputs.
  3. User_Inputs — 11 potentiometers, 5 illuminated pushbuttons, 4 latching toggles, and MCP23017 input expansion.
  4. Comms_and_Display — dual XLR DMX connectors, MAX485, and SSD1306 OLED.
Implemented schematic details
  • Potentiometers: 11x 10k linear potentiometers powered from 3V3, each wiper connected to a named POTx_ADC net with a 100nF capacitor to GND.
  • Pushbuttons: 5x illuminated momentary pushbuttons. Switch contacts feed GPIO-expander inputs with 10k pull-down/pull reference network as wired; LED rings are powered from +12V_RAIL through 1.5k resistors and return to GND.
  • Toggle switches: 4x latching toggles on MCP23017 inputs. LOW_BATT_OVERRIDE is the low-battery manual override input.
  • DMX: Dual 3-pin XLR connectors are wired in parallel: pin 1 = GND, pin 2 = DMX_MINUS, pin 3 = DMX_PLUS. MAX485 is powered from 5V and connected to ESP32 UART/control nets.
  • OLED: SSD1306 I2C OLED is powered from 3V3; I2C pull-ups are 4.7k to 3V3.
  • Monitoring: Battery voltage divider is R32=10k upper and R33=3.3k lower per the latest requirement, from +12V_RAIL to BATTERY_ADC; current sense uses the JL-2 shunt return and LM358 gain/filter path to CURRENT_SENSE_ADC.
  • ERC: Latest electrical-rule review reports no ERROR or WARNING checks.
GPIO / signal assignment table

Table


FunctionNet labelESP32 / device pinNotes
WS2815 strip 1 data sourceESP_LED1GPIO16ESP32 -> 74HCT245 A0
WS2815 strip 2 data sourceESP_LED2GPIO17ESP32 -> 74HCT245 A1
WS2815 strip 3 data sourceESP_LED3GPIO18ESP32 -> 74HCT245 A2
WS2815 strip 4 data sourceESP_LED4GPIO19ESP32 -> 74HCT245 A3
WS2815 strip 5 data sourceESP_LED5GPIO21ESP32 -> 74HCT245 A4
WS2815 strip 6 data sourceESP_LED6GPIO22ESP32 -> 74HCT245 A5
WS2815 strip 7 data sourceESP_LED7GPIO23ESP32 -> 74HCT245 A6
WS2815 strip 8 data sourceESP_LED8GPIO25ESP32 -> 74HCT245 A7
WS2815 strip outputsLED_DATA1LED_DATA874HCT245 B outputs via 330ΩEach goes to one 3-pin LED screw terminal
Pot 1 ADCPOT1_ADCGPIO36 / VPADC input, 100nF to GND
Pot 2 ADCPOT2_ADCGPIO39 / VNADC input, 100nF to GND
Pot 3 ADCPOT3_ADCGPIO34ADC input, 100nF to GND
Pot 4 ADCPOT4_ADCGPIO35ADC input, 100nF to GND
Pot 5 ADCPOT5_ADCGPIO12ADC input, strap-sensitive
Pot 6 ADCPOT6_ADCGPIO4ADC input, strap-sensitive
Pot 7 ADCPOT7_ADCGPIO15ADC input, strap-sensitive
Pot 8 ADCPOT8_ADCGPIO2ADC input, strap-sensitive
Pot 9 ADCPOT9_ADCGPIO5ADC input, strap-sensitive
Pot 10 ADCPOT10_ADCGPIO0ADC input, strap-sensitive
Pot 11 ADCPOT11_ADCGPIO27ADC input
Button 1BTN1MCP23017 GPA0Illuminated pushbutton switch contact
Button 2BTN2MCP23017 GPA1Illuminated pushbutton switch contact
Button 3BTN3MCP23017 GPA2Illuminated pushbutton switch contact
Button 4BTN4MCP23017 GPA3Illuminated pushbutton switch contact
Button 5BTN5MCP23017 GPA4Illuminated pushbutton switch contact
Button 1 LEDBTN1_LAMP_12V12V via 1.5kLED cathode to GND
Button 2 LEDBTN2_LAMP_12V12V via 1.5kLED cathode to GND
Button 3 LEDBTN3_LAMP_12V12V via 1.5kLED cathode to GND
Button 4 LEDBTN4_LAMP_12V12V via 1.5kLED cathode to GND
Button 5 LEDBTN5_LAMP_12V12V via 1.5kLED cathode to GND
Toggle modeTOGGLE_MODEMCP23017 GPB0Latching toggle
Toggle patternTOGGLE_PATTERNMCP23017 GPB1Latching toggle
Toggle serviceTOGGLE_SERVICEMCP23017 GPB2Latching toggle
Low battery overrideLOW_BATT_OVERRIDEMCP23017 GPB3Latching toggle, manual override
I2C SDAI2C_SDAGPIO13OLED + MCP23017; 4.7k pull-up to 3V3
I2C SCLI2C_SCLGPIO14OLED + MCP23017; 4.7k pull-up to 3V3
DMX receiveDMX_RXESP32 RX / GPIO3MAX485 RO -> ESP32 RX
DMX transmitDMX_TXESP32 TX / GPIO1ESP32 TX -> MAX485 DI
DMX directionDMX_DE_REGPIO26MAX485 DE and /RE tied together
Battery voltage monitorBATTERY_ADCGPIO32Divider output from +12V_RAIL
Current monitorCURRENT_SENSE_ADCGPIO33LM358 current-sense output/filter
DMX bus positiveDMX_PLUSMAX485 A, XLR pin 3Dual XLR connectors wired in parallel
DMX bus negativeDMX_MINUSMAX485 B, XLR pin 2Dual XLR connectors wired in parallel
Notes for firmware bring-up
  • GPIO1/GPIO3 are shared with the ESP32 DevKit USB-serial path; DMX UART use should be validated against debug/programming needs.
  • Several potentiometer ADC assignments are strap-sensitive because the ESP32 DevKit has limited exposed ADC pins after reserving the required LED, DMX, OLED, voltage, and current-sense functions.
  • Keep all firmware signal names aligned with the ALL_CAPS schematic net labels above.
  • Schematic organization

  • Implemented schematic details

  • GPIO / signal assignment table

  • Notes for firmware bring-up

Carousel Horse LED Controller

Carousel Horse LED Controller thumbnail
Production-ready ESP32-DEVKITC-32UE festival carousel horse LED controller schematic with organized Power, ESP32 + Level Shifter + LEDs, Inputs, and DMX + OLED blocks.

Properties

Properties describe core aspects of the project.

Pricing & Availability

Distributor

Qty 1

Arrow

$46.58–$62.91

Digi-Key

$94.64–$96.13

HQonline

$3.96–$4.05

LCSC

$92.80–$93.12

Mouser

$86.56

TME

$11.05

Verical

$48.20–$81.85

Controls