Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 

Repository files navigation

WiGLE Stats Dashboard — ESP32-S3-Touch-LCD-1.69

A touchscreen WiGLE.net stats dashboard for the Waveshare ESP32-S3-Touch-LCD-1.69 (240×280 ST7789V2 IPS LCD, CST816T capacitive touch, QMI8658 IMU).

It pulls your wigle.net account stats over WiFi and cycles through six screens styled after the WiGLE mobile app. Swipe left/right to change screens manually; they also auto-rotate on a timer.

Screens

# Screen Source endpoint
5 Profile / summary (username, rank, month rank, optional badge) /stats/user
0 Your Statistics (WiFi / WiFi locations / Bluetooth / Cell) /stats/user
1 Discoveries (big numbers + GPS %) /stats/user
2 Leaderboard (top users) /stats/standings
3 Top Groups /stats/group
4 Uploads (recent files) /file/transactions

Hardware

  • Board: Waveshare ESP32-S3-Touch-LCD-1.69 (ESP32-S3R8, 8 MB PSRAM, 16 MB flash)
  • Display: ST7789V2, 240×280, SPI
  • Touch: CST816T, I²C 0x15
  • IMU: QMI8658, I²C 0x6B (optional shake gesture)

Libraries (Arduino IDE → Library Manager)

  • GFX Library for Arduino — moononournation
  • ArduinoJson (v7) — Benoit Blanchon
  • PNGdec — Larry Bank (only needed if the profile badge is enabled)

Board settings (Tools menu)

  • Board: ESP32S3 Dev Module (or the Waveshare 1.69 board if listed)
  • USB CDC On Boot: Enabled
  • PSRAM: OPI PSRAM
  • Flash Size: 16MB

Setup

Open WiGLE_Dashboard.ino and fill in the config block near the top:

const char* WIFI_SSID       = "YOUR_WIFI_NAME";
const char* WIFI_PASS       = "YOUR_WIFI_PASSWORD";
const char* WIGLE_API_NAME  = "YOUR_WIGLE_API_NAME";   // from https://wigle.net/account
const char* WIGLE_API_TOKEN = "YOUR_WIGLE_API_TOKEN";  // NOT your login password
const char* WIGLE_BADGE_URL = "";                      // optional profile-badge PNG URL

Do not commit real credentials. Keep the WiFi/API fields as placeholders in any copy you push to GitHub; put your real values only in the copy you flash.

Get your WiGLE API Name and API Token from https://wigle.net/account (these are separate from your username/password).

Tuning notes

  • TOP / BOT — safe-area insets for the rounded corners. Increase TOP if the top edge is still clipped on your unit.
  • SWIPE_INVERT — set true if swipe direction feels reversed.
  • SWIPE_MIN_PX — how far you must drag before a swipe registers.
  • SCREEN_ROTATE_MS / REFRESH_MS / SLOW_REFRESH_MS — auto-cycle and refresh timing.
  • SCREEN_ORDER[] — reorder or remove screens (e.g. {5, 0, 1}).
  • ENABLE_BADGE — set 0 to drop the profile badge and skip the PNGdec dependency.
  • If the badge colors look swapped, flip PNG_RGB565_LITTLE_ENDIANPNG_RGB565_BIG_ENDIAN.

The Serial Monitor (115200 baud) prints the touch chip ID, HTTP status codes, parsed stats, and the raw JSON for the leaderboard/groups/uploads screens — handy for confirming field names if any of those show "unavailable".

Notes

  • WiGLE enforces a daily API query limit; the defaults poll your stats every 10 minutes and the global screens hourly to stay well within it.
  • TLS certificate validation is disabled (setInsecure()) for simplicity.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages