Skip to content
HN On Hacker News ↗

GitHub - yattsu/biscuit: Firmware for the ESP32-C3 SoC Xteink X4 e-paper display reader

▲ 125 points 13 comments by unixfg 3w ago HN discussion ↗

Pangram verdict · v3.3

We believe that this document is primarily human-written, with some AI-generated content detected

47 %

AI likelihood · overall

Mixed
83% human-written 17% AI-generated
SEGMENTS · HUMAN 0 of 6
SEGMENTS · AI 1 of 6
WORD COUNT 1,572
PEAK AI % 100% · §4
Analyzed
May 5
backend: pangram/v3.3
Segments scanned
6 windows
avg 262 words each
Distribution
83 / 17%
human / AI fraction
Verdict
Mixed
Pangram v3.3

Article text · 1,572 words · 6 segments analyzed

Human AI-generated
§1 Mixed · 51%

Custom firmware for the Xteink X4 e-paper device. Turns a $70 e-ink reader into a smart device with wireless tools, security features, communication, games, and utilities — while keeping full e-reader functionality. Forked from CrossPoint Reader. All core reading functionality comes from CrossPoint. Biscuit builds on top of it.

What is this Biscuit treats the Xteink X4 as a general-purpose smart device, not just an e-reader. The home screen is a tile-based dashboard with live system info (battery, heap, uptime, WiFi status). Reading is one of eight categories, not the main focus. The 4.26" e-ink display is readable in direct sunlight, retains its image without power, and gives the device days of battery life. Seven physical buttons provide navigation without a touchscreen. WiFi and BLE 5.0 enable wireless tools. A MicroSD card stores everything. Hardware

Spec Value

SoC ESP32-C3 (RISC-V, 160MHz)

RAM 380KB SRAM (no PSRAM)

Flash 16MB

Display 4.26" 800×480 e-ink, 1-bit mono

Input 7 buttons (4 front, 3 side)

WiFi 2.4GHz 802.11 b/g/n

BLE 5.0 (shared radio with WiFi)

Storage MicroSD (FAT32)

Port USB-C (serial + power)

Apps The home screen is a dashboard of eight tiles. Everything lives under one of them.

Tile Purpose

Recon Passive scanning and monitoring — no transmission

Offense Active wireless testing, grouped into Scan → Profile → Attack → Capture

Defense Stealth, detection, and device hardening

Comms Communication and exchange

Tools Crypto, network, productivity, and creative utilities

Games Entertainment

Reader Ebooks, OPDS, reading stats

Settings Preferences, file transfer, system management

Recon — scan and monitor (passive only)

All apps in Recon are read-only — they listen but never transmit.

§2 Mixed · 46%

App What it does

WiFi Scanner Discover APs and connected clients

BLE Scanner Scan BLE devices, browse services and characteristics

Full Sweep Combined WiFi + BLE passive scan

Packet Monitor Monitor WiFi frames with PCAP recording

Probe Sniffer Capture WiFi probe requests

Wardriving Log access points with signal strength

Crowd Density Estimate nearby people via probe request counting

Device Fingerprint Identify device OS from probe request patterns

Vendor Lookup Identify manufacturer by MAC (OUI database on SD)

AP History Log visible access points over time to SD

Network Change Snapshot nearby devices, compare for changes

Perimeter Watch Alert when new devices appear in area

BLE Proximity Track BLE device RSSI

WiFi Heat Map RSSI mapping walkabout

Signal Locator Estimate AP position via RSSI triangulation

Deauth Detector Monitor for deauthentication frame spikes

Offense — active wireless testing Offense opens a 2×2 sub-menu grouped into four phases. A disclaimer must be acknowledged before first use. Scan — target discovery

App What it does

WiFi Scan Discover APs and clients

BLE Scan Discover BLE devices

Full Sweep Combined WiFi + BLE passive scan

Saved Targets Browse cached target database

Profile — target analysis

App What it does

Target Profiler Select and analyze a target

Client Enum Devices connected to target AP

Host Scanner Find devices on local network

Vuln Assessment Check encryption and WPS settings

Signal Locator Estimate AP position from RSSI

Attack — broadcast and testing tools

App What it does

Beacon Test Custom beacon broadcasting

WiFi Test Wireless connectivity testing

Captive Portal Network portal for testing

Beacon Flood Broadcast 30 random SSIDs

SSID

§3 Mixed · 38%

Clone Clone a WiFi AP (open, same channel)

BLE Spam Proximity / Fast Pair / Swift Pair flood

BLE Keyboard HID keyboard emulation (DuckyScript over BLE)

AirTag Test Device location testing

USB Keyboard Wired DuckyScript over USB-C

Capture — review and export

App What it does

Captured Data Handshakes, credentials, PCAPs, BLE logs

Credential Viewer View credentials captured by portal

Probe Log Recorded WiFi probe requests

Scan History Browse previously found targets

Wipe Captures Delete all captured data

Defense — stealth and protect Ghost Mode is the headline entry — it rotates MAC, kills radios, and cleans up state in one action (replacing the old standalone MAC Changer and RF Silence apps).

App What it does

Ghost Mode MAC rotate + RF kill + state cleanup, one shot

Tracker Detector Detect AirTags, SmartTags, and Tiles following you

Security Sweep Scan for cameras, trackers, rogue APs, skimmers

Network Monitor Detect rogue APs and suspicious frames

Emergency SOS SOS beacon (WiFi + BLE + Mesh) with dead man's switch

Phone Tether BLE proximity disconnect alert

Quick Wipe Erase all biscuit data from SD with verification

PIN Security Lock device with PIN, duress PIN for fake profile

Screen Decoy Fake screen to hide activity

SD Encryption Encrypt biscuit data on SD with PIN

Comms — communicate and exchange

