Skip to content

Transmit mode: can set channel level only once, then program seems to "hang" #2

@maddin18

Description

@maddin18

I am trying to build a DMX scene memory with bypass/backup function, based on a XIAO ESP32-C6. In order to get familiar with the functionality of EasyDMX, I first tried some examples from the examples folder of this project.

With the Transmit example I am not able to set more than one value. I suppose the example code should toggle channel 1 between 255 and 0 every second:

void loop() {
    // Set channel 1 to 255
    dmx.setChannel(1, 255); // line 38
    delay(1000);
    // Set channel 1 to 0
    dmx.setChannel(1, 0);     // line 41
    delay(1000);
}

In my case, channel 1 remains 0. If I change the DMX value in line 41 to some value >=32 (e. g. dmx.setChannel(1, 45);, channel 1 will be set to 255, according to the command in line 38. However, it still doesn't toggle.
I tried to digg a bit deeper by means of Serial.println("..."); outputs or setting LEDs. But with any changes in the code I was no more able to set the level of channel 1 at all. Adding pinMode(22, OUTPUT); in the setup block was already enough modification to prevent setting a non-zero level to channel 1.
I should mention that for all this I changed line 32 from dmx.begin(DMXMode::Transmit, DMXPin::NoRx, DMXPin::Serial2Tx); to dmx.begin(DMXMode::Transmit, DMXPin::NoRx, 16);, as on the ESP32-C6 the Tx pin is 16, not 17.

The issue occurred with ESP32-C6, Arduino-IDE 2.3.7, FreeRTOS 11.1.0-3.

I would be glad about advice how to solve this. Please let me know if I can provide additional information or checks.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions