Files
JC3636W518EN/10-OBD-Display-2024
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
..

OBD Display (2024 experiments)

Earlier attempt to show car speed from an ELM327 OBD-II adapter on the JC3636W518. Because the ESP32-S3 has no Bluetooth Classic, the design used a second (classic) ESP32 as a bridge:

ELM327 --(BT Classic SPP)--> classic ESP32 (elm327_wifi_bridge) --(WiFi AP, HTTP /speed)--> JC3636W518 (display_speed_wifi)

Split out of 2-Program Example/Demo_Arduino/ST77916_LVGL_DEMO/ on 2026-10-22. History is in git.

Sketches

Folder Runs on What it does Was
display_speed_wifi/ JC3636W518 GIF background from SD (A:wallpaper.gif) + joins AP ESP32-Access-Point, polls http://192.168.4.1/speed, shows it in a label ST77916_LVGL_DEMO/8.4/
display_gif_sd/ JC3636W518 GIF from SD (A:wallpaper.gif) + static text label ST77916_LVGL_DEMO/working version/
display_gif_embedded/ JC3636W518 GIF compiled into firmware (loligod.c, 13.9 MB source). WiFi code commented out. Stops in setup() if no SD card ST77916_LVGL_DEMO/ (top level)
elm327_wifi_bridge/ classic ESP32 (not S3) BT Classic → ELM327 named OBDII (PIN 1234), WiFi AP ESP32-Access-Point / 123456789, serves /speed (kph). Needs esp32 core 2.0.x, ESPAsyncWebServer, ELMduino ST77916_LVGL_DEMO/esp23_elm327_to_wifi/
elmulator/ classic ESP32 ELMulator library + examples: fake ELM327 over BT/WiFi for testing without a car ST77916_LVGL_DEMO/ELMulator-master/
assets/gifs/ — GIF files (dump/ = unused collection) ST77916_LVGL_DEMO/gifs/
_archive/lvgl9_broken/ — Unfinished LVGL 9 port, does not compile ST77916_LVGL_DEMO/9.1/

Notes

  • Each display sketch carries its own pincfg.h, scr_st77916.h and lv_conf.h. The Arduino LVGL library does not read the sketch's lv_conf.h — the one used is Documents\Arduino\libraries\lv_conf.h. Copy the sketch's version there before building:
    • display_speed_wifi: LVGL heap 4 MB in PSRAM (ps_malloc)
    • display_gif_sd: LVGL heap 7 MB in PSRAM
  • montserrat_100.c (100 px digits font) is present but not referenced by any sketch yet.
  • display_gif_embedded will not fit the 3 MB "Huge APP" partition with loligod.c; needs a custom partition table or the GIF on SD.
  • SD-based GIFs use LVGL drive letter A:, which needs an LVGL filesystem driver configured in lv_conf.h.