Need some help with DMX and ESP32

Here's my problem, i have plans on making a DMX Fixture with ESP32, i've got the ESP and the RS485 to TTL converter, and the library. I have a problem with the library since it throws me a bunch of errors when i try to compile even the examples of it. (errors down below)

Library: GitHub - yoann-darche/ESP32-DMX: Example code for receiving and transmitting DMX512 with ESP32 and RS485 transceiver IC like MAX485 or isolated ADM2486
Keep in mind this library version is a reviewed one i found from this guy from youtube, but the errors are quite the same as compared to the original library: GitHub - luksal/ESP32-DMX: Example code for receiving and transmitting DMX512 with ESP32 and RS485 transceiver IC like MAX485 or isolated ADM2486

ESP Model: ESP-WROOM-32

c:\Users\***\Documents\Arduino\libraries\ESP32-DMX-RX\src\dmx.cpp: In static member function 'static void DMX::Initialize(DMXDirection)':
c:\Users\***\Documents\Arduino\libraries\ESP32-DMX-RX\src\dmx.cpp:21:33: error: 'GPIO_NUM_17' was not declared in this scope
 #define DMX_SERIAL_OUTPUT_PIN   GPIO_NUM_17 // pin for dmx tx
                                 ^~~~~~~~~~~
c:\Users\***\Documents\Arduino\libraries\ESP32-DMX-RX\src\dmx.cpp:66:32: note: in expansion of macro 'DMX_SERIAL_OUTPUT_PIN'
     uart_set_pin(DMX_UART_NUM, DMX_SERIAL_OUTPUT_PIN, DMX_SERIAL_INPUT_PIN, UART_PIN_NO_CHANGE, UART_PIN_NO_CHANGE);
                                ^~~~~~~~~~~~~~~~~~~~~
c:\Users\***\Documents\Arduino\libraries\ESP32-DMX-RX\src\dmx.cpp:21:33: note: suggested alternative: 'UART_NUM_1'
 #define DMX_SERIAL_OUTPUT_PIN   GPIO_NUM_17 // pin for dmx tx
                                 ^~~~~~~~~~~
c:\Users\***\Documents\Arduino\libraries\ESP32-DMX-RX\src\dmx.cpp:66:32: note: in expansion of macro 'DMX_SERIAL_OUTPUT_PIN'
     uart_set_pin(DMX_UART_NUM, DMX_SERIAL_OUTPUT_PIN, DMX_SERIAL_INPUT_PIN, UART_PIN_NO_CHANGE, UART_PIN_NO_CHANGE);
                                ^~~~~~~~~~~~~~~~~~~~~
c:\Users\***\Documents\Arduino\libraries\ESP32-DMX-RX\src\dmx.cpp:20:33: error: 'GPIO_NUM_16' was not declared in this scope
 #define DMX_SERIAL_INPUT_PIN    GPIO_NUM_16 // pin for dmx rx
                                 ^~~~~~~~~~~
c:\Users\***\Documents\Arduino\libraries\ESP32-DMX-RX\src\dmx.cpp:66:55: note: in expansion of macro 'DMX_SERIAL_INPUT_PIN'
     uart_set_pin(DMX_UART_NUM, DMX_SERIAL_OUTPUT_PIN, DMX_SERIAL_INPUT_PIN, UART_PIN_NO_CHANGE, UART_PIN_NO_CHANGE);
                                                       ^~~~~~~~~~~~~~~~~~~~
c:\Users\***\Documents\Arduino\libraries\ESP32-DMX-RX\src\dmx.cpp:20:33: note: suggested alternative: 'UART_NUM_1'
 #define DMX_SERIAL_INPUT_PIN    GPIO_NUM_16 // pin for dmx rx
                                 ^~~~~~~~~~~
c:\Users\***\Documents\Arduino\libraries\ESP32-DMX-RX\src\dmx.cpp:66:55: note: in expansion of macro 'DMX_SERIAL_INPUT_PIN'
     uart_set_pin(DMX_UART_NUM, DMX_SERIAL_OUTPUT_PIN, DMX_SERIAL_INPUT_PIN, UART_PIN_NO_CHANGE, UART_PIN_NO_CHANGE);
                                                       ^~~~~~~~~~~~~~~~~~~~
c:\Users\***\Documents\Arduino\libraries\ESP32-DMX-RX\src\dmx.cpp:22:33: error: 'GPIO_NUM_4' was not declared in this scope
 #define DMX_SERIAL_IO_PIN       GPIO_NUM_4  // pin for dmx rx/tx change
                                 ^~~~~~~~~~
