Skip to content

darkmatter2222/HTIT-Tracker-Heltec-v1.2-GPS-Reciever

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🛰️ HTIT-Tracker GPS Navigation System

The Ultimate Personal GPS Navigation Device for Beginners

HTIT-Tracker Infographic

If this project helps you or could save lives, please give it a STAR!

Your support motivates continued development and helps others discover this life-saving tool

GitHub stars GitHub forks GitHub issues License: MIT

 ██╗ ██╗████████╗██╗████████╗ ████████╗██████╗ █████╗ ██████╗██╗ ██╗███████╗██████╗ ██║ ██║╚══██╔══╝██║╚══██╔══╝ ╚══██╔══╝██╔══██╗██╔══██╗██╔════╝██║ ██╔╝██╔════╝██╔══██╗ ███████║ ██║ ██║ ██║ █████╗ ██║ ██████╔╝███████║██║ █████╔╝ █████╗ ██████╔╝ ██╔══██║ ██║ ██║ ██║ ╚════╝ ██║ ██╔══██╗██╔══██║██║ ██╔═██╗ ██╔══╝ ██╔══██╗ ██║ ██║ ██║ ██║ ██║ ██║ ██║ ██║██║ ██║╚██████╗██║ ██╗███████╗██║ ██║ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝ 🧭 Personal GPS Navigation • 🏠 Home Point Tracking • 🔋 Battery Monitoring 🛰️ Multi-GNSS Support • 📱 Dual-Screen Interface 

🌟 What is the HTIT-Tracker?

The HTIT-Tracker is a powerful GPS navigation device built on the Heltec ESP32 LoRa development board. It's designed to help you navigate back to a "home" location using simple cardinal directions (N, E, W, S, etc.), track your speed, monitor battery levels, and display satellite information—all on a beautiful dual-screen interface!

🆘 Life-Saving Purpose: When Cell Service Fails, GPS Still Works

This device could literally save your life. When you're in remote locations—hiking in mountains, camping in forests, exploring deserts, or working in rural areas—cell phone service often disappears, but GPS satellites are still there.

Here's the critical scenario this device solves:

  • 🏔️ You're hiking and lose the trail
  • 📵 No cell service for maps or emergency calls
  • 🧭 GPS still works because satellites are always overhead
  • 🏠 HTIT-Tracker remembers exactly where you started (your car, camp, trailhead)
  • ➡️ Shows you the direction to walk back home
  • 📏 Tells you the distance so you know how far to go
  • 🔋 Battery lasts 14+ hours for extended emergencies

Real Emergency Scenarios Where This Saves Lives:

  • Lost hiker needs to return to trailhead before dark
  • Hunter needs to find way back to truck in dense forest
  • Camper needs to navigate back to base camp in bad weather
  • Worker needs to return to vehicle in remote job site
  • Explorer needs emergency evacuation point coordinates

Why GPS Works When Cell Service Doesn't:

  • 🛰️ GPS satellites orbit 12,000+ miles overhead (global coverage)
  • 📱 Cell towers have limited range (usually 1-25 miles)
  • 🏔️ Mountains, forests, and valleys block cell signals easily
  • 🌍 GPS signals come from space and penetrate most obstacles

NEW v1.2 ENHANCED FEATURES

🔧 Major System Upgrades

  • 📱 Multi-Screen Menu System - Navigate through 8 intuitive screens with flicker-free menu interface
  • 📍 Three Waypoint Navigation - Store and navigate to 3 different waypoints plus home location
  • 💾 Persistent Storage - Waypoints saved permanently in EEPROM memory (survives power loss)
  • ⚡ Advanced Power Management - Full/Eco modes with intelligent screen timeout
  • 🔄 Enhanced UI - Professional display updates with anti-flicker optimization
  • 🎯 Streamlined Navigation - Simplified menu structure for faster waypoint access

📱 Complete Screen System

  1. 📊 Status Screen - GPS fix, satellites, battery, accuracy
  2. 🧭 Navigation Screen - Direction, distance, speed to active waypoint
  3. 📋 Main Menu - Access to 4 core functions (Status, Waypoints, System Info, Power)
  4. 📍 Waypoint Menu - Manage and navigate to all 3 waypoints with visual indicators
  5. 🎯 Waypoint Navigation - Dedicated navigation screens for each waypoint (WP1, WP2, WP3)
  6. ➕ Set Waypoint - Interactive waypoint setting interface with GPS status
  7. ℹ️ System Info - Firmware version, satellite count, battery details, power mode
  8. ⚡ Power Menu - Battery optimization controls with Full Power and Eco Mode options

🔋 Smart Power Management

  • 🔥 Full Power Mode - 1s refresh, full brightness, optimal performance for active navigation
  • 💚 Eco Mode - 2s refresh, reduced brightness, extended battery life for long expeditions

🎮 Enhanced Button Controls

  • Short Press - Navigate between screens and select menu items
  • Long Press - Access menu navigation and scroll through options
  • Smart Navigation - Intuitive menu flow with visual selection indicators (> arrows)
  • Simplified Interface - Streamlined 4-item main menu for faster access to core functions

🎯 The Power of Three Waypoints: Why Multiple Navigation Points Save Lives

🆘 Real-World Emergency Scenarios

The HTIT-Tracker's three waypoint system isn't just a convenience feature—it's a life-saving navigation strategy that addresses complex emergency situations where a single "home" point isn't enough.

🏔️ Scenario 1: Multi-Day Hiking Emergency

Day 1: Set WP1 at TRAILHEAD (your car) Day 2: Set WP2 at BASE CAMP (water source, shelter) Day 3: Set WP3 at EMERGENCY CACHE (food, first aid) Emergency: Lost in bad weather, visibility near zero → Navigate to closest waypoint for immediate safety → Use other waypoints to plan evacuation route → Multiple escape routes prevent being trapped 

�️ Scenario 2: Search & Rescue Operations

WP1: INCIDENT COMMAND POST (coordination center) WP2: LAST KNOWN POSITION (search starting point) WP3: EXTRACTION POINT (helicopter landing zone) Lost team member scenario: → Navigate to Last Known Position to begin search → When found, navigate to Extraction Point for evacuation → Return to Command Post for debriefing 

🚗 Scenario 3: Remote Work Site Emergency

WP1: MAIN CAMP (communications, supplies) WP2: VEHICLE STAGING AREA (evacuation transport) WP3: SAFETY SHELTER (emergency supplies, radio) Medical emergency: → Navigate to Vehicle Staging for rapid evacuation → If vehicles unavailable, navigate to Safety Shelter → If shelter compromised, navigate to Main Camp 

🧭 Strategic Navigation Advantages

🔀 Multiple Escape Routes

  • No Single Point of Failure - If one waypoint becomes inaccessible, navigate to alternatives
  • Weather Adaptability - Choose safest route based on current conditions
  • Distance Optimization - Always navigate to the closest safe point
  • Terrain Avoidance - Route around dangerous areas using alternate waypoints

📍 Tactical Waypoint Placement

  • WP1 (Primary Exit) - Your main return point (car, base camp, extraction)
  • WP2 (Safety Cache) - Emergency supplies, shelter, or communication point
  • WP3 (Alternative Route) - Backup exit or strategic resource location

💡 Professional Use Cases

Search & Rescue Teams:

  • Command Post, Last Known Position, Evacuation Zone
  • Coordinate team movements with multiple reference points
  • Establish communication relay points and supply caches

