ESP32 LED & Motor Driver

An ESP32 based controller that can drive any kind of LED strip, or motor. Includes microSD, USB-UART, and large voltage range input.

Public Chat
Similar projects worth following
This project started as a Wifi and bluetooth controller that could drive any type of LED strip. LED strip controllers are everywhere, but I wanted a controller that I could customize without using a breadboard. As the project progressed, I wanted this board to be able to drive motors as well. I added a microSD card for file storage, and a USB-UART for debug. Here are the main features:

ESP32 based using MicroPython
Drives Any type of LED strip - RGB, RGBW, WS2812, APA102, Neopixel, etc
Wide input power range: 4.5V to 30V DC.
Input power via Barrel Jack 2.10mm ID (0.083"), 5.50mm OD or Terminal Block.
Reverse polarity input power protection.
Drives 1 stepper motor in full H-bridge configuration.
Drives 2 bipolar DC motors in half H-bridge configuration.
Drives 4 Unipolar DC Motors.
Additional outputs for servo motors available.
Current sense for motor/LED drivers.
Outputs on terminal blocks

See in depth connection examples and hardware details at the GitHub page.

Intro Video: 

The LCDC1000 is open source hardware licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported license. 


Revised schematic

Adobe Portable Document Format - 344.95 kB - 06/07/2019 at 02:13



Driving LEDs and a 12V motor

quicktime - 10.52 MB - 05/03/2019 at 00:01


Adobe Portable Document Format - 363.11 kB - 03/31/2019 at 23:50


  • 6-6-19 Status

    Bill Eckman06/07/2019 at 02:17 0 comments

    6-6-19:  I updated the schematic and layout with the following changes. 

    REV -01 Changes:
    1.  Changed high current drive connector      to 2.54mm spacing.
    2.  Changed D1 to 4.3V.
    3.  Added reset switch.
    4.  Added GPIO0 switch for bootloading.
    5.  Changed LED connector to connector
         with 2.54mm spacing.
    6.  USB device changed to FT231.
    7.  Added ESPtool compatible reset circuit.
    8.  Changed R12 to 10k.
    9.  Changed green LED to a different type.

    So far the testing is going well without issues.  ESP compatible reset circuit makes uploading files a lot smoother.

  • Driving RGB strips and a motor simultaneously.

    Bill Eckman05/03/2019 at 00:31 0 comments

  • 5-2-19 Status

    Bill Eckman05/03/2019 at 00:05 0 comments

    So far so good with the debugging. I’ve verified that the board can drive Neopixel dotstars, RGB, RGBW leds and motors. I also verified that the SD can be used in MicroPython.

  • April 23rd Status

    Bill Eckman04/23/2019 at 10:11 0 comments

    The board is assembled.  No major issues.  There are three minor issues that will be fixed in the next revision of the PCB.

    • C17,18,19 are specified as 0805 but have a larger package size.  This should be fixed on the next revision, or larger parts specified on the BOM.
    • R31 Silkscreen is hidden by TP1.  This should be fixed on the next revision.
    • The silkscreen for R35 and R36 is swapped.  This should be fixed on the next revision.

    I powered the board from a 15V power supply.  No issues with power were found.

    I loaded Micropython on the ESP32 over the USB port.  No issues were found.  I successfully setup the ESP to connect to the network over wifi.  I will continue development and testing.

  • March 31 2019 Project Status

    Bill Eckman04/01/2019 at 02:25 0 comments

    All parts and PCB's have been ordered.  I'll be assembling boards soon.  I'd like to develop an open source web based interface for controlling LED strips, and I'm looking for contributors.  The web UI is for non-coders who want a higher level of programmability than is currently available on other controllers.  If you're interested, let me know.  I plan on putting this on Tindie when it's ready.  In addition to the standard color and pattern controls, it would be cool if the web interface had advanced features like:

    • Pattern builder - allows the user to build, play, and save patterns without coding.
    • LED matrix output - build and play images to a LED matrix 
    • Integrated POV (persistence of vision) controller using the hardware to drive motor and LED's simultaneously.
    • Motor driver interface for driving motors from other applications via web sockets.

View all 5 project logs

Enjoy this project?



Does this project spark your interest?

Become a member to follow this project and never miss any updates