ImportError: no module named 'interstate75'

I was testing some code on my Interstate 75 and it appeared to have crashed / locked up. Pressed Stop and Thonny see’s it, running any i75 code examples now gets me the following error.

>>> %Run -c $EDITOR_CONTENT
Traceback (most recent call last):
  File "<stdin>", line 3, in <module>
ImportError: no module named 'interstate75'
>>> 
import time
import random
from interstate75 import Interstate75, DISPLAY_INTERSTATE75_128X32

Did a reset but same error. I put it in Boot Mode, did the flash nuke, and then flashed it with:
pimoroni-picow-v1.19.14-micropython.uf2
Same deal though, no module named interstate75?

Is this on Interstate 75 or Interstate 75 W?

import interstate75 seems to be working ok for me with this image (on an Interstate 75 W).

75 W. I’ve been trying to do best practice and edit my code locally on the Host PC. That works fine. It all goes down hill when I try to save as main.py to the i75 W.
If freezes with the following on screen in Thonny.
Capture

Then if I cancel or X out the i75 W is MIA to Thonny. It’s seems to be hit or miss, with more miss. I actually got it to save and run. But when I went in and made a minor edit it locked up again during the save. Then went MIA again.
Sometimes just clicking stop will get it back, but when i run my file from Thonny I get the no module names interstate75 message. Only way to get it back is to reflash the uf2 file.
I’ve had to do that twice already this morning.
It’s been running just fine now for a couple of hours with the following code, running from Thonny.

import time
import machine
from interstate75 import Interstate75
from interstate75 import Interstate75, SWITCH_A, SWITCH_B
i75 = Interstate75(display=Interstate75.DISPLAY_INTERSTATE75_128X32, stb_invert=True)
graphics = i75.display

from breakout_bme280 import BreakoutBME280
from pimoroni_i2c import PimoroniI2C

i2c = PimoroniI2C(sda=(20), scl=(21))
bme = BreakoutBME280(i2c, 0x77)
temperature, pressure, humidity = bme.read()

rtc = machine.RTC()
print(f"Getting time from Pico RTC/Thonny: {rtc.datetime()}")
year, month, day, weekday, hour, minute, second, microsecond = rtc.datetime()

graphics.set_font("bitmap8")
#graphics.set_font("8x12")
#graphics.set_font("10x14")

t_color = graphics.create_pen(0,0,0)
h_color = graphics.create_pen(0,0,0)
p_color = graphics.create_pen(0,0,0)

black = graphics.create_pen(0,0,0)
red = graphics.create_pen(255,0,0)
green = graphics.create_pen(0,255,0)
blue = graphics.create_pen(0,0,255)
yellow = graphics.create_pen(255,255,0)
orange = graphics.create_pen(255,140,0)
white = graphics.create_pen(224,224,224)

graphics.set_pen(black)
graphics.clear()
i75.update(graphics)
i75.set_led(0, 0 ,0)

# converts the temperature into a description and pen colour
def describe_temperature(temperature):
    global t_color
    if temperature < -10:
        description = "Very Cold"
        t_color = white
    elif -10 <= temperature <= 0:
        description = "Cold"
        t_color = blue
    elif 0 < temperature <= 12:
        description = "Cool"
        t_color = yellow
    elif 12 < temperature <= 16:
        description = "Warm"
        tempcolor = green
    elif 16 < temperature <= 24:
        description = "OK"
        t_color = green      
    elif 24 < temperature <= 27:
        description = "Hot"
        t_color = orange
    elif temperature > 27:
        description = "Very Hot"
        t_color = red
    return description

# converts humidity into a description and pen color
def describe_humidity(humidity):
    global h_color
    if humidity < 30:
        description = "Low"
        h_color = red
    elif 30 <= humidity <= 60:
        description = "OK"
        h_color = green
    elif 60 < humidity < 80:
        description = "High"
        h_color = yellow
    elif humidity >= 80:
        description = "Very High"
        h_color = orange        
    return description

# converts pressure into barometer-type description and pen color
def describe_pressure(pressure):
    global p_color
    if pressure < 982:
        description = "Very Low"
        p_color = red
    elif 982 <= pressure < 1004:
        description = "Low"
        p_color = yellow
    elif 1004 <= pressure < 1026:
        description = "OK"
        p_color = green
    elif 1026 <= pressure < 1048:
        description = "High"
        p_color = blue
    elif pressure >= 1048:
        description = "Very High"
        p_color = orange
    return description

temperature, pressure, humidity = bme.read()
time.sleep (0.5)

while True:
    graphics.set_pen(black)
    graphics.clear()
    i75.update(graphics)
    
    year, month, day, wd, hour, minute, second, _ = rtc.datetime()    
    
    graphics.set_pen(white)
    graphics.text(f"{day:02}:{month:02}:{year:02}", 0, 9, scale=1)  
    #display.text("year, month, day,rtc_date", 170, 0, scale=1)
    if hour <10:
        graphics.text(f"{hour:1}:{minute:02} AM", 0, 0, scale=1)
    elif 10 <= hour < 12:
        graphics.text(f"{hour:2}:{minute:02} AM", 0, 0, scale=1)
    elif hour == 12:
        graphics.text(f"{hour:2}:{minute:02} PM", 0, 0, scale=1)    
    elif hour >12:
        hour = hour - 12
        if hour <10:
            graphics.text(f"{hour:1}:{minute:02} PM", 0, 0, scale=1)
        elif 10 <= hour < 12:
            graphics.text(f"{hour:2}:{minute:02} PM", 0, 0, scale=1)
        elif hour == 12:
            graphics.text(f"{hour:2}:{minute:02} AM", 0, 0, scale=1)        
        
    temperature, pressure, humidity = bme.read()
    
    temperature = round(temperature)
    humidity = round(humidity)
    pressure = round(pressure)
    pressuremb = pressure / 100    
    
    describe_temperature(temperature) 
    graphics.set_pen(t_color)
    graphics.text("{:0.0f}°C" .format(temperature), 0, 18, scale=2)
    #graphics.text(describe_temperature(temperature), 30, 15,scale=1) 
   
    describe_humidity(humidity) 
    graphics.set_pen(h_color)
    graphics.text("{:0.0f} %".format(humidity), 64, 2, scale=2)
    #graphics.text(describe_humidity(humidity), 30, 25, scale=1) 
       
    describe_pressure(pressure) 
    graphics.set_pen(p_color)
    graphics.text("{:0.0f}mb" .format(pressuremb), 64, 18, scale=2)
    #graphics.text(describe_pressure(pressuremb), 74, 13, scale=1) 

    i75.update(graphics)
    time.sleep (60)

Just got his when trying to run my file from Thonny, after an edit and save. It was saved to my PC.

Happens over and over again now. I hit run, and nothing happens? No error message in Thonny, and nothing showing on the LED Matrix. If I click stop again, I get the above message. Unplugging and replugging the USB cable in gets it back.
Wash, rinse and repeat. Going to try switching to my Pi 400.

It looks like it was a Thonny issue on my PC install?
It worked OK on my Pi 400. I’ve uninstalled and reinstalled Thonny on my PC, and so far so good? Time will tell I guess. If I don’t get any more glitches I’ll come back and mark this as solved.