Framework Laptop 16 Keyboard
Overview
The Framework Laptop 16 compatible Keyboard modules, based on RP2040 MCU, come in different sizes and with per-key RGB or white backlight:
RGB backlight
ANSI Keyboard
Macropad
White backlight
ANSI Keyboard
ISO Keyboard
Numpad
Hardware
Dual core Arm Cortex-M0+ processor running up to 133MHz
264KB on-chip SRAM
1MB on-board QSPI flash with XIP capabilities
Backlight
1 PWM channel controlling the backlight
Per-key RGB backlight
Numpad/Macropad: 8x4 keyboard matrix, with 21/24 keys
Keyboard: 16x8 keyboard matrix
1 Analog input for key scanning
1 SGM48751 Mux for connecting any of the 8 KSI to the ADC input
USB 1.1 controller (host/device)
8 Programmable I/O (PIO) for custom peripherals
1 Watchdog timer peripheral
Supported Features
The framework_laptop16_keyboard board supports the hardware features listed below.
- on-chip / on-board
- Feature integrated in the SoC / present on the board.
- 2 / 2
-
Number of instances that are enabled / disabled.
Click on the label to see the first instance of this feature in the board/SoC DTS files. -
vnd,foo -
Compatible string for the Devicetree binding matching the feature.
Click on the link to view the binding documentation.
framework_laptop16_keyboard/rp2040 target
Type |
Location |
Description |
Compatible |
|---|---|---|---|
CPU |
on-chip |
ARM Cortex-M0+ CPU2 |
|
ADC |
on-chip |
Raspberry Pi Pico ADC1 |
|
Clock control |
on-chip |
Raspberry Pi Pico clock controller node1 |
|
on-chip |
|||
on-chip |
The representation of Raspberry Pi Pico’s PLL2 |
||
on-chip |
The representation of Raspberry Pi Pico ring oscillator1 |
||
on-chip |
The representation of Raspberry Pi Pico external oscillator1 |
||
Counter |
on-chip |
Raspberry Pi Pico timer1 |
|
DMA |
on-chip |
Raspberry Pi Pico DMA1 |
|
Flash controller |
on-chip |
Raspberry Pi Pico flash controller1 |
|
GPIO & Headers |
on-chip |
Raspberry Pi Pico GPIO1 |
|
on-chip |
Raspberry Pi Pico GPIO Port1 |
||
I2C |
on-chip |
Raspberry Pi Pico I2C2 |
|
Interrupt controller |
on-chip |
ARMv6-M NVIC (Nested Vectored Interrupt Controller) controller1 |
|
LED |
on-board |
Group of GPIO-controlled LEDs1 |
|
on-board |
Group of PWM-controlled LEDs1 |
||
Miscellaneous |
on-chip |
Raspberry Pi Pico PIO2 |
|
MTD |
on-chip |
Flash node1 |
|
on-board |
Fixed partitions of a flash (or other non-volatile storage) memory1 |
||
Pin control |
on-chip |
Raspberry Pi Pico Pin Controller1 |
|
PWM |
on-chip |
Raspberry Pi Pico PWM1 |
|
Regulator |
on-chip |
Raspberry Pi Pico core supply regurator1 |
|
Reset controller |
on-chip |
Raspberry Pi Pico Reset Controller1 |
|
RTC |
on-chip |
Raspberry Pi Pico RTC1 |
|
Sensors |
on-chip |
Raspberry Pi Pico family temperature sensor node1 |
|
Serial controller |
on-chip |
Raspberry Pi Pico UART2 |
|
SPI |
on-chip |
Raspberry Pi Pico SPI2 |
|
SRAM |
on-chip |
Generic on-chip SRAM1 |
|
Timer |
on-chip |
ARMv6-M System Tick1 |
|
USB |
on-chip |
Raspberry Pi Pico USB Device Controller1 |
|
Watchdog |
on-chip |
Raspberry Pi Pico Watchdog1 |
Programming and Debugging
The framework_laptop16_keyboard board supports the runners and associated west commands listed below.
| flash | debug | |
|---|---|---|
| uf2 | ✅ (default) |
Flashing
Using UF2
Here is an example of building the sample for driving the built-in led.
west build -b rp2040_plus samples/basic/blinky_pwm
You must flash the keyboard with an UF2 file. One option is to use West (Zephyr’s meta-tool). To
enter the UF2 flashing mode, remove the module and hold down the both ALT keys (or 1 and 6
on the numpad) while assembling (powering) it again. It will appear on the host as a mass storage
device. At this point you can flash the image file by running:
west flash
Alternatively, you can locate the generated build/zephyr/zephyr.uf2 file and simply
drag-and-drop to the device after entering the UF2 flashing mode.
References
Official Product Pages