How lungmen-hkm/argabeacon works
ArgaBeacon adapts Meshtastic firmware for hiking safety: a hiker’s GPS position or emergency-button event is shared over a LoRa mesh, while Bluetooth and the Meshtastic app provide configuration. A separate ESP32/RFID attendance unit records camp check-ins through a PHP web application. The README documents these product workflows; sampled firmware excerpts confirm startup, routing, and display-management responsibilities, but do not show the full GPS/button dispatch or attendance implementation.
Main entry points: MeshService.cpp Mesh service · Router.cpp Packet routing · main.cpp Firmware startup · RadioInterface.cpp LoRa radio
Components 21
Mesh communications
- Position module
src/modules/PositionModule.cpp - Mesh service
src/mesh/MeshService.cpp - Packet routing
src/mesh/Router.cpp - Routing handler
src/modules/RoutingModule.cpp - Packet cryptography
src/mesh/CryptoEngine.cpp - LoRa radio
src/mesh/RadioInterface.cpp - Node database
src/mesh/NodeDB.cpp
Hiker device
- GPS tracking
src/gps - Emergency button
src/ButtonThread.cpp - Firmware startup
src/main.cpp
Device interface
- Bluetooth configuration
src/nimble/NimbleBluetooth.cpp - InkHUD display
src/graphics/niche/InkHUD/InkHUD.cpp - Applet windows
src/graphics/niche/InkHUD/WindowManager.cpp
Camp attendance
- Attendance ESP32
web-absensi/esp32.cpp - Attendance API
web-absensi/api/absensi.php - Attendance website
web-absensi/index.php
Other components
- Hiker
- Mesh peers
- Meshtastic app
- RFID reader
- Attendance database
Connections 23
- Hiker → Emergency button: presses
- GPS tracking → Position module: provides coordinates
- Emergency button → Mesh service: requests emergency send
- Position module → Mesh service: provides location data
- Mesh service → Packet routing: dispatches packets
- Packet routing → Routing handler: delivers received packets
- Packet routing → Packet cryptography: encrypts packets
- Packet routing → LoRa radio: transmits packets
- LoRa radio → Mesh peers: sends over LoRa mesh
- Mesh peers → LoRa radio: forwards mesh packets
- Routing handler → Mesh service: delivers to radio handler
- Routing handler → Node database: checks node records
- Firmware startup → Mesh service: starts firmware service
- Firmware startup → LoRa radio: initializes radio
- Meshtastic app → Bluetooth configuration: configures device
- Bluetooth configuration → Firmware startup: configures device
- Firmware startup → InkHUD display: starts display
- InkHUD display → Applet windows: manages applets
- Hiker → RFID reader: taps at camp
- RFID reader → Attendance ESP32: provides tag scan
- Attendance ESP32 → Attendance API: submits attendance
- Attendance website → Attendance API: requests attendance
- Attendance API → Attendance database: reads and writes records