{"id":45939758,"url":"https://github.com/8dcc/esp32-cyd-obd2","last_synced_at":"2026-05-01T18:00:52.744Z","repository":{"id":323387872,"uuid":"1089779549","full_name":"8dcc/esp32-cyd-obd2","owner":"8dcc","description":"Visualize OBD2 information about your car in an ESP32 CYD","archived":false,"fork":false,"pushed_at":"2026-04-05T21:34:14.000Z","size":125,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-05T23:24:10.211Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/8dcc.png","metadata":{"files":{"readme":"README.org","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-11-04T19:56:58.000Z","updated_at":"2026-03-11T19:23:20.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/8dcc/esp32-cyd-obd2","commit_stats":null,"previous_names":["8dcc/esp32-cyd-obd2"],"tags_count":4,"template":false,"template_full_name":"8dcc/c-template","purl":"pkg:github/8dcc/esp32-cyd-obd2","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/8dcc%2Fesp32-cyd-obd2","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/8dcc%2Fesp32-cyd-obd2/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/8dcc%2Fesp32-cyd-obd2/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/8dcc%2Fesp32-cyd-obd2/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/8dcc","download_url":"https://codeload.github.com/8dcc/esp32-cyd-obd2/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/8dcc%2Fesp32-cyd-obd2/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32507094,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-30T13:12:12.517Z","status":"online","status_checked_at":"2026-05-01T02:00:05.856Z","response_time":64,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-02-28T10:32:12.973Z","updated_at":"2026-05-01T18:00:52.739Z","avatar_url":"https://github.com/8dcc.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"#+title: ESP32 CYD OBD2\n#+author: 8dcc\n#+startup: showeverything\n\n*Visualize OBD2 information about your car in an ESP32 CYD.*\n\nThis project is meant to run on an [[https://github.com/witnessmenow/ESP32-Cheap-Yellow-Display][ESP32 Cheap Yellow Display]] (CYD) board, which\ncan be bought on AliExpress for about 10 dollars.\n\n* Dependencies\n\nThis project has some external dependencies that must be installed in order for\nit to be built and flashed. Namely, the Espressif [[https://idf.espressif.com/][ESP-IDF]] SDK has to be cloned\nand installed.\n\n#+begin_src bash\ngit clone --depth=1 https://github.com/espressif/esp-idf\ncd esp-idf\n\n./install.sh\n# ...\n#+end_src\n\nOnce the ESP-IDF installation is finished, it can be loaded into the shell.\n\n#+begin_src bash\n. ./export.sh\n# ...\n\n# (Espressif IDF now loaded in the current shell)\n#+end_src\n\n* Building and flashing\n\nTo build the project, simply clone the repository and build it using the =idf.py=\nscript. Make sure the =export.sh= script has been loaded/exported before this\nstep, as shown in the previous section.\n\n#+begin_src bash\ngit clone https://github.com/8dcc/esp32-cyd-obd2\ncd esp32-cyd-obd2\nidf.py build\n# ...\n#+end_src\n\nThen, once the project is built, you can connect the board's MicroUSB port to\nyour computer and flash it with the same =idf.py= script.\n\n#+begin_src bash\nidf.py flash\n# ...\n#+end_src\n\n* Project architecture\n\nThe following diagram shows the architecture of the project.\n\n#+begin_src mermaid\ngraph TD\n  main --\u003e elm327\n  elm327 --\u003e serial_bluetooth\n\n  main -.-\u003e serial_uart\n\n  main --\u003e obd2\n  obd2 --\u003e elm327\n\n  main --\u003e chart\n  chart --\u003e|framebuffer| render\n  main --\u003e|font| draw_text\n  draw_text --\u003e|framebuffer| render\n#+end_src\n\n* Simulating a bluetooth ELM327 device\n\nThis repository ships with an ELM327 emulator script, which can be used to test\nand develop the ESP32-CYD firmware without a real OBD2 adapter connected to a\ncar. This is intended for a Linux machine with BlueZ.\n\nFirst, ensure that your computer has bluetooth enabled. Then, from =bluetoothctl=,\nset the computer as discoverable and pairable.\n\n#+begin_src\n$ systemctl start bluetooth.service\n\n$ bluetoothctl\n\n[bluetoothctl]\u003e discoverable on\nChanging discoverable on succeeded\n\n[bluetoothctl]\u003e pairable on\nChanging pairable on succeeded\n#+end_src\n\nThen, run the =elm327_mock.py= script.\n\n#+begin_src\n$ python3 scripts/elm327_mock.py\n#+end_src\n\nRecompile the ESP32 CYD firmware with the MAC address of your computer, which\ncan be obtained from:\n\n#+begin_src\n$ bluetoothctl show | grep \"Controller\"\nController 11:22:33:44:55:66 (public)\n#+end_src\n\nThen, once the ESP32 tries to connect, accept the pairing request.\n\n#+begin_src\nRequest authorization\n[agent] Accept pairing (yes/no): yes\n[CHG] Device 77:88:99:AA:BB:CC Paired: yes\n[ESP32]\u003e\n#+end_src\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F8dcc%2Fesp32-cyd-obd2","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F8dcc%2Fesp32-cyd-obd2","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F8dcc%2Fesp32-cyd-obd2/lists"}