This particular display uses two "eight bit shift register". From 16 bits sent, the one byte is used to drive the digit, the other byte is used to drive the segments (seven plus decimal point, I assume).
If you send more bits, only the last 16 bits are kept in the register.
This particular display needs constant refresh from the microcontroller. So in a loop, you need to write first digit, wait a few milliseconds, write second digit, wait a while, till last digit and then repeat.
SPI is not designed to send a few bytes, wait a while, send, wait... but sends all bytes in a constant speed. So setup one SPI transmission for each digit. Will not overload the pico; perhaps it will be a bit more difficult to do other things in parallel In micropython, you could user timer interrupts do do the updatein the background.
There are similar looking display modules using MAX7219. These chips have internal memory and a driver which does the refresh automatically.
Ok thanks for the reply! So my suspicions were correct. If I do a loop I get flickering in the display. Any basic tips to mitigate the flickering? A faster refresh does not seem to do the trick.
Statistics: Posted by Nimbus123 — Tue Dec 26, 2023 10:13 pm