{"id":13802157,"url":"https://github.com/peterhinch/micropython_ra8875","last_synced_at":"2025-07-04T05:05:53.073Z","repository":{"id":86072682,"uuid":"201041688","full_name":"peterhinch/micropython_ra8875","owner":"peterhinch","description":"MicroPython device driver and nano-GUI for RA8875 based displays","archived":false,"fork":false,"pushed_at":"2021-04-16T13:13:46.000Z","size":2493,"stargazers_count":9,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-08-05T00:07:04.619Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/peterhinch.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}},"created_at":"2019-08-07T12:01:22.000Z","updated_at":"2024-05-24T00:18:32.000Z","dependencies_parsed_at":"2023-04-26T11:47:59.663Z","dependency_job_id":null,"html_url":"https://github.com/peterhinch/micropython_ra8875","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peterhinch%2Fmicropython_ra8875","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peterhinch%2Fmicropython_ra8875/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peterhinch%2Fmicropython_ra8875/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peterhinch%2Fmicropython_ra8875/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/peterhinch","download_url":"https://codeload.github.com/peterhinch/micropython_ra8875/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224215504,"owners_count":17274798,"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":[],"created_at":"2024-08-04T00:01:37.694Z","updated_at":"2024-11-12T04:21:09.677Z","avatar_url":"https://github.com/peterhinch.png","language":"Python","funding_links":[],"categories":["Libraries"],"sub_categories":["Display"],"readme":"# Using large displays with MicroPython devices\n\nThere is an existing solution for displays based on the SSD1963 controller and\nXPT2046 touch controller. This [detailed here](https://github.com/peterhinch/micropython-tft-gui),\nuses a parallel interface. This interface combined with the highly optimised\ndevice driver written by Robert Hammelrath, delivers very high performance at\nthe cost of requiring a large number of interface pins. It is STM (e.g. Pyboard)\nspecific.\n\nThis repository offers an alternative for displays based on the RA8875\ncontroller. The driver configures this to use SPI to reduce the pin count to\nfive. The driver and GUI should be portable to any MicroPython target which\nsupports the `@micropython.viper` decorator.\n\nThere is a performance cost in using SPI, notably in the rendering of text. In\nthe context of the GUI and typical machine control and sensor display\napplications, visual performance in handling updates is good. When drawing a\ncomplete screen there is a visible lag notably on text-heavy screens.\n\nThe GUI is targeted at hardware control and sensor display applications. GUI\nobjects are drawn using graphics primitives rather than by rendering bitmap\nimages. This takes advantage of the RA8875 hardware rendering of graphics\nprimitives and ensures that controls are scalable. The API is via event driven\ncallbacks.\n\nThe GUI uses `uasyncio` for scheduling and has been tested on Pyboard V1.1 and\non Pyboard D. It has been updated for uasyncio V3 which is built-in to daily\nbuilds and will be included in release builds from V1.13. No knowledge of\n`uasyncio` is required to develop applications for the GUI.\n\nSupported hardware from Adafruit:  \n[Controller board](https://www.adafruit.com/product/1590)  \n[4.3 inch 480x272 TFT display](https://www.adafruit.com/product/1591)  \n[5 inch 800x480 TFT](https://www.adafruit.com/product/1596)  \n[7 inch 800x480 TFT](https://www.adafruit.com/product/2354)\n\nNon-Adafruit display hardware may or may not work: the detailed hardware\nspecifications for displays may vary, requiring corresponding changes to the\ndevice driver code. I am unlikely to be able to support this.\n\nMost users will require only the following:  \n## [GUI document](docs/GUI.md).\n\nDevice driver documentation is [here](docs/DRIVER.md). A sample image of the\n4.3 inch display:\n\n![Horizontal sliders](./docs/horiz_slider_2.JPG)\n\n## [Further images](./docs/IMAGES.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpeterhinch%2Fmicropython_ra8875","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpeterhinch%2Fmicropython_ra8875","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpeterhinch%2Fmicropython_ra8875/lists"}