Maker.io main logo

Installing CircuitPython on Keybow 2040 (or Pico RGB Keypad)

2023-10-26 | By Pimoroni

License: See Original Project

Courtesy of Pimoroni

Guide by Pimoroni

In this tutorial, we'll walk you through installing CircuitPython and our PMK ‎library on some of our more macro pad friendly boards, as well as showing ‎you where to find the CircuitPython libraries that you'll need.‎

If you buy a Keybow 2040 it will come with CircuitPython and libraries pre-‎installed, but you might find this guide useful if you want to upgrade to the ‎latest versions, or if something goes wrong and you need to start from ‎scratch.‎

What you'll need

or

These instructions will assume you have a Keybow 2040 - scroll down to the ‎bottom for things you'll need to do differently if you have a RGB Keypad.‎

Downloading and Installing CircuitPython

We're using CircuitPython for our macro pad firmware as HID is not yet ‎supported in MicroPython.‎

First of all, go to this page and download the most recent .uf2 file - this is a ‎customised version of CircuitPython built especially for Keybow 2040.‎

page_1

For the next bit, you'll need to locate the BOOTSEL button on your Keybow. ‎You can find it to the right of the USB port, assuming your Keybow is oriented ‎with keys pointing upwards and the USB-C port at the top edge.‎

Whilst holding down the BOOTSEL button, connect it to your computer with ‎the USB-C cable or tap RESET (the other button) if it's already plugged in. It ‎should show up as a drive called RPI-RP2 - it's now in bootloader/DFU ‎mode. Copy the downloaded .uf2 file to this drive. After a few seconds it ‎should show up as a drive named CIRCUITPY - it's now running CircuitPython!‎

This is what the CIRCUITPY drive looks like in Windows:‎

file_2

If you'd like to learn more about CircuitPython and how it works, there's a ton ‎of information on the Adafruit site.‎

Downloading and Installing the Libraries

The next thing you'll need to do is download and install the libraries that ‎Keybow uses. CircuitPython libraries are installed by copying files from your ‎computer to the lib folder in the CIRCUITPY drive - super easy!‎

If you already have files in your lib folder, it's a good idea to delete them ‎before you copy across the new ones, as having older versions of the libraries ‎lurking around can cause problems.‎

First up is the Adafruit IS31FL3731 library - this is a driver for Keybow's LED ‎matrix controller. The easiest way to get it is via the CircuitPython Library ‎Bundle, which you can download from this page. Make sure you download ‎the library bundle that matches your CircuitPython version!‎

version_3

Once you've unzipped the file, copy the adafruit_is31fl3731 folder from the ‎bundle's lib folder across to the lib folder on your CIRCUITPY drive.‎

Next, you'll need to download our PMK library from GitHub (PMK stands for ‎Pimoroni Mechanical/Mushy Keypad, if you're curious!). Click on the green ‎‎'Code' button at the top of the page and select 'Download ZIP' in the ‎dropdown - this will download the whole library, complete with examples.‎‎

library_4

Unzip the file and copy the PMK folder into the lib folder on CIRCUITPY. The ‎contents of the lib folder on your CIRCUITPY drive should now look something ‎like this:‎

folder_5

Running the examples

If you downloaded the whole PMK library as a zip file, you should already ‎have a copy of our examples on your computer. They demonstrate a variety ‎of interesting things you can do with your new macro pad.‎

examples_6

To load an example onto Keybow, all you need to do is rename it ‎to code.py and copy it to CIRCUITPY (or open up the example in a text editor ‎and copy and paste the contents into code.py). Once it's saved, CircuitPython ‎will automatically detect changes and start running the code. We'd suggest ‎trying reactive-press.py or rainbow.py first as they don't require any additional ‎libraries.‎

Some of the other examples need other libraries to be installed - the ones ‎that set up Keybow 2040 as a USB keyboard will need adafruit_hid installing for ‎example. You should be able to find any extra libraries that you need in the ‎Adafruit bundle - copy them to the lib folder just as before.‎

You can find more documentation on how the PMK library works and how ‎you can use it to create your own custom layouts on Github.‎

PMK on Pico RGB Keypad

Thanks to some excellent community contributions, you can now also run the ‎PMK library on a Raspberry Pi Pico equipped with a nice, squishy Pico RGB ‎Keypad! Setting it up is a similar process to the one described above, with the ‎following tweaks:‎

  • You'll need to download and install CircuitPython for Raspberry Pi ‎Pico instead of CircuitPython for Keybow 2040
  • RGB Keypad has APA102 LEDs (aka Dotstar), so you'll need to ‎copy adafruit_dotstar.mpy from the library bundle into your lib folder
  • When you save your example as code.py, add a # to the beginning of the ‎line that starts from pmk.platform.keybow2040 and remove the # from the line ‎that starts from pmk.platform.rgbkeypadbase, like this:‎

download_7

Factory Reset

If you really heck things up and want to start completely from scratch this ‎special .uf2 file will delete all the files stored in flash memory. Once you've ‎downloaded the file, hold down BOOTSEL whilst plugging in your USB-C ‎cable/tapping reset to get into bootloader mode, then copy the uf2 to the RPI-‎RP2 and let it reboot. You'll need to follow the steps above to reinstall ‎everything again afterwards.‎

That's all folks!

制造商零件编号 PIM565
SWITCH KEYPAD 16KEY CLICKY
Pimoroni Ltd
¥482.80
Details
制造商零件编号 SC0915
RASPBERRY PI PICO RP2040
Raspberry Pi
¥32.56
Details
制造商零件编号 PIM551
PICO RGB KEYPAD BASE
Pimoroni Ltd
¥206.76
Details
Add all DigiKey Parts to Cart
TechForum

Have questions or comments? Continue the conversation on TechForum, DigiKey's online community and technical resource.

Visit TechForum