# Picovector text oddness

**URL:** <https://forums.pimoroni.com/t/picovector-text-oddness/29069>\
**Category:** Support\
**Created:** [September 2, 2026, 9:39pm UTC](https://forums.pimoroni.com/t/picovector-text-oddness/29069 "2026-09-02T21:39:34Z")\
**Posts on this page:** 12\
**Page:** 1

<div class="post-metadata">

**Author:** ![achrn](https://avatars.discourse-cdn.com/v4/letter/a/db5fbb/32.png) [@achrn](https://forums.pimoroni.com/u/achrn)\
**Post date:** [September 2, 2026, 9:39pm UTC](https://forums.pimoroni.com/t/picovector-text-oddness/29069/1 "2026-09-02T21:39:34Z")

</div>

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](https://github.com/pimoroni/picovector-fonts/releases/) 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:

```auto
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:

 ![IMG_20260902_215455242](https://us1.discourse-cdn.com/flex016/uploads/pimoroni/original/2X/7/744b9b98b8419270dc05ec671e80084c58c71d07.jpeg)

The second run:

 ![IMG_20260902_215504189](https://us1.discourse-cdn.com/flex016/uploads/pimoroni/original/2X/2/2bd7db5b6339548f9f7eab0ba22a724e27414761.jpeg)

The third run:

 ![IMG_20260902_215516201](https://us1.discourse-cdn.com/flex016/uploads/pimoroni/original/2X/8/85d75f9b61468535a7fadc50e7e3951f51c13a23.jpeg)

This is literally just clicking the ‘run current script’ icon in Thonny three times.

---

<div class="post-metadata">

**Author:** ![SirFico](https://avatars.discourse-cdn.com/v4/letter/s/bcef8e/32.png) [@SirFico](https://forums.pimoroni.com/u/SirFico)\
**Post date:** [September 3, 2026, 9:26am UTC](https://forums.pimoroni.com/t/picovector-text-oddness/29069/2 "2026-09-03T09:26:36Z")

</div>

I have one of these pico display screens attached to a pico2 not doing anything in my drawer so I loaded on the Pimoroni pico2 v1.29.0-2 on 2026-08-31 and tried your program.

I can confirm similar problems, though not identical. It ran OK for the first 5 or 6 times I ran the program but eventually got:

Traceback (most recent call last):  
File “”, line 4, in  
MemoryError: memory allocation failed, allocating 76800 bytes

Also one subsequent try I got some other squiggly lines on the screen.

So this was just to confirm you are not alone with this issue. I’ve no time to do any more tests at the moment, but perhaps you should email Pimoroni support to report the issue.

---

<div class="post-metadata">

**Author:** ![alphanumeric](https://sea2.discourse-cdn.com/flex016/user_avatar/forums.pimoroni.com/alphanumeric/32/2729_2.png) [@alphanumeric](https://forums.pimoroni.com/u/alphanumeric)\
**Post date:** [September 3, 2026, 5:18pm UTC](https://forums.pimoroni.com/t/picovector-text-oddness/29069/3 "2026-09-03T17:18:31Z")

</div>

Try

```auto
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
blk_pen = display.create_pen(0,0,0) # black

vector.set_font("OpenSans-Regular.af",24)

display.set_pen(blk_pen)
display.clear()

display.set_pen(wht_pen)
display.clear()
display.set_pen(grn_pen)
vector.text("abcdefghijklmnopqrstuvwxyz", 10,50)
vector.text("0123456789", 10,90)

display.update()

```

display.set\_pen(blk\_pen)  
display.clear()

should fill the display buffer with all zero’s, efectivly empty.  
is there a “display.fill()” option?

---

<div class="post-metadata">

**Author:** ![achrn](https://avatars.discourse-cdn.com/v4/letter/a/db5fbb/32.png) [@achrn](https://forums.pimoroni.com/u/achrn)\
**Post date:** [September 3, 2026, 7:43pm UTC](https://forums.pimoroni.com/t/picovector-text-oddness/29069/4 "2026-09-03T19:43:32Z")

</div>

Behaves almost the same, but on the third run I don’t get a black screen, but the Pico hangs before it gets as far as updating the screen so I just see what’s left over after teh second run.

I changed the first few lines to:

```auto
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)

print("screentesting2.py",0.1)

display.set_backlight(0.7)

```

and it doesn’t get as far as the print - so now it hangs in one of those first four lines, but without blanking the screen. If I go back and put a print into my original script at the same place it likewise doesn’t do the print, both both versions of the code are hanging / freezing / whatever in either the imports (unlikely) or the `display = ...` or `vector = ...` lines.

When it gets stuck there the ‘STOP’ button in Thonny doesn’t work (says ‘Unable to connect to COM3:’ etc) so I have to either pull power or short ‘run’ pin to ground. I guess the fix is just to do that every time regardless.

---

<div class="post-metadata">

**Author:** ![alphanumeric](https://sea2.discourse-cdn.com/flex016/user_avatar/forums.pimoroni.com/alphanumeric/32/2729_2.png) [@alphanumeric](https://forums.pimoroni.com/u/alphanumeric)\
**Post date:** [September 3, 2026, 9:25pm UTC](https://forums.pimoroni.com/t/picovector-text-oddness/29069/5 "2026-09-03T21:25:29Z")

</div>

I’m going to have a look see in my boxes of stuff for a Display Pack 2. Once i hunt one up I’ll test some code on it and get back to you.

---

<div class="post-metadata">

**Author:** ![alphanumeric](https://sea2.discourse-cdn.com/flex016/user_avatar/forums.pimoroni.com/alphanumeric/32/2729_2.png) [@alphanumeric](https://forums.pimoroni.com/u/alphanumeric)\
**Post date:** [September 3, 2026, 9:47pm UTC](https://forums.pimoroni.com/t/picovector-text-oddness/29069/6 "2026-09-03T21:47:44Z")

</div>

I went here [Release Version 1.29.0 · pimoroni/pimoroni-pico-rp2350 · GitHub](https://github.com/pimoroni/pimoroni-pico-rp2350/releases/tag/v1.29.0)  
and downloaded `rpi_pico2-v1.29.0-micropython.uf2` is that the one you used?

It looks like I’m missing a font? Line 12 is  
`vector.set_font("OpenSans-Regular.af",24)`  
which gets me.

```auto
MPY: soft reboot
Traceback (most recent call last):
  File "<stdin>", line 12, in <module>
OSError: [Errno 2] ENOENT

```

---

<div class="post-metadata">

**Author:** ![SirFico](https://avatars.discourse-cdn.com/v4/letter/s/bcef8e/32.png) [@SirFico](https://forums.pimoroni.com/u/SirFico)\
**Post date:** [September 3, 2026, 11:48pm UTC](https://forums.pimoroni.com/t/picovector-text-oddness/29069/7 "2026-09-03T23:48:48Z")

</div>

@alphanumeric get your fonts here:

> **[alright-fonts/sample-fonts/OpenSans at feature/16bit-afinate ·...](https://github.com/Gadgetoid/alright-fonts/tree/feature/16bit-afinate/sample-fonts/OpenSans)**
>
> feature/16bit-afinate/sample-fonts/OpenSans

---

<div class="post-metadata">

**Author:** ![bablokb](https://avatars.discourse-cdn.com/v4/letter/b/ee59a6/32.png) [@bablokb](https://forums.pimoroni.com/u/bablokb)\
**Post date:** [September 4, 2026, 6:25am UTC](https://forums.pimoroni.com/t/picovector-text-oddness/29069/8 "2026-09-04T06:25:28Z")

</div>

When I look at the source behind vector, I can see that `vector.set_font()` deallocates memory for the last font (if any), otherwise the memory is never freed. There are other data-structures within `PicoVector` that are explicitly freed at destructor time, so this could be the cause of the MemoryError you see.

---

<div class="post-metadata">

**Author:** ![alphanumeric](https://sea2.discourse-cdn.com/flex016/user_avatar/forums.pimoroni.com/alphanumeric/32/2729_2.png) [@alphanumeric](https://forums.pimoroni.com/u/alphanumeric)\
**Post date:** [September 4, 2026, 8:24am UTC](https://forums.pimoroni.com/t/picovector-text-oddness/29069/9 "2026-09-04T08:24:58Z")

</div>

Got it, and now I’m seeing what your seeing.

---

<div class="post-metadata">

**Author:** ![alphanumeric](https://sea2.discourse-cdn.com/flex016/user_avatar/forums.pimoroni.com/alphanumeric/32/2729_2.png) [@alphanumeric](https://forums.pimoroni.com/u/alphanumeric)\
**Post date:** [September 5, 2026, 5:31pm UTC](https://forums.pimoroni.com/t/picovector-text-oddness/29069/10 "2026-09-05T17:31:23Z")

</div>

You might want to post this as an issue on thier GitHub page?

> **[Issues · pimoroni/picovector-micropython](https://github.com/pimoroni/picovector-micropython/issues)**
>
> Contribute to pimoroni/picovector-micropython development by creating an account on GitHub.

---

<div class="post-metadata">

**Author:** ![achrn](https://avatars.discourse-cdn.com/v4/letter/a/db5fbb/32.png) [@achrn](https://forums.pimoroni.com/u/achrn)\
**Post date:** [September 7, 2026, 5:17pm UTC](https://forums.pimoroni.com/t/picovector-text-oddness/29069/11 "2026-09-07T17:17:39Z")

</div>

I’ve raised it against [GitHub - pimoroni/pimoroni-pico: Libraries and examples to support Pimoroni Pico add-ons in C++ and MicroPython. · GitHub](https://github.com/pimoroni/pimoroni-pico) because if I try a very similar script on a Presto it runs fine many times over, so I don’t think it’s picovector in general.

My Presto will run this over and over (at least until I get bored of clicking run):

```auto
from presto import Presto
from picovector import PicoVector

presto = Presto(ambient_light=False)
display = presto.display
vector = PicoVector(presto.display)

print("screentesting.py",0.12)

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)

presto.update()

print("done")

```

---

<div class="post-metadata">

**Author:** ![alphanumeric](https://sea2.discourse-cdn.com/flex016/user_avatar/forums.pimoroni.com/alphanumeric/32/2729_2.png) [@alphanumeric](https://forums.pimoroni.com/u/alphanumeric)\
**Post date:** [September 7, 2026, 9:34pm UTC](https://forums.pimoroni.com/t/picovector-text-oddness/29069/12 "2026-09-07T21:34:27Z")

</div>

I don’t have a Presto, so I can’t test that code on one. I will be watching to see what transpires.
