Comments (8)
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.
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.
FYI - tested with 2 different model/make rdm controllers with the same behaviour noted
from esp_dmx.
Also tested on 2 different ESP32-S3 boards including using the RDM Responder example with the same result
from esp_dmx.
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:
- A parameter (like DMX start address) has been updated and needs to be written to flash
- 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.
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.
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.
I have tested quite thoroughly and no reported issues :)
I'll close the issue
from esp_dmx.
Related Issues (20)
- DMX Output randomly stops for a few seconds HOT 1
- Interrupt conflict HOT 1
- rdm_register_dmx_personality missing in 3.1.0 HOT 4
- DMX Read - Unstable packet.size depends on the number of DMX channels HOT 3
- compiling error with 3.10 but not with 3.0.3-beta HOT 3
- Bug string constant to 'char*' [-Wwrite-strings] HOT 2
- Send SET RDM_PID_IDENTIFY_DEVICE argument error
- RDM controller requests are not copying parameter data HOT 2
- dmx_get_personality_description() does not work HOT 1
- ESP32-S3 RDM issues with UART0 HOT 5
- Compile Warning
- Problem with installing DMX on UART2 HOT 11
- Could not find any RDM capable devices HOT 1
- Stability Issue with BLE and UART
- ESP32 DMX Libary packet size read problem HOT 4
- Is it possible to receive dmx on one uart and copy/write it on another uart ? HOT 3
- Multiple Universes on a ESP32 Dev HOT 14
- esp32c6 Not working HOT 2
- RDM M5Stack reboot at discovery
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from esp_dmx.