Once you've finished setting up your QT Py RP2040 with CircuitPython, you can access the code, bitmap and necessary libraries by downloading the Project Bundle.
To do this, click on the Download Project Bundle button in the window below. It will download as a zipped folder.
# SPDX-FileCopyrightText: 2022 Liz Clark for Adafruit Industries # # SPDX-License-Identifier: MIT import board import displayio import keypad from adafruit_st7789 import ST7789 import adafruit_imageload import usb_hid from adafruit_hid.keyboard import Keyboard from adafruit_hid.keycode import Keycode import usb_midi import adafruit_midi from adafruit_midi.note_on import NoteOn from adafruit_midi.note_off import NoteOff # if you want to use this as an HID keyboard, set keyboard_mode to True # otherwise, set it to False keyboard_mode = True # if you want to use this as a MIDI keyboard, set midi_mode to True # otherwise, set it to False midi_mode = False # change keyboard shortcuts here # defaults are shortcuts for save, cut, copy & paste # comment out ctrl depending on windows or macOS if keyboard_mode: keyboard = Keyboard(usb_hid.devices) # modifier for windows ctrl = Keycode.CONTROL # modifier for macOS # ctrl = Keycode.COMMAND key0 = Keycode.S key1 = Keycode.X key2 = Keycode.C key3 = Keycode.V shortcuts = [key0, key1, key2, key3] # change MIDI note numbers here if midi_mode: midi = adafruit_midi.MIDI(midi_out=usb_midi.ports[1], out_channel=0) midi_notes = [60, 61, 62, 63] # Release any resources currently in use for the displays displayio.release_displays() # spi display setup spi = board.SPI() tft_cs = board.D7 tft_dc = board.D5 display_bus = displayio.FourWire( spi, command=tft_dc, chip_select=tft_cs, reset=board.D6 ) # display setup display = ST7789(display_bus, width=240, height=240, rowstart=80) bitmap, palette = adafruit_imageload.load("/partyParrotsSmol.bmp", bitmap=displayio.Bitmap, palette=displayio.Palette) # Create a TileGrid to hold the bitmap parrot0_grid = displayio.TileGrid(bitmap, pixel_shader=palette, tile_height=32, tile_width=32) # Create a Group to hold the TileGrid group = displayio.Group(scale=4, x = 64, y = 32) # Add the TileGrid to the Group group.append(parrot0_grid) # Add the Group to the Display display.root_group = group # setup button pins key_pins = ( board.A0, board.A1, board.A2, board.A3, ) # create keypad keys = keypad.Keys(key_pins, value_when_pressed=False, pull=True) p = 0 # variable for tilegrid index while True: # get keypad inputs event = keys.events.get() if event: # if a key is pressed.. if event.pressed: # if a midi keyboard if midi_mode: # send note number midi.send(NoteOn(midi_notes[event.key_number], 120)) # if hid keyboard if keyboard_mode: # send hid keyboard shortcut keyboard.send(ctrl, shortcuts[event.key_number]) # advance parrot index p = (p + 1) % 10 # update parrot bitmap parrot0_grid[0] = p # if a key is released if event.released: # if a midi keyboard if midi_mode: # send note off message midi.send(NoteOff(midi_notes[event.key_number], 120))
After downloading the Project Bundle, plug your QT Py RP2040 into the computer USB port. You should see a new flash drive appear in the computer's File Explorer or Finder (depending on your operating system) called CIRCUITPY. Unzip the folder and copy the following items to the QT Py RP2040's CIRCUITPY drive.
- lib folder
- code.py
- parrot-240-sheet.bmp
Your QT Py RP2040 CIRCUITPY drive should look like this after copying the lib folder, parrot-240-sheet.bmp file and code.py file.
Page last edited January 22, 2025
Text editor powered by tinymce.