by Boardsource

Image of Board

Blok’s elevate any keyboard compatible with Pro Micro Footprints and grants them instant access to a modern and feature-rich ecosystem. Users who don’t want to touch a text editor or config file don’t have to, Blok’s work out of the box with Peg. Users can map keys, set LED colors, configure rotary encoders, create OLED images, and much more all from within an easy to use visual program (GUI). Many of Peg’s features and configuration options are unavailable through any other flashing program built for yesterday’s ATmega32U4 processors. Now, deep configuration and rich features custom keyboards offer can be configured easily instead of becoming another project. On the other hand, users who enjoy in-the-editor programming, product development, design, or any other roll your solution will similarly love the Blok. Shipping with KMK and CircuitPython out of the box, Blok’s offer enthusiasts and creators a modern development environment limited only by your imagination instead of programming knowledge and hardware constraints. Create your entire keymap in Python within a single file and test your changes instantly, no recompiling necessary. Remember, if this isn’t your thing — Peg can handle it for you.

Built on top of a powerful RP2040 ARM microprocessor and designed with the future in mind, Blok’s handle whatever you throw at them. Compared to older ATmega based controllers Blok’s have an incredible 100x the RAM, 8x the computing speed, 500x the ROM, are 32 bit instead of 8 bit, and are dual-core instead of single core. These are huge upgrades and allows for innovation and development within the custom keyboard space. Blok’s offer additional features and functionality compared to other RP2040 based controllers as well, such as OLED screen compatibility, innovative reset/boot switches accessible in any controller orientation, and a programmable RGB LED on-board.


  • RP2040 Controller
  • Dual core
  • 16MB ROM
  • 133 MHz
  • 32 bit processor
  • 264kb RAM
  • Height: 3.2mm (Height of USB C Port)
  • USB Type-C


  • Compatible With All Pro Micro Footprints.
  • Durable USB-C Port
  • On-board Reset and Boot switch in accessible locations.
  • Programmable RGB LED
  • Extremely low profile



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

CircuitPython 8.2.6

This is the latest stable release of CircuitPython that will work with the Blok.

Use this release if you are new to CircuitPython.

Release Notes for 8.2.6

Built-in modules available: _asyncio, _bleio, _pixelmap, adafruit_bus_device, adafruit_pixelbuf, aesio, alarm, analogbufio, analogio, array, atexit, audiobusio, audiocore, audiomixer, audiomp3, audiopwmio, binascii, bitbangio, bitmaptools, bitops, board, builtins, builtins.pow3, busio, busio.SPI, busio.UART, collections, countio, digitalio, displayio, errno, floppyio, fontio, framebufferio, getpass, gifio, i2ctarget, imagecapture, io, json, keypad, keypad.KeyMatrix, keypad.Keys, keypad.ShiftRegisterKeys, math, microcontroller, msgpack, neopixel_write, nvm, onewireio, os, os.getenv, paralleldisplay, pulseio, pwmio, qrio, rainbowio, random, re, rgbmatrix, rotaryio, rp2pio, rtc, sdcardio, select, sharpdisplay, storage, struct, supervisor, synthio, sys, terminalio, time, touchio, traceback, ulab, usb_cdc, usb_hid, usb_midi, vectorio, watchdog, zlib

Included frozen(?) modules: neopixel

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.