{"id":13591048,"url":"https://github.com/thelastoutpostworkshop/gpio_viewer","last_synced_at":"2025-05-14T19:09:33.441Z","repository":{"id":214655902,"uuid":"728635572","full_name":"thelastoutpostworkshop/gpio_viewer","owner":"thelastoutpostworkshop","description":"GPIOViewer Arduino Library to see live GPIO Pins on ESP32 boards","archived":false,"fork":false,"pushed_at":"2025-05-03T11:54:47.000Z","size":245,"stargazers_count":1206,"open_issues_count":21,"forks_count":126,"subscribers_count":39,"default_branch":"main","last_synced_at":"2025-05-03T12:25:02.313Z","etag":null,"topics":["arduino-library","esp32","gpio","gpio-pins","gpioviewer"],"latest_commit_sha":null,"homepage":"https://youtu.be/JJzRXcQrl3I","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/thelastoutpostworkshop.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"buy_me_a_coffee":"thelastoutpostworkshop"}},"created_at":"2023-12-07T11:14:06.000Z","updated_at":"2025-05-03T11:54:50.000Z","dependencies_parsed_at":"2024-02-01T01:24:33.421Z","dependency_job_id":"fe191aaf-0220-4742-ade4-9194c12abc1d","html_url":"https://github.com/thelastoutpostworkshop/gpio_viewer","commit_stats":{"total_commits":446,"total_committers":6,"mean_commits":74.33333333333333,"dds":"0.015695067264574036","last_synced_commit":"bbda7259d186d2c5330f8195ce9a12f47a61c34f"},"previous_names":["thelastoutpostworkshop/gpio_viewer"],"tags_count":21,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thelastoutpostworkshop%2Fgpio_viewer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thelastoutpostworkshop%2Fgpio_viewer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thelastoutpostworkshop%2Fgpio_viewer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thelastoutpostworkshop%2Fgpio_viewer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thelastoutpostworkshop","download_url":"https://codeload.github.com/thelastoutpostworkshop/gpio_viewer/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254209859,"owners_count":22032897,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["arduino-library","esp32","gpio","gpio-pins","gpioviewer"],"created_at":"2024-08-01T16:00:53.096Z","updated_at":"2025-05-14T19:09:32.299Z","avatar_url":"https://github.com/thelastoutpostworkshop.png","language":"C++","funding_links":["https://buymeacoffee.com/thelastoutpostworkshop","https://www.buymeacoffee.com/thelastoutpostworkshop"],"categories":["C++"],"sub_categories":[],"readme":"# GPIOViewer Arduino Library to see live GPIO Pins on ESP32 boards\n\n**Transforms the way you troubleshoot your microcontroller projects**.\u003cbr\u003e\n\u003ca href=\"https://www.buymeacoffee.com/thelastoutpostworkshop\" target=\"_blank\"\u003e\n\u003cimg src=\"https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png\" alt=\"Buy Me A Coffee\"\u003e\n\u003c/a\u003e\n\n## Youtube Tutorial\n\n[\u003cimg src=\"https://github.com/thelastoutpostworkshop/images/blob/main/GPIO%20Viewer.png\" width=\"300\"\u003e](https://youtu.be/UxkOosaNohU)\n[\u003cimg src=\"https://github.com/thelastoutpostworkshop/images/blob/main/GPIOViewer%20Latest%20Features.png\" width=\"300\"\u003e](https://youtu.be/JJzRXcQrl3I)\n\n## Installation\n\n### Installation Arduino IDE (Version 2)\n\n\u003e ℹ️ Make sure you have the [latest ESP32 boards](https://github.com/espressif/arduino-esp32)\n\u003e by Espressif Systems in your Board Manager\u003cbr\u003e\n\n- Install the **GPIOViewer Library with the Arduino IDE Library Manager** or Download the [latest stable release](https://github.com/thelastoutpostworkshop/gpio_viewer/releases/latest) and install the library in the Arduino IDE : `Sketch \u003e Include Library \u003e Add ZIP Library...`\n- Install [ESPAsyncWebServer](https://github.com/mathieucarbou/ESPAsyncWebServer) using the Arduino IDE Library Manager\n- Install the the [Async TCP](https://github.com/mathieucarbou/AsyncTCP) using the Arduino IDE Library Manager.\n\n### Installation VSCode + PlatformIO\n\n\u003e ℹ️ Make sure you have the [latest ESP32 boards](https://github.com/espressif/arduino-esp32)\n\u003e by Espressif Systems in your Platforms\u003cbr\u003e\n\n- Install the **GPIOViewer Library using PlateformIO Libraries**\n\nAdd (or change) the following to your platformio.ini file:\n\n```\nplatform = espressif32\nframework = arduino\nlib_deps =\n    https://github.com/mathieucarbou/AsyncTCP.git\n    https://github.com/mathieucarbou/AsyncTCP.git\n```\n\n## Usage\n\n\u003e ℹ️ You can also get examples provided with the library in the Arduino IDE through the menu `File \u003e Examples \u003e GPIOViewer`\u003cbr\u003e\n\u003e ℹ️ You only need to include the library, declare the GPIOViewer and call begin() at the end of your setup, and that's it!\u003cbr\u003e\n\u003e ℹ️ The URL to the web GPIO viewer application is printed on the serial monitor\u003cbr\u003e\n\n```c\n#include \u003cgpio_viewer.h\u003e // Must me the first include in your project\nGPIOViewer gpio_viewer;\n\nvoid setup()\n{\n  Serial.begin(115200);\n\n  // Comment the next line, If your code aleady include connection to Wifi in mode WIFI_STA (WIFI_AP and WIFI_AP_STA are not supported)\n  gpio_viewer.connectToWifi(\"Your SSID network\", \"Your WiFi Password\");\n  // gpio_viewer.setPort(5555);   // You can set the http port, if not set default port is 8080\n\n  // Your own setup code start here\n\n  // Must be at the end of your setup\n  // gpio_viewer.setSamplingInterval(25); // You can set the sampling interval in ms, if not set default is 100ms\n  gpio_viewer.begin();\n}\n```\n\n\u003e ℹ️ The default HTTP port is **8080** and default sampling interval is **100ms**\u003cbr\u003e\n\u003e ℹ️ Wifi must be in mode WIFI_STA (WIFI_AP and WIFI_AP_STA are not supported)\n\n## GPIO Supported\n\n- Digital\n- Analog\n- PWM\n- ADC\n\n## Library Size\n\n- The GPIOViewer Library adds 50 KB to your projects.\n- No worries! All the assets (ex. board images) of the web application are loaded from github pages and don't add to the size of your projects.\n\n## Espressif ESP32 Core SDK Compatibility\n\n- The Espressif ESP32 Arduino Core that is installed in your system will need to be v2.0.5 or greater / v3.0.0 or greater, in order for GPIO viewer to compile properly.\n- See the official Espressif Systems ESP32 Core documentation located here for more details: https://docs.espressif.com/projects/arduino-esp32/en/latest/\n\n## Performance\n\n- Ensure you have a strong Wifi signal with a good transfer rate. 25ms sampling interval works great on Wifi 6 with 125 Mbps.\n- If you get \"ERROR: Too many messages queued\" on the Serial Monitor, this means the data is not read fast enough by the web application. The data will still be displayed, but with some latency. Reduce the sampling interval or try to improve your Wifi performance.\n\n## Contributors\n\nContributors are welcomed! If you want to submit pull requests, [here is how you can do it](https://docs.github.com/en/get-started/exploring-projects-on-github/contributing-to-a-project).\n\n## Troubleshooting\n\n### Last tested to be working on :\n\n- v3.2.0 [ESP32 Arduino Core](https://github.com/espressif/arduino-esp32)\n- v3.4.0 [Async TCP](https://github.com/mathieucarbou/AsyncTCP)\n- v3.7.7 [ESP Async WebServer](https://github.com/mathieucarbou/ESPAsyncWebServer)\n\n### Conflicts with pin function detection on some boards\n\nSince version 1.5.6, the library detects pin functions like ADC and Touch, this has been causing problems on some boards, like the XiaoESP32-S3-Sense.\nYou can disable pin detection by adding this define before including the library :\n\n```C++\n#define NO_PIN_FUNCTIONS\n#include \u003cgpio_viewer.h\u003e\n```\n\n### Code not compiling\n\nIf your code don't compile, **before submitting an issue:**\n\n- Compile with the [latest stable release](https://github.com/thelastoutpostworkshop/gpio_viewer/releases/latest) of the GPIOViewer Library **and** with the [latest ESP32 boards](https://github.com/espressif/arduino-esp32)\n- See also this [solved issue](https://github.com/thelastoutpostworkshop/gpio_viewer/issues/116)\n\n### GPIOViewer running\n\nIf GPIOViewer is running and your are experiencing problems in the web application, **before submitting an issue:**\n\n- Make sure you are using the [latest stable release](https://github.com/thelastoutpostworkshop/gpio_viewer/releases/latest) of the GPIOViewer Library\n- Clear your browser cache data and refresh the window in your browser\n\n## ESP32 Boards Supported\n\n\u003e ℹ️ You can use the \"Generic View\" in the GPIO Web Application to see GPIO pin activites live even if your board image is not listed \u003cbr\u003e\n\u003e ℹ️ You can also request an ESP32 board image addition by [creating a new issue](https://github.com/thelastoutpostworkshop/gpio_viewer/issues).\n\n| Description               | Image                                                                                                                                                               | Pinout                                                                                                                                                                                 |\n| ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| AZ Delivery NodeMCU ESP32 | ! \u003cimg src=\"https://github.com/thelastoutpostworkshop/microcontroller_devkit/blob/main/gpio_viewer_1_5/devboards_images/AZ-Delivery-NodeMCU-ESP32.png\" width=\"100\"\u003e | \u003cimg src=\"https://raw.githubusercontent.com/thelastoutpostworkshop/images/main/AZ-Delivery-NodeMCU-ESP32-p%C3%AEnout.png\" width=\"100\"\u003e                                                 |\n| DFROBOT Beetle ESP32-C6 | ! \u003cimg src=\"https://github.com/thelastoutpostworkshop/microcontroller_devkit/blob/main/gpio_viewer_1_5/devboards_images/DFROBOT_Beetle_ESP32-C6.png\" width=\"100\"\u003e | \u003cimg src=\"https://raw.githubusercontent.com/thelastoutpostworkshop/images/main/DFROBOT_Beetle_ESP32-C6_pinout.png\" width=\"100\"\u003e                                                 |\n| ESP32 NodeMCU 32S         | ! \u003cimg src=\"https://github.com/thelastoutpostworkshop/microcontroller_devkit/blob/main/gpio_viewer_1_5/devboards_images/ESP32-NodeMCU-32S.png\" width=\"100\"\u003e         | \u003cimg src=\"https://raw.githubusercontent.com/thelastoutpostworkshop/images/main/ESP32-NODEMCU-32S-pinout.jpg\" width=\"100\"\u003e                                                              |\n| ESP32 VROOM 32D (38 pins) | ! \u003cimg src=\"https://github.com/thelastoutpostworkshop/microcontroller_devkit/blob/main/gpio_viewer_1_5/devboards_images/ESP32-VROOM-32D.png\" width=\"100\"\u003e           | \u003cimg src=\"https://docs.espressif.com/projects/esp-idf/en/latest/esp32/_images/esp32-devkitC-v4-pinout.png\" width=\"100\"\u003e                                                                |\n| ESP32 VROOM 32D (38 pins) | ! \u003cimg src=\"https://github.com/thelastoutpostworkshop/microcontroller_devkit/blob/main/gpio_viewer_1_5/devboards_images/ESP32-VROOM-32D.png\" width=\"100\"\u003e           | \u003cimg src=\"https://docs.espressif.com/projects/esp-idf/en/latest/esp32/_images/esp32-devkitC-v4-pinout.png\" width=\"100\"\u003e                                                                |\n| ESP32 VROOM 32D (30 pins) | ! \u003cimg src=\"https://github.com/thelastoutpostworkshop/microcontroller_devkit/blob/main/gpio_viewer_1_5/devboards_images/ESP32-VROOM-32D-30pins.png\" width=\"100\"\u003e    | \u003cimg src=\"https://raw.githubusercontent.com/AchimPieters/esp32-homekit-camera/master/Images/ESP32-30PIN-DEVBOARD.png\" width=\"100\"\u003e                                                     |\n| ESP32 D1 R32              | ! \u003cimg src=\"https://github.com/thelastoutpostworkshop/microcontroller_devkit/blob/main/gpio_viewer_1_5/devboards_images/ESP32_D1_R32.png\" width=\"100\"\u003e              | \u003cimg src=\"https://ito-iot.jp/sbc/WeMosD1R32-pinout.png\" width=\"100\"\u003e                                                                                                                   |\n| ESP32-CAM                 | ! \u003cimg src=\"https://github.com/thelastoutpostworkshop/microcontroller_devkit/blob/main/gpio_viewer_1_5/devboards_images/ESP32-CAM.png\" width=\"100\"\u003e                 | \u003cimg src=\"https://i0.wp.com/randomnerdtutorials.com/wp-content/uploads/2020/03/ESP32-CAM-pinout-new.png?quality=100\u0026strip=all\u0026ssl=1\" width=\"100\"\u003e                                      |\n| ESP32-C3 Super Mini       | ! \u003cimg src=\"https://github.com/thelastoutpostworkshop/microcontroller_devkit/blob/main/gpio_viewer_1_5/devboards_images/ESP32-C3-Super-Mini.png\" width=\"100\"\u003e       | \u003cimg src=\"https://europe1.discourse-cdn.com/arduino/original/4X/8/0/f/80f07e53b7ddd448a8ac00608dd82acb5611a201.jpeg\" width=\"100\"\u003e                                                      |\n| ESP32 C3 Wroom-02         | ! \u003cimg src=\"https://github.com/thelastoutpostworkshop/microcontroller_devkit/blob/main/gpio_viewer_1_5/devboards_images/esp32-C3-Wroom-02.png\" width=\"100\"\u003e         | \u003cimg src=\"https://m.media-amazon.com/images/S/aplus-media-library-service-media/a80e998c-f2b4-4c4a-9ee7-d97ede61e14c.__CR0,0,970,600_PT0_SX970_V1___.jpg\" width=\"100\"\u003e                 |\n| ESP32-C5 DevKit1          | ! \u003cimg src=\"https://github.com/thelastoutpostworkshop/microcontroller_devkit/blob/main/gpio_viewer_1_5/devboards_images/ESP32-C5-DevKitC-1.png\" width=\"100\"\u003e          | \u003cimg src=\"https://github.com/thelastoutpostworkshop/images/blob/main/esp32-c5-devkitc-1-pin-layout.png\" width=\"100\"\u003e                                                 |\n| ESP32-C6 DevKitM          | ! \u003cimg src=\"https://github.com/thelastoutpostworkshop/microcontroller_devkit/blob/main/gpio_viewer_1_5/devboards_images/esp32-C6-devkitm.png\" width=\"100\"\u003e          | \u003cimg src=\"https://docs.espressif.com/projects/espressif-esp-dev-kits/en/latest/_images/esp32-c6-devkitm-1-pin-layout.png\" width=\"100\"\u003e                                                 |\n| ESP32 Wroom-32UE          | ! \u003cimg src=\"https://github.com/thelastoutpostworkshop/microcontroller_devkit/blob/main/gpio_viewer_1_5/devboards_images/esp32-Wroom-32UE.png\" width=\"100\"\u003e          | \u003cimg src=\"https://media.springernature.com/lw685/springer-static/image/chp%3A10.1007%2F978-3-031-02447-4_74/MediaObjects/519315_1_En_74_Fig2_HTML.png\" width=\"100\"\u003e                    |\n| ESP32 EVB                 | ! \u003cimg src=\"https://github.com/thelastoutpostworkshop/microcontroller_devkit/blob/main/gpio_viewer_1_5/devboards_images/ESP32-EVB.png\" width=\"100\"\u003e                 | \u003cimg src=\"https://gitlab.com/gschorcht/RIOT.wiki-Images/raw/master/esp32/Olimex_ESP32-EVB_pinout.png\" width=\"100\"\u003e                                                                     |\n| ESP32-S3-DevKitM-1-N8     | ! \u003cimg src=\"https://github.com/thelastoutpostworkshop/microcontroller_devkit/blob/main/gpio_viewer_1_5/devboards_images/ESP32-S3-DevKitM-1-N8.png\" width=\"100\"\u003e     | \u003cimg src=\"https://raw.githubusercontent.com/thelastoutpostworkshop/images/main/ESP32-S3-DevKitM-1-N8_pinout.png\" width=\"100\"\u003e                                                          |\n| ESP32 S3 Wroom-1          | ! \u003cimg src=\"https://github.com/thelastoutpostworkshop/microcontroller_devkit/blob/main/gpio_viewer_1_5/devboards_images/esp32-s3-wroom-1.png\" width=\"100\"\u003e          | \u003cimg src=\"https://docs.espressif.com/projects/esp-idf/en/latest/esp32s3/_images/ESP32-S3_DevKitC-1_pinlayout_v1.1.jpg\" width=\"100\"\u003e                                                    |\n| Esp32 S2 Mini V1.0.0      | ! \u003cimg src=\"https://github.com/thelastoutpostworkshop/microcontroller_devkit/blob/main/gpio_viewer_1_5/devboards_images/Esp32 S2 Mini V1.0.0.png\" width=\"100\"\u003e      | \u003cimg src=\"https://www.studiopieters.nl/wp-content/uploads/2022/08/WEMOS-ESP32-S2-MINI.png\" width=\"100\"\u003e                                                                                |\n| ESP32 POE                 | ! \u003cimg src=\"https://github.com/thelastoutpostworkshop/microcontroller_devkit/blob/main/gpio_viewer_1_5/devboards_images/ESP32-POE.png\" width=\"100\"\u003e                 | \u003cimg src=\"https://www.olimex.com/Products/IoT/ESP32/ESP32-POE/resources/ESP32-POE-GPIO.png\" width=\"100\"\u003e                                                                               |\n| ESP32 C3 Mini             | ! \u003cimg src=\"https://github.com/thelastoutpostworkshop/microcontroller_devkit/blob/main/gpio_viewer_1_5/devboards_images/ESP32-C3-Mini.png\" width=\"100\"\u003e             | \u003cimg src=\"https://www.wemos.cc/en/latest/_static/boards/c3_mini_v2.1.0_4_16x9.png\" width=\"100\"\u003e                                                                                        |\n| ESP32 C3 Mini-1             | ! \u003cimg src=\"https://github.com/thelastoutpostworkshop/microcontroller_devkit/blob/main/gpio_viewer_1_5/devboards_images/ESP32-C3-Mini-1.png\" width=\"100\"\u003e             | \u003cimg src=\"https://github.com/thelastoutpostworkshop/images/blob/main/esp32-c3-devkitm-1-v1-pinout.png\" width=\"100\"\u003e                                                                                        |\n| ESP32 C3 Zero             | ! \u003cimg src=\"https://github.com/thelastoutpostworkshop/microcontroller_devkit/blob/main/gpio_viewer_1_5/devboards_images/ESP32-C3-Zero.png\" width=\"100\"\u003e             | \u003cimg src=\"https://www.waveshare.com/img/devkit/ESP32-C3-Zero/ESP32-C3-Zero-details-inter.jpg\" width=\"100\"\u003e                                                                             |\n| ESP32 C6 Zero             | ! \u003cimg src=\"https://github.com/thelastoutpostworkshop/microcontroller_devkit/blob/main/gpio_viewer_1_5/devboards_images/ESP32-C6-Zero.png\" width=\"100\"\u003e             | \u003cimg src=\"https://www.waveshare.com/w/upload/2/2e/ESP32-C6-Zero_Pin.png\" width=\"100\"\u003e                                                                                                  |\n| ESP32 Pico Kit v4.1       | ! \u003cimg src=\"https://github.com/thelastoutpostworkshop/microcontroller_devkit/blob/main/gpio_viewer_1_5/devboards_images/esp32-pico-kit-v4.1.png\" width=\"100\"\u003e       | \u003cimg src=\"https://github.com/thelastoutpostworkshop/images/blob/main/esp32-pico-kit-1-pinout.png\" width=\"100\"\u003e                                                                         |\n| Leaf S3                   | ! \u003cimg src=\"https://github.com/thelastoutpostworkshop/microcontroller_devkit/blob/main/gpio_viewer_1_5/devboards_images/Leaf-S3.png\" width=\"100\"\u003e                   | \u003cimg src=\"https://github.com/thelastoutpostworkshop/images/blob/main/leaf-s3-pinout.png\" width=\"100\"\u003e                                                                                  |\n| Lilygo T-SIM A7670x       | ! \u003cimg src=\"https://github.com/thelastoutpostworkshop/microcontroller_devkit/blob/main/gpio_viewer_1_5/devboards_images/Lilygo-T-SIM-A7670x.png\" width=\"100\"\u003e       | \u003cimg src=\"https://www.lilygo.cc/cdn/shop/products/LILYGO-T-SIMA7670E_10.jpg?v=1669962736\u0026width=1445\" width=\"100\"\u003e                                                                      |\n| Lilygo T7 Mini32 v1.5     | ! \u003cimg src=\"https://github.com/thelastoutpostworkshop/microcontroller_devkit/blob/main/gpio_viewer_1_5/devboards_images/Lilygo-T7-Mini32-v1.5.png\" width=\"100\"\u003e     | \u003cimg src=\"https://templates.blakadder.com/assets/device_images/lilygo_T7_pinout.webp\" width=\"100\"\u003e                                                                                     |\n| Lolin D32                 | ! \u003cimg src=\"https://github.com/thelastoutpostworkshop/microcontroller_devkit/blob/main/gpio_viewer_1_5/devboards_images/Lolin-D32.png\" width=\"100\"\u003e                 | \u003cimg src=\"https://mischianti.org/wp-content/uploads/2022/10/ESP32-WeMos-LOLIN-D32-pinout-mischianti-1024x618.jpg.webp\" width=\"100\"\u003e                                                    |\n| Freenove ESP32-S3         | ! \u003cimg src=\"https://github.com/thelastoutpostworkshop/microcontroller_devkit/blob/main/gpio_viewer_1_5/devboards_images/Freenove-esp32-s3.png\" width=\"100\"\u003e         | \u003cimg src=\"https://taunoerik.files.wordpress.com/2023/05/esp32s3_pinout.png?w=1568\" width=\"100\"\u003e                                                                                        |\n| Freenove ESP32-Wroom      | ! \u003cimg src=\"https://github.com/thelastoutpostworkshop/microcontroller_devkit/blob/main/gpio_viewer_1_5/devboards_images/Freenove-esp32-wroom.png\" width=\"100\"\u003e      |                                                                                                                                                                                        |\n| Heltec HT-WB32_V3         | ! \u003cimg src=\"https://github.com/thelastoutpostworkshop/microcontroller_devkit/blob/main/gpio_viewer_1_5/devboards_images/Heltec HT-WB32_V3.png\" width=\"100\"\u003e         | \u003cimg src=\"https://raw.githubusercontent.com/thelastoutpostworkshop/images/main/Heltec HT-WB32_V3_pinout.png\" width=\"100\"\u003e                                                              |\n| Nano ESP32                | ! \u003cimg src=\"https://github.com/thelastoutpostworkshop/microcontroller_devkit/blob/main/gpio_viewer_1_5/devboards_images/Nano-ESP32.png\" width=\"100\"\u003e                | \u003cimg src=\"https://docs.arduino.cc/static/8307a46e73a4b5b153aa9ec0a4082443/ABX00083-pinout.png\" width=\"100\"\u003e                                                                            |\n| Nano ESP32-C6             | ! \u003cimg src=\"https://github.com/thelastoutpostworkshop/microcontroller_devkit/blob/main/gpio_viewer_1_5/devboards_images/nanoESP32-C6.png\" width=\"100\"\u003e              | \u003cimg src=\"https://uelectronics.com/wp-content/uploads/2023/11/AR3836-ESP32-C6-DevKit-Placa-de-Desarrollo-Dual-Tipo-C-Pinout.jpg\" width=\"100\"\u003e                                          |\n| Olimex ESP32-P4           | ! \u003cimg src=\"https://github.com/thelastoutpostworkshop/microcontroller_devkit/blob/main/gpio_viewer_1_5/devboards_images/Olimex-ESP32-P4.png\" width=\"100\"\u003e           | \u003cimg src=\"https://github.com/thelastoutpostworkshop/images/blob/main/Olimex%20ESP32-P4-pinout.png\" width=\"100\"\u003e                                |\n| Sailor Hat ESP32          | ! \u003cimg src=\"https://github.com/thelastoutpostworkshop/microcontroller_devkit/blob/main/gpio_viewer_1_5/devboards_images/Sailor-Hat-ESP32.png\" width=\"100\"\u003e          | \u003cimg src=\"https://docs.hatlabs.fi/sh-esp32/media/sh-esp32_r2.0.0_top_render.jpg\" width=\"100\"\u003e                                                                                          |\n| SparkleIoT ESP32-C3F      | ! \u003cimg src=\"https://github.com/thelastoutpostworkshop/microcontroller_devkit/blob/main/gpio_viewer_1_5/devboards_images/Sparkleiot-ESP32-C3F.png\" width=\"100\"\u003e      | \u003cimg src=\"https://raw.githubusercontent.com/thelastoutpostworkshop/images/main/SparkleIoT-ESP32-C3F-pinout.png\" width=\"100\"\u003e                                                           |\n| StickLite-V3-ESP32S3      | ! \u003cimg src=\"https://github.com/thelastoutpostworkshop/microcontroller_devkit/blob/main/gpio_viewer_1_5/devboards_images/StickLite-V3-ESP32S3.png\" width=\"100\"\u003e      | \u003cimg src=\"https://heltec.org/wp-content/uploads/2023/09/HTIT-WSL_V3.png\" width=\"100\"\u003e                                                                                                  |\n| T-Display S3 AMOLED       | ! \u003cimg src=\"https://github.com/thelastoutpostworkshop/microcontroller_devkit/blob/main/gpio_viewer_1_5/devboards_images/T-Display-S3-AMOLED.png\" width=\"100\"\u003e       | \u003cimg src=\"https://raw.githubusercontent.com/Xinyuan-LilyGO/T-Display-S3-AMOLED/main/image/T-Display-S3-AMOLED.jpg\" width=\"100\"\u003e                                                        |\n| TinyPICO Nano             | ! \u003cimg src=\"https://github.com/thelastoutpostworkshop/microcontroller_devkit/blob/main/gpio_viewer_1_5/devboards_images/TinyPICO-Nano.png\" width=\"100\"\u003e             | \u003cimg src=\"https://d2j6dbq0eux0bg.cloudfront.net/images/90477757/3788332370.jpg\" width=\"100\"\u003e                                                                                           |\n| TinyPico V3               | ! \u003cimg src=\"https://github.com/thelastoutpostworkshop/microcontroller_devkit/blob/main/gpio_viewer_1_5/devboards_images/TinyPico-V3.png\" width=\"100\"\u003e               | \u003cimg src=\"https://images.squarespace-cdn.com/content/v1/5c85d89877b903606126e6df/c4a98965-7415-414e-8358-339e3a0ce837/thumb-tinypico-v3_pinout_1200px.jpg?format=2500w\" width=\"100\"\u003e   |\n| TTGO Display V1.1         | ! \u003cimg src=\"https://github.com/thelastoutpostworkshop/microcontroller_devkit/blob/main/gpio_viewer_1_5/devboards_images/TTGO-Display-V1.1.png\" width=\"100\"\u003e         | \u003cimg src=\"https://uelectronics.com/wp-content/uploads/2020/10/Esquematico-TTGO-T-Display-ESP32-scaled.jpg\" width=\"100\"\u003e                                                                |\n| Wemos Lolin32 Lite V1     | ! \u003cimg src=\"https://github.com/thelastoutpostworkshop/microcontroller_devkit/blob/main/gpio_viewer_1_5/devboards_images/Wemos-Lolin32-Lite-V1.png\" width=\"100\"\u003e     | \u003cimg src=\"https://templates.blakadder.com/assets/device_images/wemos_LOLIN32_Lite_v1_pinout.webp\" width=\"100\"\u003e                                                                         |\n| Wemos Lolin S3 Mini       | ! \u003cimg src=\"https://github.com/thelastoutpostworkshop/microcontroller_devkit/blob/main/gpio_viewer_1_5/devboards_images/Wemos-Lolin-S3-Mini.png\" width=\"100\"\u003e       | \u003cimg src=\"https://universalsolder.b-cdn.net/wp-content/uploads/2023/05/26837-WEMOS-S3-Mini-ESP32-S3FH4R2-1.jpg\" width=\"100\"\u003e                                                           |\n| Wemos D1 Mini ESP32       | ! \u003cimg src=\"https://github.com/thelastoutpostworkshop/microcontroller_devkit/blob/main/gpio_viewer_1_5/devboards_images/Wemos-D1-Mini-ESP32.png\" width=\"100\"\u003e       | \u003cimg src=\"https://templates.blakadder.com/assets/device_images/wemos_D1_Mini_ESP32_pinout.webp\" width=\"100\"\u003e                                                                           |\n| Wemos D1 Mini ESP8266     | ! \u003cimg src=\"https://github.com/thelastoutpostworkshop/microcontroller_devkit/blob/main/gpio_viewer_1_5/devboards_images/Wemos-D1-Mini-ESP8266.png\" width=\"100\"\u003e     | \u003cimg src=\"https://edistechlab.com/wp-content/uploads/2021/04/WeMos-d1-mini-Pin-out.png\" width=\"100\"\u003e                                                                                   |\n| WT32-S1-ETH01             | ! \u003cimg src=\"https://github.com/thelastoutpostworkshop/microcontroller_devkit/blob/main/gpio_viewer_1_5/devboards_images/WT32-S1.png\" width=\"100\"\u003e                   | \u003cimg src=\"https://uelectronics.com/wp-content/uploads/2023/12/AR3833-WT32-ETH01-Placa-desarrollo-pinout.jpg\" width=\"100\"\u003e                                                              |\n| NodeMcu ESP8266           | ! \u003cimg src=\"https://github.com/thelastoutpostworkshop/microcontroller_devkit/blob/main/gpio_viewer_1_5/devboards_images/NodeMcu-ESP8266.png\" width=\"100\"\u003e           | \u003cimg src=\"https://i0.wp.com/randomnerdtutorials.com/wp-content/uploads/2019/05/ESP8266-NodeMCU-kit-12-E-pinout-gpio-pin.png?resize=817%2C542\u0026quality=100\u0026strip=all\u0026ssl=1\" width=\"100\"\u003e |\n| XIAO ESP32 C3             | ! \u003cimg src=\"https://github.com/thelastoutpostworkshop/microcontroller_devkit/blob/main/gpio_viewer_1_5/devboards_images/XIAO-ESP32-C3.png\" width=\"100\"\u003e             | \u003cimg src=\"https://files.seeedstudio.com/wiki/XIAO_WiFi/pin_map-2.png\" width=\"100\"\u003e                                                                                                     |\n| XIAO ESP32 S3             | ! \u003cimg src=\"https://github.com/thelastoutpostworkshop/microcontroller_devkit/blob/main/gpio_viewer_1_5/devboards_images/XIAO-ESP32-S3.png\" width=\"100\"\u003e             | \u003cimg src=\"https://cdn.cnx-software.com/wp-content/uploads/2023/03/XIAO-ESP32-S3-pinout-diagram.png?lossy=0\u0026strip=none\u0026ssl=1\" width=\"100\"\u003e                                              |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthelastoutpostworkshop%2Fgpio_viewer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthelastoutpostworkshop%2Fgpio_viewer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthelastoutpostworkshop%2Fgpio_viewer/lists"}