Hmmm that's a weird one.
In the Wemos clock we're forcing the controller into doing a LOT.
- It's keeping the display multiplexed: it does this around 100 times per second.
- It needs to do internal housekeeping to keep the Wifi going - this needs constant attention otherwise the connection to the network gets dropped.
- It needs to send an update to the LEDs - this is managed by hardware, but we still need to calculate the new values to send
- It needs to do all the other things a clock does, which frankly isn't that much in comparison to the display management
The output for the display is done with a single 8 bit write to the 595. 4 bits are used to say which display is on (through the optos) and the other 4 bits are used to drive the K155ID1. If during the process of writing out the display, we have a moment when the controller has to go and do something else, you can get a glitch. We schedule the housekeeping between digits, and the main clock running is done between impressions.
So, long introduction, but here's the point: If for any reason the WiFi needs more attention than usual, or the controller is running below spec, we can see problems like this.
First of all, go to the summary page and make sure that the Wemos is clocked at 160MHz. If it is running at 80, we won't get the housekeeping tasks done on schedule.
Secondly, is your WiFi signal strong? Are you maybe in an area with a lot of other WiFi networks? If the airwaves are crowded, the management of the signal needs more time than usual.
If it persists, I'll have a look at re-organising the code a bit. I have learnt a lot recently about the ESP, and there's always the possibility to improve.