Meshtastic Heltec HTIT-WB32LAF V4.3

Aus TippvomTibb
Zur Navigation springen Zur Suche springen

Allgemeines

Diese Seite des Hersteller ist schon sehr unfangreich und informativ. [1]

Was mich allerdings stutzig gemacht hat, war der Umstand mit der externen WLAN-Antenne. Ich hatte ein KIT bestellt mit WLAN-Antenne und GNSS-Modul (GPS). Folgende Bemerkung war zum IPEX-WLAN-Stecker zu finden.

By default, it is connected to the onboard FPC, and its circuit has been tested to achieve optimal performance. When you switch the resistor to IPEX, the IPEX connector will achieve optimal performance.
If both the IPEX interface and the FPC contacts are connected at the same time, the communication performance on both sides will be degraded.
This is a 0-ohm resistor. If you don’t have high requirements for the 2.4G signal, you can directly use a soldering iron to short-circuit both directions at once, making both sides work simultaneously.

Das heißt so viel wie, im Auslieferungszustand ist der WLAN-Antennenausgang an die Flexible Druckschaltkreis-Antennen (FPC flexible printed circuit) ueber eine Bruecke (0-Ohm Widerstand) angeschlossen. Der "Weg" zum IPEX war bei nicht beschaltet. Die WLAN per Pigtail waere also nutzlos. Da auf keinen Fall empfohlen wird beide Antennen gleichzeitig zu betreiben, muss man im Fall der externen WLAN-Antenne die 0-OHM-Bruecke umloeten. Dabei wuensche ich ohne Mikroskop viel Erfolg.

Pigtails

  • RP-SMA Female auf IPEX 1.0 [2]
  • Wendelantenne (LoRa Antenna) 863-928 MHz IPEX 1.0 [3]

Inbetriebnahme

Hier die Befehle im Ueberblick.

Erst mal die Python-Umgebung schaffen.

python -m venv ~/meshtastic-env
source ~/meshtastic-env/bin/activate
pip install --upgrade pip
pip install meshtastic

Testen und USB-Port finden.

meshtastic --version
meshtastic --help
sudo dmesg
meshtastic --port /dev/ttyACM0 --info

Flashen voebreiten. PS: Der Versuch ueber Chrome Meshtastic Flashtool hat nicht funktioniert. (Grund weiter siehe unten)

pip install esptool
esptool version
esptool --port /dev/ttyACM0 chip-id
esptool --port /dev/ttyACM0 flash-id

Kontakt hergestellt und (Test-)Werksfirmware sichern.

esptool --port /dev/ttyACM0 read-flash 0x000000 0x1000000 heltec-v43-original.bin
esptool --port /dev/ttyACM0 read-flash 0x000000 0x1000000 heltec-v43-original-2.bin
sha256sum heltec-v43-original.bin heltec-v43-original-2.bin

E-Fuses sichern

espefuse --port /dev/ttyACM0 summary
oder gleich
espefuse --port /dev/ttyACM0 summary > HTIT-WB32LAF-V4.3-efuses.txt
und vielleich auch noch
espefuse --port /dev/ttyACM0 dump > HTIT-WB32LAF-V4.3-efuses-dump.txt

Firmware firmware-esp32s3-2.7.26.54e0d8d.zip herunterladen. Darin sollten die 3 folgenden Dateien enthalten sein.

  • firmware-heltec-v4-2.7.26.54e0d8d.factory.bin
  • mt-esp32s3-ota.bin
  • littlefs-heltec-v4-2.7.26.54e0d8d.bin

Darin liegt vermutlich der Grund warum das Webprog nicht funktioniert hat. Bei einer Erstinbetriebnahme müssen zusaetzlich zur "reinen" Firmware noch die beiden anderen Dateien geflasht werden.

esptool --port /dev/ttyACM0 erase-flash esptool --port /dev/ttyACM0 write-flash 0x000000 firmware-heltec-v4-2.7.26.54e0d8d.factory.bin 0x650000 mt-esp32s3-ota.bin 0xC90000 littlefs-heltec-v4-2.7.26.54e0d8d.bin

