FIrmware der "externen" LTE Bridge (esp32-s3-a7670e-4g) des Aiways U5
  • C++ 93.9%
  • C 5.7%
  • Shell 0.4%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
depe cb935ab0ae
Some checks are pending
CI / crypto-test (push) Waiting to run
CI / build (push) Waiting to run
CI / gate (push) Waiting to run
CI / release (push) Blocked by required conditions
Update project files - 2026-10-10 06:58
2026-10-10 06:59:05 +02:00
.github/workflows test: nativer AICHI-Protokoll-Test (Host-mbedTLS) + CI-Job 2026-09-04 15:27:33 +02:00
include Update project files - 2026-10-10 06:58 2026-10-10 06:59:05 +02:00
src Update project files - 2026-10-10 06:58 2026-10-10 06:59:05 +02:00
test/host release: v0.1.104 — Akku-Anzeige aus der Zellspannung (OCV-Tabelle) statt der MAX17048-Schaetzung 2026-10-08 13:58:58 +02:00
.gitignore fix: eindeutiger Config-Header (bridge_config.h) — __has_include-Kollision 2026-09-02 23:08:15 +02:00
platformio.ini rebrand: OpenAiways -> AiwaysCommunity (Anzeigename) 2026-09-09 20:21:05 +02:00
README.md rebrand: OpenAiways -> AiwaysCommunity (Anzeigename) 2026-09-09 20:21:05 +02:00

AiwaysCommunity LTE-Bridge (ESP32-S3-A7670E-4G)

Die Bridge ist ein dummer GET→POST-Übersetzer: Sie hängt sich in den WLAN-AP der TBox, holt die fertig aufbereiteten Daten von :9000 (der Daemon macht die ganze Logik) und schickt sie per LTE ans Backend. Keine Fahrzeuglogik auf dem ESP.

TBox (WLAN-AP, :9000)  --WiFi-->  ESP32-S3  --LTE (A7670E)-->  Backend (HTTPS)
     GET /cachedata /gps                POST /ingest/... (X-Api-Key)

Hardware / Pinbelegung (aus dem Schaltplan verifiziert)

Board: Waveshare ESP32-S3-A7670E-4G — ESP32-S3R8 (16 MB Flash, 8 MB PSRAM) + A7670E (LTE Cat-1 / 2G / GNSS). Modem-IO ist 1,8 V, UART über TXB0104-Level- Shifter auf 3,3 V. Modem-USB hängt zusätzlich über einen FSUSB42-Mux am nativen USB des ESP32-S3.

Signal ESP32-S3 Hinweis
Modem Power-Enable GPIO33 HIGH = VVBAT an; PWRKEY wird per Q9 automatisch getriggert (kein separater PWRKEY-Pin)
Modem UART TX (ESP→Modem) GPIO17 → R59 → TXD1 → Level-Shifter → Modem RXD
Modem UART RX (Modem→ESP) GPIO18 Modem TXD → Level-Shifter → RXD1 → R61 → GPIO18
Modem DTR GPIO45 LOW = wach halten
Modem RI GPIO40 Ring/Status
RGB-LED (WS2812) GPIO38 Statusanzeige
Modem USB (D-/D+) native USB (mux) für PPP/hohe Raten, per DIP/USB_SET umschaltbar

Voraussetzungen fürs Testen: SIM (Nano) mit Datentarif gesteckt, LTE-Antenne an RF_ANT, Strom über USB-C oder 18650-Akku (das Modem zieht im Sendeburst bis ~2 A — an schwachen USB-Ports kann es sonst resetten). DIP-Schalter so, dass die ESP32-UART/Programmierung erreichbar ist.

Aufbau in Phasen

  • Phase 0 — Bring-up (diese Firmware): Modem-AT-Probe (GPIO17/18), SIM/Netz/ Signal, WiFi-Scan nach MyAiways-*, danach transparenter AT-Passthrough (USB-Konsole ↔ Modem) für manuelle Tests. → beweist beide Funkteile einzeln.
  • Phase 1 — WiFi-Pfad: in den TBox-AP einloggen (Creds aus dem Bridge-Package), GET http://192.168.1.1:9000/cachedata mit X-Token, JSON puffern.
  • Phase 2 — LTE-Pfad: PPP über das Modem hochziehen (echter IP-Stack → HTTPClient/TLS), POST ans Backend mit X-Api-Key. Dafür Arduino-ESP32 3.x nötig → in platformio.ini auf die pioarduino-Platform wechseln.
  • Phase 3 — Loop + Konfig: Bridge-Package (ap_ssid/ap_key/backend/api_key) aus dem NVS/QR, Zyklus (GET→POST→Sleep), Fehler-/Retry-Handling, LED-Status.

Build / Flash (auf dem eigenen PC)

pio run                 # bauen
pio run -t upload       # flashen (Board per USB-C)
pio device monitor      # 115200 Baud

Phase 0 kommt mit der Standard-espressif32-Platform aus. Für Phase 2 (PPP) Platform-Zeile tauschen (Kommentar in platformio.ini).