aniker/docs/NEO-6M_SETUP.md
Richard Patching 4a32d32080
Some checks failed
Continuous Integration / Rust Checks (map[args:--all -- --check --color always command:fmt]) (push) Has been cancelled
Continuous Integration / Rust Checks (map[args:--all-targets --all-features --workspace -- -D warnings command:clippy]) (push) Has been cancelled
Continuous Integration / Rust Checks (map[args:--release command:build]) (push) Has been cancelled
Add build instructions
2025-04-16 21:00:32 +01:00

3.0 KiB

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

// 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