Star 历史趋势
数据来源: GitHub API · 生成自 Stargazers.cn
README.md

biscuit.

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.

Dashboard

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

SpecValue
SoCESP32-C3 (RISC-V, 160MHz)
RAM380KB SRAM (no PSRAM)
Flash16MB
Display4.26" 800×480 e-ink, 1-bit mono
Input7 buttons (4 front, 3 side)
WiFi2.4GHz 802.11 b/g/n
BLE5.0 (shared radio with WiFi)
StorageMicroSD (FAT32)
PortUSB-C (serial + power)

Apps

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

TilePurpose
ReconPassive scanning and monitoring — no transmission
OffenseActive wireless testing, grouped into Scan → Profile → Attack → Capture
DefenseStealth, detection, and device hardening
CommsCommunication and exchange
ToolsCrypto, network, productivity, and creative utilities
GamesEntertainment
ReaderEbooks, OPDS, reading stats
SettingsPreferences, file transfer, system management

Recon — scan and monitor (passive only)

Recon tools

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

AppWhat it does
WiFi ScannerDiscover APs and connected clients
BLE ScannerScan BLE devices, browse services and characteristics
Full SweepCombined WiFi + BLE passive scan
Packet MonitorMonitor WiFi frames with PCAP recording
Probe SnifferCapture WiFi probe requests
WardrivingLog access points with signal strength
Crowd DensityEstimate nearby people via probe request counting
Device FingerprintIdentify device OS from probe request patterns
Vendor LookupIdentify manufacturer by MAC (OUI database on SD)
AP HistoryLog visible access points over time to SD
Network ChangeSnapshot nearby devices, compare for changes
Perimeter WatchAlert when new devices appear in area
BLE ProximityTrack BLE device RSSI
WiFi Heat MapRSSI mapping walkabout
Signal LocatorEstimate AP position via RSSI triangulation
Deauth DetectorMonitor 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

AppWhat it does
WiFi ScanDiscover APs and clients
BLE ScanDiscover BLE devices
Full SweepCombined WiFi + BLE passive scan
Saved TargetsBrowse cached target database

Profile — target analysis

AppWhat it does
Target ProfilerSelect and analyze a target
Client EnumDevices connected to target AP
Host ScannerFind devices on local network
Vuln AssessmentCheck encryption and WPS settings
Signal LocatorEstimate AP position from RSSI

Attack — broadcast and testing tools

AppWhat it does
Beacon TestCustom beacon broadcasting
WiFi TestWireless connectivity testing
Captive PortalNetwork portal for testing
Beacon FloodBroadcast 30 random SSIDs
SSID CloneClone a WiFi AP (open, same channel)
BLE SpamProximity / Fast Pair / Swift Pair flood
BLE KeyboardHID keyboard emulation (DuckyScript over BLE)
AirTag TestDevice location testing
USB KeyboardWired DuckyScript over USB-C

Capture — review and export

AppWhat it does
Captured DataHandshakes, credentials, PCAPs, BLE logs
Credential ViewerView credentials captured by portal
Probe LogRecorded WiFi probe requests
Scan HistoryBrowse previously found targets
Wipe CapturesDelete 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).

AppWhat it does
Ghost ModeMAC rotate + RF kill + state cleanup, one shot
Tracker DetectorDetect AirTags, SmartTags, and Tiles following you
Security SweepScan for cameras, trackers, rogue APs, skimmers
Network MonitorDetect rogue APs and suspicious frames
Emergency SOSSOS beacon (WiFi + BLE + Mesh) with dead man's switch
Phone TetherBLE proximity disconnect alert
Quick WipeErase all biscuit data from SD with verification
PIN SecurityLock device with PIN, duress PIN for fake profile
Screen DecoyFake screen to hide activity
SD EncryptionEncrypt biscuit data on SD with PIN

Comms — communicate and exchange

AppWhat it does
Mesh ChatESP-NOW text chat, no WiFi needed, ~200m range, multi-hop relay
SSID ChannelHide short messages in WiFi network names
Contact ExchangeSwap contact cards between devices via BLE
Dead DropTemporary WiFi AP for anonymous file exchange
Bulletin BoardLocal 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.

Security & crypto

AppWhat it does
AuthenticatorTOTP 2FA codes, fully offline
TOTP QRShow a 2FA code as a scannable QR
Password ManagerEncrypted credentials stored on SD
Medical CardEmergency medical info persistent on e-ink
Stego NotesHide text inside BMP images

Network

AppWhat it does
WiFi ConnectJoin a WiFi network
WiFi ScannerAPs, signal, channels
Host ScannerFind devices on local network
PingPing a host or IP address
DNS LookupResolve domain names
HTTP ClientSend GET/POST requests
mDNS BrowserDiscover local services

Productivity

AppWhat it does
ClockNTP clock, stopwatch, pomodoro timer
CalculatorBasic calculator
QR GeneratorGenerate QR codes from text
Morse CodeEncode and decode morse
Unit ConverterConvert between measurement units
Cipher ToolsROT13, Caesar, Vigenere, XOR
OTP GeneratorOne-time pad random number pages

Tracking & logging

AppWhat it does
Event LoggerTimestamped notes with WiFi location tagging
FlashcardsStudy decks loaded from CSV on SD
Habit TrackerDaily habit checklist with streak tracking
Breadcrumb TrailRecord and retrace your path using WiFi fingerprints
Vehicle FinderFind your parked car via WiFi fingerprint matching
Transit AlertAlert when approaching a saved transit stop

Creative

AppWhat it does
Etch-A-SketchDraw on the e-ink screen, save as BMP
Barcode GeneratorCode 128 / Code 39 / EAN-13
Key CopierDraw key profiles from bitting codes
WiFi QR ShareShare WiFi credentials as a QR code
File BrowserBrowse and view files on SD card
CountdownBig countdown timer

Games

Tetris on e-ink

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.

Reader

AppWhat it does
Open BookBrowse and open an ebook
Recent BooksContinue where you left off
OPDS BrowserDownload books from OPDS servers
Reading StatsPages read, books completed, streaks
Browse FilesFile 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.

AppWhat it does
SettingsDisplay, reader, controls, system configuration
WiFi TransferUpload/download files via WiFi (STA, AP, or Calibre)
USB StorageShare the SD card as a USB mass-storage drive
Task ManagerView heap, uptime, and activity stack
BatteryBattery level with history graph
Device InfoChip, flash, RAM, firmware, WiFi, screen info
BackgroundRadio state, SD status, active timers
AutomationWiFi 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      # Habit tracker data
  security.dat    # PIN hashes
  automation.dat  # Automation rules
  oui.txt         # IEEE OUI vendor database (user-provided)

Installing

Web flasher (recommended)

  1. Connect your Xteink X4 via USB-C data cable (not charge-only)
  2. Wake the device by pressing Power
  3. 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

关于 About

Firmware for the ESP32-C3 SoC Xteink X4 e-paper display reader

语言 Languages

C77.8%
C++20.2%
Python1.1%
HTML0.8%
PowerShell0.1%
Shell0.0%
Makefile0.0%
CMake0.0%

提交活跃度 Commit Activity

代码提交热力图
过去 52 周的开发活跃度
682
Total Commits
峰值: 81次/周
Less
More

核心贡献者 Contributors