Flash a FarmSense soil-sensor node and configure it — straight from your browser.
This flashes a FarmSense soil-sensor node that reports soil moisture and temperature at 6 inch, 12 inch, and 18 inch depths and relays those readings to the observer over the mesh. Two sensor stacks are supported, chosen by board: the RAK4631 build reads RAK12035 WisBlock probes (individually I2C-addressed), and the Heltec V4 build reads Adafruit STEMMA capacitive probes through a TCA9548A I2C mux.
Use Chrome or Edge on desktop (Web Serial isn't supported on Firefox, Safari, or mobile). If flashing fails with “failed to initialize,” hold the board's BOOT/PRG button while clicking Install, or try the other serial port in the picker. If the device stays in the boot/DFU state after flashing, unplug and replug it to run the firmware. Large writes can take up to ~30 s.
Flashes the RAK entirely over USB from the browser — no buttons, no drag-and-drop. Connect the RAK first (step 4 “Connect”), then click below. The board drops into DFU, you pick the DFU port once when prompted, and the page flashes it and reboots into the new firmware. Use Chrome or Edge.
The RAK also flashes by copying a UF2 file onto its bootloader drive (needs the RESET button, so not usable once enclosed).
⬇ Download firmware-sensor.uf2
RAK4631 or FTHR….firmware-sensor.uf2 (downloaded above) onto that drive.To configure the RAK, use “Connect” below (step 4) — same as the Heltec. Once it's running the firmware, the RAK shows up as a USB serial port, so you set its name, radio, calibration, etc. from the form here (UF2 is only for flashing).
Advanced alternative: if you prefer a DFU update over the USB drive, download firmware-sensor.zip and flash it with a nRF DFU tool (e.g. adafruit-nrfutil / the WisBlock DFU flow). Most users should just use the UF2 above.
Each RAK12035 is its own I2C device. Wire all three to the RAK's I2C bus in parallel (shared SDA/SCL/power); no mux. They report soil moisture and temperature. Every unit ships at 0x20, so re-address the 12in and 18in probes first (step 4 → Assign sensor address), one at a time.
| Signal | RAK4631 pin |
|---|---|
| I2C SDA (all probes) | GPIO13 |
| I2C SCL (all probes) | GPIO14 |
| Power | 3V3 → VDD, GND → GND |
| 6 inch probe address | 0x20 |
| 12 inch probe address | 0x21 (assign) |
| 18 inch probe address | 0x22 (assign) |
All three STEMMA probes share I2C address 0x36; the TCA9548A mux (address 0x70, straps A0/A1/A2 → GND) selects one at a time. Wire the mux to the board, then each probe to a mux channel.
| Signal | Heltec V4 pin |
|---|---|
| I2C SDA → mux SDA | GPIO41 |
| I2C SCL → mux SCL | GPIO42 |
| Power | 3V3 → VIN, GND → GND |
| Mux ch 0 / 1 / 2 | 6in / 12in / 18in STEMMA probe @ 0x36 |
After flashing, connect over USB, then advertise to announce the sensor on the mesh — this is how the observer discovers it.
Set the sensor's name, install location, mesh radio, and per-probe moisture calibration. Connect the device above to edit.
Live output from the device — boot log, mesh traffic, readings. Connect above, then press the board's RST button to capture the boot log. No separate serial monitor needed.
FarmSense sensor