A touchscreen display for the Valentine One Gen2 radar detector.
Hardware: Waveshare ESP32-S3-Touch-LCD-3.49
⚠️ Before updating firmware: Download a backup of your settings from the Settings page (/settings→ Download Backup). This preserves your colors, profiles, and configuration.
No tools needed — just a Chrome browser and USB cable:
Use the hosted installer during the 4.0.1 hotfix rollout. It bypasses the custom-domain HTTPS path and loads the published V1-Simple manifest directly.
- Put device in bootloader mode (hold POWER + GEAR while plugging in USB)
- Click "Install V1-Simple" and select your device
- Wait for install to complete, then press RESET
- Visual Studio Code with PlatformIO extension
- Node.js 18+ (for building web UI)
- USB-C data cable (not charge-only)
git clone https://github.com/ajmdroid/v1g2_simple
cd v1g2_simple
./build.sh --allThe script auto-detects your OS. First build takes 2-5 minutes to download libraries.
Authoritative filesystem upload path: ./build.sh --upload-fs or ./build.sh --all.
Do not use raw pio ... uploadfs as the normal workflow; it bypasses the repo's deploy/audio staging path.
For manual PlatformIO command variants and OS-specific troubleshooting:
- Windows setup: docs/MANUAL.md — Windows Setup
- Full command reference: docs/MANUAL.md
Hardware regression runs use the root wrapper:
./test.sh --allThe BOOT button (top right, looking at the display) controls WiFi and settings:
| Action | Function |
|---|---|
| Short press | Enter settings mode (brightness + voice volume) |
| Long press (~4s) | Toggle WiFi AP on/off |
- Short press BOOT → settings sliders appear
- Top slider (green): Display brightness (left = dim, right = bright)
- Bottom slider (blue): Voice alert volume (left = quiet, right = loud)
- Releases the slider to hear a test voice ("Ka ahead")
- Short press BOOT again to save and exit
WiFi is off by default to save power. To access web settings:
- Long press BOOT (~4s) → WiFi icon appears on display
- Connect your phone/computer to:
- Network:
V1-Simple - Password:
setupv1g2
- Network:
- Open browser:
http://192.168.35.5 - Long press BOOT again to turn WiFi off when done
| Gesture | When | Function |
|---|---|---|
| Single tap | Alert active | Mute/unmute the alert |
| Triple tap | No alert | Cycle profile slots (0→1→2→0) |
The display has a built-in speaker that announces alerts:
- New alert: Full announcement with band, frequency, and direction (e.g., "Ka 34.712 ahead")
- Direction change: Direction-only announcement when same alert moves (e.g., "behind")
- Bogey count: Optionally append "2 bogeys", "3 bogeys" when multiple alerts active
- Laser: Always includes direction ("Laser ahead") since there's no frequency to announce
When enabled, non-priority alerts are announced after the priority stabilizes:
- Per-band filters: Choose which bands (Ka, K, X, Laser) to announce as secondary
- Threat escalation: When a secondary alert ramps from weak (≤2 bars) to strong (≥4 bars sustained), announces direction breakdown (e.g., "2 bogeys, 1 ahead, 1 behind")
- Auto-disable: Voice alerts mute when a phone app is connected
- 5-second cooldown: Prevents rapid-fire announcements
Volume: Adjust via the blue slider in settings mode (short press BOOT).
Configure: Go to http://192.168.35.5/audio to customize voice content, direction, bogey count, and secondary alerts.
Create V1 settings profiles to push to your detector:
- Go to
http://192.168.35.5/profiles - Click "Pull from V1" to capture current V1 settings
- Review settings, then click Save
- Name it (e.g., "Highway", "City", "Stealth")
- Repeat to create additional profiles with different V1 configurations
Set up 3 quick-switch slots that automatically configure your V1:
| Slot | Suggested Use |
|---|---|
| 0 | Default / everyday |
| 1 | Highway / max sensitivity |
| 2 | Comfort / quieter urban |
Setup each slot:
- Go to
http://192.168.35.5/autopush - Select a profile from dropdown (created above)
- Set V1 mode (All Bogeys / Logic / Advanced Logic)
- Optional: Set main volume (0-9) and mute volume (0-9)
- Optional: Enable Dark Mode (dims V1's display)
- Optional: Enable Mute to Zero (complete silence when muted)
- Optional: Set Alert Persistence (0-5 sec ghost after alert clears)
- Optional: Enable Priority Arrow Only (shows only strongest alert direction)
- Click Save
Enable Auto-Push: Toggle on "Auto-Push on Connect" to apply active slot when V1 connects.
Switch slots: Triple-tap the display (when no alert) to cycle 0→1→2→0.
Customize every color on the display:
- Go to
http://192.168.35.5/colors - Display Style: Classic (7-segment) or Serpentine font
- Custom colors: Click any color swatch to open the color picker:
- Band indicators (L, Ka, K, X)
- Direction arrows (Front, Side, Rear)
- Signal bars (6 levels, weak to strong)
- Bogey counter, frequency, muted/persisted states
- WiFi icons (AP mode, client connected)
- BLE icons (connected, disconnected)
- RSSI labels (V1 signal, Proxy signal)
- Test: Click "Test" to preview colors on display
- Hide icons: Toggle off WiFi, battery, BLE, RSSI, or profile indicator
- Click Save
General configuration:
- AP Name/Password: Change WiFi network name and password
- BLE Proxy: Enable to relay V1 data to companion app (advertises as "V1-Proxy")
- Proxy Name: Change BLE advertised name
- Backup & Restore: Download all settings to JSON file, or restore from a previous backup
Voice alert options:
- Enable Voice Alerts: Toggle spoken announcements on/off
- Mute Voice at Volume 0: Silence alerts when V1 volume is 0 (warning still plays)
- Volume Fade: Reduce V1 volume after initial alert, restore for new threats
- Speed-Based Mute: Mute V1 alerts below a configurable speed threshold (requires OBD)
For comprehensive troubleshooting (connection, display, audio, performance, factory reset), see docs/MANUAL.md Section J.
Quick fixes:
- V1 won't connect — disconnect phone apps from V1 first, power cycle both devices
- Can't find WiFi — long-press BOOT (~4s) to start AP; WiFi is off by default
- Upload fails — try a different USB-C data cable; hold BOOT while connecting
| Doc | Role |
|---|---|
| docs/MANUAL.md | Architecture, BLE protocol, display, troubleshooting, developer guide, Windows setup |
| docs/OBSERVABILITY.md | Authoritative. Observability surfaces, metric naming, offline derivation, and test-evidence interpretation |
| docs/PERF_SLOS.md | Perf thresholds and scoring rules |
| docs/API.md | Full HTTP REST API reference with request/response schemas |
Observability/testing authority lives in docs/OBSERVABILITY.md. Each topic has ONE home.
Built on Kenny Garreau's V1G2-T4S3 - go star his repo!
MIT License - Use at your own risk. No warranty.