Commit Graph
19 Commits
Author SHA1 Message Date
patriandClaude Opus 5.5 4fc70f13d0 12-OBD-Speed: settings page with screen rotation (0/90/180/270)
- third tile (swipe left from the menu): rotation buttons, saved in NVS,
  applied at boot
- shared lib: setRotation() rotates only the panel and redraws; touch
  points are converted in touchpad_read() for the current rotation;
  getRotation() added

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 18:20:35 +02:00
patriandClaude Opus 5.5 733306a9c0 Cleanup: remove BLE scanner, rename 10-OBD-Display-2024 to 10-GIF-Tests
- 11-BLE-Scanner removed; its car-test log moved to 12-OBD-Speed/docs
- 10-OBD-Display-2024 -> 10-GIF-Tests (GIF playback experiments)
- the broken LVGL 9 archive was already deleted (unintentionally) in d6982ab
- READMEs and CLAUDE.md references updated; visual check of 80 MHz QSPI /
  RGB565_SWAPPED marked as confirmed

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 18:14:23 +02:00
patriandClaude Opus 5.5 66f70c0cc1 Add 12-OBD-Speed: ELM327 speed over BLE on a GIF background
- speed page: 120 px antialiased number (lv_font_conv) + 0-200 km/h arc
  gauge over ezgif-5-cb56986bc7.gif (embedded via board_build.embed_files)
- swipe-left menu: scan, OBD-like adapters first, tap to select; adapter
  remembered in NVS, auto-connect at boot and reconnect every 3 s
- ELM327 init ATZ/ATE0/ATL0/ATS0/ATH0/ATSP0/0100, then 010D polling
- shared ini: -DLV_LVGL_H_INCLUDE_SIMPLE for generated fonts

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 16:49:37 +02:00
patriandClaude Opus 5.5 9e9c0fac68 Remove 2024 BT-Classic bridge, ELMulator and WiFi speed sketch
The ELM327 is read directly over BLE now. Docs updated.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 16:38:15 +02:00
patriandClaude Opus 5.5 0bd6aef6b5 ELM327 BLE verified in the car: service FFF0, FFF1 notify/write, ELM327 v2.1
Scanner log saved in 11-BLE-Scanner/results; CLAUDE.md updated with the
adapter's GATT layout, replies and supported PIDs 01-20.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 14:21:44 +02:00
patriandClaude Opus 5.5 8a84b42a3b 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>
2026-10-23 01:54:36 +02:00
patriandClaude Opus 5.5 71d4bf7b58 display_gif_sd: load GIF from SD into PSRAM once, play from memory (9.8 -> 15.4 fps)
Also enable a 16 KB LVGL stdio read cache (no measurable effect for the GIF).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 01:43:31 +02:00
patriandClaude Opus 5.5 55e27b6572 Port display_gif_sd and display_speed_wifi to LVGL 9.6 + shared library
- both use shared/jc3636w518.ini, board library and perf monitor
- GIF decoded in the display color format, loop delay 1 ms,
  per-loop memory prints removed
- lv_conf: LVGL drive A: = SD card via LV_USE_FS_STDIO (/sdcard/)
- shared/README.md, CLAUDE.md and project README updated

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 01:37:29 +02:00
patriandClaude Opus 5.5 6e7206b821 LVGL 9 tuning: CPU 86% -> 53% at full GIF speed (display_gif_embedded)
- render in RGB565_SWAPPED (ST77916 byte order), no swap pass in flush;
  flush swaps only if the display format is plain RGB565 (runtime check,
  the previous #if compared enum values and was always true)
- QSPI clock 50 -> 80 MHz
- LV_ATTRIBUTE_FAST_MEM / FLUSH_READY in IRAM (lv_attr_jc3636w518.h)
- display_gif_embedded: GIF decoded in the display's color format (no alpha)
- tested without gain: LV_GIF_CACHE_DECODE_DATA (unused in 9.6), 120-row buffers

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 01:29:25 +02:00
patriandClaude Opus 5.5 d6982ab7e7 Add shared JC3636W518 board library and PlatformIO config
- shared/lib/JC3636W518: display/touch/backlight init with LVGL 9 glue
  (from scr_st77916.h), pin map, perf monitor (FPS/refresh/CPU)
- shared/include/lv_conf.h: LVGL 9.6 config for all projects
- shared/jc3636w518.ini: common platform/board/build settings
- display_gif_embedded uses it (23.2 fps, 86% CPU)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 01:11:02 +02:00
patriandClaude Opus 5.5 9684ab39f2 display_gif_embedded: port to LVGL 9.6.0 (20.6 -> 23.4 fps)
- lvgl/lvgl@9.6.0 via lib_deps, lv_conf.h from the 9.6 template
- scr_st77916.h: lv_display/lv_indev API, RGB565 byte swap in flush,
  lv_tick_set_cb
- FPS counter via display refresh events
- loligod.c: lv_image_dsc_t descriptor

GIF now plays at its own frame rate; decode time halved by LVGL 9.6's
AnimatedGIF decoder.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 01:00:18 +02:00
patriandClaude Opus 5.5 70114f73aa display_gif_embedded: 15.4 -> 20.6 fps
- FPS/refresh/decode counter via LVGL monitor_cb (printed once per second)
- LVGL logging off, per-loop memory prints removed, loop delay 5 -> 1 ms
- double draw buffer (render while previous chunk is flushed)
- compile with -O2 instead of -Os

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 00:51:23 +02:00
patriandClaude Opus 5.5 4e63fb65c6 display_gif_embedded: start GIF before SD init so a failing card doesn't block it
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 00:36:00 +02:00
patriandClaude Opus 5.5 3669f41eb4 display_gif_sd: remove test text label
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 00:30:26 +02:00
patriandClaude Opus 5.5 3e412f8231 Fix LVGL GIF decoder: start with transparent canvas
LVGL 8.3.11 gifdec filled the initial canvas opaque with the GIF background
color, so transparent-background GIFs (loligod.gif) showed dark gray until
'restore to background' frames cleared each area to the screen color.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 00:27:33 +02:00
patriandClaude Opus 5.5 65431703c1 Notes: dual-mode ELM327 adapter, optimized-GIF transparency issue
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 00:22:35 +02:00
patriandClaude Opus 5.5 5c04e3f0df Convert all projects to PlatformIO
- JC3636W518 sketches: pioarduino 51.03.05 (Arduino core 3.0.5), ESP32-S3
  16MB QIO / OPI PSRAM, vendor libs via lib_extra_dirs, per-project lv_conf.h
- display_gif_embedded uses default_16MB.csv (firmware 3.4 MB > huge_app)
- elm327_wifi_bridge: espressif32 6.10.0 on esp32dev, pinned lib_deps
- elmulator: library in lib/, one env per example, duplicate copies removed
- .ino -> src/main.cpp, headers/lv_conf.h -> include/

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 00:20:33 +02:00
patriandClaude Opus 5.5 9cefb9ba75 Separate old OBD display project from vendor demo folder
- Move user sketches to 10-OBD-Display-2024/, one folder per sketch
- Keep 2-Program Example/Demo_Arduino vendor-only, single docs/ copy
- Remove duplicate screenshots/instructions and ELMulator zip
- Archive broken LVGL 9 attempt

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 23:57:09 +02:00
patriandClaude Opus 5.5 9ee85bfd86 Snapshot of JC3636W518EN kit before demo folder cleanup
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 23:56:18 +02:00