Use serial for data, parallel for power. Keep the power brick off the sculpture; the heavy LED current never passes through the ESP32.
textAC outlet
│
5 V / 10 A brick — secured on floor/wall
│
7.5 A fuse
│ 12 AWG trunk along one suspension cable
▼
small enclosure at the LED seam
├── power bus ──► both ends of both strips
├── small controller-power branch ──► ESP32
└── ESP32 data/clock ──► outer strip ──► inner strip
1. Series or parallel
Power is parallel:
- Every strip connection receives the same
5 V and GND. - Feed both ends of each strip. Since all four strip ends return to the physical seam, this is conveniently one distribution point.
- Never connect the strips in series for power.
- Use only one 5 V supply and make all grounds common.
Data and clock are serial:
textESP32 GPIO 23 ──► outer DI
ESP32 GPIO 18 ──► outer CI
outer DO ──► inner DI
outer CO ──► inner CI
inner DO/CO: unused
That makes the outer face pixels 0–298 and the inner face 299–582, matching the firmware. Parallel data would merely mirror the faces and prevent independent control.
Lay both strips with their arrows going the same physical direction around the spine. Do not connect the inner strip’s final data output back to the beginning.
2. Power and the block
The current design is 583 pixels with a firmware limit of 7 A, as recorded in params.py. Without that limiter, theoretical full white is roughly 35 A, so the limiter is essential.
Your 5 V / 10 A supply is adequate for the intended 7 A build. I would not buy a larger one. However, the existing barrel plug and screw-terminal adapter are only about a 5 A connection. Therefore:
- For the easiest initial build, set the current limit to about 4.5 A and retain the barrel connector.
- For the intended 7 A build, replace the DC connection with something rated comfortably above 7 A—XT60, Anderson Powerpole, or direct covered terminals—and use the 7.5 A fuse described in BUILD.md.
- Put the fuse near the supply, before the long cable, so it protects that cable too.
The block is indeed the AC/DC converter. It should not hang from the artwork or from its electrical cord. Recommended arrangement:
- Brick on the floor, wall, shelf, or otherwise independently secured.
- A low-voltage cable runs up alongside one suspension cable.
- Use 12 AWG pure-copper two-conductor cable for a run of up to roughly 10 feet at 7 A. At that distance its calculated drop is about 0.22 V.
- 14 AWG is reasonable for approximately 5 feet.
- The existing 18 AWG recommendation applies only to short injection branches on the sculpture, not a floor-to-ceiling feed. Southwire’s voltage-drop calculator is useful for the final measured distance.
If the brick must be near the ceiling, secure it independently, keep it ventilated and accessible, and do not bury it inside a closed canopy. Running 12 or 24 V upward and converting to 5 V near the sculpture can use thinner cable, but it adds another converter and heat source; this piece is small enough that 12 AWG at 5 V is simpler.
3. Wire at the ESP32
The heavy power wire does not connect to the ESP32:
- Supply-to-sculpture trunk: 12–14 AWG.
- Short power injection branches: 18–20 AWG.
- ESP32 clock, data and signal ground: 22–24 AWG is plenty.
Dupont jumpers are electrically adequate for clock/data during testing, but mechanically poor for a hanging installation. For the finished controller, use either:
- An ESP32 screw-terminal breakout matching your exact 30- or 38-pin board, or
- A female header/perfboard with 22–24 AWG wires soldered to it, terminating in a locking JST-style connector.
Put the ESP32 and preferably a 74AHCT125 level shifter in a small enclosure at the strip seam. That keeps the 8 MHz clock/data leads short. Use strain relief so no connector carries cable weight.
For standalone operation, the ESP32 can use a separately fused approximately 1 A branch from the same 5 V bus. Connect that through its USB socket or its 5V and GND pins—never 3V3. Espressif specifies that USB, 5 V-pin and 3.3 V-pin power are mutually exclusive, so disconnect external board power before plugging in a programming USB cable. Espressif ESP32-DevKitC power guidance
Before taping the LEDs
A few important mechanical details:
- Choose the electrical seam first, preferably near the suspension cable carrying power.
- Dry-fit before cutting. The calculated counts are 299 outer and 284 inner, but the built spine now wins over the model. Do not trim solely from those nominal numbers.
- Leave the first and last several inches loose at the seam for soldering, testing and strain relief.
- Let the strip pair naturally rotate around the round rail as you advance. The design relies on that relaxed Frenet orientation; forcing a constant “up” direction will torque the strip and spine.
- Self-fusing tape is fine for the initial installation. Use narrow bands between LEDs, wrap completely around the assembly, and do not stretch the LED strips longitudinally.
- Test the full chain at 20% before making permanent connections. Then add both-end power injection and test progressively toward the 7 A limit before installing the diffuser or final clips.
- After installation, record the actual outer and inner pixel counts and update
MEASURED_PX_OUTER, MEASURED_PX_INNER, and the measured spine length in params.py.