{"id":31640285,"url":"https://github.com/zevv/zoiadpy","last_synced_at":"2026-05-17T02:39:01.730Z","repository":{"id":301767595,"uuid":"1008380528","full_name":"zevv/zoiadpy","owner":"zevv","description":"External display for Empress Zoia","archived":false,"fork":false,"pushed_at":"2025-07-05T11:50:52.000Z","size":3567,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-04-23T14:01:08.996Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zevv.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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-06-25T13:04:10.000Z","updated_at":"2025-09-02T16:18:30.000Z","dependencies_parsed_at":"2025-06-28T18:44:33.835Z","dependency_job_id":null,"html_url":"https://github.com/zevv/zoiadpy","commit_stats":null,"previous_names":["zevv/zoiadpy"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/zevv/zoiadpy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zevv%2Fzoiadpy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zevv%2Fzoiadpy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zevv%2Fzoiadpy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zevv%2Fzoiadpy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zevv","download_url":"https://codeload.github.com/zevv/zoiadpy/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zevv%2Fzoiadpy/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33125385,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-16T18:38:32.183Z","status":"online","status_checked_at":"2026-05-17T02:00:05.366Z","response_time":107,"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":[],"created_at":"2025-10-07T02:21:40.154Z","updated_at":"2026-05-17T02:39:01.718Z","avatar_url":"https://github.com/zevv.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# Experimental external display for the Empress Zoia\n\nThe repo holds the source code and schematics/pcb design for an external\ndisplay for the Zoia. The Zoia comes with a screen so small you can cover it\nwith the tip of your pinky. This is barely usable when prgramming the Zoia on\nyour couch, but totally useless on stage when changing programs or parameters.\n\n![my-screen](img/my-screen.jpg)\n\nThis external display hooks onto the SPI bus between the Zoia en the tiny OLED\ndisplay and sniffs the screen contents when the display is updated. The screen\nis upscaled to 480x320 resolution and sent to a second larger display.\n\nThe Zoia luckily exposes the OLED SPI on a friendly 2.54mm header row, so\nanyone with basic soldering skills should be able to connect some wires to\nthese and feed them out of the box. I used a retro style DB9 type connector\nfor this myself, as this happened to be available in my parts drawer. You\nneed 5 wires in total, so any connector with enough pins should do:\n\n- GND\n- VCC\n- MOSI\n- CLK\n- CS\n\n# Disclaimer\n\nI love this little project for me personally, but I do not recommend others to\ngo hack their Zoia: you will surely void the warranty of your box, and it is\nvery possible it will break in the process of adding the screen. Do not\ncomplain to me when this happens.\n\n\n# Software\n\nNot too complicated: ESP32 has a bunch of SPI busses and supports both master\nand slave mode. The OLED SPI is running in slave mode and handles all SPI\ntransfers of exactly 1024 bytes, as these contain the full updated screen data.\nAll other SPI transfers are simply ignored, as these contain the usual setup\nparameters for the display.\n\nThe second SPI runs in master mode and drives an ILI4822 type TFT display which\nI happened to have lying around. Although this is a full color display, it's\ndriven in 3 bits per pixel mode only to allow the big screen to keep up with\nthe OLED frame rate.\n\n\n# Hardware\n\nKicad schematics and PCB design are available, but I have not yet produced this\nas I'm happy to run on my current prototype hardware. I'm sure these are mostly\nok but someone will have to actually build and test these to make sure. I might\ndo this one day.\n\n![pcb](sch/zoiadpy.jpg)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzevv%2Fzoiadpy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzevv%2Fzoiadpy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzevv%2Fzoiadpy/lists"}