When it stays dark
A dark LED is nearly always one of three things: SIGNAL on a different pin from the sketch, no GND, or the cable one pin over. Check them in that order and most of the time you are done.
Four symptoms
Pick what the LED is doing. The ringed part of the board is where to look first, and the list beside it is the order to check in. The order is by how often each one is the answer.
Never lights
The pin. LED_PIN in the sketch is a GPIO number, the one printed beside
the pin on your board. It is not a count along the header. On an ESP32
dev board, the pin marked 4 is GPIO 4 wherever it sits on the edge.
GND. No ground wire, no loop, no current. The block has no other way back to your board.
One pin over. Count from the square pad. Shifted one position, SIGNAL lands on an NC pin, which is connected to nothing, and the sketch drives an empty hole.
A test that takes the sketch out of the question: with GND connected, touch SIGNAL to your board's 3V3 pin for a moment. The resistor on the block keeps that safe. If the LED lights, the block is fine.
Always on
The sketch never sets the pin LOW, or SIGNAL is on a supply pin rather than a GPIO, or the pin is also used by something else. A serial line's transmit pin sits HIGH whenever it is idle, and an LED on it looks permanently lit with a flicker when data goes out.
Very dim
On an ESP32, ESP32-S3 or Pico, some dimness is normal: about 2 mA instead of
the Uno's 13, as why it is dimmer on
3.3 V explains. Barely
visible on an Uno usually means pinMode(LED_PIN, OUTPUT) is missing: without
it, digitalWrite(HIGH) only turns on the pin's weak internal pull-up, which
passes a fraction of a milliamp.
Flickers
A loose connection first. The right-angle pins lie flat, and a cable's weight
can lift the block out of a breadboard row. Then the pin: an Uno's D0 and D1
are the USB serial line and flicker with every byte, and D13 flashes by itself
while the bootloader runs after a reset. Then the sketch: an analogWrite fed
a noisy reading looks exactly like a bad wire.
When it does not work
Wire GND to your board's GND and touch SIGNAL to its 3V3 or 5V pin for a moment. The LED should light: the resistor on the block keeps the current safe even from the supply pin. If it lights, the block is fine and the problem is the sketch or the pin.
Not on a block that shipped assembled: the LED's legs are soldered to the board the right way round. If yours has been resoldered, the long leg must go to the pad nearer the SIGNAL end of the header, and the flat side of the lens rim faces the resistor.
Look for a jumper that has come out of the breadboard. The right-angle header pins lie flat and can be pulled out of a row by a cable's weight. Press the block back in, or plug it into a TinkerBlock cable instead of a breadboard.
Avoid the pins used for flash memory, and the input-only pins 34 to 39 on a classic ESP32, which cannot drive an LED at all. Keep it off the strapping pins too, the ones read at reset to choose how the chip boots: an LED to ground is a small load on them, and there are plenty of other pins. GPIO 4 is free on both the ESP32 and the ESP32-S3.
Forty-odd blocks, and the XL LED is the light most of the others use to show that something happened.
Back to the blocks →Edit this page — content/books/xl-led/when-it-stays-dark.mdx
Questions about this product
See what other owners have asked, and read their solutions.
XL LED
Loading discussions…
Discuss this article
Ask about this page. The answer stays here, on the page it belongs to, for whoever hits the same wall next.