This project is a port and compilation of PocketLab for the Flipper Zero ESP32 ecosystem. Huge thanks to:
- PerfectoWeb (@PerfectoWeb): Original creator of flipper-pocketlab, for conceptualizing and developing this fantastic gamified learning platform (interactive labs, quizzes, achievements, progression mechanics, and animations).
- @Sor3nt: Author of the Flipper-Zero-ESP32-Port, enabling Furi OS, the UI canvas, and FAP dynamic loading on ESP32 hardware (LilyGO T-Embed, Waveshare, DIY boards).
- Flipper Devices: For creating the original Flipper Zero platform.
PocketLab is an interactive, on-device learning layer. Instead of reading through static wiki documentation, you learn by doing short hands-on labs, answering randomized quizzes, and unlocking levels, XP, streaks, and custom badges.
- 🎓 36 Hands-on Labs across 11 tracks:
- Infrared (IR): Protocols, raw learning, and universal remote principles.
- Sub-GHz: Modulations, CC1101 transceiver, frequency analyzer, and RAW capture.
- RFID & NFC: Reading, T5577 cloning, MIFARE key recovery (MFKey32).
- iButton, BadUSB, GPIO, and Bluetooth.
- 🎲 Randomized Quizzes: Shuffled questions and distractors prevent position memorization and ensure real comprehension.
- 🧠 Exam Mode: Random quiz generated from completed labs to test retention.
- 🏆 Progression System: Earn XP, level up (Novice, Apprentice, Explorer... Master), maintain daily streaks, and collect unique badge artwork.
- 🔊 Rich Feedback: Acoustic sound notes, RGB LED illumination, and haptic vibration feedback with individual toggles in Settings.
- 🌍 Dual Languages: Fully available in English and Russian (including custom Cyrillic u8g2 fonts).
- 💾 Persistent State: Saves progress securely to microSD storage (
/ext/apps_data/pocketlab/state.bin).
This .fap binary is compiled for Xtensa LX7 (xtensa-esp32s3-elf) and tested on:
- LilyGO T-Embed ESP32-S3 CC1101
- DIY ESP32-S3 development boards with ST7789 / ILI9341 LCD displays running the Flipper ESP32 Port.
- Any ESP32-S3 module running the Flipper Zero ESP32 firmware port.
- Rotary Encoder (Rotate): Navigate menu items, quiz options, and badge galleries.
- Center Encoder Button (Click / OK): Confirm selection, submit quiz answer, or start lab.
- Side Button (Back): Go back or exit to the main Flipper desktop.
- Download
pocketlab.fapfrom thedist/folder in this repository. - Insert your microSD card into your PC (or use the device in USB Storage mode).
- Copy
pocketlab.fapinto:/ext/apps/Tools/pocketlab.fap - Safely eject the card and reinsert it into your ESP32 board.
- Boot the board and navigate to:
Archive ➔ Apps ➔ Tools ➔ PocketLab
⚠️ Firmware API Requirement: PocketLab utilizes notification melody notes and custom u8g2 font routines. Make sure your Flipper ESP32 firmware exports these symbols infirmware_api.c.
To build or modify PocketLab:
# From the root directory of Flipper-Zero-ESP32-Port:
python build_fap.py /path/to/flipper-pocketlab --output-dir /path/to/flipper-pocketlab/distThis project retains the original MIT License. See LICENSE for details.






