Skip to content
DigitalBorders

Connected Devices

Smart planters that form a self-healing LoRa mesh

Jocondo

DigitalBorders took Jocondo's smart planters from prototype to product — firmware, a self-healing LoRa mesh we built and open-sourced, an Appwrite backend, and a React Native app, end to end. Pots mesh over LoRa where Wi-Fi can't reach, and any connected pot bridges the rest to the cloud.

  • ESP32
  • ESPHome
  • C++
  • LoRa mesh
  • BLE
  • Appwrite
  • React Native
Engineered
a self-healing LoRa mesh
Open-sourced
as an ESPHome component
Owned
firmware to app, one team

Context

Jocondo makes smart planters. Their prototype watered on a fixed timer and reported nothing. To become a product, a whole garden of planters had to read their own soil, water only when a plant needed it, and report to an app — outdoors, spread across a yard where Wi-Fi doesn't reach every corner. Jocondo brought the entire build to DigitalBorders: the firmware, the network between the planters, the backend, and the app.

Problem

The hard part wasn't one planter — it was connecting a garden of them reliably.

  • Wi-Fi doesn't reach every pot. A planter at the far end of the yard may have no usable signal, but it still has to report and take watering commands.
  • A fixed gateway is a single point of failure. Route every pot through one designated bridge and the whole garden goes dark when that bridge loses power or signal.
  • Onboarding has to happen from the garden. An owner sets a pot up from their phone, standing next to it — not by typing network details into a tiny screen.
  • The network has to be ours to fix. A black-box radio stack we can't read or patch is a liability once these ship.

Approach

Every planter carries three radios — Wi-Fi, BLE, and LoRa — and we used each for what it's good at.

The planters form a self-healing LoRa mesh: each relays for its neighbors, so a pot with no Wi-Fi of its own still reaches the network through the pots around it, and the mesh re-routes itself when a node drops. There's no designated gateway — any planter that can reach Wi-Fi bridges the mesh to the backend, so the uplink heals the same way the mesh does, and whichever pots have a connection carry the traffic.

BLE handles the first step: an owner pairs a new planter with the Jocondo app over Bluetooth, in the garden, without a captive portal. The mesh itself is a custom ESPHome C++ component — lora_mesh — that DigitalBorders wrote and open-sourced (it lives in our ESPHome fork). It's a custom mesh, not LoRaWAN — the routing is ours.

A connected planter bridges the mesh to an Appwrite backend, which stores each planter's history and serves the React Native app. One team owned every surface — the firmware, the backend, the app, and the admin — so the decisions at each boundary lined up instead of being negotiated across vendors.

Outcome

A garden where planters reach the network even past Wi-Fi's edge, any connected pot can bridge the rest, and a new planter joins with a BLE tap from the app. Because the lora_mesh component is open source, the network at the heart of the product isn't a black box Jocondo has to take on trust — it's an ESPHome component anyone can read, and one DigitalBorders maintains.