I have a Pico 2 with a Pico Display Pack 2.8. Using pico2-v1.29.0-2-pimoroni-micropython.uf2 I have a very simple micropython script that displays two lines of text.
The first time I run it after powering on the board it works.
The second time I run it, five characters are missing (k, u, 5, 6 & ’ ')
The third time I run it nothing displays (black screen).
The time interval between successive runs does not affect behaviour.
All occurrences of those five characters disappear. However, If I change the string displayed the characters lost change:
‘abcdefghijklmnopqrstuvwxyz’ becomes '‘abcdefghijlmnopqrstvwxyz’
‘the quick brown fox jumps’ becomes ‘thequickbrownfoxjmps’, i.e. I lose the u and the spaces, but the k survives.
‘ku56 ku56 ku56’ becomes ‘kukuku’ so both k and u survive.
After any of the runs if I power-cycle the pico and display the process restarts at the first run, with a correctly working pass of the script. For any given string, the same characters are lost on the second run, and the third run is always blank (black) screen.
Googling reveals that missing characters is blamed on suspect font af file encoding, but I got mine from Releases · pimoroni/picovector-fonts · GitHub v1.1.1. Googling says a PicoVector script running once fine and failing the second time is a known fault with arc function solved in firmware at the start of 2025, and I’m using pico2-v1.29.0-2-pimoroni-micropython.uf2 from two days ago. I can’t find my observed behaviour (fault on 2nd run, fail on 3rd run) reported elsewhere.
Does anyone have any suggestions?
The script:
from picographics import PicoGraphics, DISPLAY_PICO_DISPLAY_2, PEN_P8
from picovector import PicoVector
display = PicoGraphics(display=DISPLAY_PICO_DISPLAY_2, pen_type=PEN_P8)
vector = PicoVector(display)
display.set_backlight(0.7)
wht_pen = display.create_pen(255,255,255) # white
grn_pen = display.create_pen(0,200,0) # green
vector.set_font("OpenSans-Regular.af",24)
display.set_pen(wht_pen)
display.clear()
display.set_pen(grn_pen)
vector.text("abcdefghijklmnopqrstuvwxyz", 10,50)
vector.text("0123456789", 10,90)
display.update()
The first run:
The second run:
The third run:
This is literally just clicking the ‘run current script’ icon in Thonny three times.


