Skip to main content

Framework 16 E-Paper Module

The Framework 16 E-Paper Module is a community-developed e-paper display that fits beneath the Framework Laptop 16's macro pad or numpad in the palm rest area1. Created by snowball (BBBSnowball) and published in May 2024, it uses a Waveshare 3.7" e-paper display with a resistive touchscreen, connected to the laptop via a custom flex PCB that taps into the input module's secondary pogo pin connector12.

Design

The module sneaks a polyimide (Kapton) flex PCB beneath a double-width input module (macro pad or numpad) to connect to the second set of pogo pins, which provide USB connectivity1. The flex PCB carries12:

  • An RP2040-Tiny microcontroller board
  • The essential components from Waveshare's 3.7" e-paper adapter board
  • Pads for a resistive touchscreen overlay
  • An optional APDS-9960 gesture sensor

The design deliberately occupies the spacer area between input modules rather than replacing a module entirely — allowing users to keep their macro pad or numpad while adding the display1.

Installation

The flex PCB must be aligned to the pogo pins before installing the macro pad module, then held in place with transparent tape1. Through-hole pads on the flex PCB help with alignment by fitting over the pogo pins. The flex PCB bends during installation, which probably won't survive hundreds of removal cycles but holds up well in practice1. Snowball acknowledged this is not a robust commercial-grade solution and described it as something the Framework input module spec "isn't meant to allow"1.

Placement

The module requires a free set of pogo pins with USB. In practice1:

  • Best placed below a double-width module (macro pad or numpad)
  • Can be positioned on either the left or right side of the touchpad
  • The touchpad module's three center I2C pogo pins are not useful for this module
  • The module and touchpad positions could potentially be swapped

Technical Specifications

SpecificationDetails
DisplayWaveshare 3.7" e-paper (480×280, 4-level grayscale)1
TouchResistive touchscreen overlay1
MCURP2040-Tiny12
Gesture SensorAPDS-9960 (optional)1
Security ChipATECC (optional, intended for FIDO2 — not fully realized)1
ConnectionFlex PCB to secondary pogo pins (USB)1
Host CompatibilityFramework Laptop 16 only1
PCB Cost~25 EUR for flex PCBs including shipping (JLCPCB)1
Total Estimated Cost30–80 EUR1
SourceBBBSnowball/fw16 (GitHub)2

Software

Snowball implemented a headless Sway output mirrored to the e-paper display, using dithering to simulate additional grayscale levels beyond the display's native four1. The display appears as an additional monitor in the Sway window manager compositor, showing waybar, applications, and notifications1.

Known software issues1:

  • Notification daemons (e.g., mako) may display notifications on the e-paper instead of the main screen
  • The e-paper locks together with the main screen (swaylock affects both displays)
  • A workaround using a nested Sway session with X11 backend allows the e-paper to remain unlocked, but applications cannot be moved between displays without restarting

Snowball expressed interest in adding security functions (FIDO2 with UI, password manager) but noted that RP2040 lacks trusted boot for secure implementations. An upgrade to RP2350 would enable security key functionality1.

Physical Constraints

The current module is 1 mm taller than the normal palm rest and needs a few extra millimeters toward the keys1. Finding a sufficiently thin touchscreen module was an ongoing challenge — snowball noted that resistive touchscreen sellers rarely specify connector pitch or full dimensions1.

PCB Errata

The published PCB design has several known issues12:

  • SPI pinout is incorrect on the flex PCB
  • Touchscreen connector pitch is wrong
  • Connector to pogo pins is too short
  • 3.3V for the e-paper is not connected when using the RP2040-Tiny USB adapter standalone (requires closing JP4, but then shouldn't be used with the laptop due to dual power sourcing)

Footnotes

  1. E-Paper module to replace spacers in palm rest — Framework Community (snowball, May 2024 – December 2024) 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26

  2. BBBSnowball/fw16 — GitHub 2 3 4 5