-
Notifications
You must be signed in to change notification settings - Fork 8
Description
Hi,
I've got a project where we're using a Interstate75W board (RP2350-based) to display a 2 or 3-digit number. The use case here is to display the number of a horse rider that passes through a checkpoint, so they know they've been recorded as arriving through the checkpoint.
For this we've got it paired up with a 64×32 LED panel. The actual application receives this rider number via (IPv4!) UDP multicast over WiFi. I managed to convert the Terminus TTF font to give us a clear readable numerical display. Via WiFi, we can send a UDP packet that encodes the foreground colour, background colour, and the text to display, and the display updates.
Aside from it jumping around horizontally (it's supposed to be a monospace font, so shouldn't do that), it's perfect, except there's one problem. What I observe is after between 400 ~ 800 updates, the text stops being displayed. At most the background colour changes, but no text appears.
For the sake of application, I've stripped out the network code to focus on the text display:
- demo.py -- application
- terminus.af.gz -- font
Running this application on the i75w_rp2350-v0.0.5-micropython-with-filesystem.uf2 image, I see the number count roughly to around 750 or so, before disappearing. With the network-related code, it only gets to about 400.
There's no exception thrown, functions return None, no apparent change in behaviour, just the text isn't getting drawn on the screen anymore. If I re-start the application, re-drawing happens once more, until it suddenly doesn't some 400+ screen updates later.
If there's an error, we should be either handling it or throwing it, not silently failing and relying on the user to press a reset button.