<font face="Arial, Verdana">It really seems like the display does get a bit wrong from time to time. Since display updates every second it fixes itself after a second until it goes wrong again. So since it works with older versions the timings seem to tight at some point. Maybe not the delay you used or it got overwritten in DisplayList.h/ui.h (depending on version). The problem is therefore in ui.cpp in this code:</font>
<font face="Arial, Verdana">void lcdWriteNibble(uint8_t value)</font>
<font face="Arial, Verdana">{</font>
<font face="Arial, Verdana"> WRITE(UI_DISPLAY_D4_PIN,value & 1);</font>
<font face="Arial, Verdana"> WRITE(UI_DISPLAY_D5_PIN,value & 2);</font>
<font face="Arial, Verdana"> WRITE(UI_DISPLAY_D6_PIN,value & 4);</font>
<font face="Arial, Verdana"> WRITE(UI_DISPLAY_D7_PIN,value & 8);</font>
<font face="Arial, Verdana"> DELAY1MICROSECOND;</font>
<font face="Arial, Verdana"> WRITE(UI_DISPLAY_ENABLE_PIN, HIGH);// enable pulse must be >450ns</font>
<font face="Arial, Verdana"> HAL::delayMicroseconds(2);</font>
<font face="Arial, Verdana"> WRITE(UI_DISPLAY_ENABLE_PIN, LOW);</font>
<font face="Arial, Verdana"> HAL::delayMicroseconds(UI_DELAYPERCHAR);</font>
<font face="Arial, Verdana">}</font>
<font face="Arial, Verdana">
</font>
<font face="Arial, Verdana">you see there are 2 more delays 1MS and 2ms. So maybe increase them by 1 and retest.</font>