LED Driver Power Sequencing: Preventing False Flash and Uncontrolled Turn-On
What actually happens is an ordering problem between three things that are not sequenced together: the supply rail, the driver's enable state, and the control pins the microcontroller (MCU) drives. This guide walks through the sequence itself, state by state, then through the measurement that proves the sequence is right.
Quick Answer: Why an Output Can Light Before the Firmware Asks
A driver does not wait for the MCU. From the instant its supply passes the turn-on threshold, it will regulate current into whatever the output pins are connected to, provided its enable pin reads as active. During the ramp, and for the milliseconds between power-on reset and the first pin configuration, every MCU pin is floating or weakly defined, so an enable or dimming input can sit in a state nobody chose.
The result is a short burst of full or partial brightness at an undefined moment. Whether the product shows it depends on how fast each rail rises, where the enable pin's default rests, and whether the output capacitor is discharged. Solving it is a matter of making the order deliberate rather than incidental.
The Four Sequencing States That Decide the Output
It helps to stop thinking of "on" and "off" and start thinking of four states that every design passes through twice. The output can be wrong in any of them, and each state has a characteristic symptom.
| State | What is undefined | Typical symptom |
|---|---|---|
| Rail rising | Driver supply present, control pins floating | Single flash at plug-in or switch-on |
| MCU in reset | Pins are high-impedance or default-muxed | Random segment or channel pattern |
| Firmware initialised | Timing between pin configuration and first write | One full-brightness frame before the first command |
| Rail falling | Supply collapses before the enable is deasserted | Dim decay, ghosting, or a second flash at power-off |
Most designs are tested only in the third state, because that is the state you observe when you type a command. The other three are where the visible faults live.
Enable and PWM State During the Supply Ramp
The enable input is the single most important pin in the sequence, because it decides whether the driver is allowed to act at all. If the enable threshold is reached before the control signal is valid, the driver has permission and no instruction, and it will drive whatever the output pin happens to be sitting at. The cleanest ordering places the enable transition after both the rail and the control signal are known good.
An LED driver enable sequence that is deliberately late costs nothing and removes an entire class of fault. The usual objection is that late enable delays the first valid frame; in practice the delay needed is one control-loop settling time, and no user notices it.
Dimming inputs deserve the same treatment. A PWM pin held low by a pull-down during boot is safe; a PWM pin left floating can be read as a valid duty cycle by a driver with a weak internal bias. This is the mechanism behind most reported cases of an LED power on glitch: the pin is not broken, it is simply undefined for a few milliseconds.
It also matters which rail rises first. When the driver's supply is derived from the same rail that feeds the MCU, both come up together and the race is unpredictable from unit to unit. Where the driver has its own compliance headroom to respect, the interaction between rail order and regulation is described in the guide to LED driver compliance voltage, which is worth reading alongside this one.
MCU Boot Timing: The Window Where Nothing Drives the Pins
Between the moment the supply is valid and the moment the firmware writes its first port register, the MCU is not driving anything. That window is short in absolute terms but enormous compared with the propagation delay of an LED driver, which is measured in microseconds. Nothing in the driver waits for the MCU to catch up.
There are three practical controls here. First, choose pins whose reset default is the inactive state for the function they serve, and verify that claim in the datasheet's reset-state table rather than assuming it. Second, configure the port direction and the output latch in the correct order, because writing the latch after switching to output can emit a transient level. Third, initialise the driver's own registers before enabling its output stage.
Where the boot sequence is long, for example when a bootloader waits for a programming interface before starting the application, the window can stretch into tens of milliseconds. The question of how to prevent LED flash during MCU boot then becomes a hardware question, because no firmware change shortens a window that exists before firmware runs.
One further point on timing: a driver that integrates its own soft-start will still produce a visible ramp if it is enabled during the supply rise, since the soft-start tracks the supply rather than the command. Soft-start controls inrush; it does not control order.
Pull-Up and Pull-Down Strategy for Enable and Dimming Pins
A resistor that defines the inactive state is cheaper than any firmware fix. Its job is to guarantee that the pin means "off" whenever no active device is driving it, which covers the reset window, the programming window and the interval after a brown-out.
The choice between pull-up and pull-down follows the polarity of the input, not a preference. An active-high enable needs a pull-down; an active-low enable or open-drain fault pin needs a pull-up. Two mistakes recur. The first is a pull-up to a rail that rises after the driver's own supply, which leaves the pin undefined during exactly the window that matters. The second is a pull-up so weak that leakage or a nearby switching node overwhelms it; if the pin sits near threshold, the driver's input stage can oscillate.
- Size the resistor for the worst-case leakage of the driving device, not for the typical value.
- Tie the pull resistor to the same rail that supplies the driver, so both become valid together.
- Keep the resistor close to the pin; a long trace to a pull-up on another board section is an antenna during the ramp.
- Check the resulting current against the driver's input leakage so the pin is held more than a few tens of millivolts from threshold.
For constant-current topologies, the enable state is only half of the story, because once enabled the loop will force the programmed current regardless of what the load looks like. The reason that behaviour is desirable, and the reason it makes an accidental enable so visible, is covered in the explanation of why LEDs require constant current control.
Shutdown Sequencing: The Half of the Problem Nobody Measures
Power-down is usually ignored because the product is being switched off anyway. It still produces a visible artifact, and it is the artifact users describe as "it fades oddly" or "it flashes when I unplug it". During a falling rail, the driver's reference collapses before its output stage stops conducting, so the loop momentarily commands a higher current. Add a discharged output capacitor and a large display, and the stored energy has somewhere visible to go.
The fix mirrors the startup fix in reverse: deassert enable while the rail is still valid, then let the rail fall. In systems without a controlled shutdown signal, a supply monitor that pulls enable low below a defined threshold achieves the same ordering without firmware involvement.
Peak behaviour during these transitions is worth checking against the device's pulse ratings. A short transient can exceed the steady-state current without exceeding the pulse capability, and the difference between those two limits is set out in the comparison of LED pulse current and continuous current.
Oscilloscope Validation: What to Capture and in What Order
A flash that lasts 200 microseconds cannot be diagnosed by looking at the product. It has to be captured, and captured with enough channels that the order of events is visible rather than inferred.
- Probe the driver supply rail at the driver's own pin, not at the connector, so the local droop is included.
- Probe the enable pin and the PWM or data pin on separate channels; this is the pair that establishes order.
- Probe the LED current with a current probe, or the sense-resistor voltage if a probe is not available.
- Trigger on the rising edge of the supply, with the time base wide enough to include the MCU's first valid frame.
- Repeat the capture on power-down, triggering on the falling edge, before concluding the sequence is clean.
Three checks turn the capture into a verdict: the enable pin must be inactive for the whole time the supply is between zero and its minimum operating value, the current trace must not rise before the first valid control frame, and the pulse width of any stray burst must be far below the visible threshold. If a burst is present, look at its shape. A fast, full-amplitude pulse points to an enable or pull-resistor problem; a slow ramp with a rounded top points to a supply-order problem.
Pulse shape is itself diagnostic. A driver that is being switched correctly still produces a finite edge, and what that edge looks like on the current trace is the subject of the guide to LED rise time and fall time. When the artifact appears only on displays that are multiplexed, add the scan timing to the capture; the interaction between scan rate and perceived brightness is explained in 7 segment display PWM dimming, and a scan that starts before the driver is enabled will look like a flash even when the driver behaved.
Frequently Asked Questions
Why does my LED flash at startup even when the firmware sets the pin low immediately?
Because "immediately" begins after the reset window, and the driver is already enabled during that window. The pin state before the first instruction is set by hardware defaults and pull resistors, not by code.
Is a soft-start feature enough to prevent turn-on flash?
No. Soft-start limits how quickly current rises after the driver is enabled; it does not decide when enabling happens relative to the supply and the control signal.
Can a pull-down resistor alone solve an LED driver enable sequence problem?
It solves the undefined-pin case, which is the most common cause. It does not solve a rail-order problem, where the enable is valid but the control signal is not yet meaningful.
Why does the flash appear on some units and not others?
Because the race between rail rise and MCU release depends on tolerances, temperature and the state of the output capacitor. Unit-to-unit variation is a symptom of an unordered design rather than a quality defect.
Should the enable pin be driven by the MCU or by a supply monitor?
A supply monitor gives deterministic ordering that survives firmware faults and brown-outs. An MCU pin is acceptable when the reset default is inactive and the pull resistor holds it there.
Does sequencing affect reliability, or only appearance?
Both. Repeated uncontrolled turn-on stresses the driver and the LEDs with current pulses outside the intended operating condition, and the visible artifact is simply the part of that stress a user can see.
Conclusion: Sequence the Rails, Then Prove It
False flash is not a mysterious firmware bug. It is a defined physical event with a defined cause: an output stage that is permitted to act before anyone has told it what to do. Once the four states are written down and the enable, control and rail order is fixed, the event disappears from the product and from the support queue.
Sequence the rails deliberately, hold every input at a known level during the window when nothing drives it, deassert enable before the rail falls, and capture the result on a scope at both edges. That is the whole method. If you are selecting a driver and display combination for a new build and want the sequence reviewed against your supply design, send your project requirements to the HOUKEM team.
LED Current Sense Resistor Tolerance: How It Moves Regulated Current
LED Driver Current Ripple: How Ripple Reaches the Light Output