32 its just an arbitrary limit that matches what the Arduino can do. I haven’t tested this but I think you can expand it yourself if you want.
Look in ospi.py for the setup of gv.sd around line 405. You want to change the value of the mnp variable.
Current line:
gv.sd = ({u"en": 1, u"seq": 1, u"mnp": 32, u"ir": [0], u"rsn": 0, u"htp": 8080, u"nst": 8,
Change to:
gv.sd = ({u"en": 1, u"seq": 1, u"mnp": 64, u"ir": [0], u"rsn": 0, u"htp": 8080, u"nst": 8,
I haven’t tested this myself but I don’t see anything in the code that wouldn’t work with >32 programs. I create a program #97 and the code works with it.