Inspiration
Canada's Arctic spans over 4 million square kilometers, home to more than 220 remote communities patrolled by the Canadian Rangers. These zones have no reliable internet infrastructure, no power grids, and no continuous monitoring of environmental conditions or security threats. When something goes wrong: a dangerous temperature spike, unexpected movement near a perimeter, equipment failure: there's currently no system that can detect it, record it, and alert operators before it becomes critical. We built Sentinel to change that.
What it does
Sentinel is a resilient, edge-AI Arctic sensor monitoring network that keeps working even when connectivity fails. An ESP32 field node reads temperature, humidity, and proximity every second and transmits to the central hub. A TFLite neural network running directly on the Raspberry Pi 5 under QNX 8.0 classifies movement patterns in real time: static/noise, approaching, or passing by. If the hub goes offline, nodes buffer readings locally and flush them automatically on reconnect (store-and-forward). A React tactical dashboard shows all 5 Arctic nodes on a Leaflet map with a radar telemetry panel, alert feed, and temperature/battery graphs. All sensor data is persisted locally in SQLite on the Pi, independent of cloud connectivity, while critical alert events are stored in MongoDB Atlas for historical analysis.
How we built it
- Hardware: Raspberry Pi 5 running QNX 8.0 as the central hub, paired with an ESP32 node reading a DHT11 (temperature/humidity) and HC-SR04 (ultrasonic proximity).
- Edge AI: A lightweight MLP trained with TensorFlow/Keras on synthetic movement data, exported to radar_model.tflite and running via tflite_runtime directly on the Pi. The C hub program triggers inference on proximity events.
- Hub (C on QNX): HTTP server on port 8080, SQLite3 for local persistence, TFLite classification on proximity alerts, REST endpoints for the dashboard.
- Backend (Python/Flask): Proxies real node data from the Pi, simulates nodes 2-5 with store-and-forward logic, predictive battery alerts, and MongoDB Atlas for event persistence.
- Frontend (React/Vite): Leaflet.js Arctic map, RadarTelemetry Recharts component with real-time waveform and AI classification, alert feed, battery graph, tactical dark theme.
Challenges we ran into
- QNX GPIO timing: the HC-SR04 requires microsecond-level pulse timing that QNX's GPIO character driver can't support. We moved sensor reading to the ESP32 and forwarded data to the Pi via HTTP POST.
- No InfluxDB on QNX: not available in the QNX apk repo. We switched to SQLite3, which is actually better suited for an embedded edge device.
- Camera Module 3:camera_example3_viewfinder returned err=2 throughout. We pivoted to TFLite ultrasonic radar classification, which turned out to be a stronger AI integration.
- QNX SDK on Mac M4: We developed entirely via SSH + VS Code Remote SSH.
Accomplishments that we're proud of
- TFLite on QNX 8.0: confirmed tflite_runtime via apk and got a neural network doing real-time inference on embedded hardware.
- Full end-to-end in 36 hours: real ESP32 hardware - QNX hub - SQLite - Flask - React dashboard, all live.
- Pivoting fast:3 major architecture pivots (camera - TFLite radar, InfluxDB - SQLite, Pi GPIO HC-SR04 - ESP32 HC-SR04) without losing momentum.
What we learned
- QNX is powerful but its ecosystem is significantly different from Linux package availability, GPIO interfaces, and camera APIs all require QNX-specific approaches
- Store-and-forward architecture is harder to implement correctly than it sounds, getting buffer ordering, flush logic, and UI sync animations all working together took real effort
- Hardware failures during a hackathon are inevitable, always have a clear Plan B (and Plan C)
What's next for Sentinel
- ESP-NOW radio network replace WiFi with direct device-to-device radio communication, eliminating the need for any router infrastructure (true Arctic deployment)
- LoRa long-range radio for multi-kilometer distances between nodes
- Real camera integration once QNX camera API headers are available, add visual verification to complement the radar classification
- Solar power management real battery monitoring and power optimization for Arctic deployment
Built With
- arduino
- c
- esp32
- flask
- javascript
- leaflet.js
- mongodb-atlas
- python
- qnx
- raspberry-pi
- react
- recharts
- sqlite
- tailwindcss
- tensorflow-lite
- vite


Log in or sign up for Devpost to join the conversation.