{"id":15163223,"url":"https://github.com/elmot/esp32-blockly-display","last_synced_at":"2026-01-21T01:32:07.054Z","repository":{"id":238985228,"uuid":"795155422","full_name":"elmot/esp32-blockly-display","owner":"elmot","description":"micropython + html + mqtt + blockly + m5spamp-c3u + Sparkfun Alphanumeric display = fun","archived":false,"fork":false,"pushed_at":"2024-06-22T19:29:24.000Z","size":1716,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-08T09:48:50.606Z","etag":null,"topics":["blockly","emqx","esp32","esp32c3","led","m5stamp-c3u","micropython","mqtt","mqtt-client","sparkfun"],"latest_commit_sha":null,"homepage":"https://www.elmot.xyz/esp32-blockly-display/","language":"Python","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/elmot.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}},"created_at":"2024-05-02T17:32:39.000Z","updated_at":"2024-06-22T19:29:27.000Z","dependencies_parsed_at":"2024-06-23T02:22:05.072Z","dependency_job_id":"ae658c15-2a79-40b9-ad64-c6bc7345ca42","html_url":"https://github.com/elmot/esp32-blockly-display","commit_stats":{"total_commits":40,"total_committers":1,"mean_commits":40.0,"dds":0.0,"last_synced_commit":"aa0ccce4a13f17e62c4720c01feabdbe1704f03f"},"previous_names":["elmot/esp32-blockly-display"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/elmot/esp32-blockly-display","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elmot%2Fesp32-blockly-display","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elmot%2Fesp32-blockly-display/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elmot%2Fesp32-blockly-display/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elmot%2Fesp32-blockly-display/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/elmot","download_url":"https://codeload.github.com/elmot/esp32-blockly-display/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elmot%2Fesp32-blockly-display/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28621627,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-20T23:49:58.628Z","status":"ssl_error","status_checked_at":"2026-01-20T23:47:29.996Z","response_time":117,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["blockly","emqx","esp32","esp32c3","led","m5stamp-c3u","micropython","mqtt","mqtt-client","sparkfun"],"created_at":"2024-09-27T02:21:38.327Z","updated_at":"2026-01-21T01:32:07.027Z","avatar_url":"https://github.com/elmot.png","language":"Python","readme":"4-Letter 14-Segment indicator toy\n====\n\n\u003cimg src=\"docs/img_a.png\"  style=\"width:30%\" alt=\"device view\"/\u003e\n\u003cimg src=\"docs/screenshot_a.png\"  style=\"width:45%\" alt=\"screenshot\"/\u003e\n\n\nHardware\n----\n\n* [M5 Stamp-C3U](https://docs.m5stack.com/en/core/stamp_c3u) - ESP32-C3 MCU module\n* [SparkFun Qwiic Alphanumeric Display - Blue](https://www.sparkfun.com/products/16917)\n* [Grove to STEMMA QT / Qwiic / JST SH Cable - 100mm long](https://www.adafruit.com/product/4528)\n\nSoftware \u0026 SaaS services\n----\n* [PyCharm](https://www.jetbrains.com/pycharm/) \n* [MicroPython plugin](https://plugins.jetbrains.com/plugin/9777-micropython)\n* [Google Blockly](https://developers.google.com/blockly) is used to edit and run display programs online.\n   * The blocks are converted to JavaScript code to be run in the browser window\n   * The blocks are converted to MicroPython code to be run on MCU side\n* [GitHub pages](https://pages.github.com/) hosts the web part\n* [EMQ Free Public MQTT Broker](https://broker.emqx.io) helps to exchange data between web- and hardware- part\n* [MicroPython](https://micropython.org/) is run on the ESP32 MCU and handles both the display and MQTT connection\n* [HT16K33 Python driver](https://github.com/smittytone/HT16K33-Python)\n* [micropython-mqtt](https://github.com/peterhinch/micropython-mqtt)\n\nHow2Run\n----\n1. Solder the Grove connector (shipped with the module) to M5 Stamp-C3U *Port A*\n2. Connect the display module to the MCU module\n3. Connect the MCU module to your computer with USB cable. A COM port should appear\n4. Flash latest [MicroPython](https://micropython.org/download/ESP32_GENERIC_C3/) to the MCU module. \n[JS ESPTool](https://espressif.github.io/esptool-js/) is a handy tool for it. \nNote that *.bin* file should be flashed at address *0x0000*\n5. Create a (free) account at a public MQTT broker (ex https://www.hivemq.com/, https://www.emqx.io/) \n6. Create your own cloud MQTT broker\n7. Create an MQTT user. **NB! Create a strong password and keep it well, otherwise your WLAN may be hacked!**\n8. Write your own *SECRETS.py* file based on the template [secrets_template.py](micropython/src/SECRETS_template.py).\nThere should be your specific Wi-Fi SSID, Wi-Fi password, and MQTT lo. \n9. Upload newly created *SECRETS.py* to the MCU module filesystem. \nYou may use either \n[PyCharm](https://www.jetbrains.com/pycharm/) with \n[MicroPython plugin](https://plugins.jetbrains.com/plugin/9777-micropython), \n[Thonny](https://thonny.org/), or [mpremote](https://docs.micropython.org/en/latest/reference/mpremote.html)\n10. Upload [MicroPython code](micropython) to the MCU board. The tools are above\n11. Reboot the board\n12. Open [elmot.xyz/esp32-blockly-display/](https://www.elmot.xyz/esp32-blockly-display/)\n13. Click gear icon and enter your MQTT parameters, same as in MicroPython part\n14. If everything is done correctly, The board connects to the MQTT broker \n    * Wi-Fi sign on the web page turns to be dark green\n    * On-Board LED turns green after several seconds \n\nOn-board led statuses\n----\n* Blue blinking =\u003e Wi-Fi connection in progress\n* Red steady =\u003e Wi-Fi connection failed\n* Yellow steady =\u003e MQTT connection in progress\n* Green steady =\u003e MQTT connection established\n\nTechnical details\n----\nBlocks are stored to browser's [local storage](https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage).\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felmot%2Fesp32-blockly-display","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Felmot%2Fesp32-blockly-display","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felmot%2Fesp32-blockly-display/lists"}