- 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>
3.2 KiB
3.2 KiB
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 and converted to PlatformIO. History is in git.
Projects (all PlatformIO)
| 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 (src/loligod.c, 2.2 MB GIF → 3.4 MB firmware, uses default_16MB.csv with 6.25 MB app slots). 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) |
ST77916_LVGL_DEMO/esp23_elm327_to_wifi/ |
elmulator/ |
classic ESP32 | Fake ELM327 for testing without a car. Library in lib/ELMulator, envs simple, custom, wifi (BT name OBDII) |
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, not converted | ST77916_LVGL_DEMO/9.1/ |
Build / upload
Open a project folder in VS Code with the PlatformIO extension, or from a terminal:
pio run -d display_speed_wifi # build
pio run -d display_speed_wifi -t upload # flash (COM21)
pio device monitor -d display_speed_wifi # serial monitor
pio run -d elmulator -e wifi -t upload --upload-port COMxx
(pio = %USERPROFILE%\.platformio\penv\Scripts\pio.exe if not on PATH.)
Configuration
- JC3636W518 projects: pioarduino platform
51.03.05(= Arduino core 3.0.5), boardesp32-s3-devkitc-1with 16 MB QIO flash, OPI PSRAM,huge_app.csv(3 MB app), USB-CDC on boot, COM21. Libraries come from the vendor folder vialib_extra_dirs = ../../2-Program Example/Demo_Arduino/library. Each project uses its owninclude/lv_conf.h(-DLV_CONF_INCLUDE_SIMPLE -Iinclude):display_speed_wifi: LVGL heap 4 MB in PSRAM (ps_malloc)display_gif_sd: LVGL heap 7 MB in PSRAM
- Classic ESP32 projects: official
espressif32@6.10.0(Arduino core 2.0.17), boardesp32dev,huge_app.csv. Setupload_portto the classic ESP32's COM port. Bridge libraries:powerbroker2/ELMduino@3.4.1,esphome/ESPAsyncWebServer-esphome@3.4.0.
Notes
src/montserrat_100.c(100 px digits font) is present but not referenced by any sketch yet.- SD-based GIFs use LVGL drive
A:=LV_USE_FS_FATFS(reads through ESP-IDF FatFS on the SD_MMC mount). Not yet verified on hardware.