I've successfully used the teensyDMX library in the past to send DMX data, and now I have an application that requires reading DMX data (and then relaying it through a wireless link). I'm having a persistent and baffling issue where the data is read correctly some/most of the time, but often "glitches" to values that are seemingly-always smaller than the correct channel values.
I've talked to Shawn, the library's author. He's been very helpful but doesn't have time now to dive into helping me debug this. So I thought I'd check with all of you to see if anyone has had a similar issue (and hopefully knows the fix).
Setup: Teensy 4 on a custom PCB that includes a ISL8487EIBZ transceiver and H11L1 opto-isolator (which also provides level shifting). The data source for testing is a City Theatrical DMXcat. I've tried various code variations, including Shawn's BasicReceive example. The library version is 4.3.0-snapshot.
Here are some of the things I've tried:
- Scoped the Serial1 RX pin; signal looks clean
- Tried a different DMX data source; no change (and other DMX receivers can read the DMXcat data correctly)
- Tried a different board; no change
- Changed the DMX timing parameters on the DMXcat; no change
I guess I can't rule out some strange hardware issue, so I'll keeping poking at that. Shawn suspects that it might be caused by a change in the toolchain or framework code, so if I can figure out how I'll try to revert to older versions.
Thanks for any insight or suggestions you can provide!
Edit: I thought I'd try a different library, to try eliminating hardware as the source of the problem, but I haven't found another DMX library with receive capability that will compile/run on a Teensy...
I've talked to Shawn, the library's author. He's been very helpful but doesn't have time now to dive into helping me debug this. So I thought I'd check with all of you to see if anyone has had a similar issue (and hopefully knows the fix).
Setup: Teensy 4 on a custom PCB that includes a ISL8487EIBZ transceiver and H11L1 opto-isolator (which also provides level shifting). The data source for testing is a City Theatrical DMXcat. I've tried various code variations, including Shawn's BasicReceive example. The library version is 4.3.0-snapshot.
Here are some of the things I've tried:
- Scoped the Serial1 RX pin; signal looks clean
- Tried a different DMX data source; no change (and other DMX receivers can read the DMXcat data correctly)
- Tried a different board; no change
- Changed the DMX timing parameters on the DMXcat; no change
I guess I can't rule out some strange hardware issue, so I'll keeping poking at that. Shawn suspects that it might be caused by a change in the toolchain or framework code, so if I can figure out how I'll try to revert to older versions.
Thanks for any insight or suggestions you can provide!
Edit: I thought I'd try a different library, to try eliminating hardware as the source of the problem, but I haven't found another DMX library with receive capability that will compile/run on a Teensy...