Und jetzt kann es nach einem Reboot mit meshtastic losgehen.

meshtastic --port /dev/ttyACM0 --info
meshtastic --port /dev/ttyACM0 --get lora
meshtastic --port /dev/ttyACM0 --set lora.region EU_868
meshtastic --port /dev/ttyACM0 --get lora
meshtastic --port /dev/ttyACM0 --sendtext "Test vom PC"
meshtastic --port /dev/ttyACM0 --nodes
meshtastic --port /dev/ttyACM0 --get position
meshtastic --port /dev/ttyACM0 --get serial
meshtastic --port /dev/ttyACM0 --debug
usw.

Hier der passende Mitschnitt:


(meshtastic-env) (base) chris@worker:~ [0]$ esptool version
esptool v5.4.0
5.4.0
(meshtastic-env) (base) chris@worker:~ [0]$ ls -l /dev/ttyACM*
crw-rw----. 1 root dialout 166, 0 15. Sep 20:38 /dev/ttyACM0
(meshtastic-env) (base) chris@worker:~ [0]$ esptool --port /dev/ttyACM0 chip-id
esptool v5.4.0
Connected to ESP32-S3 on /dev/ttyACM0:
Chip type:          ESP32-S3 (QFN56) (revision v0.2)
Features:           Wi-Fi, BT 5 (LE), Dual Core + LP Core, 240MHz, Embedded PSRAM 2MB (AP_3v3)
Crystal frequency:  40MHz
USB mode:           USB-Serial/JTAG
MAC:                10:bd:a3:5a:68:70

Stub flasher running.

WARNING: ESP32-S3 has no chip ID. Reading MAC address instead.
MAC:                10:bd:a3:5a:68:70

Hard resetting via RTS pin...
(meshtastic-env) (base) chris@worker:~ [0]$ esptool --port /dev/ttyACM0 flash-id
esptool v5.4.0
Connected to ESP32-S3 on /dev/ttyACM0:
Chip type:          ESP32-S3 (QFN56) (revision v0.2)
Features:           Wi-Fi, BT 5 (LE), Dual Core + LP Core, 240MHz, Embedded PSRAM 2MB (AP_3v3)
Crystal frequency:  40MHz
USB mode:           USB-Serial/JTAG
MAC:                10:bd:a3:5a:68:70

Stub flasher running.

Flash Memory Information:
=========================
Manufacturer: 68
Device: 4018
Detected flash size: 16MB
Flash type set in eFuse: quad (4 data lines)
Flash voltage set by eFuse: 3.3V

Hard resetting via RTS pin...
(meshtastic-env) (base) chris@worker:~ [0]$ esptool --port /dev/ttyACM0 read-flash 0x000000 0x1000000 heltec-v43-original.bin
esptool v5.4.0
Connected to ESP32-S3 on /dev/ttyACM0:
Chip type:          ESP32-S3 (QFN56) (revision v0.2)
Features:           Wi-Fi, BT 5 (LE), Dual Core + LP Core, 240MHz, Embedded PSRAM 2MB (AP_3v3)
Crystal frequency:  40MHz
USB mode:           USB-Serial/JTAG
MAC:                10:bd:a3:5a:68:70

Stub flasher running.

Configuring flash size...
Read 16777216 bytes from 0x00000000 in 112.3 seconds (1194.8 kbit/s) to 'heltec-v43-original.bin'.

Hard resetting via RTS pin...
(meshtastic-env) (base) chris@worker:~ [0]$ esptool --port /dev/ttyACM0 read-flash 0x000000 0x1000000 heltec-v43-original-2.bin
esptool v5.4.0
Connected to ESP32-S3 on /dev/ttyACM0:
Chip type:          ESP32-S3 (QFN56) (revision v0.2)
Features:           Wi-Fi, BT 5 (LE), Dual Core + LP Core, 240MHz, Embedded PSRAM 2MB (AP_3v3)
Crystal frequency:  40MHz
USB mode:           USB-Serial/JTAG
MAC:                10:bd:a3:5a:68:70