App What it does

Mesh Chat ESP-NOW text chat, no WiFi needed, ~200m range, multi-hop relay

SSID Channel Hide short messages in WiFi network names

Contact Exchange Swap contact cards between devices via BLE

Dead Drop Temporary WiFi AP for anonymous file exchange

Bulletin Board Local anonymous message board via WiFi AP

Tools — utilities and productivity A single tile that merges the old Network section with crypto, productivity, tracking, and creative apps.

§4 AI · 100%

Security & crypto

App What it does

Authenticator TOTP 2FA codes, fully offline

TOTP QR Show a 2FA code as a scannable QR

Password Manager Encrypted credentials stored on SD

Medical Card Emergency medical info persistent on e-ink

Stego Notes Hide text inside BMP images

Network

App What it does

WiFi Connect Join a WiFi network

WiFi Scanner APs, signal, channels

Host Scanner Find devices on local network

Ping Ping a host or IP address

DNS Lookup Resolve domain names

HTTP Client Send GET/POST requests

mDNS Browser Discover local services

Productivity

App What it does

Clock NTP clock, stopwatch, pomodoro timer

Calculator Basic calculator

QR Generator Generate QR codes from text

Morse Code Encode and decode morse

Unit Converter Convert between measurement units

Cipher Tools ROT13, Caesar, Vigenere, XOR

OTP Generator One-time pad random number pages

Tracking & logging

App What it does

Event Logger Timestamped notes with WiFi location tagging

Flashcards Study decks loaded from CSV on SD

Habit Tracker Daily habit checklist with streak tracking

Breadcrumb Trail Record and retrace your path using WiFi fingerprints

Vehicle Finder Find your parked car via WiFi fingerprint matching

Transit Alert Alert when approaching a saved transit stop

Creative

App What it does

Etch-A-Sketch Draw on the e-ink screen, save as BMP

Barcode Generator Code 128 / Code 39 / EAN-13

Key Copier Draw key profiles from bitting codes

WiFi QR Share Share WiFi credentials as a QR code

File Browser Browse and view files on SD card

Countdown Big countdown timer

Games

Casino (slots, blackjack, roulette, coin flip, higher/lower, loot box), Minesweeper, Sudoku, Chess (with bot), Snake, Tetris, Maze, Dice Roller, Game of Life, Voronoi, Matrix Rain.

§5 Mixed · 40%

Reader

App What it does

Open Book Browse and open an ebook

Recent Books Continue where you left off

OPDS Browser Download books from OPDS servers

Reading Stats Pages read, books completed, streaks

Browse Files File manager for the SD card

Full EPUB 2/3 rendering, KOReader Sync, and Calibre wireless transfer are inherited from CrossPoint. Settings — system and configuration Promoted to a top-level tile from the old System section.

App What it does

Settings Display, reader, controls, system configuration

WiFi Transfer Upload/download files via WiFi (STA, AP, or Calibre)

USB Storage Share the SD card as a USB mass-storage drive

Task Manager View heap, uptime, and activity stack

Battery Battery level with history graph

Device Info Chip, flash, RAM, firmware, WiFi, screen info

Background Radio state, SD status, active timers

Automation WiFi geofence triggers and scheduled tasks

Themes Three UI themes, selectable in Settings:

Classic — original CrossPoint style Lyra — rounded elements, modern feel (default) Military — inverted headers, sharp corners, dashed separators, uppercase labels

SD card structure /biscuit/ portals/ # HTML templates for captive portal ducky/ # DuckyScript files for HID keyboard pcap/ # Packet captures scans/ # Network scan results logs/ # WiFi/BLE scan logs, AP history, event logs drawings/ # Etch-A-Sketch saved BMPs trails/ # Breadcrumb trail data snapshots/ # Network change snapshots flashcards/ # Flashcard decks (CSV) creds.csv # Captured portal credentials medical.dat # Medical card info totp.dat # TOTP authenticator secrets (encrypted) casino.dat # Casino credits habits.dat #

§6 Mixed · 51%

Habit tracker data security.dat # PIN hashes automation.dat # Automation rules oui.txt # IEEE OUI vendor database (user-provided)

Installing Web flasher (recommended)

Connect your Xteink X4 via USB-C data cable (not charge-only) Wake the device by pressing Power Go to https://xteink.dve.al/ and flash the firmware

To revert to stock firmware, use the same site or press "Swap boot partition" at https://xteink.dve.al/debug. Manual git clone --recursive https://github.com/yattsu/biscuit cd biscuit pio run --target upload Development Prerequisites

PlatformIO Core or VS Code + PlatformIO IDE Python 3.8+ USB-C data cable Xteink X4

Building # Windows PowerShell $env:PYTHONUTF8=1 pio run -j 16 # Linux / macOS pio run -j 16 Adding translations Translations live in lib/I18n/translations/. Each language is a YAML file. Add or edit strings, then regenerate: python3 scripts/gen_i18n.py lib/I18n/translations lib/I18n/ See i18n docs for details. Debugging python3 -m pip install pyserial colorama matplotlib python3 scripts/debugging_monitor.py The debug monitor shows color-coded logs and a real-time memory graph. Architecture The firmware uses an activity-based UI architecture. Every screen is an Activity subclass with onEnter(), loop(), render(), and onExit(). Activities are managed by ActivityManager (push/pop/replace). WiFi and BLE share one radio, arbitrated by RadioManager. See architecture docs for the full overview. Upstream Biscuit tracks CrossPoint Reader as upstream. To sync: git remote add upstream https://github.com/crosspoint-reader/crosspoint-reader.git git fetch upstream git merge upstream/master Credits Built on CrossPoint Reader by the CrossPoint contributors. CrossPoint was inspired by diy-esp32-epub-reader by atomic14. License MIT