🌱 FarmSense Observer β€” Flash & Sensors

Flash the MeshCore observer and pick which sensors it tracks β€” straight from your browser.

Use Chrome or Edge on a desktop (Web Serial isn't supported on Firefox, Safari, or mobile). Connect the board with a USB-C data cable (not charge-only).

1. Flash the observer

Observer firmware

The MeshCore observer for the Heltec WiFi LoRa 32 V4 β€” polls sensor nodes on the mesh and forwards readings to the web app. Test mode is a config toggle below (not a separate firmware): flip it on to fabricate readings and post them to the live app with no sensors or mesh needed, so you can prove WiFi β†’ dashboard end to end.

Flashing is buttonless: pick the device in the port chooser and click Install β€” it resets into update mode and back on its own, so it works even when the unit is enclosed.

πŸ”‘ To keep your WiFi & settings across an update: on the screen that asks β€œErase device?”, leave β€œErase device” UNCHECKED and click Next. That preserves your config and boots fast. Only check it for a clean factory wipe (then the first boot takes ~90 s to re-init storage).

⚠️ Do not hold the BOOT button to force update mode on this board: GPIO0 is also a strap pin. You don't need it β€” Install handles the reset by itself.

2. Connect & advertise

After flashing, connect over USB, then advertise to announce the observer on the mesh β€” this is how you verify the unit is on the air.

Not connected

Configure the observer

Set the observer's name, WiFi, and where it uploads readings. Connect the device above to edit.

Must match the key in the app Settings page.

When set, every reading is also POSTed here (same JSON body) in parallel with the primary endpoint above β€” for a second consumer such as another agent's webhook. Sent as the X-API-Key header. Leave the URL blank to turn the mirror off. See the receiver spec.

How often the observer polls its sensors and pushes readings to the app. Whole minutes (drop it low, e.g. 5, for testing).

Where this observer is installed β€” advertised on the mesh. Leave blank/0 if unknown.

β€”

The device has no battery-backed clock. Once it's on WiFi it keeps time automatically via NTP; this button sets it from your computer for bench use before WiFi is up. Reading timestamps use this clock.

When on, the node list below only shows soil sensors; chat/repeater/room nodes are ignored. Tracked sensors are always kept.

Posts fake readings to the live app to test the pipeline.

For solar/battery deployment: runs the CPU slow to save power. Leave OFF on USB for a faster, snappier bench experience. Takes effect after a reboot.

A radio change below needs a device reboot to take effect.

MeshCore radio

All nodes on the mesh must use the same radio settings.

Radio changes (frequency/bandwidth/SF/CR) take effect only after a reboot β€” save, then Reboot device.

3. Sensors β€” 0 / 16 tracked

Nodes the observer has heard beacon. Check a node to track it as a sensor β€” its readings will be forwarded to the web app. This observer stores up to 16 sensors.

Connect the device and press Refresh to list heard nodes.

Audit log (what the observer tried to send)

The observer's in-memory record of recent upload attempts and their HTTP result. Compare it against the dashboard: a send logged here with ok / code 200 that you do not see in the web app points to a server-side gap; a non-200 (or β€œtransport error”) code points to a network/observer-side failure. Cleared on reboot.

Connect and press β€œRead audit log”.

4. Serial log β€” idle

Live output from the device β€” boot log, mesh traffic, uploads. Connect above, then press the board's RST button to capture the boot log. No separate serial monitor needed.

Connect the device to see live output…

FarmSense observer