ESP-igate v3.2 - iGate APRS dla dsTNCv2 na Seeed XIAO ESP32-C6
(c) Tomek SP9UOB, https://sp9uob.verox.pl/esp-igate.html

Build: 2026-10-07 15d46d9   ("-dirty" = zbudowane z niezacommitowanego drzewa)

=== PL ===

Zawartosc:
  esp-igate_v3.2_factory.bin  - bootloader + partycje + aplikacja, offset 0x0
  esp-igate_v3.2_app.bin      - sama aplikacja, offset 0x10000 (aktualizacja)
  flash.sh                      - skrypt wgrywajacy calosc

Wgrywanie (pierwszy raz, calosc):
  esptool.py --chip esp32c6 --port /dev/ttyACM0 --baud 460800 \
      write_flash -z 0x0 esp-igate_v3.2_factory.bin

Aktualizacja (bez ruszania bootloadera i konfiguracji):
  esptool.py --chip esp32c6 --port /dev/ttyACM0 --baud 460800 \
      write_flash -z 0x10000 esp-igate_v3.2_app.bin

Jesli plytka nie daje sie zlapac: trzymaj przycisk B, klik R, puscic B.

Podlaczenie do dsTNCv2 (poziomy 3V3):
  XIAO D6 (GPIO16) -> RX modemu
  XIAO D7 (GPIO17) <- TX modemu
  XIAO D3 (GPIO21) <- CTS modemu (HIGH = gotowy; wejscie ma pull-up,
                      wiec bez tego przewodu iGate uzna modem za gotowy)
  GND              -  GND
  19200 8N1

Kondensator: ESP32-C6 bierze duze impulsy pradu przy nadawaniu WiFi/BLE
i na slabszym zasilaniu potrafi sie restartowac (brownout). Warto
dolutowac polimerowy kondensator 1000uF/4V do pinow 3V3 i GND plytki
XIAO (uwaga na biegunowosc).

Pierwsze uruchomienie: modul rozglasza siec WiFi dsTNC / 123456789,
konfiguracja na http://10.0.0.1

KISS po BLE: modul rozglasza sie jako "dsTNC", Nordic UART Service
  serwis  6E400001-B5A3-F393-E0A9-E50E24DCCA9E
  RX      6E400002-... (write)
  TX      6E400003-... (notify)

=== EN ===

Contents:
  esp-igate_v3.2_factory.bin  - bootloader + partition table + app, offset 0x0
  esp-igate_v3.2_app.bin      - application only, offset 0x10000 (update)
  flash.sh                      - flashes everything

First flash:
  esptool.py --chip esp32c6 --port /dev/ttyACM0 --baud 460800 \
      write_flash -z 0x0 esp-igate_v3.2_factory.bin

Update (keeps bootloader and configuration):
  esptool.py --chip esp32c6 --port /dev/ttyACM0 --baud 460800 \
      write_flash -z 0x10000 esp-igate_v3.2_app.bin

If the board cannot be caught: hold B, click R, release B.

Wiring to dsTNCv2 (3V3 levels):
  XIAO D6 (GPIO16) -> modem RX
  XIAO D7 (GPIO17) <- modem TX
  XIAO D3 (GPIO21) <- modem CTS (HIGH = ready; the input is pulled up,
                      so without this wire the iGate assumes ready)
  GND              -  GND
  19200 8N1

Capacitor: the ESP32-C6 draws heavy current pulses when transmitting on
WiFi/BLE and on a weaker supply it may reset itself (brownout). It is
worth soldering a 1000uF/4V polymer capacitor across the 3V3 and GND
pins of the XIAO board (mind the polarity).

First boot: the module brings up WiFi network dsTNC / 123456789,
configuration at http://10.0.0.1
