{"id":50718095,"url":"https://github.com/litomore/cola-m5","last_synced_at":"2026-06-15T01:01:27.023Z","repository":{"id":363334569,"uuid":"1262569376","full_name":"LitoMore/cola-m5","owner":"LitoMore","description":"Connect M5Stack devices to Cola","archived":false,"fork":false,"pushed_at":"2026-06-11T10:56:17.000Z","size":80,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-12T23:22:56.292Z","etag":null,"topics":["ai-agent","cola-plugin","colaos","esp32","m5stack"],"latest_commit_sha":null,"homepage":"","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/LitoMore.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":"2026-06-08T05:38:31.000Z","updated_at":"2026-06-11T10:56:24.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/LitoMore/cola-m5","commit_stats":null,"previous_names":["litomore/cola-m5"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/LitoMore/cola-m5","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LitoMore%2Fcola-m5","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LitoMore%2Fcola-m5/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LitoMore%2Fcola-m5/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LitoMore%2Fcola-m5/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LitoMore","download_url":"https://codeload.github.com/LitoMore/cola-m5/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LitoMore%2Fcola-m5/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34304629,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-13T02:00:06.617Z","response_time":62,"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":["ai-agent","cola-plugin","colaos","esp32","m5stack"],"created_at":"2026-06-09T20:31:54.328Z","updated_at":"2026-06-14T00:01:44.867Z","avatar_url":"https://github.com/LitoMore.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# cola-m5\n\nConnect M5Stack devices to [Cola](https://colaos.ai).\n\n\u003cp align=\"center\"\u003e\u003cimg width=\"400\" src=\"./assets/m5stack-cardputer.webp\" /\u003e\u003c/p\u003e\n\n\u003e [!NOTE]\\\n\u003e This project is still in early development and may have limited functionality or stability.\n\u003e All features and configuration options are subject to change.\n\nThis repository has two parts:\n\n- `plugin/`: the Cola plugin that runs on the computer with Cola.\n- `firmware/cardputer/`: the first M5Stack firmware target, for Cardputer.\n\nThe current transport is local Wi-Fi with WebSocket:\n\n```text\nM5Stack device \u003c-\u003e cola-m5 plugin \u003c-\u003e Cola\n```\n\nThe protocol is intentionally model-agnostic so more M5Stack devices can be added later.\n\n## Layout\n\n```text\ncola-m5/\n  plugin/\n    src/index.ts\n  firmware/\n    cardputer/\n      platformio.ini\n      src/main.cpp\n      include/config.example.h\n  docs/\n    protocol.md\n```\n\n## Install the Cola plugin\n\nBuild the plugin:\n\n```bash\nnpm install\nnpm run build\n```\n\nThen install the local `plugin/` directory in Cola's plugin settings.\n\nThe plugin exposes a channel named `M5Stack` and listens on port `8787` by default. If your local network needs a different port, change it in the channel config.\n\nTo find the LAN IP for the Cardputer firmware, run one of these on the computer running Cola:\n\n```bash\nipconfig getifaddr en0\nipconfig getifaddr en1\n```\n\n## Flash the Cardputer firmware\n\nInstall PlatformIO first:\n\n```bash\npython3 -m pip install platformio\n```\n\nThen create a local firmware config:\n\n```bash\ncp firmware/cardputer/include/config.example.h firmware/cardputer/include/config.h\n```\n\nEdit `firmware/cardputer/include/config.h`:\n\n```cpp\n#define WIFI_SSID \"Your Wi-Fi\"\n#define WIFI_PASSWORD \"Your Wi-Fi password\"\n#define COLA_HOST \"192.168.1.23\"\n#define COLA_PORT 8787\n#define DEVICE_ID \"m5-cardputer-01\"\n```\n\n`COLA_HOST` should be the LAN IP of the computer running Cola. The computer and Cardputer must be on the same Wi-Fi.\n`config.h` is ignored by git because it contains local Wi-Fi settings.\n\nConnect the Cardputer over USB-C. If upload fails, put it into download mode:\n\n1. Set the top power switch to `OFF`.\n2. Hold `G0`.\n3. Plug in USB-C.\n4. Release `G0`.\n\nUpload:\n\n```bash\ncd firmware/cardputer\npio run -t upload\n```\n\nOpen the serial monitor:\n\n```bash\npio device monitor\n```\n\n## Usage\n\nAfter the firmware boots:\n\n1. Wait until the screen shows that Wi-Fi and Cola are connected.\n2. Type a message on the Cardputer keyboard.\n3. Press `Enter` to send it to Cola.\n\nCola replies are rendered on the Cardputer screen.\n\n## Notes\n\nThe first version auto-binds device identities in the Cola plugin to keep hardware development fast. Before using this on an untrusted network, add a pairing token or another auth flow.\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flitomore%2Fcola-m5","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flitomore%2Fcola-m5","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flitomore%2Fcola-m5/lists"}