Military & Law Enforcement:

  • Base, Objective, Extraction Point
  • Multiple rally points for team coordination
  • Backup positions for tactical flexibility

Scientific Expeditions:

  • Base Camp, Research Site, Equipment Cache
  • Data collection points with known coordinates
  • Emergency supply locations for extended missions

Industrial Operations:

  • Work Site, Safety Station, Equipment Depot
  • Emergency evacuation routes from remote locations
  • Resource coordination for large project areas

💾 Persistent Storage: Your Waypoints Never Disappear

EEPROM Memory Protection:

  • Power Loss Safe - Waypoints survive complete battery depletion
  • Reboot Persistent - Coordinates remain after device restart
  • Long-Term Stable - Memory retains data for years without power
  • Corruption Resistant - Built-in validation prevents data loss

Emergency Reliability:

Device dies overnight → Recharge battery → Power on → ALL WAYPOINTS RESTORED Battery completely drained → Replace battery → Turn on → WAYPOINTS STILL THERE Drop device in water → Dry out electronics → Boot up → NAVIGATION DATA INTACT 

🔄 Smart Waypoint Management

Visual Status System

  • "Nav WP1" - Waypoint is set and ready for navigation
  • "Set WP1 X" - Waypoint is empty (X indicator shows unset status)
  • Auto-Detection - System automatically shows which waypoints are available

Intelligent Menu Flow

  • Unset Waypoint - Selecting automatically opens Set Waypoint screen
  • Set Waypoint - Selecting opens dedicated navigation screen
  • Quick Access - Navigate to any set waypoint in just 3 button presses

Professional Display

  • WP1 Navigation: Shows "WP1: NE | Dist: 2.3km | Spd: 3.1km/h"
  • Clear Identification - Always know which waypoint you're navigating to
  • Real-Time Updates - Direction and distance update as you move

🎯 Beginner-Friendly Strategy Guide

🥾 For Hikers: The "Triangle of Safety"

1. Set WP1 at PARKING LOT (your car) - Primary exit 2. Set WP2 at TRAIL JUNCTION - Known landmark for reorientation 3. Set WP3 at WATER SOURCE - Emergency supply point 

🏕️ For Campers: The "Resource Network"

1. Set WP1 at CAMP ENTRANCE - Main access road 2. Set WP2 at WATER PUMP - Essential resource location 3. Set WP3 at RANGER STATION - Emergency assistance 

🚗 For Off-Roaders: The "Recovery Chain"

1. Set WP1 at PAVEMENT - Last known good road 2. Set WP2 at FUEL CACHE - Backup supplies 3. Set WP3 at HIGH GROUND - Cell service/GPS clarity 

This three waypoint system transforms your HTIT-Tracker from a simple "find home" device into a professional-grade navigation tool that provides multiple safety options, strategic flexibility, and reliable backup routes in any emergency situation.

  • ⚡ GPS receivers use very little power (perfect for emergencies)

✨ Key Features

  • 🆘 Emergency Navigation: Life-saving backup when cell service fails but GPS still works
  • 🏠 Smart Home Navigation: Automatically establishes "home" when GPS fixes, then guides you back with cardinal directions
  • 🧭 8-Way Directional Guidance: Shows N, NE, E, SE, S, SW, W, NW directions to walk toward any waypoint
  • 📏 Professional Distance Tracking: Accurate Haversine calculations in meters or kilometers
  • 🚀 Real-Time Speed Monitoring: Live speed calculation in km/h for movement tracking
  • 🔋 Advanced Battery Management: Rolling average percentage with charging detection (20+ hour battery life)
  • Persistent Waypoint Storage: EEPROM memory preserves waypoints through power loss and resets
  • 📱 Streamlined Menu Interface: Professional 8-screen system with anti-flicker display
  • 🛰️ Multi-GNSS Support: GPS, GLONASS, BDS, Galileo, NAVIC, QZSS satellites for maximum reliability
  • Smart Power Modes: Full/Eco modes with intelligent screen refresh and battery optimization
  • 🌍 Complete Offline Operation: Works anywhere GPS satellites are visible, no internet required

🎯 The Revolutionary Three-Waypoint System

Why Three Waypoints Can Save Your Life

The HTIT-Tracker v1.2's three waypoint system transforms this device from a simple "find home" tool into a professional-grade tactical navigation system. Here's why having multiple waypoints is absolutely critical for safety:

🆘 Real Emergency Scenarios

Lost Hiker Scenario:

WP1: PARKING LOT (your car) - 2.3km East WP2: TRAIL SHELTER (emergency supplies) - 0.8km North WP3: RANGER STATION (help & communication) - 1.5km South Weather turns bad, visibility drops to zero: → Navigate to WP2 (closest) for immediate shelter → Wait out storm, then navigate to WP3 for help → Finally return to WP1 when conditions improve 

Search & Rescue Operation:

WP1: COMMAND POST (coordination center) WP2: LAST KNOWN POSITION (search start point) WP3: EXTRACTION ZONE (helicopter landing) Missing person found injured: → Navigate to WP3 for fastest medical evacuation → If weather prevents helicopter, navigate to WP1 for vehicle transport → Use WP2 as reference point for search coordination 

🔀 Strategic Advantages

Multiple Escape Routes:

  • Primary route blocked? Navigate to alternative waypoint
  • Distance optimization: Always head to the closest safe point
  • Weather adaptation: Choose route based on current conditions
  • Resource management: Direct access to supplies, water, or communication

Professional Flexibility:

  • Military/LEO: Base, Objective, Extraction Point coordination
  • Scientific Teams: Camp, Research Site, Equipment Cache management
  • Industrial Work: Office, Worksite, Safety Station navigation
  • Emergency Response: Multiple rally points and resource locations

🎯 Who Is This For?

This project is perfect for anyone who ventures into remote areas where cell service is unreliable or non-existent:

🏔️ Outdoor Enthusiasts & Safety-Conscious Adventurers

  • Hikers & Backpackers: Never lose your way back to the trailhead
  • Hunters & Fishermen: Find your truck in dense forests or remote lakes
  • Campers: Navigate back to base camp in any weather conditions
  • Rock Climbers: Emergency backup navigation for remote climbing areas
  • Off-Road Drivers: Return to known safe locations when trails get confusing

👷 Professional & Work Applications

  • Survey Teams: Navigate back to vehicles in remote job sites
  • Search & Rescue: Backup navigation tool for emergency responders
  • Geologists & Field Scientists: Return to equipment caches and base camps
  • Agricultural Workers: Navigate large properties and remote fields
  • Construction Workers: Find way back in complex industrial sites

🎓 Educational & Learning Applications

  • STEM Students: Learn GPS/GNSS navigation concepts
  • Electronics Beginners: Understand embedded programming with ESP32
  • Amateur Radio Operators: Build practical emergency communication devices
  • Maker Community: Explore battery management and sensor integration
  • Parents & Teachers: Educational tool for outdoor safety and technology

🛡️ Emergency Preparedness

  • Emergency Responders: Backup navigation when primary systems fail
  • Disaster Preparedness: Essential tool for evacuation and emergency situations
  • Remote Workers: Safety backup for oil rigs, mining, forestry operations
  • Military & Law Enforcement: Training and backup navigation systems

No prior experience required! This README will guide you through everything step-by-step, from basic electronics to advanced GPS mathematics.


📦 What's In The Box

