Festival Carousel Horse LED Controller Schematic

Set Resistance to "10kΩ" on R32, Set Role Details to "Battery monitor divider upper..." on R32, and 2 more changes

0:01

Set R32's Resistance to "10kΩ"

Set R32's Role Details to "Battery monitor divider upper resistor from +12V_RAIL to BATTERY_ADC per requirement"

Set R33's Resistance to "3.3kΩ"

Set R33's Role Details to "Battery monitor divider lower resistor from BATTERY_ADC to GND per requirement"

0:04

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

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

Documents

    Carousel Horse LED Controller Design Notes

    Firmware Starter — Carousel Horse LED Controller

Assets

No assets added.

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