{"id":30805282,"url":"https://github.com/androidcrypto/esp32_tft_espi_to_lovyangfx_transition","last_synced_at":"2026-05-14T20:33:07.839Z","repository":{"id":312483534,"uuid":"1047646243","full_name":"AndroidCrypto/ESP32_Tft_eSPI_to_LovyanGFX_transition","owner":"AndroidCrypto","description":"The TFT_eSPI is the de-facto-standard when using TFT displays connected to a microcontroller of the ESP32 family. Unfortunately this library looks like abandoned as errors were not fixed by the author since many months. It might be a good idea to transist your project to LovyanGFX library.","archived":false,"fork":false,"pushed_at":"2025-08-30T22:45:27.000Z","size":2692,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-08-31T00:21:19.980Z","etag":null,"topics":["esp32","lovyangfx","tft-display"],"latest_commit_sha":null,"homepage":"https://medium.com/@androidcrypto/how-to-use-the-lovyangfx-library-instead-of-the-tft-espi-library-in-your-esp32-project-f7fc3b4954a8","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AndroidCrypto.png","metadata":{"files":{"readme":"README.md","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-08-30T22:19:08.000Z","updated_at":"2025-08-30T22:45:31.000Z","dependencies_parsed_at":"2025-08-31T00:31:37.119Z","dependency_job_id":null,"html_url":"https://github.com/AndroidCrypto/ESP32_Tft_eSPI_to_LovyanGFX_transition","commit_stats":null,"previous_names":["androidcrypto/esp32_tft_espi_to_lovyangfx_transition"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/AndroidCrypto/ESP32_Tft_eSPI_to_LovyanGFX_transition","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndroidCrypto%2FESP32_Tft_eSPI_to_LovyanGFX_transition","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndroidCrypto%2FESP32_Tft_eSPI_to_LovyanGFX_transition/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndroidCrypto%2FESP32_Tft_eSPI_to_LovyanGFX_transition/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndroidCrypto%2FESP32_Tft_eSPI_to_LovyanGFX_transition/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AndroidCrypto","download_url":"https://codeload.github.com/AndroidCrypto/ESP32_Tft_eSPI_to_LovyanGFX_transition/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndroidCrypto%2FESP32_Tft_eSPI_to_LovyanGFX_transition/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33042194,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-13T13:14:54.681Z","status":"online","status_checked_at":"2026-05-14T02:00:06.663Z","response_time":57,"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":["esp32","lovyangfx","tft-display"],"created_at":"2025-09-06T00:54:46.202Z","updated_at":"2026-05-14T20:33:07.824Z","avatar_url":"https://github.com/AndroidCrypto.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ESP32 Tft_eSPI library to LovyanGFX library transition\nThe [TFT_eSPI](https://github.com/Bodmer/TFT_eSPI) is the de-facto-standard when using TFT displays connected to a microcontroller of the ESP32 family. Unfortunately this library looks like abandoned as errors were not fixed by the author since many months. It might be a good idea to transist your project to LovyanGFX library.\n\nThis is the accompanying repository for my article \"**How to use the LovyanGFX library instead of the TFT_eSPI library in your ESP32 project**\" available here: https://medium.com/@androidcrypto/how-to-use-the-lovyangfx-library-instead-of-the-tft-espi-library-in-your-esp32-project-f7fc3b4954a8\n\n## Runtime Environment\n````plaintext\nArduino 2.3.6 (Windows)\nesp32 boards version 3.2.0\nFor compiling and uploading, I'm using the \"ESP32 Dev Module\" board\n````\n\n## Wiring of the 2.8-inches TFT Display with ILI9341 driver and resistive touch surface with XPT2046 controller\n````plaintext\nDisplay Pins  ESP32 Pins\n01 VCC 3.3V   3.3 Volt\n02 GND        GND\n03 CS         15\n04 RESET       4\n05 DC          2\n06 SDA (MOSI) 23\n07 SCK        18\n08 LED        13 (can be connected to 3.3 Volt)\n09 MISO        9\n--== Resistive Touch ==--\n10 T_CLK      18 *1)\n11 T_CS        5\n12 T_DIN      23 *1)\n13 T_DO        9 *1)\n14 T_IRQ      not connected\n\n*1) shared with display's pins\n````\n\n## Sketches in the example folders\nThere are 6 example sketches available in the folders. In each \"Example x\" folder, you will find 2 subfolders: one with the \"original\" sketch written for the TFT_eSPI library and the second folder contains the sketch that is operating with the LovyanGFX library.\n\n### Example 1 Benchmark: \nuses the basic drawing elements like \"drawString\", \"drawLine\" or \"drawCircle\". In the end, a benchmark is displayed.\n\n![Image 1](./images/example_1_result_400h.png)\n### Example 2 Fonts: \nTFT_eSPI comes with easy access to the \"Adafruit_GFX library\" and all fonts are printed on the display\n\n![Image 2](./images/example_2_500w.png)\n### Example 3 Keypad with Touch:\nThere are two elements shown in the example: it displays several ('keypad') buttons (drawn by a dedicated class within the library) and the touch controller is active to react on a button push. A basic display touch calibration is shown as well\n\n![Image 3](./images/example_3_500h.png)\n### Example 4 Images from LittleFS: \nthe example reads PNG encoded images from the LittleFS file system and shows them in a loop\n\n![Image 1](./images/example_4_500h.png)\n### Example 5 Analog Meters Widget: \nthere is a supplementary library available for TFT_eSPI that adds some widgets to the library named \"TFT_eWidget\" and I'm showing how to use it with LovyanGFX\n\n![Image 1](./images/example_5_500h.png)\n### Example 6 Animated Dial:\nthis was the most sophisticated task to convert the code that it can run the example.\n\n![Image 1](./images/example_6_500h.png)\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandroidcrypto%2Fesp32_tft_espi_to_lovyangfx_transition","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fandroidcrypto%2Fesp32_tft_espi_to_lovyangfx_transition","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandroidcrypto%2Fesp32_tft_espi_to_lovyangfx_transition/lists"}