Add 11-BLE-Scanner: on-screen BLE scanner, inspector and ELM327 test
- NimBLE-Arduino 2.5.1, BLE work in a background task on core 0 - LVGL 9 UI for the round screen: device list (OBD-like devices in green), tap to list services/characteristics, ELM test (ATZ/ATE0/ATI/ATRV/0100) - results saved to LittleFS /ble_log.txt; serial d/c/s commands - shared lv_conf: Montserrat 16 and 20 enabled Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
71d4bf7b58
commit
8a84b42a3b
9 files changed
+873
-3
No files matched your search
@@ -0,0 +1,29 @@
|
||||
# BLE Scanner (JC3636W518)
|
||||
|
||||
Stand-alone BLE scanner with on-screen UI, made to find out how the user's ELM327 ("ELM327 Mini V2.1 Dual Mode 5.1") talks over BLE.
|
||||
Uses the shared board library and LVGL 9.6 (`../shared`), NimBLE-Arduino 2.5.1.
|
||||
|
||||
## On the device
|
||||
1. **Scan screen** — live list of BLE devices: name, MAC, signal (dBm). Devices that look like an OBD adapter (name contains OBD/ELM/VLINK/…, or advertises service FFF0/FFE0/18F0) are shown in **green** with `OBD?`. `(nc)` = not connectable.
|
||||
- **Pause / Scan** — stop/resume scanning. **Save** — write the current list to flash.
|
||||
2. **Tap a device** — connects and lists all services and characteristics with their properties
|
||||
(`R` read, `W` write, `WnR` write without response, `N` notify, `I` indicate).
|
||||
If a service has a notify + write pair (ELM-style UART), it is shown as **ELM candidate** and **ELM test** becomes active.
|
||||
3. **ELM test** — sends `ATZ`, `ATE0`, `ATI`, `ATRV` (battery voltage) and `0100` (supported PIDs, needs ignition on) and shows the replies.
|
||||
4. **Back** — disconnect and return to scanning.
|
||||
|
||||
Every inspect and ELM test is saved automatically (together with the scan list) to `/ble_log.txt` in internal flash (LittleFS, ~900 KB).
|
||||
|
||||
## Reading the results later (USB, serial 115200)
|
||||
Send a single character:
|
||||
- `d` — dump `/ble_log.txt`
|
||||
- `c` — clear the log
|
||||
- `s` — print the current device list
|
||||
|
||||
e.g. `pio device monitor` in this folder, then type `d`.
|
||||
|
||||
## Build / flash
|
||||
```
|
||||
pio run -t upload
|
||||
```
|
||||
Note: the ELM327 is only powered when plugged into the car's OBD port.
|
||||
Reference in new issue
Block a user