Bug in one of EYESY's factory modes - Text has zero width

Just got my eyesy and I am BEYOND pumped. Holy hell, I’ve just been sitting here putting on album after album, playing with eyesy on my TV. I haven’t even bothered with any other video gear yet.

But I’ve found a bug in Font Patterns. After going through probably 60 or 70 characters, it crashes.

I’m comfortable with python, but before I dig in to try to find the problem, I was wondering if anyone else had encountered this or fixed it.


1 Like

I think I’ve narrowed it down to sets 2 and 3, I think. Maybe they just have bad characters in them somehow. But I’m not sure how to debug it. It’s some bitwise stuff I’m not entirely comfortable with.

I’m anxiously waiting for mine. I’m in the 600’s of backer numbers so probably still be a while. Interesting about the bug though I will keep an eye on this post. Hope your able to resolve it.

I’ll definitely post the solution here for posterity. It’s the only bug like this that I’ve found. It’s probably just the random number generator reaching too far for those character sets or something.

I’ve encountered this bug too. I always pops up when I move one of the 1-3 encoders. I haven’t dove into the code to try to suss it out yet, but it’s on my list.

I’m fairly sure it’s knob 3, which controls which character set it’s pulling from. I shoved a print statement in to output the position of the knob every step and the break seems to only happen when knob3 is pointing at character sets 2 and 3.

That’s where my skill ends, because I have no idea how to debug the hex values accessing the characters.

Hi, have you solved your problem? I would have a suggestion to go to https://github.com/critterandguitari/EYESY_Modes_Pygame where they have the original presets. maybe a full dump would fix?

That’s something I haven’t tried yet. What’s the easiest way to swap out the modes?

Hi guys, I’ve figured out the font bug, it’s simple indeed, it’s only about single characters inside the .ttf

For arrows replace:
return unichr(random.randint(0x2190, 0x21FF)) # PROBLEMS
return unichr(random.randint(0x219C, 0x21BB))

For maths replace:
return unichr(random.randint(0x2200, 0x22ff)) # PROBLEMS
return unichr(random.randint(0x223D, 0x224D))

also character set “more math” has problems… Replace with fonts of your choice :wink:


Backwash, you beautiful human being, thank you so much! We should make a pull request.

Is more math a lost cause? Or do you have any suggestions or ideas on what to replace it with?

Thanks for the info @Backwash

I replaced More Maths with the I-Ching hexagrams:

if set == 7 :
    # I-Ching
    return unichr(random.randint(0x4DC2, 0x4DCF))
1 Like

thanks so much @Backwash this helps a lot

I ended up changing my # More math to

return unichr(random.randint(0x2ABD, 0x2ADF))


Hi @denkyuu, @Backwash, @brothervsrobot, @Syntheist ,

Thanks for your work on this!

Here’s an updated mode file:
main.py (3.2 KB)


  • Character sets exclude the problematic characters (although you did that already).


  • Improved the layout of the rows & columns. They are now centered vertically and horizontally.
  • Added a twelfth ‘set’ on Knob3. It selects a character from one of the 11 other sets. Allows for glyph randomization across sets.
1 Like

After uploaded the updated ‘main.py’ file into the Font Patterns folder to replace the existing file. The mode played well for a few minutes and then kicked out an error message:

error with draw: Traceback (most recent call last):
File “main.py”, line 195, in
mode.draw(screen, etc)
File “/sdcard/Modes/Python/T - Font Patterns/main.py”, line 27, in draw
font = pygame.font.Font(etc.mode_root + “/font.ttf”, size)
RuntimeError: Can’t seek in stream

Unfortunately, I’m not a coder so I can’t offer up a solution; so I thought it better to report the bug.

Thanks @Joscuzz. Can you try again after rebooting the EYESY? This will recompile the mode.
You also recompile the mode by pressing the Stop Video and then Start Video buttons from the left column of the EYESY’s web Editor.

Unfortunately, the error message still persists after rebooting, and using the ‘Stop Video’/‘Start Video’ method.

I’m using EYESY update version 2.2.

Can you delete the .pyc file in the mode folder and then reboot or press the Stop Video and then Start Video buttons from the EYESY’s web Editor?

Will do Chrisk. I’ll feedback tomorrow.

I have deleted the .pyc file from within the mode folder as instructed, and tried both methods of reboot, but nothing has remedied the same error message listed above.

Tbh - I’m not that precious about having the mode on my EYESY, but I will gladly work with you to help resolve the error issue. :face_with_monocle:

Thanks for the update. Not sure what is going on. Maybe something got corrupted when you updated that file?

I downloaded the updated main.py file (that I uploaded a few posts ago) and then uploaded to a new folder (also containing font.tff) inside my EYESY’s Python modes and it worked.
Here’s a copy of my ‘new’ folder: 1-fonP.zip (582.1 KB)