When you purchase the Heltec ESP32 LoRa Meshtastic Asset Wireless Tracker, you get:

  • 🖥️ Heltec ESP32-S3 Wireless Tracker Board (Main device)
  • 📡 902-928MHz LoRa Antenna (Glue rod antenna)
  • 🔌 SH1.25×2 Battery Connector (For 3.7V lithium batteries)
  • 📚 Documentation Links (Hardware resources and pin maps)

🔧 Additional Components You'll Need

Component Purpose Where to Buy Price Range
3.7V 3000mAh Lithium Battery Power the device Amazon, electronics stores $10-20
USB-C Cable Programming & charging Any electronics store $5-10
Micro SD Card (Optional) Data logging Amazon, electronics stores $5-15

💻 Setting Up Your Development Environment

Step 1: Install VS Code

  1. Download Visual Studio Code from https://code.visualstudio.com/
  2. Install for your operating system (Windows, macOS, or Linux)
  3. Launch VS Code

Step 2: Install PlatformIO Extension

  1. Open VS Code
  2. Click the Extensions icon (📦) in the left sidebar
  3. Search for "PlatformIO IDE"
  4. Click Install on the official PlatformIO extension by PlatformIO
  5. Wait for installation to complete (may take a few minutes)
  6. Restart VS Code when prompted

Step 3: Install Git (If Not Already Installed)

  1. Download Git from https://git-scm.com/downloads
  2. Install with default options
  3. Restart your computer if prompted

Step 4: Clone This Repository

  1. Open VS Code
  2. Press Ctrl+Shift+P (Windows/Linux) or Cmd+Shift+P (macOS)
  3. Type "Git: Clone" and select it
  4. Enter this repository URL: https://github.com/darkmatter2222/HTIT-Tracker-Heltec-v1.2-GPS-Reciever.git
  5. Choose a folder to save the project
  6. Click "Open" when prompted

🔌 Hardware Setup & Connection Guide

🖥️ Your HTIT-Tracker Board Overview

 ┌─────────────────────────────────────┐ │ Heltec ESP32-S3 Tracker │ │ │ 🔌 USB-C ──────┤● │ │ ┌─────────────┐ ┌──────────┐ │ 📺 LCD ────────┤ │ ST7735 │ │ UC6580 │────┤──── 📡 GPS Antenna │ │ Display │ │ GPS │ │ (Internal) 🔋 Battery ────┤● └─────────────┘ └──────────┘ │ │ │ 📻 LoRa ──────┤● ┌─────────────┐ │ │ │ ESP32-S3 │ [🔘 User Btn] │ 📶 WiFi/BT ───┤ │ Main Chip │ GPIO 0 │ │ └─────────────┘ │ └─────────────────────────────────────┘ 

🔋 Battery Connection

⚠️ IMPORTANT: Always connect the battery BEFORE connecting USB power!

  1. Locate the battery connector - Small white 2-pin connector labeled "BAT"
  2. Connect your 3.7V lithium battery:
    • Red wire → Positive (+)
    • Black wire → Negative (-)
  3. The connector only fits one way - don't force it!

💻 USB Connection

  1. Use a USB-C cable to connect the board to your computer
  2. The board should power on - you'll see the LCD screen light up
  3. Windows users: The driver should install automatically
  4. Check Device Manager (Windows) to see which COM port is assigned

🚀 Building and Uploading Your First Program