c:\Users\***\Documents\Arduino\libraries\ESP32-DMX-RX\src\dmx.cpp:75:26: note: in expansion of macro 'DMX_SERIAL_IO_PIN'
     gpio_pad_select_gpio(DMX_SERIAL_IO_PIN);
                          ^~~~~~~~~~~~~~~~~
c:\Users\***\Documents\Arduino\libraries\ESP32-DMX-RX\src\dmx.cpp:22:33: note: suggested alternative: 'UART_NUM_0'
 #define DMX_SERIAL_IO_PIN       GPIO_NUM_4  // pin for dmx rx/tx change
                                 ^~~~~~~~~~
c:\Users\***\Documents\Arduino\libraries\ESP32-DMX-RX\src\dmx.cpp:75:26: note: in expansion of macro 'DMX_SERIAL_IO_PIN'
     gpio_pad_select_gpio(DMX_SERIAL_IO_PIN);
                          ^~~~~~~~~~~~~~~~~
c:\Users\***\Documents\Arduino\libraries\ESP32-DMX-RX\src\dmx.cpp:75:5: error: 'gpio_pad_select_gpio' was not declared in this scope
     gpio_pad_select_gpio(DMX_SERIAL_IO_PIN);
     ^~~~~~~~~~~~~~~~~~~~
c:\Users\***\Documents\Arduino\libraries\ESP32-DMX-RX\src\dmx.cpp:76:43: error: 'GPIO_MODE_OUTPUT' was not declared in this scope
     gpio_set_direction(DMX_SERIAL_IO_PIN, GPIO_MODE_OUTPUT);
                                           ^~~~~~~~~~~~~~~~
c:\Users\***\Documents\Arduino\libraries\ESP32-DMX-RX\src\dmx.cpp:76:43: note: suggested alternative: 'DMX_OUTPUT'
     gpio_set_direction(DMX_SERIAL_IO_PIN, GPIO_MODE_OUTPUT);
                                           ^~~~~~~~~~~~~~~~
                                           DMX_OUTPUT
c:\Users\***\Documents\Arduino\libraries\ESP32-DMX-RX\src\dmx.cpp:76:5: error: 'gpio_set_direction' was not declared in this scope
     gpio_set_direction(DMX_SERIAL_IO_PIN, GPIO_MODE_OUTPUT);
     ^~~~~~~~~~~~~~~~~~
c:\Users\***\Documents\Arduino\libraries\ESP32-DMX-RX\src\dmx.cpp:76:5: note: suggested alternative: 'direction'
     gpio_set_direction(DMX_SERIAL_IO_PIN, GPIO_MODE_OUTPUT);
     ^~~~~~~~~~~~~~~~~~
     direction
c:\Users\***\Documents\Arduino\libraries\ESP32-DMX-RX\src\dmx.cpp:81:9: error: 'gpio_set_level' was not declared in this scope
         gpio_set_level(DMX_SERIAL_IO_PIN, 1);
         ^~~~~~~~~~~~~~
c:\Users\***\Documents\Arduino\libraries\ESP32-DMX-RX\src\dmx.cpp:81:9: note: suggested alternative: '_xtos_set_intlevel'
         gpio_set_level(DMX_SERIAL_IO_PIN, 1);
         ^~~~~~~~~~~~~~
         _xtos_set_intlevel
c:\Users\***\Documents\Arduino\libraries\ESP32-DMX-RX\src\dmx.cpp:89:9: error: 'gpio_set_level' was not declared in this scope
         gpio_set_level(DMX_SERIAL_IO_PIN, 0);
         ^~~~~~~~~~~~~~
c:\Users\***\Documents\Arduino\libraries\ESP32-DMX-RX\src\dmx.cpp:89:9: note: suggested alternative: '_xtos_set_intlevel'
         gpio_set_level(DMX_SERIAL_IO_PIN, 0);
         ^~~~~~~~~~~~~~
         _xtos_set_intlevel

exit status 1

Compilation error: exit status 1

If nothing works i was thinking about using an Arduino Uno (or nano) (as master, dmx receiver) to send dmx values to variables on ESP32 (as slave, the one who manages PWM outputs), since there IS a perfectly working and straightforward library, which works for me on an Uno, but not on ESP32 since this one works only on AVR micros: https://github.com/mathertel/DMXSerial/blob/master/src/DMXSerial.h

Any help would be REALLY appreciated, thank you.

Please make sure that you select a right board while compile the code. According to the errors, I suppose that you tried to compile it with something like Arduino Uno selected.

1 Like

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.