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

Framework Laptop 16 Keyboard

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

arm,cortex-m0+

ADC

on-chip

Raspberry Pi Pico ADC1

raspberrypi,pico-adc

Clock control

on-chip

Raspberry Pi Pico clock controller node1

raspberrypi,pico-clock-controller

on-chip

The representation of Raspberry Pi Pico’s clock112

raspberrypi,pico-clock

on-chip

The representation of Raspberry Pi Pico’s PLL2

raspberrypi,pico-pll

on-chip

The representation of Raspberry Pi Pico ring oscillator1

raspberrypi,pico-rosc

on-chip

The representation of Raspberry Pi Pico external oscillator1

raspberrypi,pico-xosc

Counter

on-chip

Raspberry Pi Pico timer1

raspberrypi,pico-timer

DMA

on-chip

Raspberry Pi Pico DMA1

raspberrypi,pico-dma

Flash controller

on-chip

Raspberry Pi Pico flash controller1

raspberrypi,pico-flash-controller

GPIO & Headers

on-chip

Raspberry Pi Pico GPIO1

raspberrypi,pico-gpio

on-chip

Raspberry Pi Pico GPIO Port1

raspberrypi,pico-gpio-port

I2C

on-chip

Raspberry Pi Pico I2C2

raspberrypi,pico-i2c

Interrupt controller

on-chip

ARMv6-M NVIC (Nested Vectored Interrupt Controller) controller1

arm,v6m-nvic

LED

on-board

Group of GPIO-controlled LEDs1

gpio-leds

on-board

Group of PWM-controlled LEDs1

pwm-leds

Miscellaneous

on-chip

Raspberry Pi Pico PIO2

raspberrypi,pico-pio

MTD

on-chip

Flash node1

soc-nv-flash

on-board

Fixed partitions of a flash (or other non-volatile storage) memory1

fixed-partitions

Pin control

on-chip

Raspberry Pi Pico Pin Controller1

raspberrypi,pico-pinctrl

PWM

on-chip

Raspberry Pi Pico PWM1

raspberrypi,pico-pwm

Regulator

on-chip

Raspberry Pi Pico core supply regurator1

raspberrypi,core-supply-regulator

Reset controller

on-chip

Raspberry Pi Pico Reset Controller1

raspberrypi,pico-reset

RTC

on-chip

Raspberry Pi Pico RTC1

raspberrypi,pico-rtc

Sensors

on-chip

Raspberry Pi Pico family temperature sensor node1

raspberrypi,pico-temp

Serial controller

on-chip

Raspberry Pi Pico UART2

raspberrypi,pico-uart

SPI

on-chip

Raspberry Pi Pico SPI2

raspberrypi,pico-spi

SRAM

on-chip

Generic on-chip SRAM1

mmio-sram

Timer

on-chip

ARMv6-M System Tick1

arm,armv6m-systick

USB

on-chip

Raspberry Pi Pico USB Device Controller1

raspberrypi,pico-usbd

Watchdog

on-chip

Raspberry Pi Pico Watchdog1

raspberrypi,pico-watchdog

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