Skip to main content

ESP32 Asset Tracker Firmware for Logistics Fleets

GizanTech EngineeringIndustrial Firmware TeamUpdated June 15, 2026

Asset trackers fail in the field for boring reasons: the GPS holds a fix too long, the modem never sleeps, and a 'low-power' tracker drains its cell in three weeks. GizanTech writes ESP32 tracker firmware around measured power budgets, not datasheet maximums. We pick the operating mode per asset class and prove battery life against real motion and dwell patterns before the fleet ships.

Challenges specific to Logistics & Asset Tracking

  • GPS cold-start drains the battery

    A tracker that re-acquires a full satellite fix from cold on every wake burns 30-45s at 25-40 mA, so a daily-ping unit dies in weeks instead of years.

  • Cellular modem never truly sleeps

    Firmware that keeps the LTE-M/NB-IoT modem attached between reports leaves it pulling idle current and paging, quietly costing more energy than the GPS itself.

  • Geofence events are missed or noisy

    Polling location on a fixed timer either misses a yard entry between samples or floods the backend with jitter when an asset sits on a fence boundary.

  • No usable battery estimate

    Logistics planners cannot schedule swaps because the firmware reports raw voltage, which sags under modem TX bursts and lies about real remaining capacity.

  • Trackers lose position in steel containers

    Inside a container or trailer GNSS is blocked, so a GPS-only design goes dark for the whole ocean or rail leg with no fallback location source.

How GizanTech solves them

  1. Assisted GNSS with hot-start hold. 1. We push A-GNSS ephemeris over the modem and keep RTC-backed almanac so fixes resolve in 1-8s hot, cutting GPS-on energy by roughly 80% versus cold acquisition.
  2. Radio duty-cycling and PSM. 2. We drive LTE-M/NB-IoT PSM and eDRX so the modem detaches into microamp sleep between reports, and batch fixes to amortize each costly TX attach cycle.
  3. Hardware geofence-wake. 3. We use accelerometer motion interrupts and on-device geofence math to wake the ESP32 only on real boundary crossings, with hysteresis to kill fence jitter.
  4. Coulomb-counted battery model. 4. We integrate a fuel-gauge or coulomb count with a per-mode energy budget, so the backend gets true percent-remaining and a calendar-accurate swap date.
  5. BLE and Wi-Fi fallback location. 5. When GNSS is blocked we fall back to BLE beacon scan and cell-tower or Wi-Fi positioning, so a container asset still reports a coarse zone at every leg.
Operating modeGPS fix intervalRadio usedData per dayExpected battery life
Live-trackEvery 10-30 sCellular (LTE-M, always attached)5-15 MB2-4 days
Periodic-pingEvery 1-4 hCellular (NB-IoT, PSM between)20-80 KB12-24 months
Geofence-wakeOn motion or boundary crossBLE scan + cellular on event5-30 KB18-36 months
DormantNone (RTC keep-alive only)None (radio off)0 KB3-5 years
ESP32 tracker operating modes: GPS fix cadence, radio, daily data, and expected battery life on a 5000 mAh cell

ESP32 Firmware & IoT Development for other industries

Frequently asked questions

How long will a tracker actually last on one battery?

It depends entirely on operating mode. Live-track lasts days; periodic-ping runs 12-24 months; geofence-wake reaches 18-36 months; dormant shelf life is 3-5 years on a 5000 mAh cell.

Can one device switch modes during a shipment?

Yes. We profile-switch in firmware so an asset live-tracks during pickup, drops to periodic-ping in transit, and goes dormant in the warehouse, all from server or geofence triggers.

What radio should we use, LTE-M, NB-IoT, or BLE?

LTE-M suits live-track and moving assets; NB-IoT fits low-data periodic-ping with deep PSM; BLE handles indoor yard and container scenarios. We often combine them with fallback logic.

How do you keep position working inside steel containers?

GNSS is blocked inside steel, so we add BLE beacon scanning and cell-tower or Wi-Fi positioning as fallback, giving a coarse zone fix where satellite signals cannot reach.

Do you support OTA updates on a deployed fleet?

Yes. We ship signed, resumable OTA over the same cellular link with A/B partitions and rollback, so you can retune fix intervals or fix bugs without recalling trackers.