{"id":19502012,"url":"https://github.com/atomvm/atomgl","last_synced_at":"2025-04-25T23:31:18.411Z","repository":{"id":91775818,"uuid":"361150497","full_name":"atomvm/atomgl","owner":"atomvm","description":null,"archived":false,"fork":false,"pushed_at":"2024-08-19T21:50:40.000Z","size":250,"stargazers_count":7,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-08-20T01:51:55.083Z","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":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/atomvm.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":"2021-04-24T12:00:36.000Z","updated_at":"2024-08-19T22:03:07.000Z","dependencies_parsed_at":"2024-10-12T14:45:41.363Z","dependency_job_id":null,"html_url":"https://github.com/atomvm/atomgl","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/atomvm%2Fatomgl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atomvm%2Fatomgl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atomvm%2Fatomgl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atomvm%2Fatomgl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/atomvm","download_url":"https://codeload.github.com/atomvm/atomgl/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250912660,"owners_count":21506865,"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-11-10T22:14:51.400Z","updated_at":"2025-04-25T23:31:17.985Z","avatar_url":"https://github.com/atomvm.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!---\n  Copyright 2020-2024 Davide Bettio \u003cdavide@uninstall.it\u003e\n\n  SPDX-License-Identifier: Apache-2.0\n--\u003e\n\n# AtomGL\n\nAtomGL is a display driver for a number of different display models and technologies.\n\nThis component is not meant for being used directly, instead an additional layer should take care of\npushing updates to it. For this reason no additional NIFs are provided.\n\n**Please, use this component with a supported AtomVM version, such as v0.6.**\n\n## Supported Hardware\n\n* `ilitek,ili9341` / `ilitek,ili9342c`: ILI9341 / ILI9342c: 240x320, 16 bit colors, supported\n* `waveshare,5in65-acep-7c`: Waveshare 7-color 5.65\" ACeP display module: 600x480, 7 colors +\nsoftware dithering\n* `sharp,memory-lcd`: Sharp Memory LCDs: 400x240 1-bit monochromatic\n* `solomon-systech,ssd1306`: Solomon Systech SSD1306: 128x64 1-bit monochromatic\n* `sino-wealth,sh1106`: Sino Wealth SH1106: 128x64 1-bit monochromatic\n\n[SDL Linux display](sdl_display/) is also supported and can be built as AtomVM plugin.\n\n## Getting Started\n\n1. Add this component to the ESP32 components directory\n2. Open a display port using the right options\n3. Start an [avm_scene](https://github.com/atomvm/avm_scene) that will push updates to the display\n\n### Display Option Example\n\nThe following is an example for ILI9341:\n\n```elixir\n  [...]\n  # spi is already open\n\n  ili_display_opts = [\n    width: 320,\n    height: 240,\n    compatible: \"ilitek,ili9341\",\n    reset: 18,\n    cs: 22,\n    dc: 21,\n    backlight: 5,\n    backlight_active: :low,\n    backlight_enabled: true,\n    rotation: 1,\n    enable_tft_invon: false,\n    spi_host: spi\n  ]\n\n  :erlang.open_port({:spawn, \"display\"}, display_opts)\n  [...]\n```\n\n## Primitives\n\nThe display driver takes care of drawing a list of primitive items. Such as:\n\n```elixir\n    rendered = [\n      {:text, 10, 20, :default16px, 0x000000, 0x808080, \"Hello.\"},\n      {:rect, 0, 0, width, height, 0x808080}\n    ]\n```\n\nFollowing primitives are supported:\n* image\n* scaled_cropped_image\n* rect\n* text\n\nSee also [documentation](docs/primitives.md) for more information.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fatomvm%2Fatomgl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fatomvm%2Fatomgl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fatomvm%2Fatomgl/lists"}