Project_SylDa/esplibalternatief.md

3 KiB

ESP32 Flash Library Alternatieven

Huidige Situatie

We gebruiken io.github.dkaukov:esp32-flash-lib:1.1.17 (Java, GPL-3.0). Deze GPL-3.0 licentie dwingt copyleft af: de hele app moet GPL-3.0-compatibel zijn. Dat blokkeert een MIT/Apache licentie voor de app.

Alternatieven

Library Taal Licentie Sterren Serial interface Laatste update
loucass003/EspflashKotlin Kotlin Apache 2.0 3 JSerialComm (pluggable) jan 2026
dkaukov/esp32-flash-lib Java GPL-3.0 — JSerialComm —
bdureau/ESPLoader Java GPL-3.0 22 JSerialComm jan 2026

loucass003/EspflashKotlin (Apache 2.0)

  • Repo: https://github.com/loucass003/EspflashKotlin
  • JitPack: com.github.loucass003:EspflashKotlin:<tag>
  • 3 stars, 1 fork, 28 commits
  • Pluggable serial interface: implementeer FlasherSerialInterface zelf
  • Ondersteunt .addBin(bytes, address) voor meerdere binaries
  • Progress listener via FlashingProgressListener
  • Geen Maven Central publicatie — via JitPack

Voordelen:

  • Apache 2.0 — app mag onder MIT/Apache/GPL naar keuze
  • Kotlin-native (past bij onze codebase)
  • Pluggable serial: we kunnen onze eigen USB serial implementatie aanhaken

Nadelen:

  • Erg klein project (3 stars, lage adoptie)
  • Geen Maven Central — JitPack dependency (minder betrouwbaar voor productie)
  • Minder getest dan esp32-flash-lib
  • Serial interface adapter moet worden geschreven voor onze USB/BLE implementatie
  • Geen stub loader (esptool stub) — alleen ROM bootloader protocol

bdureau/ESPLoader (GPL-3.0)

Migratie-inschatting (esp32-flash-lib → EspflashKotlin)

  1. Dependency vervangen in build.gradle
  2. EspFlasher.kt herschrijven: FlasherSerialInterface implementeren voor onze USB serial context
  3. Firmware bins en addresses overnemen (zelfde ESP32 ROM bootloader protocol)
  4. JitPack repo toevoegen in settings.gradle of build.gradle
  5. Testen op device — het ROM bootloader protocol is hetzelfde, maar implementatie kan subtiele verschillen hebben

Risico: EspflashKotlin is minimaal getest. Het mist mogelijk edge cases die esp32-flash-lib wel afdekt (stub loader, error recovery, chip detectie).

Conclusie

Optie Licentie-app Migratie-effort Risico
Blijf bij esp32-flash-lib, app wordt GPL-3.0 GPL-3.0 Geen Geen
Migreer naar EspflashKotlin MIT/Apache mogelijk Medium (2-3 dagen) Hoog (kleine lib, weinig adoptie)
Eigen implementatie (esptool protocol zelf porten) Vrij te kiezen Hoog (1-2 weken) Medium (volledig eigen code)

Aanbeveling: Blijf bij esp32-flash-lib en breng de app onder GPL-3.0 uit. Voor een open-source project op GitHub is GPL-3.0 geen praktische beperking — je moet alleen source beschikbaar houden, wat je al doet. De migratie naar EspflashKotlin brengt risico's met zich mee die niet opwegen tegen het licentievoordeel.