Roadlink
Roadlink is a cross-platform in-vehicle computer system built with Flutter, designed to run on both Android and iOS. It brings the power of real-time GPS navigation, mesh network communication via Meshtastic, vehicle telemetry integration, and intelligent power management to any mobile device used in a golf cart.
Core Features
GPS and Navigation
- Real-time speed display with advanced filtering
- 16-point cardinal direction display (N, NNE, NE, ENE, etc.)
- Current latitude and longitude coordinates with satellite count
- Horizontal dilution of precision (HDOP) display for GPS accuracy
- Sunrise and sunset time calculation and display
- Automatic timezone and daylight saving time handling
- Date and time display with “NO GPS” indicator
- Multi-source GPS support (device GPS + Meshtastic)
Distance and Maintenance Tracking
- Dual odometer system (total distance + resettable trip odometer)
- 1 decimal place precision in miles
- Doppler speed gating for GPS error rejection
- Service reminder counter with driving hours accumulation
- Configurable service intervals
- User-resettable counters
- Automatic persistence and rollover at 100,000 miles
Mesh Network Communication
- Meshtastic BLE/Bluetooth integration
- Send and receive text messages via mesh network
- Broadcast and direct message support
- Preformatted message selection from configurable list
- Custom message composition via on-screen keyboard
- Message display with sender node ID, channel, and timestamp
- Automatic reconnection with exponential backoff
- Device bonding and persistent address storage
Vehicle Telemetry
- Bluetooth connection to vehicle telemetry systems
- Real-time telemetry data (battery, fuel, temperature, headlights)
- GPS data reporting to vehicle system
- At-home status and daytime status notification
- Continuous telemetry monitoring with automatic reconnection
Power and Display Management
- Intelligent power management for mobile devices
- Day/night brightness adjustment based on sunrise/sunset
- Configurable brightness levels
- Inactivity-based screen dimming
- Home location and geofencing support
- GPS interval optimization based on location
Weather and Entertainment Display
- Current temperature display
- 4-hour forecast with weather glyphs and precipitation probability
- Weather data caching with same-day restoration
- Venue/event data in scrollable table format
- Last-received timestamp display
Configuration and Settings
- Display settings (brightness, screen orientation, timeout)
- Vehicle settings (temperature offset, service intervals, odometer reset)
- Connectivity settings (Meshtastic enable/disable, radio management)
- System information and app preferences
- Persistent storage via device preferences
Technology Stack
Frontend
- Flutter framework for cross-platform development
- Dart programming language
- Native Material Design and Cupertino (iOS) UI components
- Responsive layouts for both tablets and phones
Backend & Connectivity
- Bluetooth support for both iOS and Android (BLE + Classic)
- Meshtastic mesh network integration
- Native GPS access
- Location services integration
Platform Support
- Android (same capabilities as native Kotlin version)
- iOS (full feature parity with Android)
- Cross-platform code sharing (95%+ code reuse)
- Platform-specific native modules where needed
Architecture
- Clean architecture with separation of concerns
- Provider or Riverpod for state management
- Persistent local storage
- Async/await for asynchronous operations
Key Differences from Native Android Version
The Flutter version provides:
- Cross-platform capability — Single codebase for iOS and Android
- Code reuse — ~95% shared code between platforms
- Faster development — Quicker feature deployment across both platforms
- Consistent UX — Same experience on Android and iOS
- Easier maintenance — Single codebase to maintain and update
Both versions maintain feature parity, with the Flutter version offering broader platform support while the native Kotlin version provides maximum Android-specific optimization.
Use Cases
- Golf Cart Fleet Management — Unified platform for iOS and Android devices
- Multi-Platform Deployments — Organizations using mix of iPhone and Android devices
- Outdoor Recreation — Mesh communication accessible on any mobile device
- Off-Grid Navigation — GPS and Meshtastic on iOS devices
- Vehicle Integration — Telemetry support across both platforms
Philosophy
Modern applications deserve modern tools. Flutter enables Roadlink to reach both Android and iOS users with a single codebase, reducing development time while maintaining feature completeness and platform-native quality.
Status
Active development. Cross-platform foundation established with feature parity implementation in progress. Designed to serve as the primary platform-agnostic version of the golf cart computer system.
Related
See also Roadlink Android — The native Kotlin/Android implementation with platform-optimized performance and features.
