{"id":41769823,"url":"https://github.com/fortuna/esphomecollection","last_synced_at":"2026-01-25T03:02:37.811Z","repository":{"id":292280668,"uuid":"980380415","full_name":"fortuna/ESPHomeCollection","owner":"fortuna","description":"Collection of ESPHome YAML definitions for various boards and dev kits","archived":false,"fork":false,"pushed_at":"2025-08-20T03:53:17.000Z","size":2332,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-08-20T05:42:27.539Z","etag":null,"topics":["esp32","esp32-c3","esp32-c6","esp32-s3","esphome","m5stack-atom-echo"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fortuna.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}},"created_at":"2025-05-09T03:17:46.000Z","updated_at":"2025-08-20T03:53:20.000Z","dependencies_parsed_at":"2025-08-20T05:30:30.323Z","dependency_job_id":"68dda6cc-f995-4cbd-a3e7-967fe5d75b47","html_url":"https://github.com/fortuna/ESPHomeCollection","commit_stats":null,"previous_names":["fortuna/esphomecollection"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/fortuna/ESPHomeCollection","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fortuna%2FESPHomeCollection","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fortuna%2FESPHomeCollection/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fortuna%2FESPHomeCollection/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fortuna%2FESPHomeCollection/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fortuna","download_url":"https://codeload.github.com/fortuna/ESPHomeCollection/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fortuna%2FESPHomeCollection/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28742973,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-25T02:46:29.005Z","status":"ssl_error","status_checked_at":"2026-01-25T02:44:29.968Z","response_time":113,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6: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":["esp32","esp32-c3","esp32-c6","esp32-s3","esphome","m5stack-atom-echo"],"created_at":"2026-01-25T03:02:37.344Z","updated_at":"2026-01-25T03:02:37.795Z","avatar_url":"https://github.com/fortuna.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# ESPHomeCollection\n\nReusable, hardware-only ESPHome board definitions with simple demos. Keep hardware definition minimal and separate from application logic so users can compose clean projects.\n\n## Available Boards\n\nAll board configurations are in the [`boards` directory](./boards/). Each board will be in a `boards/\u003cboard-slug\u003e/` directory, with at least:\n\n  * `board.yaml`: the hardware definition. No application logic, automation, api or wifi provisioning. \n  * `demo.yaml`: a simple firmware that illustrates and exercises the board components.\n\nThe board slug is lowercase, hyphenated (e.g., `esp32-s3-box-3`, `esp32-c3-devkitm-1`).\n\n\n## Usage\n\nTo use a board definition in your own project, include them as a package like this:\n\n```yaml\npackages:\n  board: github://fortuna/ESPHomeCollection/boards/esp32-s3-box-3/board.yaml@main\n```\n\nReplace `esp32-s3-box-3` with the directory name of the board you want to use.\n\nIt's recommended to replace `@main` with a specific commit, in order to avoid breakages\nfrom possibly backwards-imcompatible changes.\n\nSee [ESPHome Packages] for details on how package imports work.\n\n[ESPHome Packages]: https://esphome.io/components/packages.html\n\n## Trying out the demos\n\nEach board has a `demo.yaml` config for a demo application that exercises the board definition.\nYou can run with the command below after you clone the repository:\n\n```sh\nesphome run ./boards/${BOARD}/demo.yaml\n```\n\nIf you don't want to explicitly clone the repository, create a local file (e.g. `demo.yaml`), where the entire content is the import of the demo:\n\n```yaml\n# demo.yaml\npackages:\n  board: github://fortuna/ESPHomeCollection/boards/esp32-s3-box-3/demo.yaml@main\n```\n\nAgain, replace `esp32-s3-box-3` with the directory name of the demo you want to run.\n\nThen run it from your local file. For example:\n\n```sh\nesphome run ./demo.yaml\n```\n\n## Development\n\nContributions of new boards are welcome.\n\n### Install the tooling\n\n```sh\npip install esphome yamllint\n```\n\nYou may need to use `pip3` or `pipx` depending on your system.\n\nOn macOS, if you have [Homebrew installed](https://brew.sh/), use:\n\n```sh\nbrew install esphome yamllint\n```\n\n### Add a new board\n\n1. **Create folder**: `boards/\u003cboard-slug\u003e/`, where `\u003coard-slug\u003e` is lowercase, hyphenated (e.g., `esp32-s3-box-3`, `esp32-c3-devkitm-1`).\n1. **Author `board.yaml`** (hardware only):\n    * No `esphome:` entry.\n    * No `wifi:`, `api`, `ota`, `logger`, etc.\n    * `esp32:` block set for the exact devkit and `esp-idf` framework, for example:\n      ```yaml\n      esp32:\n        board: esp32-c3-devkitm-1\n        framework:\n          type: esp-idf\n      ```\n    * Define all the harware components (pins, buses, sensors, displays, audio, etc)\n    * **No app logic**, including logging and automations.\n\n1. **Author `demo.yaml`** (minimal, friendly):\n    * Include the board and add the `esphome` and `logger` blocks:\n\n      ```yaml\n      packages:\n        board: !include ./board.yaml\n\n      esphome:\n        name: board-demo\n        friendly_name: Board Demo\n\n      logger:\n        level: DEBUG\n      ```\n    * Include minimal features to exercise hardware. Try to exercise all hardware components if possible. No `wifi`.\n\n1. **Run checks**\n    * Run linter:\n      ```sh\n      yamllint boards/\u003cboard\u003e\n      ```\n      The YAML style is defined in [.yamllint](./.yamllint).\n\n    * Build:\n      ```sh\n      esphome compile boards/\u003cboard\u003e/demo.yaml\n      ```\n      This must use the `demo.yaml` because the board config is incomplete.\n\n1. Flash it into an actual device to verify it works.\n      ```sh\n      esphome run boards/\u003cboard\u003e/demo.yaml\n      ```\n\n   \u003c!-- 1. **Docs**:\n   * Update **README** “Available Boards” with the new directory and a one-line description. --\u003e\n\n1. **Submit PR**:\n   * Title: `[board] \u003cboard-slug\u003e: add board + demo`\n   * Ensure the tests pass.\n\nNote: You can quickly validate all configs and lint them in one command:\n\n```sh\nesphome config boards/*/demo.yaml \u0026\u0026 yamllint .\n```\n\nTo build all the boards, it's recommended to set up a build cache:\n```sh\nexport PLATFORMIO_BUILD_CACHE_DIR=/tmp/esphome_cache\nesphome build boards/*/demo.yaml\n```\n\n### Clean up\n\nTo remove the generated files\n\n```sh\nrm -rf boards/*/{.esphome,.gitignore}\n```\n\n## TODO\n  - Add ESP32-C6 dev board\n  - Create nice index table\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffortuna%2Fesphomecollection","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffortuna%2Fesphomecollection","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffortuna%2Fesphomecollection/lists"}