Home / Work / Soil Cub

Soil Cub.

The mobile brain of a research-grade soil meter — capturing readings over Bluetooth LE, storing them offline-first, and turning them into charts growers act on.

Role
Sole mobile developer & maintainer — Ensue Nepal, for EarthScout (Minneapolis, USA)
Stack
Kotlin · Jetpack Compose · Material 3 · Bluetooth LE · Room · Dagger Hilt
Status
Live on Google Play & the App Store · migrating to Flutter

Overview

Soil Cub is EarthScout's handheld 6-in-1 soil meter, built on TDR sensing — the gold standard for soil moisture measurement. Push the tines into the ground and it reads soil moisture, soil temperature, bulk and pore EC, air temperature and humidity in under a second.

The app is what makes those readings useful. It pairs with the meter over Bluetooth LE, captures every reading the moment it's taken, and keeps a season's worth of data organized, charted and safe — no clipboard, no manual transcription, no cloud required.

The interesting problems

  • No signal in the field — farms are connectivity dead zones, so the app is offline-first: Room (SQLite) is the single source of truth and everything works with airplane-mode reliability.
  • BLE is messy — connections drop, packets arrive out of order, devices sleep. The BLE layer owns pairing, reconnection and retries so a grower never loses a reading to a flaky link.
  • A season of data is irreplaceable — readings can be exported for analysis and backed up and restored wholesale, because losing three months of field data is not an option.

How the data flows

Highlights

  • Instant capture — take a reading on the meter and it's in the app before you've stood back up.
  • Trend charts — line charts across readings, so moisture and EC trends are visible at a glance, right in the field.
  • Export & backup — data belongs to the grower: export for analysis, back up and restore the whole database.
  • Modern Android UI — Jetpack Compose with Material 3, with Dagger Hilt keeping the architecture testable.
  • Engineered for trust — core logic built test-first, Crashlytics and structured logging in production, releases shipped through CI/CD with staged rollouts.

Where it's going

Soil Cub is now migrating to Flutter — one codebase serving both Android and iOS, which I design, build and maintain end-to-end. The same foundation will power WeatherCub, the companion app for EarthScout's weather station, next.