
BB Q20 Keyboard with trackpad by Solder Party
A BB Q20 Keyboard in USB/PMOD/Qwiic format with a injection molded clear plastic case.
This is the evolution of our previous BBQ10 PMOD board. We took all the feedback from that board and improved on the design in every way.
We added a Qwiic/Stemma QT connector, we added USB HID support, we changed to a Q20 keyboard, which gave us four extra buttons, and the optical trackpad that works as a USB HID Mouse. And we decided to put the whole thing into a custom-designed injection molded clear plastic case for better usability and durability, as well as that retro 90s look.
The board uses the Raspberry Pi RP2040 MCU to poll the keyboard and trackpad and put the key press information into a FIFO.
You can use the I2C interface to read the FIFO, reconfigure the chip, and change the keyboar backlight.
In addition to that, the board also has a USB Type-C socket, and when connected to a desktop computer (Windows/Linux/MacOS), a smartphone (iOS/Android), or a SBC (Raspberry Pi, etc), it enumerates as a USB HID Keyboard and Mouse combo!
The firmware can be configured over USB using the Vendor Class interface.
The I2C interface is compatible with the old BBQ10 module, you can use the same libraries to interface this board.
Note: This board is not 5V-tolerant!
Links
Purchase
Contribute
Have some info to add for this board? Edit the source for this page here.
CircuitPython 9.2.6
This is the latest stable release of CircuitPython that will work with the BB Q20 Keyboard with trackpad. Use this release if you are new to CircuitPython.
Modules included in this download
_asyncio _bleio _eve _pixelmap adafruit_bus_device adafruit_pixelbuf aesio alarm analogbufio analogio array atexit audiobusio audiocore audiomixer audiomp3 audiopwmio binascii bitbangio bitmapfilter bitmaptools bitops board builtins builtins.pow3 busdisplay busio busio.SPI busio.UART codeop collections countio digitalio displayio epaperdisplay errno floppyio fontio fourwire framebufferio getpass gifio hashlib i2cdisplaybus i2ctarget imagecapture io jpegio json keypad keypad.KeyMatrix keypad.Keys keypad.ShiftRegisterKeys keypad_demux keypad_demux.DemuxKeyMatrix locale math memorymap microcontroller msgpack neopixel_write nvm onewireio os os.getenv paralleldisplaybus pulseio pwmio qrio rainbowio random re rgbmatrix rotaryio rp2pio rtc sdcardio select sharpdisplay storage struct supervisor synthio sys terminalio tilepalettemapper time touchio traceback ulab usb usb_cdc usb_hid usb_host usb_midi usb_video vectorio warnings watchdog zlibIncluded frozen(?) modules: adafruit_hid
Features: USB-C, STEMMA QT/QWIIC
Absolute Newest
Every time we commit new code to CircuitPython we automatically build binaries for each board and language. The binaries are stored on Amazon S3, organized by board, and then by language. These releases are even newer than the development release listed above. Try them if you want the absolute latest and are feeling daring or want to see if a problem has been fixed.
Previous Versions of CircuitPython
All previous releases of CircuitPython are available for download from Amazon S3 through the button below. For very old releases, look in the OLD/ folder for each board. Release notes for each release are available at GitHub button below.
Older releases are useful for testing if you something appears to be broken in a newer release but used to work, or if you have older code that depends on features only available in an older release. Otherwise we recommend using the latest stable release.