GithubHelp home page GithubHelp logo

Start Address Not Saving Via RDM about esp_dmx HOT 8 CLOSED

lft8 avatar lft8 commented on September 25, 2024
Start Address Not Saving Via RDM

from esp_dmx.

Comments (8)

someweisguy avatar someweisguy commented on September 25, 2024 1

I think you may be right here. I pushed a potential fix to the branch fix/rdm-eeprom. It saves data to flash after receiving any DMX or RDM packet. Give it a try, if you are able. I am going to do some testing as well.

from esp_dmx.

lft8 avatar lft8 commented on September 25, 2024

to add to this after further testing:
if the responder dmx start address is set by rdm from a controller and then subsequently normal dmx data is sent from the controller to the responder then the start address is saved correctly and remains during power down/on.
if only rdm functions are sent from the controller to the responder then it seems to be temporarily saved in ram but does not remain during power down/on

from esp_dmx.

lft8 avatar lft8 commented on September 25, 2024

FYI - tested with 2 different model/make rdm controllers with the same behaviour noted

from esp_dmx.

lft8 avatar lft8 commented on September 25, 2024

Also tested on 2 different ESP32-S3 boards including using the RDM Responder example with the same result

from esp_dmx.

someweisguy avatar someweisguy commented on September 25, 2024

Thanks for the report - I was able to reproduce this issue.

I am not too surprised that this issue occurred - I apologize for the inconvenience. The reason this bug is happening is because I was attempting to fix a weird problem. The problem is that, in some configurations of this library, saving parameters such as the DMX start address to flash temporarily prevents the ESP32 from reading DMX. When the DMX driver is not stored in the ESP32 IRAM, this error can occur. To prevent a potential issue wherein the ESP32 fails to read an RDM message because it is writing to flash, this library will only write to flash when:

  1. A parameter (like DMX start address) has been updated and needs to be written to flash
  2. When a non-RDM packet has been received.

Clearly, I need to take another pass at trying to solve this problem. I'll investigate and see what I can come up with. Thanks for your patience!

from esp_dmx.

lft8 avatar lft8 commented on September 25, 2024

no need to apologise, you're doing great work on this library :)
if there's anything you'd like me to test then let me know

from esp_dmx.

lft8 avatar lft8 commented on September 25, 2024

I've been thinking about this and personally I can't see why temporarily stopping receiving DMX during saving the start address to flash would be an issue. Setting the start address of a device would be done during commissioning of an installation and not in routine operation, I've had a look at a commercial RDM fixture and I do believe it is unresponsive for a very short period after setting the start address by RDM

from esp_dmx.

lft8 avatar lft8 commented on September 25, 2024

I have tested quite thoroughly and no reported issues :)
I'll close the issue

from esp_dmx.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.