Development Device Simulator

Duet can run in the CrossPoint simulator, which renders the e-ink display in an SDL2 window. Use it for quick sanity checks without flashing firmware every time.

Platform Support

The simulator is currently configured for macOS on Apple Silicon.

The platformio.ini [env:simulator] section contains hardcoded -arch arm64 and Homebrew paths under /opt/homebrew.

  • Intel Mac users need to remove -arch arm64 and change Homebrew paths to /usr/local.
  • Linux requires similar path changes plus a replacement for lib/simulator_mock/src/MD5Builder.h, which uses the macOS-only CommonCrypto API.
  • Native Windows is not supported. Use WSL and follow the Linux adjustments.

Prerequisites

# macOS
brew install sdl2

# Linux (Debian/Ubuntu)
sudo apt install libsdl2-dev

Setup

Place EPUB books in ./fs_/books/ relative to the project root. That maps to the SD-card /books/ path on device.

Build And Run

pio run -e simulator
.pio/build/simulator/program

Keyboard Controls

Key Action
Up / Down Page back / forward (side buttons)
Left / Right Left / right front buttons
Return Confirm / Select
Escape Back
P Power

Cache Note

On first open of an EPUB, an Indexing… popup appears while the section cache is built beneath ./fs_/.duet/.

If rendering looks stale after a code change, use the in-app cache-clear flow or remove only the disposable paths beneath ./fs_/.duet/cache/. Do not delete ./fs_/.duet/books/ when progress or per-book settings matter.


This site uses Just the Docs, a documentation theme for Jekyll.