Hi, I've been pulling my hair with this for a long time, seems like when the Arduino is too busy drawing something on screen, or just toggling some LEDs, data gets missed on the RS485 bus. All the sketches i've tested work over USB with the same Arduino, but exhibit the exact same issue when run over RS485. If its a display, it either misses updates completely, misses half the screen, or starts writing out random data from the RS485 stream, even including the DCS-BIOS synchronization sequence on screen as text "UUUU". I even tried a simpler panel, the caution panel with direct register access for toggling the LEDs and its still too slow just blinking ~10 LEDs. If i reduce the number of LEDs to 2, it works perfectly.
Here is an example of the caution panel of the A-10C, the blinking LEDs should be blinking at a steady pace, not take pauses like they do in this video. Here is the code, i dont think it can be optimized much more than that... https://github.com/maciekish/warthogathome/blob/master/Arduino/23_Caution_Panel/23_Caution_Panel.ino
Has anyone else run into these issues? Is DCS-BIOS handling the RS485 interrupts properly? Am i missing something completely different?