diff --git a/content/assets/images/sim7080g-module.jpg b/content/assets/images/sim7080g-module.jpg new file mode 100644 index 0000000..94034a2 Binary files /dev/null and b/content/assets/images/sim7080g-module.jpg differ diff --git a/content/edge/edge-overview.md b/content/edge/edge-overview.md index 09e9204..a380962 100644 --- a/content/edge/edge-overview.md +++ b/content/edge/edge-overview.md @@ -8,7 +8,7 @@ confidence: running period: "2020–" tech: [ESP32, LoRa, Zigbee, MQTT, Home Assistant, Snapcast, Raspberry Pi] metrics: [{label: "edge nodes", value: 20}, {label: "lighting zones", value: 9}, {label: "automations", value: 20}] -artefacts: [{type: doc, label: "Edge architecture — power · radio · deep sleep", url: "content/edge/l3/edge-architecture.md"}, {type: doc, label: "The failures, kept in the record", url: "content/edge/l3/edge-failures.md"}, {type: doc, label: "Distributed audio — eight endpoints with ducking", url: "content/edge/l3/edge-snapcast.md"}] +artefacts: [{type: doc, label: "Edge architecture — power · radio · deep sleep", url: "content/edge/l3/edge-architecture.md"}, {type: doc, label: "The failures, kept in the record", url: "content/edge/l3/edge-failures.md"}, {type: doc, label: "Distributed audio — eight endpoints with ducking", url: "content/edge/l3/edge-snapcast.md"}, {type: doc, label: "Vehicle tracker on LTE Cat-M", url: "content/edge/l3/edge-car-tracker.md"}] public: true last_verified: 2026-10-26 tags: [edge, iot, esp32, lora, zigbee] diff --git a/content/edge/l3/edge-car-tracker.md b/content/edge/l3/edge-car-tracker.md new file mode 100644 index 0000000..4eb5b15 --- /dev/null +++ b/content/edge/l3/edge-car-tracker.md @@ -0,0 +1,51 @@ +--- +id: edge-car-tracker +area: edge +level: 3 +title: "Artefact — Vehicle tracker on LTE Cat-M" +claim: "A tracker that sleeps between reports · wakes on a schedule or when the car moves · and reports when it leaves a boundary set from the web interface." +confidence: in-progress +period: "2024–" +tech: [ESP32, LTE Cat-M, NB-IoT, SIM7080G, GPS, LiFePO4] +metrics: [{label: "battery packs", value: 2}] +artefacts: [] +public: true +last_verified: 2026-10-28 +tags: [edge, tracker, lte, low-power, artefact] +--- + +The build is on the bench: two LiFePO batteries, a buck converter, an ESP32 with GPS, and a +cellular module for the uplink. The car keeps the packs charged while it is running. + +![Waveshare Pico SIM7080G Cat-M and NB-IoT module — the cellular link in the tracker. Product image, used to identify the part.](../../assets/images/sim7080g-module.jpg) + +## What it does + +Two behaviours, chosen by the settings rather than hard-coded. When the car is parked the +ESP32 sits in deep sleep, wakes on a timer, checks its own configuration, and reports only +what the settings ask for. When the car is moving it stays awake and reports on a shorter +interval. Either way the interval and the boundary can be changed from the web interface, +and a change can force an immediate update rather than waiting for the next wake. + +The geofence is the part that matters. A boundary is drawn from the web interface, and the +device is responsible for deciding whether it has left it — which is why the settings have +to travel to the device rather than live only in the server. + +## Why LTE Cat-M rather than WiFi + +The tracker lives in a car. WiFi coverage is a driveway, not a road. Cat-M and NB-IoT were +chosen because they are designed for exactly this shape of traffic — small payloads, long +sleeps, coverage beyond what 4G handsets need — and because the modules are cheap enough to +leave installed. + +## What it proves + +A complete path rather than a demo: constrained hardware, a power budget that dictates the +schedule, a device that holds enough state to act on its own, and a web application that +configures it and shows where it has been. + +## Still open + +Field testing across the full battery cycle. The sleep interval that is right for a parked +car and the interval that is right for a moving one are guesses until the discharge curve +has been measured over a week rather than a day.