Category Archives: ESP8266

The first working output

Just a short post to show you the first iteration of this project, the driver on a perfboard. It’s ugly, especially the wire at the back, and I won’t trust it plugged h24 in my house but it does work. You can also use a perfboard to create the driver if you want to save the cost of the PCB but I would discourage to do so (except to play with it).

On the last photos you can see the prototype and the final PCB side by side as well as the schematic used to realise this prototype (the 2 capacitor are not represented, and not really needed…)

Not reaching it’s potential

It seems that I still have a problem with my hardware,  the led receive at maximum 8V…

I found that out after watching some videos online, my led strip was really very dim so I’ve searched the reason to that.

I’ve made some test, and if I provide 12V directly to the strip , it’s much brighter as you can (maybe) see on this picture:

Brightness comparaison

Something is definitively up here. I’ll continue my debug and keep you informed.

Edit: It might be the IRFZ44N MosFet that are not opening completely, their Gate Threshold Voltage is rated as being between 2 to 4V. The ESP8266 maximal output of 3,3V is maybe not enough for the one I got… I’ve ordered some IRLZ44N (Gate Threshold Voltage between 1 and 2V) and will install them in place of the IRFZ44N to see if it solve the problem.

Edit 2: After installing the IRLZ44N the problem is still there so I did some further investigation. Found out that I was the problem! The ESP8266 PWM value goes from 0 to 1023 and not 0 to 255… so my max value of 255 was the problem.

After modifying the max output for the LED control in the ESP software, they are now much brighter 🙂

Conclusion if you do something with the PWM output of the ESP pay attention to the fact that ESP use 10bit output whereas Arduino usually use 8bit output.

Get some inspiration

Before starting to create an RGB controller from scratch, I’ve searched on Hackadays to see if anything similar had been done till then. I had found a $5 Wifi LED Dimmer w/ ESP8266 from Tom Clement and fork his GitHub project to get started with. It’s a one channel LED dimmer but is very close to the design I needed.

So many thanks to him as I hadn’t to search for the ESP and DC-DC converter footprint in eagle and I reuse part of his design.

The MOSFET and LED strip driving part was greatly inspire by Adafruit RGB LED Strip guide, so thanks Adafruit for their good guide!

Get you started

To get you started with the ESP8266 you can consult the excellent website Arduinesp that have compiled excellent tutorial on how to start programming an EPS8266.

The ESP8266 come into different form that are name ESP1, ESP2, … to the latest ESP12e. In this project I’ll use the ESP8266 ESP12e simply because it’s the most complete of all (have the more number of GPIO) and more or less the same price as the older version.

If you don’t have one ESP8266 yet you can buy it in your local hobby shop, ebay, amazon or order it directly from china. I personally bought them on AliExpress, 10 pieces for 21,15€ (23,90$) and I also bought 10 IO extension board for 1,60€ (1,80$). The extension are not required if you order the PCB presented in the Hardware part of this website but they are convenient to start playing with the ESP. Each board was individually packed and was delivered in Germany in about 3 weeks… yes, if you’re in a hurry, order from a local dealer! I ordered one board from Germany to start with this project without having to wait so long.

Next you’ll need a way for your computer to communicate with your ESP, for that I use an FTDI adapter, again found on AliExpress for 1,85€ (2,12$).

To power the board and make some test on a breadboard I use a small breadboard power converter that convert 5-12V to 3,3V that cost only 0,75€ (0,86$). It’s pretty convenient as it deliver 3,3V and 5V and integrated a power switch. Don’t use the 3,3V power source from the FTDI adapter, it simply cannot provide enough power for the ESP8266 to run smoothly.