I had some time to work on this today and built a python script for executing commands to the whole gpio bank at once using the pigpio library. Rather than sending out commands 1 pin at at time like I was forced to do with wiring-pi.
So far it seems to work WAY better than than the previous script I'm not seeing any command misinterpretation at all.
with this I setup a simple test script for testing the speed of commands. I issue a command then sleep before issuing the next.
The test uses the commands that set the segments one at at time. So I clear the display and then one command at a time I turn on each segment of the display (16 commands total). this means that if commands were issued too fast there would be a missing segment on the display.
I loop this 5 times and generally I can pick out if something didn't light up even if it wasn't on the final loop.
I was able to get the sleep time down to .00386 between commands (the actual time is slightly higher than that as it does take some clock cycles to prepare the bit-masks for each command before issuing). but even still that's about 250Hz and at that speed the display is flickering so fast you can barely make out what it's doing.
This bodes very well for making custom animations as it's definitely fast enough to make it work.
The method for writing to the whole bank at once also makes for a nice foundation for building a custom control app.
So far it seems to work WAY better than than the previous script I'm not seeing any command misinterpretation at all.
with this I setup a simple test script for testing the speed of commands. I issue a command then sleep before issuing the next.
The test uses the commands that set the segments one at at time. So I clear the display and then one command at a time I turn on each segment of the display (16 commands total). this means that if commands were issued too fast there would be a missing segment on the display.
I loop this 5 times and generally I can pick out if something didn't light up even if it wasn't on the final loop.
I was able to get the sleep time down to .00386 between commands (the actual time is slightly higher than that as it does take some clock cycles to prepare the bit-masks for each command before issuing). but even still that's about 250Hz and at that speed the display is flickering so fast you can barely make out what it's doing.
This bodes very well for making custom animations as it's definitely fast enough to make it work.
The method for writing to the whole bank at once also makes for a nice foundation for building a custom control app.