# NEO-6M GPS Module Setup Guide ## Overview The NEO-6M is a cost-effective GPS module that provides reliable positioning data for the Aniker anchor alarm system. This guide covers the basic setup and configuration of the NEO-6M with the ESP32. ## Module Features - High sensitivity: -161 dBm tracking - Time-To-First-Fix: - Cold start: 27s - Hot start: 1s - Position accuracy: 2.5m CEP (Circular Error Probable) - Velocity accuracy: 0.1m/s - Operating temperature: -40°C to 85°C ## Physical Setup ### Power Requirements - Input voltage: 3.3V DC - Current consumption: ~45mA at continuous operation - Backup power (optional): 2.0V to 3.6V for faster satellite acquisition ### Pin Connections 1. **Power Pins** - VCC → ESP32 3.3V - GND → ESP32 GND 2. **Communication Pins** - TX → ESP32 GPIO16 (RX) - RX → ESP32 GPIO17 (TX) ### Antenna Considerations - The module comes with a ceramic patch antenna - Place the antenna facing upward with clear view of the sky - Avoid metal objects directly above the antenna - Keep antenna away from sources of interference ## Initial Testing ### LED Indicators - Power LED: Should be constantly on - Signal LED: Will blink when receiving data from satellites ### Expected Behavior 1. When first powered on, the module will begin searching for satellites 2. Initial position fix may take 30-60 seconds in optimal conditions 3. Signal LED will begin blinking once satellites are acquired ## Troubleshooting ### Common Issues 1. **No Power LED** - Check 3.3V power connection - Verify ground connection - Check for short circuits 2. **No Signal Reception** - Ensure clear view of sky - Check antenna connection - Move away from sources of interference - Try outdoor testing first 3. **Intermittent Data** - Check wire connections - Verify baud rate settings - Check for interference sources ### Testing Tips - First test outdoors with clear sky view - Allow up to 5 minutes for first fix - Use serial monitor to verify data reception - Verify correct UART configuration ## Software Configuration ### Default Settings - Baud rate: 9600bps - Update rate: 1Hz - NMEA messages: GGA, RMC, GSA, GSV ### Serial Communication ```rust // Example configuration in Rust let config = uart::config::Config { baudrate: 9600, data_bits: uart::config::DataBits::DataBits8, parity: uart::config::Parity::ParityNone, stop_bits: uart::config::StopBits::STOP1, }; ``` ## Performance Expectations ### Typical Performance - Time to first fix: 30-60 seconds - Position accuracy: 2.5m (open sky) - Update rate: 1Hz - Operating temperature: -40°C to 85°C ### Environmental Factors - Performance degrades under cloud cover - Indoor operation is not reliable - Metal objects can cause interference - Marine environment considerations: - Salt spray protection needed - Weatherproofing recommended - Stable mounting required ## Future Improvements - [ ] Add power saving modes - [ ] Implement faster update rates - [ ] Add configuration interface - [ ] Optimize for marine use