Desktopowe narzędzie GUI do wgrywania firmware i obrazu LittleFS na sterowniki DieselPilot (ESP32) — przez OTA (WiFi) albo USB (port szeregowy).
Wskazujesz gotowe pliki
firmware.binilittlefs.bin(np. z Releases), wybierasz urządzenie i flashujesz. Bez PlatformIO.
- Wspólny wybór plików
.bin(firmware + filesystem) dla obu trybów. - 📡 OTA (WiFi) — automatyczne wykrywanie urządzeń przez mDNS, ręczne IP, hasło OTA, osobne wgrywanie firmware / filesystemu (espota).
- 🔌 USB (Serial) — wybór portu COM (auto-lista + wpis ręczny), baud, edytowalne offsety, wgrywanie firmware / filesystemu / obu naraz (esptool).
- ℹ️ Info — użyte narzędzia, biblioteki i licencja.
- Pasek postępu + log na żywo.
- Python 3.9+
- Zależności w
requirements.txt:PySide6— GUIzeroconf— wykrywanie urządzeń OTA (mDNS)esptool— wgrywanie przez USBpyserial— lista portów szeregowych
espota.py— używany do OTA; nie jest w repo — pobiera gobuild.batprzy budowaniu, a sama aplikacja ściągnie go w razie braku.pyinstallerjest wrequirements.txt(potrzebny tylko do budowania exe).
pip install -r requirements.txt
python DieselPilotTool.pybuild.batlub ręcznie:
pyinstaller --onefile --windowed --name "DieselPilotTool" ^
--add-data "espota.py;." ^
--hidden-import esptool --hidden-import serial.tools.list_ports ^
--collect-data esptool --collect-submodules esptool ^
--icon icon.ico ^
DieselPilotTool.py
--collect-data esptooljest wymagane — dołącza pliki danych stub flashera. Bez tego USB w exe zwraca błąd „Flasher stub data is missing for ESP32".
Wynik: dist\DieselPilotTool.exe.
- Włącz OTA na urządzeniu (zakładka OTA w web GUI sterownika) i poczekaj aż będzie w sieci.
- W zakładce 📡 OTA kliknij Refresh Devices (lub dodaj IP ręcznie).
- Wskaż
firmware.bin/littlefs.bin, podaj hasło OTA. - FLASH FIRMWARE (OTA) lub FLASH FILESYSTEM (OTA).
Automatyczne wykrywanie urządzeń (mDNS) Działa przez wbudowaną bibliotekę
zeroconf— zwykle bez dodatkowych instalacji. Jeśli na Twoim Windowsie urządzenie nie pojawia się na liście:
- upewnij się, że PC i sterownik są w tej samej sieci, a zapora przepuszcza UDP 5353,
- na niektórych konfiguracjach pomaga doinstalowanie Apple Bonjour (Bonjour Print Services / mDNSResponder),
- w ostateczności zawsze zadziała ręczne podanie IP (pole „Manual IP" → Add).
- Podłącz ESP32 przez USB, w zakładce 🔌 USB wybierz port (🔄 odświeża listę) i baud.
- Wskaż pliki
.bin. W razie potrzeby skoryguj offsety. - FLASH FIRMWARE / FILESYSTEM / BOTH (USB).
| Obraz | Offset |
|---|---|
| firmware.bin | 0x10000 |
| littlefs.bin | 0x290000 |
Uwaga: pierwsze wgranie na czysty układ (bootloader + tablica partycji) wykonaj PlatformIO. To narzędzie aktualizuje wyłącznie partycje firmware/filesystem (offset ≥
0x10000), nigdy bootloadera (0x0).
DieselPilotTool: GNU GPL v3 © 2026 PPTG (TechnologiaNaSpontanie) — pełny
tekst w LICENSE, uzasadnienie w NOTICE.md, a komplet not
copyright, licencji komponentów i ofertę kodu źródłowego w
THIRD-PARTY-LICENSES.md. Pełne teksty licencji
komponentów leżą w katalogu licenses/ (dołączanym do dystrybucji).
esptool (GPLv2+) jest wbudowany w exe, żeby USB działał od razu bez żadnej
instalacji — dlatego cała binarka jest GPLv3. To dotyczy narzędzia do flashowania.
Firmware DieselPilot to osobny projekt na licencji MIT.
Wbudowane komponenty: PySide6 (LGPLv3), esptool (GPLv2+), espota.py (LGPL 2.1),
zeroconf (LGPL 2.1), pyserial (BSD-3). Pełna lista w THIRD-PARTY-LICENSES.md
i w zakładce ℹ️ Info.
A desktop GUI tool for flashing firmware and a LittleFS image onto DieselPilot (ESP32) controllers — over OTA (WiFi) or USB (serial port).
You point it at ready-made
firmware.binandlittlefs.binfiles (e.g. from Releases), pick a device and flash. No PlatformIO needed.
- Shared
.binfile selection (firmware + filesystem) for both modes. - 📡 OTA (WiFi) — automatic device discovery via mDNS, manual IP, OTA password, separate flashing of firmware / filesystem (espota).
- 🔌 USB (Serial) — COM port selection (auto-list + manual entry), baud, editable offsets, flashing of firmware / filesystem / both at once (esptool).
- ℹ️ Info — tools used, libraries and license.
- Progress bar + live log.
- Python 3.9+
- Dependencies in
requirements.txt:PySide6— GUIzeroconf— OTA device discovery (mDNS)esptool— flashing over USBpyserial— serial port listing
espota.py— used for OTA; not in the repo —build.batdownloads it at build time, and the app fetches it too if missing.pyinstalleris included inrequirements.txt(only needed to build the exe).
pip install -r requirements.txt
python DieselPilotTool.pybuild.bator manually:
pyinstaller --onefile --windowed --name "DieselPilotTool" ^
--add-data "espota.py;." ^
--hidden-import esptool --hidden-import serial.tools.list_ports ^
--collect-data esptool --collect-submodules esptool ^
--icon icon.ico ^
DieselPilotTool.py
--collect-data esptoolis required — it bundles the flasher stub data files. Without it, USB flashing in the exe fails with "Flasher stub data is missing for ESP32".
Result: dist\DieselPilotTool.exe.
- Enable OTA on the device (OTA tab in the controller's web GUI) and wait until it is on the network.
- In the 📡 OTA tab click Refresh Devices (or add an IP manually).
- Select
firmware.bin/littlefs.bin, enter the OTA password. - FLASH FIRMWARE (OTA) or FLASH FILESYSTEM (OTA).
Automatic device discovery (mDNS) Works through the bundled
zeroconflibrary — usually with no extra installs. If a device does not show up on your Windows machine:
- make sure the PC and the controller are on the same network, and the firewall allows UDP 5353,
- on some setups installing Apple Bonjour (Bonjour Print Services / mDNSResponder) helps,
- as a last resort, entering the IP manually always works ("Manual IP" field → Add).
- Connect the ESP32 over USB, in the 🔌 USB tab pick the port (🔄 refreshes the list) and baud.
- Select the
.binfiles. Adjust the offsets if needed. - FLASH FIRMWARE / FILESYSTEM / BOTH (USB).
| Image | Offset |
|---|---|
| firmware.bin | 0x10000 |
| littlefs.bin | 0x290000 |
Note: the first flash onto a blank chip (bootloader + partition table) must be done with PlatformIO. This tool only updates the firmware/filesystem partitions (offset ≥
0x10000), never the bootloader (0x0).
DieselPilotTool: GNU GPL v3 © 2026 PPTG (TechnologiaNaSpontanie) — full text
in LICENSE, the rationale in NOTICE.md, and the complete
copyright notices, component licenses and source-code offer in
THIRD-PARTY-LICENSES.md. The full component license
texts live in the licenses/ folder (shipped with the distribution).
esptool (GPLv2+) is bundled into the exe so that USB works out of the box
with no installation — that is why the whole binary is GPLv3. This concerns the
flashing tool only. The DieselPilot firmware is a separate project under the MIT license.
Bundled components: PySide6 (LGPLv3), esptool (GPLv2+), espota.py (LGPL 2.1),
zeroconf (LGPL 2.1), pyserial (BSD-3). Full list in THIRD-PARTY-LICENSES.md
and in the ℹ️ Info tab.