I was reading through the file, just to learning how it does things. I’m curious why BrickPiUpdateValues loops through twice on the read&write cycle? The top ‘while i < 2 :’ line. It seems it does the second cycle even if the first one completes w/o any errors.
That may have been a design flaw indeed. I think the idea during development was that we knew there would be transmission errors over serial and we could change the value of iterations pretty easily if we had to before giving up. Does that make sense?