I can't get DMX output with the ESP32 DMX to LED shield

Hi there!
I just bought 2 ESP32 Thing Plus and 2 DMX to LED shields, and I can’t get the DMX signal out of any of them. Here I have a couple of remarks:

  1. I installed the SparkFun DMX Shield Library (2.0.1) and I am running the example 1 (DMXOutput) on one thing, and the example 2 (DMXInput) on the other thing. The code compiles well and I see the counter increasing in the output’s serial, but nothing comes to the input board. I also tried to plug the controller board to a DMX peripheral (a 4-channel dimmer Botex MPX-405) and it didn’t recognise any incoming DMX signal. I played a bit changing the address and sending out to several channels with the same lack of result. Just to troubleshoot, I plugged a single LED into the poke-home connector attached to pin 27 and it lighted on and off accordingly to the values sent by the example. So I guess there is an issue with the initialisation of the XLR output. Do you have any clue on what could be wrong?

  2. I also tested the input example sending DMX to the Thing Plus from an Arduino DMX shield, and also from the dimmer, and I didn’t receive anything on the Thing Plus either way. If I send that data from the Arduino to the dimmer, it works just fine. In order to troubleshoot, I added a Serial.println() for the function .dataAvailable() and it returns false all the time,. Could that be a formatting issue, or just a wrong pin the microcontroller is attached to? I am using the SparkFun Thing Plus WROOM with MicroUSB connector, so I think it should just match the shield pinout, so I can’t figure out what the issue can be…

  3. I realised that in the shield’s website you provide a list of library functions that are not present anymore in the current library version, such as .initWrite() or .write(). I have the feeling that an init function is precisely what I lack, therefore the confusion becomes more frustrating. Is there another version of the library I could try out with these functions, or is the description in your website just to be updated? SparkFun ESP32 DMX to LED Shield - SparkFun Learn

I find it confusing finding a discrepancy between the learning guide in your website and the actual contents of the git library.

I will be very thankful for your support! I bought these things with the hope of using them soon in a show, so I hope we can get them working!

Thank you!

Please use the I2C scanner code to verify the I2C address.

I’m running this code Arduino Playground - I2cScanner and I get the message “No I2C devices found”

The shield should work on serial, though (UART2 as far as I understand)

What happens when you run this example on the ESP32? SparkFunDMX/examples/Example1-DMXOutput/Example1-DMXOutput.ino at master · sparkfun/SparkFunDMX · GitHub

Share a photo of your setup/soldering, those may be a source of problems…but the fact that you did get LED output is a good sign overall

Please do as per TS-Russel’s suggestion. Also, check your jumper wires. It can be a connection problem too.

I am having the same issue, the chip is sitting directly on the board, using sparkfun library cant control my rgb spotlight. However my arduino with shield can, anyone knows how to fix this?

Which SF board isn’t working?

It seems like its the dmx to led shield for es32 thing plus, my thing plus seems to be processing code properly (it serial prints fine) but when i hook it up to my dmx device nothing happens

I found a solution for this issue, which is to explicitly add the TX and RX pins to the dmxSerial.begin() function. I got it working just changing this line in the setup:

  dmxSerial.begin(DMX_BAUD, DMX_FORMAT, 16, 17);

Explanaiton: The SparkFun library for the DMX shield uses UART2, which in the ESP32 Thing Plus has RX in GPIO16 and TX in GPIO17. The library uses the HardwareSerial library to access the UART2 port, which accepts the pin definition as arguments for the begin() function. More about it here: ESP32 UART Communication Pins Explained with Example

There might be changes between different boards which use different pin configurations, as suggested by other threads like this one: Alignment issue on ESP32-S2 Thing Plus · Issue #15 · sparkfun/SparkFunDMX · GitHub
This small fix solved the issue for me! Could you try do the same, @WJ ? You will have to change the line both in the controller and in the peripheral’s sketch.

1 Like