v1.2.0 - Geofence/Distance Tracking
Release Notes - v1.2.0
Release Date: 2025-12-19
π What's New
π Geofence Validation
Pings are now restricted to a 150km radius around Ottawa (centered on Parliament Hill). This ensures all wardrive data stays within the coverage mapping region and prevents accidental data submissions from outside the target area.
π Minimum Distance Filtering
A new 25-meter minimum distance requirement between consecutive pings has been added. This prevents duplicate data points when stationary or moving slowly, resulting in cleaner and more meaningful coverage data.
π Distance from Last Ping Display
The UI now shows real-time distance from your last successful ping location, helping you know when you've moved far enough for a new ping to be accepted.
π Debug Mode
Developers and advanced users can now enable detailed logging by adding ?debug=true to the URL. This provides extensive console output for troubleshooting connection issues, GPS problems, and ping failures.
βοΈ Improvements
β±οΈ Timer System Refactoring
- Auto-ping countdown now pauses when you send a manual ping and resumes afterward
- More reliable timer management with better clock skew handling
- Cleaner countdown display with consistent status messaging
π¨ Status Color Consistency
Standardized color coding across all status messages:
- π’ Green - Success (ping sent, connected)
- π‘ Amber - Warning (skipped pings, cooldown)
- π΄ Red - Error (disconnected, failures)
- π΅ Blue - Info (connecting, sending)
- βͺ Gray - Idle (waiting)
π GPS Handling
- Improved handling of GPS watch data during manual pings
- Better fallback logic when GPS data becomes stale
- More informative status messages when GPS issues occur
π§Ή Code Quality
- Refactored countdown timers into reusable components
- Centralized timer cleanup on disconnect
- Better separation of concerns throughout the codebase
π Documentation
- README updated with detailed instructions for joining the
#wardrivingchannel in the MeshCore app before using the web app - Step-by-step setup guides improved for both Android and iOS
π§ Technical Details
New Configuration Constants
| Constant | Value | Description |
|---|---|---|
OTTAWA_GEOFENCE_RADIUS_M |
150,000m | Geofence radius around Ottawa |
MIN_PING_DISTANCE_M |
25m | Minimum distance between pings |
GPS_WATCH_MAX_AGE_MS |
60,000ms | Max age for GPS data in manual pings |
MIN_PAUSE_THRESHOLD_MS |
1,000ms | Minimum timer value to pause |
MAX_REASONABLE_TIMER_MS |
300,000ms | Maximum timer value (clock skew protection) |
New Functions
calculateHaversineDistance()- Accurate distance calculation between GPS coordinatesvalidateGeofence()- Check if coordinates are within Ottawa regionvalidateMinimumDistance()- Check if moved 25m+ from last pingcreateCountdownTimer()- Generalized countdown timer factorydebugLog(),debugWarn(),debugError()- Conditional debug logging
β¬οΈ Upgrade Notes
This is a non-breaking update. Simply refresh the web app to get the latest version. No configuration changes are required.
Note: If you're testing outside the Ottawa region (150km from Parliament Hill), pings will be blocked with a "Ping skipped, outside of geo fenced region" message.
π Acknowledgments
Thanks to everyone testing and providing feedback on the MeshCore wardrive coverage mapping project!
What's Changed
- Refactor and optimize wardrive.js with comprehensive debug logging by @Copilot in #46
- Fix manual ping timeout after stopping auto ping by @Copilot in #48
- Add GPS status feedback and freshness validation for ping operations by @Copilot in #49
- Add live countdown for GPS skip in auto-ping mode by @Copilot in #50
- Fix auto ping timer conflict during manual ping by @Copilot in #52
- Add GPS geofence and distance-based ping filtering for Ottawa region by @Copilot in #53
- Add geofence validation, distance filtering, and debug mode by @MrAlders0n in #54
Full Changelog: v1.1.1...v1.2.0