GithubHelp home page GithubHelp logo

esp-32_wled-controller's Introduction

ESP-32_WLED-Controller License: CC BY-SA 4.0

deutsche Version unten ->

PCB-top_3D-Model

This is like an evolution of my ESP-12-WLED_Controller. It based on my ESP-12 Controller, so you can find also all the necessary information about MOSFETs, etc. there as well.

The version with ESP32 is more powerful and enables features like Sound Reactive https://github.com/atuline/WLED with significantly better performance than the ESP2866. Also you can find here the Sound Reactive Addon for this controller. The PCB size has just slightly increased, and the controller can still fit into small projects. To have a clean design and ensure the LED strip works with a 5V data level, I used a 74LVC1G125 as a Logic Level Shifter.

Additionally, the power supply for the LED strip can be turned off by using a P-channel MOSFET. Even when turned off, NEOPIXEL strips consume some power (approximately 1mA per pixel). Luckily, WLED provides an option to control a "Relay" through a user-defined pin. I use an IRF7410 (MOSFET P-channel -12 V -16A SO-8) which can switch max 16A. Additional to the P-MOSFET, there is another N-MOSFET. It works as a driver to switch the P-MOSFET with a 5V logic level and also as an inverter, allowing the main MOSFET to logical "active HIGH" at GPIO12 of the ESP.

Settings

The configuration for inputs and outputs is as follows:

Label GPIO Remarks
Data Pin GPIO 2
Relay Pin GPIO12 invert
optional:
Button 0 GPIO32
Button 1 GPIO33
ADC GPIO36 Analog Input

PCB-top_3D-Model

Flashing the Firmware

Flash Wiring

Connect an FTDI or another compatible UART converter like showing the wiring diagram. Either connect with the FLASH button pressed or, if the controller is already powered by a power supply, hold FLASH, press RESET briefly, and then release FLASH. Now controller is in bootloader mode.

The ESP32 may be underpowered by the FTDI, causing the Brownout Detection is triggered. Therefore, you need to power the controller with an external 5V voltage source.

This controller can be used with a pre-made binary.

Strip and Power Supply

Strip and Power Supply

Connect the LED strip and power supply as per the wiring diagram.

Parts List

Includes parts that need to be soldered by hand.

Quantity Description Info
1 CTB1202-5BK Solderable Screw Terminal - 5-pin, Pitch 5 mm
1 NHG-A 1.0M 6.3 Capacitor, radial, 1000µF, 6.3V, Pitch 3.5mm

Case

Case

There is also a simple case available. Both parts can be connected with a click fastener. The STEP file for modifications to the case is included in the project folder.

Gerbers

You can find the necessary fabrication data in the “gerber” folder. This also includes the BOM and CPL files. I have had good experiences with JLCPCB, and production there ran smoothly with the data. However, some parts may not always be available.

Thank You!

A special thanks to Aircoookie and all those involved in the WLED project!
Gerber and fabrication data were created using the Fabrication Toolkit.

ko-fi


Deutsch

PCB-top_3D-Modell

Dies ist die Weiterentwicklung meines ESP-12-WLED_Controllers. Daher kannst du alle nötigen Infos über MOSFET etc. auch dort finden.
Die Version mit ESP32 ist leistungfähiger und ermöglicht bswp. Sound Reactive Features https://github.com/atuline/WLED. Dafür findes du auch hier ein Sound Reactive Addon, welches einfach auf den Controller gesteckt werden kann. Die Platinengröße ist nur minimal gewachsen, der Controller lässt sich nach wie vor in kleinen Projekten unterbringen. Für ein sauberes Design und damit der LED-Strip mit einem 5V Datenpegel arbeitet verwende ich einen 74LVC1G125 als Logic Level Shifter.
Zusätzlich kann die Versorgungsspannung für den LED-Strip über einen P-Kanal MOSFET abgeschaltet werden. Auch im ausgeschalteten Zustand verbrauchen die NEOPIXEL-Strips nämlich Strom (ca. 1mA/Pixel). Ich verwende einen IRF7410 (MOSFET P-Kanal -12 V -16A SO-8) dieser kann max 16A schalten. Praktischerweise bietet WLED hier die Möglichkeit über einen frei definierten Pin ein "Relay" zu schalten. Vor dem P-MOSFET sitzt ein weiterer N-MOSFET. Einmal funktioniert dieser als Treiber um den P-MOSFET mit 5V Logikpegel zu schalten und zum anderen als Inverter, damit der Haupt-MOSFET praktisch "active HIGH" am GPIO12 des ESP durchschaltet.

Einstellungen

Die Konfiguration für Ein-/ und Ausgänge erfolgt wie abgebildet.

Bezeichnung GPIO Bemerkung
Data Pin GPIO 2
Relay Pin GPIO12 invert
optional:
Button 0 GPIO32
Button 1 GPIO33
ADC GPIO36 Analog Eingang

PCB-top_3D-Modell

Firmware flashen

Flash Wiring

FTDI oder anderen passenden UART-Wandler gemäß Anschlussplan verbinden. Entweder mit gedrücktem FLASH Button verbinden oder wenn der Controller bereits über ein Netzteil versorgt wirden, FLASH gedrückt halten, RESET kurz drücken und danach kann FLASH losgelassen werden.

Möglicherweise wird der ESP32 vom FTDI unterversorgt und die Brownout Detection reagiert. Daher ist es ratsam, den Controller bereits mit einer externen 5V Spannungsquelle zu versorgen.

Dieser Controller kann mit einem fertigen Binary verwendet werden.

Strip und Versorgungsspannung

Strip and Power Supply
LED Strip und Netzteil werden gemäß Anschlussplan verbunden.

Teileliste

Beinhaltet Teile, die von Hand eingelötet werden müssen.

Anzahl Beschreibung Info
1 CTB1202-5BK Lötbare Schraubklemme - 5-pol, RM 5 mm
1 NHG-A 1,0M 6,3 Elko, radial, 1.000µF, 6,3V, RM3,5

Gehäuse

Gehäuse

Ein einfaches Gehäuse gibt es auch. Beide Teile können über einen Klickverschluss miteinander verbunden werden. Für Änderungen am Gehäuse liegt im Projektorder die STEP-Datei.

Gerberdaten

Du kann die nötigen Fertigungsdaten im Ordner "gerber" finden. Darin enthalten sind auch die BOM und CPL Files. Mit JLCPCB habe ich guter Erfahrungen gemacht, und mit den Daten lief die Fertigung dort auch problemlos. Es ist jedoch möglich, das manche Teile vielleicht nicht immer verfügbar sind.

Dankeschön!

Ganz besonderer Dank geht an Aircoookie und allen Beteiligten, die am WLED Projekt mitarbeiten!
Gerber und Fertigungsdaten wurden mit Fabrication Toolkit erstellt!

ko-fi

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.