Sunday, April 05, 2020

Marlin, ESP32, and RGB LEDs

After connecting the MRR ESPA to the Labists 3D printer, I thought it would be a good idea to try to see how RGB LEDs would work with the MRR ESPA. So I got a RGB CPU fan (120mm) which uses addressable LEDs, and made the following changes to Configuration.h.

#define NEOPIXEL_LED
#define NEOPIXEL_TYPE   NEO_GRB
#define NEOPIXEL_PIN     0
#define NEOPIXEL_PIXELS  8

#define NEOPIXEL_IS_SEQUENTIAL
#define NEOPIXEL_BRIGHTNESS 127
#define NEOPIXEL_STARTUP_TEST


This is the fan.
It has a 4-pin fan connector (GND-12V-TACO-PWM), so I just connected GND and 12V to the MRR ESPA's part cooling fan port. The LED connect is 3-pin (GND-DATA-5V). The DATA line should be able to work on 3.3V, but just in case, I used a voltage shifter to change it to 5V.

Here's the video.

Oh, I also took the chance to test out the TFT35 touchscreen from BIGTREETECH. It works when connected to AUX1. Still, the MRR ESPx boards do not need such a controller since everything can be controlled via the ESP3D webUI.

When the board boots up, it will do a quick cycle test of the RGB LEDs. Also, when a print is started, the color will change to magenta, then slowly turn red as the hotend heat to temperature. Once the print gets underway, it becomes white (this is supposed to help illuminate the print area).

There seems to be some problem with the addressing of the LEDs, most likely because I got the LED count wrong.

Otherwise, it seems the RGB LEDs work!


Get the MRR ESPA board here.

MRR ESPA and MRR ESPE related social media:
Facebook page
Facebook group for users


(Note: I am still having issues with the Labists 3D printer aka Easythreed X1. I seriously suspect it is an issue with the motors overheating, but if I turn down the Vref, the motors don't move. I will next play around with minimum pulse duration to see if it helps.)

2 comments:

Teck said...

The issue with the LED color seems to be related to the Adafruit_NeoPixel library that is used by Marlin.
ESP32: timing error every 1ms corrupts LED pixel data
It is essentially a timing issue.
ESP32: FastLED vs. NeoPixelBus vs. NeoPixel Library

Teck said...

The issue with Adafruit_NeoPixel library should have been fixed by this PR.
Add RMT support to ESP32
If anyone has given it a try, please share the results.