Stub flasher running.

Configuring flash size...
Read 16777216 bytes from 0x00000000 in 112.9 seconds (1188.3 kbit/s) to 'heltec-v43-original-2.bin'.

Hard resetting via RTS pin...
(meshtastic-env) (base) chris@worker:~ [0]$ sha256sum heltec-v43-original.bin heltec-v43-original-2.bin
1dd5f293ea3e04aad4564d4e28e9443b5725cf63cb886c046ee6801898b7a23c  heltec-v43-original.bin
1dd5f293ea3e04aad4564d4e28e9443b5725cf63cb886c046ee6801898b7a23c  heltec-v43-original-2.bin

Heltec TestFirmware

Hier die Analyse des 16-MB-Originaldump tatsächlich analysiert.

Er sieht plausibel und vollständig aus.

Ergebnis

Die Datei hat exakt 16.777.216 Byte = 16 MiB. SHA-256:

1dd5f293ea3e04aad4564d4e28e9443b5725cf63cb886c046ee6801898b7a23c

Besonders interessant: Auf deinem Board befindet sich tatsächlich eine Heltec-Werks-/Testfirmware, nicht Meshtastic. Im Binärfile finden sich u. a.:

heltec_test
HELTEC_WIFI_LORA_32_V4
WIFI Setup done
LORA MODE
LoRa Rssi:
gps_test:
ADC test OK
IO Output test...

Außerdem ist der Build-Pfad enthalten:

WiFi_Kit_series-2026020501

Das deutet auf eine Heltec-Arduino/Board-Support-Version bzw. einen Buildstand vom 05.02.2026 hin.

Partitionierung

Ich habe die Partitionstabelle direkt bei 0x8000 ausgelesen:

Partition Start Größe Bedeutung
nvs 0x009000 20 KiB Einstellungen/NVS
otadata 0x00E000 8 KiB OTA-Verwaltung
app0 0x010000 1280 KiB Firmware
app1 0x150000 1280 KiB zweite OTA-Firmware
spiffs 0x290000 1408 KiB SPIFFS-Dateisystem
coredump 0x3F0000 64 KiB Crash-Dumps

Die eigentliche Werksfirmware beginnt also bei:

0x010000

und dein Dump enthält außerdem Bootloader, Partitionstabelle, NVS usw.

Interessant ist auch die eingebettete Arduino-Konfiguration:

heltec_wifi_lora_32_V4
CPUFreq=240
FlashMode=qio
FlashSize=16M
PartitionScheme=default
LORA_FEM_TYPE=1
LORA_RX_LNA=0
CDCOnBoot=cdc

Das bestätigt insbesondere nochmals 16 MB QIO-Flash und zeigt, dass die Firmware für die Heltec-WiFi-LoRa-32-V4-Plattform kompiliert wurde.

Für dein Meshtastic-Flashen

Du hast damit jetzt ein sehr gutes Factory-Backup. Ich würde diese Datei unbedingt unverändert archivieren:

HTIT-WB32LAF-V4.3-original.bin

Falls du später den jetzigen Zustand zurückhaben möchtest, kannst du grundsätzlich den kompletten Dump wieder schreiben:

esptool --port /dev/ttyACM0 write-flash 0x000000 HTIT-WB32LAF-V4.3-original.bin

Damit kannst du jetzt Meshtastic flashen, ohne die Heltec-Werksfirmware zu verlieren.

Ein wichtiger Punkt bezüglich der urspruenglichen Warnung des Meshtastic-Flashers: In deinem Dump finde ich klare Hinweise auf Heltec-Testsoftware, aber keine Hinweise darauf, dass bereits Meshtastic installiert ist. Es gibt daher auf diesem fabrikseitigen Zustand keine bestehende Meshtastic-Node-Identität, deren Meshtastic Private/Public Keys du erhalten müsstest. Nach der ersten Meshtastic-Installation wird eine neue Identität erzeugt.


Request for Comments

Loading comments...