DEV Community

Daniel Elias Diamon Vazquez
Daniel Elias Diamon Vazquez

Posted on

EEPROM Flasher: Android Native TL866 / T48 / T56 Programmer via USB-OTG without Root

EEPROM Flasher: Flashing Chips with TL866 / T48 / T56 Programmers from Android (minipro Engine)

When servicing arcade boards, vintage computers, automotive ECUs, or motherboard BIOS chips, universal programmers like the Xgecu TL866II+, TL866A, TL866CS, T48, and T56 are essential bench tools. However, they traditionally bind engineers to a Windows PC or Linux desktop.

To make chip dumping and flashing completely mobile, I developed EEPROM Flasher, an open-source native Android application that runs the open-source minipro engine directly over USB-OTG without requiring root access.


🛠️ Architecture: Porting minipro & libusb to Android

Running hardware programmers on Android without root requires overcoming strict kernel permissions on /dev/bus/usb.

EEPROM Flasher solves this with a custom JNI bridge:

  ┌────────────────────────────────────────┐
  │         Android Application (Java)     │
  │    (UI, Hex Viewer, Diff Comparator)   │
  └───────────────────┬────────────────────┘
                      │ Requests USB Permission via Android SDK
                      ▼
  ┌────────────────────────────────────────┐
  │   Android USB Host API (UsbDeviceConnection) │
  │        (Obtains native File Descriptor)│
  └───────────────────┬────────────────────┘
                      │ Passes raw FD via JNI
                      ▼
  ┌────────────────────────────────────────┐
  │       Custom libusb Native Layer       │
  │ (libusb_wrap_sys_device / C++ ARM64)   │
  └───────────────────┬────────────────────┘
                      │ Direct USB Bulk / Control Transfers
                      ▼
  ┌────────────────────────────────────────┐
  │         minipro Engine (Native)        │
  │ (Chip ID, Read, Write, Erase, Verify)  │
  └───────────────────┬────────────────────┘
                      │ USB-OTG Cable
                      ▼
  ┌────────────────────────────────────────┐
  │ Hardware Programmer (TL866 / T48 / T56)│
  │             [ ZIF40 Socket ]           │
  │                   ▼                    │
  │   Target Chip (24C, 25Q, 27C, 93C...)  │
  └────────────────────────────────────────┘
Enter fullscreen mode Exit fullscreen mode

✨ Key Features & Capabilities

  • Broad Programmer Support: 100% compatible with TL866II Plus, TL866A, TL866CS, T48 (TL866-3G), T56, and T76 programmers.
  • Auto-Detect Chip: Automatically queries silicon signatures and device IDs.
  • Interactive Pinout Viewer: Custom canvas-rendered pinout schematics for ZIF40, SOIC8, 24Cxx, 93Cxx, DIP32, ICSP, AVR ISP, and PLCC32 sockets.
  • Hex Viewer & Diff Comparator: Real-time hex inspection and side-by-side binary comparison with change percentage metrics.
  • Storage Access Framework (SAF): Directly load and save .bin, .hex, and .rom dumps to internal storage, SD cards, or cloud drives.
  • Interactive Virtual Terminal: Real-time console output displaying low-level minipro logs and status registers.

📥 Downloads & Source Code

Feedback, bug reports, and chip tests on T48/T56 hardware are warmly welcomed on the GitHub repository!

Top comments (0)