Multi-app firmware hub for the LilyGO T5 E-Paper S3 Pro
Basilauncher is a factory-partition launcher: it boots first after reset, lets you install guest firmwares from the SD card into flash slots, and comes back when you double-press RST — without patching those guests.
If Basilauncher is useful on your T5 Pro, a GitHub star helps others find it.
Pre-built images: Releases (latest: v1.4.62).
Easiest install: open the web flasher (Chrome/Edge), plug in the T5 Pro, click Connect & flash.
Wi-Fi transfer (on device): pull down the shade and tap the Wi-Fi tile to start the hotspot. Hold the tile for the password and QR. The network is Basilauncher with password basilauncher until you change it (on the device, or on the transfer page). Scan the Join Wi-Fi QR, then scan Open page / visit http://192.168.4.1/. Browse any SD folder and upload one or more files (e.g. /firmware for apps, /sleep for .bmp/.jpg wallpapers). The tile and the status-bar icon fill in while the hotspot is on.
| Asset | Offset | When |
|---|---|---|
basilauncher-*-full.bin |
0x0 |
First install — one file (also what the web flasher uses) |
basilauncher-*-t5pro.bin |
0x10000 |
Everyday hub update (guests untouched) |
basil-bootloader.bin |
0x0 |
Bootloader-only refresh |
basilauncher-*-partitions.bin |
0x8000 |
Partition table only |
First install via esptool (one file):
esptool.py --chip esp32s3 -p PORT write-flash 0x0 basilauncher-1.4.62-full.binFull recipes: docs/flashing.md · Web flasher.
| Board | LilyGO T5 E-Paper S3 Pro (T5-ePaper-S3-Pro, ESP32-S3 + 8 MB PSRAM) |
| Panel | 960×540 e-paper (UI is portrait 540×960) |
| Touch | GT911 |
| Power | BQ25896 charger + fuel gauge |
| Storage | microSD (apps under /firmware, sleep art under /sleep) |
Also searchable as: LilyGO T5 S3 Pro, T5 epaper S3 Pro, ESP32-S3 e-ink launcher.
- Four guest slots (
ota_0…ota_3) — best-fit install from/firmware/*.bin - Protected factory hub — on-device UI never overwrites the launcher
- RST double-press custom bootloader — return from any guest without app changes
- Files explorer — browse SD, install bins, view BMPs, edit text, clipboard
- Quick settings shade — frontlight, scrub, jump to Settings
- Sleep screensaver — random BMPs from
/sleepor/.sleep, short BOOT to change, hold BOOT to wake - Clock + battery — RTC time, charge lightning / USB plug cues
- 1 MB
spiffs— so Meshtastic-style guests can mount InternalFS
Home · Quick settings · Sleep
git clone --recurse-submodules https://github.com/nikbasi/basilauncher.git
cd basilauncher
pio run -e basilauncher
pio run -e basilauncher -t upload # factory @ 0x10000 only; guests untouchedFirst flash on a blank board (partition table + custom bootloader once):
# See docs/flashing.md for the full recipe and warnings.
python3 -m esptool --chip esp32s3 -p /dev/cu.usbmodem101 write-flash \
0x0 bootloader/basil-bootloader.bin \
0x8000 .pio/build/basilauncher/partitions.bin \
0x10000 .pio/build/basilauncher/firmware.bin
python3 -m esptool --chip esp32s3 -p /dev/cu.usbmodem101 erase-region 0xe000 0x2000More detail: docs/flashing.md · docs/partitions.md · docs/guest-apps.md
| Reset | Boots |
|---|---|
| RST pressed twice within ~0.8 s | Basilauncher (otadata cleared) |
| RST once / power-on | Same app (short wait after first press) |
| USB host reset, app restart, deep-sleep wake, WDT, crash | Same app, no wait |
Double-press RST from any guest to get back here.
/firmware/ # .bin images to install into empty slots
crosspoint-….bin
meshtastic-….bin
…
/sleep/ # optional portrait BMPs for the screensaver
01_forest.bmp
Tap a file in Files → installs into the smallest empty slot that fits. Clear a slot from the home cards when you need space.
Uses FreeInk display path: BoardT5S3 + LgfxEpd + M5GFX (not FastEPD — FastEPD’s
T5 Pro panel path drives the frontlight pin as data).
; platformio.ini upload writes ONLY factory @ 0x10000, then clears otadataSDK: submodule nikbasi/freeink-sdk (FreeInk-derived, with LilyGO T5 charge / clean-bank fixes used by this hub).
MIT — see LICENSE. FreeInk SDK is MIT (FreeInk / OpenX4 lineage); M5GFX has its own license via PlatformIO.
- LilyGO T5 e-Paper S3
- FreeInk / freeink-sdk
- Guest examples often used on this board: CrossPoint reader, Meshtastic InkHUD, Flashcards, GameBoy ports


