LED array using the esp8266

Hey guys! I completed this cool project using the esp8266 where a webpage controls an array of leds housed in a 3d printed box. I used 16 regular leds, 8 colors, where 2 are connected together. Every 2 led has a transistor to switch them on, for 8 transistors. I wasn't too careful with the choice of resistors on the leds and transistors. The problem I'm having is that it works perfect when connected on usb power (LED array with an esp8266 controller - YouTube). I'm running the leds off two 18650 batteries. When i use that power supply through a bare 3.3v regulator it turns on all the pins and doesn't load the wifi. Is there something I'm missing? Do I need a capaciter on the regulator? Better values for the resistors?

Thanks for any guidance!

edit - when I plug in the 18650 3.3v to the 3.3v pin with the usb power plugged in and then remove the usb power it works! Now I know something is dogging me here. Please advise!

Attach schematics. Specify what You are using. "A 3.3 regulator...."? That can by anything so faar.

I don't really have time to make a schematic, I just tied all the + LED wires together, all the negatives go to the transistors, and tied all the - transistor leads together. I'm just wondering why all the pins are turning on when I apply voltage to the 3.3v pin? But if i have usb power connected and then plug into the 3.3v and disconnect the usb it works??

The 3.3v regulator is a ld33v off amazon.


I don't really have time to make a schematic

It's ok, we can wait.

I got the schematic done! Any ideas? I haven't tested another board so maybe its just that i blew something on this one board.

Anyways, I also have another question for the members.

I find it interesting that i can pass variables to html without any javascript or php. it uses the %variable% syntax. Anyone know if this method has a name? Is it based on URL's? I also don't understand how the esp8266 is sending these variables. Here is the code:

server.on("/LED1on", HTTP_GET, [](AsyncWebServerRequest *request){
digitalWrite(LED1, HIGH);
request->send(SPIFFS, "/index.html", String(), false, processor);

The variable is processor (a function), but when I try to change to a function i make myself, it doesn't recognize request->send. Anyone know how to send variables to html??


ledlight.pdf (58.2 KB)

You will get fewer answers if you post pdfs rather than embeddable images!
Sorry, you cannot connect either "D3" or "D4" to anything - such as your transistors - which pulls them down on startup. This puts the ESP8266 into programming mode. :roll_eyes:

On the other hand, you cannot connect D8 to anything which pulls it up on startup!