import busio import digitalio import usb_hid from hardware import io_extenders_pinout, pinout from adafruit_mcp230xx.mcp23017 import MCP23017 import storage import usb_cdc io_extender_index, pin_number = pinout[0] address, scl, sda = io_extenders_pinout[io_extender_index] io_extender = MCP23017(busio.I2C(scl, sda), address) pin = io_extender.get_pin(pin_number) pin.direction = digitalio.Direction.INPUT pin.pull = digitalio.Pull.UP if pin.value: storage.disable_usb_drive() usb_cdc.disable() bitmap_keyboard = usb_hid.Device( report_descriptor=( b'\x05\x01\t\x06\xa1\x01\x85\x04u\x01\x95\x08\x05\x07\x19\xe0)\xe7\x15\x00%\x01\x81\x02\x95\x05u\x01\x05\x08\x19\x01)\x05\x91\x02\x95\x01u\x03\x91\x03\x95xu\x01\x15\x00%\x01\x05\x07\x19\x00)w\x81\x02\xc0'), report_ids=(4,), in_report_lengths=(16,), out_report_lengths=(1,), usage_page=0x1, usage=0x6, ) print(bitmap_keyboard) devices = [ bitmap_keyboard, usb_hid.Device.CONSUMER_CONTROL, usb_hid.Device.MOUSE, ] usb_hid.enable(devices) print("enabled HID with custom keyboard device")