import time
import board, microcontroller, canio, digitalio, adafruit_mcp2515
mcp_can_spi = board.SPI()
mcp_can_cs = digitalio.DigitalInOut(board.D5)
mcp_can_int = digitalio.DigitalInOut(board.D6)
baudrate = 50_000

canbus = adafruit_mcp2515.MCP2515(mcp_can_spi, mcp_can_cs, baudrate=baudrate, silent=True)
listener = canbus.listen(timeout=30)

while True:
    try:
        msg = listener.receive()
        if msg is not None:
            data = " ".join("%02x" % b for b in msg.data)
            print(f"Received message {msg.id=:8x} {data=}")
    except Exception as e:
        print(e)