BB Q20 Keyboard with trackpad

by Solder Party

Image of Board

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!



Have some info to add for this board? Edit the source for this page here.

CircuitPython 8.0.0-beta.1

This is the latest unstable release of CircuitPython that will work with the BB Q20 Keyboard with trackpad.

Unstable builds have the latest features but are more likely to have critical bugs.

Release Notes for 8.0.0-beta.1

Built-in modules available: _bleio, adafruit_bus_device, adafruit_pixelbuf, aesio, alarm, analogbufio, analogio, atexit, audiobusio, audiocore, audiomixer, audiomp3, audiopwmio, binascii, bitbangio, bitmaptools, bitops, board, busio, countio, digitalio, displayio, dotenv, errno, floppyio, fontio, framebufferio, getpass, i2ctarget, imagecapture, json, keypad, math, microcontroller, msgpack, neopixel_write, nvm, onewireio, os, paralleldisplay, pulseio, pwmio, qrio, rainbowio, random, re, rgbmatrix, rotaryio, rtc, sdcardio, sharpdisplay, storage, struct, supervisor, synthio, terminalio, time, touchio, traceback, ulab, usb_cdc, usb_hid, usb_midi, vectorio, watchdog, zlib

Included frozen(?) modules: adafruit_hid

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. Try them if you want the absolute latest and are feeling daring or want to see if a problem has been fixed.

Past Releases

All previous releases are listed on GitHub, with release notes, and are available for download from Amazon S3. They are handy for testing, but otherwise we recommend using the latest stable release. Some older GitHub release pages include the same binaries for downloading. But we have discontinued including binaries as assets on newer release pages because of the large number of files for each release.