Tie OE to ground and SRCLR to 5 V, and pulse the latch pin after shifting.
What the message means
The chip needs the enable and clear pins in fixed states. Without a latch pulse the outputs do not change.
Fix it in this order
- Connect OE (pin 13) to ground.
- Connect SRCLR (pin 10) to the supply.
- Shift the bits out, then pulse the latch pin.
- Change between MSBFIRST and LSBFIRST if the order is reversed.
- Add a resistor per LED output.
- Add a small capacitor across the supply of the chip.
Why it happens
Two separate problems look alike. Outputs in the wrong order mean the bit order passed to shiftOut() does not match your wiring: MSBFIRST sends bit 7 first, LSBFIRST sends bit 0 first. Outputs that float or flicker usually mean a control pin is unconnected: the 74HC595 has an active-low output enable (OE) and an active-low clear (SRCLR), and a floating input can behave randomly.
Wiring checks
Tie OE to GND so the outputs are enabled and SRCLR to VCC so the register is not cleared. Keep the latch pin (RCLK) low while shifting and raise it once at the end to update the outputs. Put a 0.1 µF capacitor between VCC and GND close to the chip.
digitalWrite(LATCH_PIN, LOW);
shiftOut(DATA_PIN, CLOCK_PIN, MSBFIRST, pattern); // try LSBFIRST if reversed
digitalWrite(LATCH_PIN, HIGH);
Example sketch: change pins and values for your own wiring. It has not been bench-tested on your hardware.
If you see this, do this
| You see | Do this |
|---|---|
| Outputs never change | Latch not pulsed. |
| Outputs reversed | Bit order. |
Related
Last reviewed: November 2026. These are the usual causes and the order that finds them fastest. Test on your own board; clones and cables differ.