esp32.diy

PocketMage PDA: Build an E-Ink PDA with ESP32-S3

Oct 11, 2026 · 5 min read

Advanced 2k stars 113 forks C++ Apache-2.0 Updated 2026-10-09

PocketMage PDA home menu showing the app launcher on the E-Ink display

TL;DR PocketMage is a handheld PDA built around the ESP32-S3, combining a 3.1-inch E-Ink panel with a secondary OLED strip to work around E-Ink's slow refresh rate. It runs a custom C++ OS with a growing suite of productivity apps including a text editor, file manager, calendar, terminal, and SSH client.
What you need
  • ESP32-S3 WROOM1 (16 MB flash, 8 MB RAM)
  • 3.1" 320x240 1-bit SPI E-Ink panel (GDEQ031T10)
  • 256x32 1-bit SPI OLED (SSD1326, ER-OLED018-1W)
  • MicroSD card slot
  • TCA8418 I2C keyboard matrix IC
  • PCF8563T I2C RTC module
  • 1200 mAh LiPo battery with JST PH 2 mm connector
  • USB Type-C connector
  • Piezo buzzer
  • Power button
  • Expansion port
BoardESP32-S3 WROOM1
FrameworkPlatformIO
LanguageC++
LicenseApache-2.0
Latest ReleaseBETA_V1.8.3
Display3.1" E-Ink + 256×32 OLED

What You Will Build

PocketMage is a clamshell personal digital assistant powered by an ESP32-S3. At its heart is an unusual display pairing: a 3.1-inch, 320×240 E-Ink panel for the main screen and a narrow 256×32 OLED strip running alongside it. The OLED handles fast-changing UI feedback — status bars, cursor movement, typing echoes — while the E-Ink panel holds the calm, paper-like content that makes long reading and writing sessions comfortable without draining the battery.

The device runs a custom operating system written in C++. Right now that OS includes a GUI home menu, a plain-text file editor, a file manager (FileWiz), a calendar, a journal, a dictionary app (Lexicon), a Tasks app, a USB file transfer app, a COMM mesh chat app, an SSH client, and a terminal powered by a built-in scripting language called Wrench. The home menu also accepts typed commands — roll dice, set the time, open a file by name, and more.

The project is still in active development, but it already works well enough that the author is making it available on Crowd Supply as a kit. If you want to build your own, you have access to the firmware source code now, with PCB schematics and 3D files to follow as the hardware design matures.

A second view of the PocketMage OS interface, demonstrating the GUI layout across the E-Ink panel\2
A second view of the PocketMage OS interface, demonstrating the GUI layout across the E-Ink panel

What You Need

Hardware (as listed in the project README)

Because the hardware uses a custom PCB, the easiest path right now is to wait for the Crowd Supply kit or source the components and fabricate the board yourself once the KiCad schematics are released. The 3D-printed enclosure files will follow the same open-source release.

Software

Start at the PocketMage Docs site before touching any code — it covers build environments, the command manual, scripting, and the full App API reference.

Typical use cases

Offline Writing Tool

The E-Ink screen and plain-text editor make PocketMage a distraction-free writing device that works without a network connection and is easy on the eyes in bright light.

Custom App Development

The open App API and template file let developers build and flash new apps in C++ using PlatformIO, turning the device into a platform rather than a fixed product.

Mesh Communication

The included COMM app enables mesh chat over the ESP32-S3's radios, and a LoRa/Meshtastic add-on module is already planned for longer-range off-grid messaging.

Hardware Expansion Projects

The twelve-pin expansion port exposes I2C, SPI, GPIO, and UART, making it straightforward to attach sensors, modules, or custom breakout boards to the device.

How It Works

The central design challenge with E-Ink displays is their slow refresh rate — a full panel redraw takes a noticeable fraction of a second and produces a visible flash. PocketMage solves this with a two-screen strategy. The OLED strip refreshes instantly and handles anything that changes quickly: the cursor, status indicators, and short feedback messages. The E-Ink panel only updates when content genuinely changes, preserving its key advantages — sharp contrast, no backlight glare, and very low idle power draw.

The firmware is a custom OS built entirely in C++, compiled and flashed with PlatformIO. The OS manages a GUI home menu, app launching, file I/O over MicroSD, I2C peripherals (keyboard matrix via TCA8418, real-time clock via PCF8563T), and the dual-display pipeline. Apps are self-contained C++ modules that register themselves with the OS through a defined App API. A built-in scripting language called Wrench powers the terminal app and enables lightweight automation without recompiling.

WiFi and Bluetooth are available through the ESP32-S3's built-in radios. Planned features include LoRa/Meshtastic and battery expansion add-on modules via the expansion port.

Build and Flash Steps

The README does not include specific command-line build or flash steps — those are documented in full on the project's docs site. Follow these steps in order:

  1. Read the docs first. Go to PocketMage Docs and work through the Build Environments page. It covers PlatformIO setup and any platform-specific requirements.

  2. Clone the repository from github.com/TalismanDesign/PocketMage_PDA.

  3. Open the project in PlatformIO (VS Code with the PlatformIO extension, or the PlatformIO CLI). The project lives under Code/PocketMageOS/.

  4. Build and flash using PlatformIO's standard build/upload workflow. Select the correct environment for your hardware from the build environments page.

  5. Write your first app using APP_TEMPLATE.cpp in the source tree as your starting point, then consult the App API Reference. The Developing For the PocketMage video walkthrough is recommended for a first pass.

If you run into trouble, the FAQ and the repository's open issues are the best starting points before filing a new issue.

Extending It and Current Limitations

Ways to extend PocketMage

Current limitations to be aware of

Verdict

PocketMage is one of the most complete ESP32 PDA projects in the open-source space — the dual E-Ink and OLED display strategy is a genuinely smart solution to a well-known hardware constraint, and the growing app ecosystem gives it real daily utility. The hardware files are not yet public, so you are either building for the software side or waiting for the Crowd Supply kit, but the firmware is active, well-documented, and worth following if handheld ESP32 devices interest you.

Sources

github.comTalismanDesign/PocketMage_PDA — repository & README talismandesign.github.ioOfficial website

Facts in this article come from the project's public README and GitHub metadata at the time of writing. Images belong to their respective owners and link back to the original source.