Flash LoRaITP

Plug the board in over USB, pick it below, click install. No toolchain, no downloads.

Seeed XIAO ESP32S3 Sense

The camera node. Ships with an OV2640; pair it with a Wio-SX1262 on the edge pins. Defaults to sender because it has a camera.

Seeed XIAO ESP32S3 + Wio-SX1262 Kit

The cheap base station. This is the radio board that plugs into the connector underneath the XIAO — it cannot be combined with the camera, which is fine at the receiving end. Defaults to receiver.

Heltec WiFi LoRa 32 V3

No camera interface. Defaults to receiver.

Heltec WiFi LoRa 32 V4

16 MB flash, 2 MB PSRAM, OLED. The comfortable base station. Note the high-power variant reaches 28 dBm, above the 27 dBm ERP ceiling of the 869.4 MHz band — the firmware refuses to configure it there.

Seeed XIAO nRF52840 — not yet

The protocol itself compiles for this part, but the firmware around it does not: it is built on WiFi, NVS and a filesystem the nRF52840 does not have. Making it work means writing a different application — images off over USB or BLE, no access point — rather than adding a few conditionals. It is on the list, not in this build.

After flashing

The board raises a WiFi access point called LoRaITP-XXXX. Connect to it and open http://192.168.4.1 — that page has the images, the airtime budget, and the settings: which end of the link this board is, which regulatory region, and how many bytes a picture may cost.

Both ends run the same firmware. Flash two boards, set one to sender and leave the other on receiver.

The default is 5 mW on 869.85 MHz — the sub-band with no duty-cycle limit. It burns none of the daily budget and needs no licence, which is what you want while the link is still being made to work. Switch to EU868_G3 (500 mW, 10 %) from the settings page once it does, and read docs/duty-cycle.md before you do.