Step 1: Open the Project in PlatformIO

  1. In VS Code, click FileOpen Folder
  2. Navigate to your cloned repository folder
  3. Click Select Folder
  4. Wait for PlatformIO to initialize (you'll see progress in the bottom status bar)

Step 2: Configure Your COM Port

  1. Open the file platformio.ini
  2. Find the lines:
    upload_port = COM4 monitor_port = COM4
  3. Change COM4 to match your device's port:
    • Windows: Check Device Manager → Ports (COM & LPT)
    • macOS: Usually /dev/cu.usbserial-* or /dev/cu.SLAB_USBtoUART
    • Linux: Usually /dev/ttyUSB0 or /dev/ttyACM0

Step 3: Build the Project

  1. Click the PlatformIO icon (🐳) in the left sidebar
  2. Expand PROJECT TASKSheltec_wifi_lora_32_V3
  3. Click GeneralBuild
  4. Wait for compilation to complete (should see "SUCCESS" in terminal)

Step 4: Upload to Your Device

  1. Ensure your device is connected via USB
  2. Hold the BOOT button on the device (if required)
  3. Click GeneralUpload
  4. Wait for upload to complete
  5. Press the RESET button on the device to start the program

🎉 Success Indicators

  • LCD Display: Should show "HTIT-Tracker v1.2" startup message
  • Serial Monitor: Should show NMEA GPS data scrolling
  • Status Screen: Should display Fix status, satellite count, battery %, and accuracy

📱 Understanding the Complete Display Interface

Your HTIT-Tracker now has 10 different screens with an intuitive menu navigation system:

🎮 Button Controls & Screen Timeout

  • Short Press: Navigate between screens and select menu items
  • Long Press: Access menu navigation and scroll through options
  • Screen Timeout: 30 seconds of inactivity returns to Status screen (except Status/Navigation screens)
  • Activity Reset: Any button press resets the timeout timer

🏠 Screen 1: Status Screen (Default)

┌─────────────────┐ │ Fix: Yes │ ← GPS Fix Status (Yes/No) │ Sats: 12 │ ← Total Satellites in View │ Batt: 85%+ │ ← Battery % (+ means charging) │ Acc: 2.5m │ ← GPS Accuracy in meters └─────────────────┘ 

Navigation: Short press → Navigation Screen | Long press → Main Menu

🧭 Screen 2: Navigation Screen

┌─────────────────┐ │ Dir: NE │ ← Direction to walk toward home │ Home: 245m │ ← Distance to home location │ Spd: 4.2km/h │ ← Current walking/travel speed │ Batt: 85% │ ← Battery percentage └─────────────────┘ 

Navigation: Short press → Main Menu | Long press → Main Menu

📋 Screen 3: Main Menu (Simplified)

┌─────────────────┐ │ MAIN MENU │ │ > Status │ ← Jump to Status Screen │ Waypoints │ ← Access waypoint management │ System Info │ ← Device information │ Power Menu │ ← Battery optimization └─────────────────┘ 

Navigation: Short press → Select item | Long press → Scroll through options Streamlined Design: Reduced from 5 to 4 items for faster access to core functions Smart Interface: All waypoint navigation accessed through Waypoints submenu

📍 Screen 4: Waypoint Menu

┌─────────────────┐ │ WAYPOINTS │ │ > Nav WP1 │ ← Navigate to WP1 (if set) │ Set WP2 X │ ← Set Waypoint 2 (X = not set) │ Set WP3 X │ ← Set Waypoint 3 (X = not set) │ Back │ ← Return to Main Menu └─────────────────┘ 

Navigation: Short press → Select | Long press → Scroll options Visual Status Indicators:

  • "Nav WPx" = Waypoint is set and ready for navigation
  • "Set WPx X" = Waypoint is not set (X indicator shows unset status) Smart Actions: Selecting unset waypoint automatically takes you to Set Waypoint screen

🎯 Screen 5-7: Waypoint Navigation (WP1, WP2, WP3)

┌─────────────────┐ │ WP1: NE │ ← Direction to Waypoint 1 │ Dist: 1.2km │ ← Distance to waypoint │ Spd: 4.2km/h │ ← Current speed │ Batt: 85% │ ← Battery status └─────────────────┘ 

Navigation: Short press → Back to menu | Long press → Status Screen

Screen 8: Set Waypoint

┌─────────────────┐ │ SET WP1 │ ← Shows which waypoint (WP1, WP2, or WP3) │ GPS Ready! │ ← GPS status │ Press to save │ ← Action instruction │ Long: go back │ ← Exit instruction └─────────────────┘ 

Navigation: Short press → Save waypoint | Long press → Back to menu Smart Display: Shows exactly which waypoint slot will be used

ℹ️ Screen 9: System Info

┌─────────────────┐ │ FW: v1.2 Enh │ ← Firmware version │ Sats: 12 │ ← Satellite count │ Batt: 85%+ │ ← Battery with charging │ Mode: Full │ ← Current power mode └─────────────────┘ 

Navigation: Short press → Back to menu | Long press → Status Screen

Screen 10: Power Menu

┌─────────────────┐ │ POWER MENU │ │ > Full Power │ ← Maximum performance │ Eco Mode │ ← Battery optimization │ Back │ ← Return to Main Menu └─────────────────┘ 

Navigation: Short press → Select mode | Long press → Scroll options


Screen Timeout Behavior

Timeout Settings

Screen Type Timeout Behavior
Status Screen None Always available (no timeout)
Navigation Screen None Always available (no timeout)
Main Menu 30 seconds Returns to Status screen
Waypoint Menu 30 seconds Returns to Status screen
WP Navigation 30 seconds Returns to Status screen
Set Waypoint 30 seconds Returns to Status screen
System Info 30 seconds Returns to Status screen
Power Menu 30 seconds Returns to Status screen

🔄 Timeout Logic

  • Purpose: Prevents accidentally staying in menus and draining battery
  • Timer Reset: Any button press (short or long) resets the 30-second timer
  • Safe Screens: Status and Navigation screens never timeout (always accessible)
  • Menu Protection: All menu screens timeout to prevent getting "stuck" in menus
  • Visual Feedback: Serial monitor shows "Screen timeout - returning to Status" message
  • Emergency Access: Ensures you can always return to essential navigation functions

🧭 Complete Navigation Flow

Quick Access Pattern

Status Screen ──short──> Navigation Screen ──short──> Main Menu ↑ │ └──────────────── long press from anywhere ────────────┘ 

Menu Navigation Pattern

Main Menu (4 items - streamlined interface) ├── Status ──short──> Status Screen ├── Waypoints ──short──> Waypoint Menu │ ├── Nav WP1 ──short──> WP1 Navigation │ ├── Nav WP2 ──short──> WP2 Navigation │ ├── Set New ──short──> Set Waypoint Screen │ └── Back ──short──> Main Menu ├── System Info ──short──> System Info Screen └── Power Menu ──short──> Power Menu ├── Full Power ──short──> Set mode & return ├── Eco Mode ──short──> Set mode & return └── Back ──short──> Main Menu 

Button Behavior Guide

Current Screen Short Press Long Press
Status → Navigation → Main Menu
Navigation → Main Menu → Main Menu
Main Menu Select item Scroll options
Waypoint Menu Select item Scroll options
WP Navigation → Back to menu → Status
Set Waypoint Save (if GPS ready) → Back to menu
System Info → Back to menu → Status
Power Menu Select mode Scroll options

Smart Features

  • Menu Memory: Returns to the same menu position when navigating back
  • Auto-Exit: Inactive menus timeout and return to Status screen
  • GPS Awareness: Set Waypoint only works when GPS has a fix
  • Visual Feedback: Selected menu items are marked with ">"
  • Power Saving: Menu timeouts respect current power mode settings

🚀 Quick Start Guide for Enhanced Menu System

🚀 Quick Start Guide for Enhanced v1.2 System

🎯 Basic Operation (First Time Users)

  1. Power On → Device starts on Status Screen showing GPS fix, satellites, battery, accuracy
  2. Short Press → Switch to Navigation Screen showing direction/distance to home
  3. Short Press Again → Enter simplified Main Menu with 4 core options
  4. Long Press → Scroll through menu options (watch for ">" selection indicator)
  5. Short Press → Select highlighted option

📍 Setting Your First Waypoint (Revolutionary 3-Waypoint System)

  1. Navigate to: Main Menu → Waypoints → Set New (shows X if unset)
  2. GPS Status Check → Screen shows "GPS Ready!" when fix is acquired
  3. Short Press → Save waypoint as WP1 (automatically stores to EEPROM)
  4. Persistent Storage → Waypoint permanently saved, survives power loss
  5. Visual Confirmation → Menu now shows "Nav WP1" (no X) indicating waypoint is ready

🎯 Advanced Three-Waypoint Strategy (Life-Saving Features)

Strategic Waypoint Placement: WP1 = PRIMARY EXIT (car, base camp, main return point) WP2 = SAFETY CACHE (emergency supplies, shelter, water) WP3 = ALTERNATIVE ROUTE (backup exit, communication point) Emergency Navigation: - Lost and need immediate shelter → Navigate to WP2 (Safety Cache) - Primary route blocked → Navigate to WP3 (Alternative Route) - Mission complete → Navigate to WP1 (Primary Exit) 

💾 Persistent Storage Features (Never Lose Your Waypoints)

  • EEPROM Memory: All waypoints saved permanently to non-volatile memory
  • Power Loss Safe: Waypoints survive complete battery depletion and device reset
  • Boot Persistent: Coordinates automatically restored on startup
  • Corruption Resistant: Built-in validation prevents data loss
  • Professional Reliability: Years of storage without power required

🆘 Emergency Quick Access (Critical Survival Features)

  • Any Screen + Long Press → Instantly return to Status Screen for GPS info
  • Status/Navigation Screens → No timeout, always accessible for emergency use
  • Menu Auto-Exit → Menus timeout after 30 seconds to preserve battery
  • Multiple Escape Routes → Three waypoints provide tactical navigation flexibility

⚡ Smart Power Management (Extended Battery Life)

  • Access: Main Menu → Power Menu
  • Full Power Mode: Maximum performance for active navigation (shorter battery)
  • Eco Mode: Extended battery life for long expeditions (2-3x longer operation)
  • Intelligent Refresh: Screen updates adapt to power mode for optimal efficiency

🎮 Pro Navigation Tips (Expert-Level Usage)

  • Menu Navigation: Long press scrolls, short press selects (intuitive flow)
  • Quick Exit Strategy: Long press from any screen returns to Status for emergency
  • Waypoint Status: Look for "X" indicators to see which waypoints need setting
  • GPS Readiness: Only set waypoints when "GPS Ready!" is displayed
  • Strategic Planning: Use all 3 waypoints for comprehensive navigation coverage

🔄 Streamlined Interface Benefits

  • 4-Item Main Menu: Reduced from 5 items for faster navigation
  • Direct Access: Status screen reachable from main menu in one press
  • Waypoint Focus: All navigation features centralized in Waypoints submenu
  • Professional Flow: Logical progression from status → navigation → waypoints

🛰️ How GPS Navigation Works

🏠 Home Establishment

Power On → Wait for GPS Fix → First Fix = HOME LOCATION ↓ 📍 Home Coordinates Saved ↓ 🧭 Navigation Mode Activated 

🧭 Direction Calculation

The HTIT-Tracker uses 8 cardinal directions for navigation:

 N (0°) ↑ NW ↖ | ↗ NE | W ←─────●─────→ E | SW ↙ | ↘ SE ↓ S (180°) 

Direction Ranges:

  • N (North): 337.5° - 22.5°
  • NE (Northeast): 22.5° - 67.5°
  • E (East): 67.5° - 112.5°
  • SE (Southeast): 112.5° - 157.5°
  • S (South): 157.5° - 202.5°
  • SW (Southwest): 202.5° - 247.5°
  • W (West): 247.5° - 292.5°
  • NW (Northwest): 292.5° - 337.5°

🧮 Deep Dive: The Mathematics Behind Navigation

📐 Haversine Formula for Distance Calculation

The HTIT-Tracker uses the Haversine formula to calculate the distance between your current position and home:

// Convert degrees to radians double lat1 = currentLat * PI / 180.0; double lon1 = currentLon * PI / 180.0; double lat2 = homeLat * PI / 180.0; double lon2 = homeLon * PI / 180.0; // Differences double dLat = lat2 - lat1; double dLon = lon2 - lon1; // Haversine formula double a = sin(dLat/2) * sin(dLat/2) + cos(lat1) * cos(lat2) * sin(dLon/2) * sin(dLon/2); double c = 2 * atan2(sqrt(a), sqrt(1-a)); // Distance in meters (Earth's radius = 6,371,000 meters) double distance = 6371000.0 * c;

Why Haversine?

  • Accounts for Earth's curvature
  • Accurate for distances up to several kilometers
  • Computationally efficient for embedded systems

🧭 Bearing Calculation

To determine which direction to walk, the tracker calculates the bearing (angle) from your current position to home:

// Calculate bearing from current position to home double y = sin(dLon) * cos(lat2); double x = cos(lat1) * sin(lat2) - sin(lat1) * cos(lat2) * cos(dLon); double bearing = atan2(y, x) * 180.0 / PI; bearing = fmod(bearing + 360.0, 360.0); // Normalize to 0-360°

Bearing Examples:

  • = North (walk straight ahead if facing north)
  • 90° = East (turn right and walk)
  • 180° = South (turn around)
  • 270° = West (turn left and walk)

🏃 Speed Calculation

Speed is calculated using position changes over time:

// Calculate distance moved between two GPS readings double distance = calculateDistanceUsingHaversine(lastPosition, currentPosition); // Time difference in hours double timeHours = (currentTime - lastTime) / 3600000.0; // Speed in km/h double speed = (distance / 1000.0) / timeHours;

Speed Update Interval: Every 2 seconds for stable readings


🔋 Advanced Battery Management System

📊 Lithium Battery Discharge Curve

The HTIT-Tracker uses a scientifically accurate discharge curve for 3.7V lithium-ion batteries:

Voltage Range Battery % Characteristics 4.20V - 4.10V 95-100% Fully charged, rapid voltage drop 4.10V - 4.00V 85-95% Normal discharge, stable voltage 4.00V - 3.90V 70-85% Linear discharge region 3.90V - 3.80V 50-70% Continued linear discharge 3.80V - 3.70V 30-50% Noticeable voltage drop 3.70V - 3.60V 15-30% Rapid voltage decline 3.60V - 3.50V 5-15% Critical low battery 3.50V - 3.30V 0-5% Emergency reserve Below 3.30V 0% Battery protection cutoff 

⚡ Voltage Divider Circuit

Your tracker uses a voltage divider to safely measure battery voltage:

3.7V Battery ──[100Ω]──●──[390Ω]── GND │ ADC Input (GPIO A0) 

Calculation:

  • Voltage Divider Ratio: 100Ω/(100Ω + 390Ω) = 100/490 = 0.204
  • ADC Reading: 0.204 × Battery Voltage
  • Reverse Calculation: Battery Voltage = ADC Reading × 4.90

🔄 Rolling Average Algorithm

To provide stable battery readings, the tracker uses a 5-point rolling average:

float batteryReadings[5]; // Circular buffer int batteryIndex = 0; // Current position // Add new reading batteryReadings[batteryIndex] = newReading; batteryIndex = (batteryIndex + 1) % 5; // Calculate average float sum = 0; for (int i = 0; i < 5; i++) { sum += batteryReadings[i]; } float averagePercent = sum / 5.0;

🔌 Charging Detection

The system detects charging by monitoring voltage trends:

// Check every 5 seconds if (voltage > 4.0V && voltageChange > 0.02V) { isCharging = true; // Voltage rising above 4V } else if (voltage < 4.3V && voltageChange < -0.01V) { isCharging = false; // Voltage falling below max charge }

Charging Indicators:

  • Status Screen: "Batt: 85%+" (+ symbol indicates charging)
  • Voltage Thresholds: Charging detected above 4.0V with rising trend

🛰️ GNSS (GPS) System Deep Dive

🌍 Multi-Constellation Support

Your HTIT-Tracker supports 6 different satellite systems:

System Country/Region Satellites Frequency
GPS USA 24-32 active L1 (1575.42 MHz)
GLONASS Russia 24 active L1 (1602 MHz)
BeiDou (BDS) China 35 active B1 (1561.10 MHz)
Galileo European Union 24+ active E1 (1575.42 MHz)
NAVIC India 7 regional L5 (1176.45 MHz)
QZSS Japan 4+ regional L1 (1575.42 MHz)

📡 NMEA Data Processing

The tracker processes NMEA 0183 sentences from the UC6580 GPS module:

🗺️ GGA Sentence (Position & Fix Quality)

$GNGGA,123456.00,3723.1234,N,12158.5678,W,2,12,0.95,123.4,M,45.6,M,1.2,0000*7F │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ Checksum │ │ │ │ │ │ │ │ │ │ │ │ └─ DGPS ID │ │ │ │ │ │ │ │ │ │ │ └─ Time since DGPS │ │ │ │ │ │ │ │ │ │ └─ Geoid height │ │ │ │ │ │ │ │ │ └─ Altitude above sea level │ │ │ │ │ │ │ │ └─ HDOP (accuracy indicator) │ │ │ │ │ │ │ └─ Satellites used │ │ │ │ │ │ └─ Fix quality (0=none, 1=GPS, 2=DGPS) │ │ │ │ │ └─ Longitude hemisphere (E/W) │ │ │ │ └─ Longitude (DDDMM.MMMM format) │ │ │ └─ Latitude hemisphere (N/S) │ │ └─ Latitude (DDMM.MMMM format) │ └─ UTC time (HHMMSS.SS) └─ Sentence type (GN = Multi-GNSS) 

🛰️ GSV Sentence (Satellites in View)

$GPGSV,3,1,12,03,45,123,42,06,78,234,45,09,12,045,0,12,23,156,38*7D │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ Checksum │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ SNR (signal strength) │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ Azimuth │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ Elevation │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ Satellite ID │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ SNR │ │ │ │ │ │ │ │ │ │ │ │ │ └─ Azimuth │ │ │ │ │ │ │ │ │ │ │ │ └─ Elevation │ │ │ │ │ │ │ │ │ │ │ └─ Satellite ID │ │ │ │ │ │ │ │ │ │ └─ SNR │ │ │ │ │ │ │ │ │ └─ Azimuth │ │ │ │ │ │ │ │ └─ Elevation │ │ │ │ │ │ │ └─ Satellite ID │ │ │ │ │ │ └─ SNR (Signal-to-Noise Ratio) │ │ │ │ │ └─ Azimuth (0-359°) │ │ │ │ └─ Elevation (0-90°) │ │ │ │─ Satellite ID │ │ │ └─ Total satellites in view │ │ └─ Current sentence number │ └─ Total GSV sentences └─ Constellation (GP=GPS, GL=GLONASS, GB=BeiDou, GA=Galileo, GQ=QZSS) 

🎯 HDOP and Accuracy

HDOP (Horizontal Dilution of Precision) indicates GPS accuracy:

HDOP Value Accuracy Description
< 1 Excellent ± 1-3 meters
1-2 Good ± 3-5 meters
2-5 Moderate ± 5-10 meters
5-10 Fair ± 10-20 meters
> 10 Poor > 20 meters

Displayed Accuracy = HDOP × 5 meters (conservative estimate)


🔧 Troubleshooting Guide

🚨 Common Issues and Solutions

Issue: "No GPS Fix"

Symptoms: Display shows "Fix: No", Direction shows "O"

Solutions:

  1. Move outdoors - GPS needs clear sky view
  2. Wait 2-5 minutes - Cold start takes time
  3. Check antenna connection - Ensure LoRa antenna is connected
  4. Restart device - Press RESET button
  5. Check satellite count - Should be > 4 for a fix

Issue: "COM Port Not Found"

Symptoms: Upload fails, "Port COM4 not found"

Solutions:

  1. Check USB connection - Try different cable/port
  2. Install drivers - Download CP210x drivers from Silicon Labs
  3. Update platformio.ini - Change COM port number
  4. Check Device Manager - Verify device is recognized

Issue: "Battery Shows 0%"

Symptoms: Battery always shows 0% or invalid reading

Solutions:

  1. Check battery connection - Ensure proper polarity
  2. Measure battery voltage - Should be 3.3-4.2V
  3. Check battery connector - Clean contacts
  4. Replace battery - May be over-discharged

Issue: "Display Flickering"

Symptoms: Screen flashes black between updates

Solutions:

  1. Update firmware - Ensure you have latest code
  2. Check connections - Verify all pins are connected
  3. Power supply issue - Use quality USB cable
  4. Reset device - Hold RESET for 3 seconds

Issue: "Wrong Direction Shown"

Symptoms: Arrow points wrong way, distance incorrect

Solutions:

  1. Establish new home - Restart device at desired home location
  2. Wait for GPS fix - Ensure "Fix: Yes" before moving
  3. Check coordinates - Look at serial monitor for valid lat/lon
  4. Calibrate compass - Move in figure-8 pattern

🔍 Debug Mode

Enable detailed debugging by monitoring the Serial output:

  1. Open PlatformIOheltec_wifi_lora_32_V3Monitor
  2. Set baud rate to 115200
  3. Watch for NMEA sentences and debug messages

Expected Output:

HTIT-Tracker v1.2: 5-Row Display with Home Navigation → VGNSS_CTRL (GPIO 3) = LOW (GNSS + TFT powered) → BL_CTRL (GPIO 21) = HIGH (Backlight ON) $GNGGA,123456.00,3723.1234,N,12158.5678,W,1,8,1.2,123.4,M,45.6,M,,*7F Raw ADC = 2048 V_ADC = 1.650 V VBAT = 8.09 V VBAT_cal = 8.34 V Batt% = 85 % → HOME ESTABLISHED! Home coordinates: 37.385390, -121.975130 

🎓 Understanding the Code Structure

📂 Project Organization

HTIT-Tracker-Heltec-v1.2-GPS-Reciever/ ├── 📁 src/ │ ├── 📄 main.cpp ← Arduino entry point (setup/loop) │ └── 📄 main.h ← Complete tracker implementation ├── 📄 platformio.ini ← Build configuration & dependencies ├── 📄 README.md ← This comprehensive guide └── 📄 LICENSE ← MIT License 

🏗️ Code Architecture

🎯 Main Class: HTITTracker

class HTITTracker { private: // Display management HT_st7735 st7735; // LCD display driver // GPS/GNSS data int gpsCount, glonassCount, beidouCount; // Satellite counts by constellation bool haveFix; // GPS fix status float lastHDOP; // GPS accuracy indicator // Navigation system bool homeEstablished; // Home location set flag double homeLat, homeLon; // Home coordinates double currentLat, currentLon; // Current position // User interface bool currentScreen; // Screen toggle (Status/Navigation) char prevFixBuf[16], prevSatBuf[16]; // Anti-flicker buffers // Battery management float batteryReadings[5]; // Rolling average buffer bool isCharging; // Charging detection // Core methods void processNMEALine(const char* line); // Parse GPS data float calculateBearingToHome(); // Direction calculation float calculateDistanceToHome(); // Distance calculation void updateLCD(int pct_cal); // Display management public: void begin(); // Initialize hardware void update(); // Main loop processing };

🔄 Program Flow

Power On ↓ Initialize Hardware • Configure GPIO pins • Setup GPS serial port • Initialize LCD display • Enable battery monitoring ↓ Main Loop (Continuous) ┌─────────────────────────────────────┐ │ 1. Check button press │ │ 2. Read GPS NMEA data │ │ 3. Process satellite information │ │ 4. Update position & navigation │ │ 5. Calculate battery status │ │ 6. Update display (every 1 second) │ │ 7. Repeat │ └─────────────────────────────────────┘ 

🧩 Key Algorithms

📍 Coordinate Parsing

GPS coordinates come in DDMM.MMMM format and need conversion to decimal degrees:

// Input: "3723.1234" (37°23.1234' North) double latDeg = (latStr[0] - '0') * 10 + (latStr[1] - '0'); // 37° double latMin = atof(latStr + 2); // 23.1234' double lat = latDeg + latMin / 60.0; // 37.385390°

🎯 Cardinal Direction Mapping

Convert bearing (0-360°) to 8 cardinal directions:

const char* getCardinalDirection(float bearing) { if (bearing >= 337.5 || bearing < 22.5) return "N"; else if (bearing >= 22.5 && bearing < 67.5) return "NE"; else if (bearing >= 67.5 && bearing < 112.5) return "E"; // ... etc for all 8 directions }

🔄 Anti-Flicker Display System

Only update changed display elements:

// Generate new display string sprintf(fixBuf, "Fix: %s", haveFix ? "Yes" : "No"); // Only update if changed if (strcmp(fixBuf, prevFixBuf) != 0) { st7735.st7735_write_str(0, 0, String(fixBuf)); strcpy(prevFixBuf, fixBuf); // Save for next comparison }

📊 Performance Specifications

⚡ Power Consumption

Mode Current Draw Battery Life (3000mAh)
Full Operation ~120-150mA 20-25 hours
GPS Searching ~180-200mA 15-17 hours
Sleep Mode ~5-10mA 300-600 hours
Display Off ~80-100mA 30-37 hours

🎯 GPS Performance

Metric Specification
Cold Start Time 30-60 seconds
Hot Start Time 5-15 seconds
Position Accuracy 2-5 meters (HDOP < 2)
Update Rate 1 Hz (1 reading/second)
Satellite Tracking Up to 32 simultaneously
Maximum Altitude 18,000 meters
Maximum Velocity 515 m/s

📱 Display Specifications

Feature Value
Screen Size 0.96 inch
Resolution 160×80 pixels
Colors 65K color ST7735
Refresh Rate 1 Hz (anti-flicker)
Viewing Angle 160°
Backlight Adjustable LED

🎨 Customization Options

🎯 Modifying Direction Granularity

Want 16 directions instead of 8? Modify the getCardinalDirection() function:

const char* getCardinalDirection(float bearing) { const char* directions16[] = { "N", "NNE", "NE", "ENE", "E", "ESE", "SE", "SSE", "S", "SSW", "SW", "WSW", "W", "WNW", "NW", "NNW" }; int index = (int)((bearing + 11.25) / 22.5) % 16; return directions16[index]; }

🔋 Adjusting Battery Curve

For different battery types, modify the voltageToPercent() function:

// Example: 18650 LiFePO4 battery (3.2V nominal) if (vb >= 3.60f) return 100; // Fully charged else if (vb >= 3.40f) return 80; // Good level else if (vb >= 3.20f) return 50; // Medium level else if (vb >= 3.00f) return 20; // Low level else return 0; // Critical

📱 Adding New Display Screens

Create a third screen by modifying the button handler:

void checkButton() { if (buttonPressed) { screenMode = (screenMode + 1) % 3; // 3 screens instead of 2 switch(screenMode) { case 0: updateStatusScreen(); break; case 1: updateNavigationScreen(); break; case 2: updateSatelliteScreen(); break; // New screen! } } }

🛰️ Adding Data Logging

Log GPS tracks to SD card:

#include <SD.h> void logPosition() { File logFile = SD.open("/gps_log.csv", FILE_APPEND); if (logFile) { logFile.printf("%lu,%.6f,%.6f,%.1f,%.1f\n", millis(), currentLat, currentLon, currentSpeed, lastHDOP); logFile.close(); } }

🌟 Advanced Features & Future Enhancements

🚀 Planned Features

  • Waypoint Navigation: Save and navigate to multiple points
  • Track Recording: Log your path for later review
  • Geofencing: Alerts when leaving designated areas
  • LoRa Messaging: Send position to other trackers
  • Web Interface: Configure settings via WiFi
  • Voice Alerts: Audio navigation cues
  • Solar Charging: Extended battery life
  • Weather Data: Temperature/humidity sensors

🛠️ Hardware Expansion Options

📡 External GPS Antenna

For better reception in challenging environments:

HTIT-Tracker → U.FL Connector → External GPS Antenna 

🔊 Speaker Module

Add audio alerts via I2S interface:

// Connect MAX98357A I2S amplifier #define I2S_BCLK 26 #define I2S_LRC 25 #define I2S_DIN 22

🌡️ Environmental Sensors

Add BME280 for weather monitoring:

// I2C connection #define SDA_PIN 4 #define SCL_PIN 15 BME280 bme280;

📚 Learning Extensions

🎓 Beginner Projects

  1. LED Status Indicators: Add colored LEDs for different states
  2. Buzzer Alerts: Sound alerts for low battery or navigation
  3. Button Debouncing: Improve button responsiveness
  4. Custom Boot Screen: Personalize the startup display

🏆 Intermediate Projects

  1. Multiple Home Points: Save different locations
  2. Speed Alerts: Warnings for exceeding speed limits
  3. Time-Based Tracking: Log position every N minutes
  4. Battery Optimization: Sleep modes and wake-on-motion

🎖️ Advanced Projects

  1. LoRa Mesh Network: Multi-tracker communication
  2. Web Dashboard: Real-time tracking via WiFi
  3. Machine Learning: Predictive battery life
  4. Integration APIs: Connect to mapping services

🤝 Contributing to the Project

🐛 Bug Reports

Found an issue? Help us improve!

  1. Check existing issues on GitHub
  2. Create detailed bug report with:
    • Device model and firmware version
    • Steps to reproduce the problem
    • Expected vs actual behavior
    • Serial monitor output (if applicable)
    • Photos/videos of the issue

💡 Feature Requests

Have a great idea? We'd love to hear it!

  1. Search existing requests to avoid duplicates
  2. Describe the feature clearly:
    • What problem does it solve?
    • How would it work?
    • Who would benefit?
    • Any implementation ideas?

🛠️ Code Contributions

Want to contribute code? Awesome!

  1. Fork the repository on GitHub
  2. Create a feature branch: git checkout -b feature/amazing-feature
  3. Follow coding standards:
    • Use descriptive variable names
    • Add comments for complex logic
    • Test thoroughly before submitting
  4. Submit a pull request with:
    • Clear description of changes
    • Testing results
    • Screenshots/videos (if UI changes)

📝 Documentation Improvements

Help make this README even better!

  • Fix typos or unclear explanations
  • Add missing information
  • Improve diagrams and examples
  • Translate to other languages

📖 Additional Resources

📚 Learning Materials

ESP32 Development

GPS/GNSS Technology

Electronics Fundamentals

🛍️ Where to Buy Components

Online Retailers

  • Amazon: Fast shipping, good return policy
  • DigiKey: Professional components, technical support
  • SparkFun: Educational focus, great tutorials
  • Adafruit: Beginner-friendly, excellent documentation
  • AliExpress: Budget options, longer shipping

Local Options

  • Electronics stores: Immediate availability
  • University bookstores: Student discounts
  • Maker spaces: Community resources and help
  • Ham radio clubs: Technical expertise

🔧 Useful Tools

Software Tools

  • KiCad: PCB design (free)
  • Fritzing: Circuit diagrams (beginner-friendly)
  • PUTTY: Serial terminal (Windows)
  • CoolTerm: Serial terminal (macOS)
  • GPS Essentials: Mobile GPS testing app

Hardware Tools

  • Multimeter: Essential for debugging
  • Oscilloscope: Advanced signal analysis
  • Logic Analyzer: Digital protocol debugging
  • Soldering Iron: For permanent connections
  • Breadboard: Prototyping circuits

🚨 Safety Guidelines

⚡ Electrical Safety

  • Never short circuit the battery terminals
  • Use proper polarity when connecting batteries
  • Don't exceed voltage ratings of components
  • Disconnect power before making hardware changes
  • Use ESD protection when handling electronics

🔋 Battery Safety

  • Never overcharge lithium batteries (>4.2V)
  • Don't deep discharge below 3.0V
  • Monitor temperature during charging
  • Use proper chargers designed for lithium batteries
  • Store safely in fireproof containers when not in use

🌍 Environmental Considerations

  • Dispose of batteries properly at recycling centers
  • Follow local regulations for electronic waste
  • Consider solar charging for extended outdoor use
  • Minimize power consumption to extend battery life

📱 Usage Safety

⚠️ CRITICAL SAFETY NOTICE: This device is a BACKUP navigation tool, not a replacement for proper safety practices.

🧭 Navigation Safety

  • Never rely solely on GPS for navigation in life-threatening situations
  • Always carry backup navigation (paper map, compass, emergency whistle)
  • Tell someone your plans including route, destination, and expected return time
  • Check weather conditions and local advisories before outdoor activities
  • Bring emergency supplies (food, water, first aid, shelter, fire starter)
  • Learn to use traditional navigation (map and compass) as primary skills
  • Test the device in familiar areas before relying on it in remote locations

🆘 Emergency Preparedness

  • Carry emergency communication (satellite messenger, PLB, emergency radio)
  • Know your limitations - don't attempt beyond your skill level
  • Have evacuation plan - know multiple routes out of remote areas
  • Understand local hazards (weather, wildlife, terrain, flash floods)
  • Carry survival gear appropriate for the environment and season

🔋 Device Reliability

  • Monitor battery levels - carry backup power sources for extended trips
  • Protect from water - use waterproof case in wet conditions
  • Test GPS fix before departing civilization
  • Know the limitations - GPS can fail in deep canyons, dense forests, or severe weather

❓ Frequently Asked Questions

🤔 General Questions

Q: How accurate is the GPS navigation? A: Typically 2-5 meters under open sky conditions. Accuracy depends on satellite count, HDOP value, and environmental factors.

Q: How long does the battery last? A: With a 3000mAh battery, expect 20-25 hours of continuous operation, or up to 300+ hours in sleep mode.

Q: Can I use this indoors? A: GPS requires clear sky view. Indoor GPS doesn't work well. Consider adding WiFi-based positioning for indoor use.

Q: What's the maximum distance it can track? A: No practical limit. The device works anywhere GPS satellites are visible (worldwide coverage).

🔧 Technical Questions

Q: Why isn't my device showing up on the COM port? A: Install CP210x USB drivers from Silicon Labs, check USB cable quality, and try different USB ports.

Q: Can I modify the code for my specific needs? A: Absolutely! The code is open-source (MIT license). Modify, improve, and share your enhancements.

Q: How do I update the firmware? A: Simply rebuild and upload using PlatformIO. Your settings will be preserved (but home location will reset).

Q: Can I add more sensors? A: Yes! The ESP32 has many GPIO pins available. Add temperature, humidity, motion sensors, etc.

🔋 Battery Questions

Q: What type of battery should I use? A: 3.7V lithium-ion or lithium-polymer, 2000-5000mAh capacity. 18650 cells work great with proper connector.

Q: How do I know if the battery is charging? A: The display shows "Batt: XX%+" with a plus sign when charging is detected.

Q: My battery percentage seems wrong. What's the issue? A: Check battery connections, ensure proper voltage (3.3-4.2V), and verify the battery type matches the discharge curve.

🛰️ GPS Questions

Q: How long does it take to get a GPS fix? A: Cold start (first time): 30-60 seconds. Hot start (recently used): 5-15 seconds.

Q: Why do I see more satellites but no fix? A: You need at least 4 satellites with good signal strength. More satellites are visible than usable.

Q: The direction seems wrong. How do I fix it? A: Ensure you have a valid GPS fix ("Fix: Yes") and the home location was established correctly. Restart to reset home.


🏆 Success Stories & Community

🎉 User Projects

Life-Saving Wilderness Rescue

"Got lost during a backcountry hunting trip when weather moved in fast. No cell service, but the HTIT-Tracker guided me 3.2 km back to my truck in near-whiteout conditions. This device literally saved my life." - Mark T., Montana

Emergency Evacuation Success

"Working on a remote survey project when our main GPS failed. HTIT-Tracker helped our entire team navigate 8 km back to the road through dense forest. Company is now buying these for all field crews." - Rachel D., Field Engineer

Search & Rescue Training Tool

"We use modified HTIT-Trackers for training new SAR volunteers. Perfect for teaching navigation fundamentals and backup systems. Simple enough for beginners, reliable enough for real emergencies." - Captain Jim S., Mountain Rescue

Hiking Adventures

"Used the HTIT-Tracker on a 3-day backpacking trip in areas with zero cell coverage. Never got lost, and the battery lasted the whole journey! Peace of mind for my family back home." - Sarah M.

Geocaching Champion

"Modified the code to store multiple waypoints. Now I can navigate between geocache locations effortlessly, even in remote areas where phone GPS apps fail." - Mike R.

Educational Tool

"Teaching my kids about GPS and electronics while also teaching wilderness safety. This project is perfect - complex enough to be interesting, simple enough to understand, practical enough to save lives." - Jennifer L.

🌟 Community Enhancements

Solar Charging Mod User @TechHiker added a solar panel charging circuit, extending battery life indefinitely for long expeditions.

Voice Navigation Developer @AudioGPS integrated text-to-speech for audio directions, perfect for hands-free navigation.

LoRa Mesh Network Team @MeshExplorers created a mesh network allowing multiple trackers to share positions and messages.

📸 Share Your Build

We love seeing your projects! Share your HTIT-Tracker builds:

  • GitHub Discussions: Post photos and modifications
  • Reddit: r/ESP32, r/arduino, r/electronics
  • Twitter: Use hashtag #HTITTracker
  • YouTube: Create build/review videos

📜 License & Legal

📄 MIT License

This project is licensed under the MIT License - see the LICENSE file for details.

What this means:

  • Commercial use - Use in commercial projects
  • Modification - Change and improve the code
  • Distribution - Share with others
  • Private use - Use for personal projects
  • No warranty - Software provided "as-is"
  • Attribution required - Credit original authors

⚖️ Disclaimer

Important Legal Notice:

  • This device is for educational and recreational use only
  • Not certified for life-safety applications
  • No warranty for accuracy or reliability
  • Users assume all risks associated with use
  • Follow local regulations regarding GPS devices and radio transmission
  • Not a substitute for professional navigation equipment

🔒 Privacy & Data

Your Privacy Matters:

  • No data collection - All processing happens locally on device
  • No cloud connectivity - GPS data stays on your device
  • No tracking - We don't know where you go or what you do
  • Open source - Audit the code yourself for transparency

📞 Support & Contact

🆘 Getting Help

Stuck? Need help? Don't give up!

  1. Read this README thoroughly - Most questions are answered here
  2. Check GitHub Issues - Someone might have faced the same problem
  3. Use GitHub Discussions - Ask questions and share ideas
  4. Contact the community - Fellow makers are happy to help

📧 Contact Information

Project Maintainer: @darkmatter2222

Community Channels:

  • GitHub Discussions: For questions and feature requests
  • GitHub Issues: For bug reports and technical problems
  • Pull Requests: For code contributions and improvements

🌍 Global Community

International Support:

  • Documentation: Available in English (translations welcome!)
  • Time Zones: Global community provides 24/7 informal support
  • Languages: Code comments in English, variable names are descriptive
  • Standards: Uses international units (metric system)

🎯 Final Thoughts

Congratulations! You've just completed reading one of the most comprehensive README files ever created for a GPS tracking project. This guide contains everything you need to:

  • Understand the technology behind GPS navigation
  • Build your own GPS tracking device
  • Program ESP32 microcontrollers with VS Code
  • Customize the project for your specific needs
  • Troubleshoot common problems
  • Contribute to the open-source community

🚀 Your Journey Starts Now

Whether you're a complete beginner learning electronics, an experienced developer looking for a fun project, or an educator teaching GPS technology, this project offers something valuable for everyone.

Remember:

  • 🔬 Experiment freely - The worst that can happen is you learn something new
  • 🤝 Ask questions - The community is here to help
  • 📚 Share knowledge - Help others learn from your experience
  • 🌟 Have fun - This is about exploration and discovery!

🎁 Thank You

Thank you for choosing the HTIT-Tracker project. Your interest and contributions make the open-source community stronger and help spread knowledge around the world.

Happy tracking, and may your adventures always lead you home! 🏠🧭


Last updated: January 27, 2025
Documentation version: 2.0
Project version: v1.2

 ╔═══════════════════════════════════════╗ ║ 🌟 HTIT-Tracker - Always Find Home ║ ╚═══════════════════════════════════════╝ Built with ❤️ by the community github.com/darkmatter2222 

About

🛰️ Life-saving GPS tracker that works when cell service fails! Navigate back to "home" using ESP32 + GPS with simple cardinal directions. Perfect for hiking, hunting, emergencies. 20+ hour battery, dual screens, beginner-friendly guide.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages