Files
macropad/boot.py

37 lines
1.1 KiB
Python

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")