lukeswitz / AtomGPS_wigler

Uses an ATOM M5 GPS Kit for Wigle wardriving
25 stars 6 forks source link

GitHub Tag

AtomGPS Wigler

Table of Contents

Overview

AtomGPS Wigler is a wardriving tool originally created by @lozaning. For use with the M5Stack Atom GPS kit, this tool is specifically designed for Wi-Fi network geolocation. LED status indicators are outlined below. Wigle compatible CSV files are written to SD.

Prerequisites

Flashing to AtomGPS

Method One: Esptool.py

1. Locate the device:

2. Flash the firmware, partition and bootloader:

[!WARNING] Ensure you have the latest version of esptool.py installed from the link above, or a known warning about header fields will display when flashing.

esptool.py -p [YOUR_PORT] -b 1500000 --before default_reset --after hard_reset --chip esp32 write_flash --flash_mode dio --flash_size detect --flash_freq 80m 0x1000 AtomGPS_wigler_v1_6.bootloader.bin 0x8000 AtomGPS_wigler_v1_6.partitions.bin 0x10000 AtomGPS_wigler_v1_6.bin


Method Two: Arduino IDE

1. Open the .ino file in Arduino IDE (or copy and paste it into a new sketch).

2. Add & Install ESP32 Boards:

3. Add the Required Libraries:

M5Atom
SD
SPI
TinyGPSPlus
WiFi

For example:

4. Set Board: Tools > Board > esp32 > M5Atom

5. The default settings are as below:

image

6. Click Upload


SD Configuration

FIRST: Create a plaintext file named config.txt on the SD card.

The config.txt file on the SD card can contain the following variables, each defined on a new line

Variables

  1. speedBased

    • Type: Boolean
    • Default: false
    • Description: Determines if the scanning delay is based on the speed of the device.
    • Values: true or false
    • Example: speedBased=true
  2. scanDelay

    • Type: Integer
    • Default: 150
    • Description: The delay in milliseconds between scans when speedBased is false.
    • Values: Any positive integer
    • Example: scanDelay=1000
  3. adaptiveScan

    • Type: Boolean
    • Default: true
    • Description: Enables adaptive scanning, adjusting the scan time based on the number of networks found.
    • Values: true or false
    • Example: adaptiveScan=false
  4. channels

    • Type: Array of up to 14 Integers, with reuse possible.
    • Default: channels=1,2,3,4,5,6,7,8,9,10,11
    • Description: A comma-separated list of WiFi channels to scan.
    • Values: Any valid WiFi channel numbers (1-11 for most regions)
    • Example: channels=1,6,11,12,13,14

Example config.txt

speedBased=false
scanDelay=250
adaptiveScan=true
channels=1,2,3,4,5,6,7,8,9,10,11

[!NOTE]

  • When speedBased is true it will override scanDelay.
  • Ensure there are no spaces.
  • Only valid channels for your region should be included in the channels array to ensure compliance with local regulations.
  • Adjust the scanDelay value to balance between scan frequency and power consumption when speedBased is set to false.

Get out Wardriving!

After flashing, the device scans for Wi-Fi networks, using LEDs to display status. Configure with the SD config.txt file or use the defaults as described.

WWDC 32 Quad Feature

LED Indicators

Feedback & Community

Detailed review and instructions for beginners | Thanks to kampf for the writeup:


[!CAUTION] Wardriving may not be legal in all locations. Please check local laws and obtain proper consent where necessary.