{"id":13807463,"url":"https://github.com/stcarrez/stm32-ui","last_synced_at":"2025-06-16T07:05:17.342Z","repository":{"id":88796832,"uuid":"159051779","full_name":"stcarrez/stm32-ui","owner":"stcarrez","description":"STM32 UI library and tools","archived":false,"fork":false,"pushed_at":"2018-12-02T16:43:38.000Z","size":1952,"stargazers_count":4,"open_issues_count":0,"forks_count":1,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-01-15T07:09:17.749Z","etag":null,"topics":["ada","display","display-manager","stm32","ui"],"latest_commit_sha":null,"homepage":null,"language":"Ada","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/stcarrez.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}},"created_at":"2018-11-25T16:29:46.000Z","updated_at":"2022-11-01T14:41:11.000Z","dependencies_parsed_at":"2023-06-12T16:00:12.389Z","dependency_job_id":null,"html_url":"https://github.com/stcarrez/stm32-ui","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/stcarrez%2Fstm32-ui","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stcarrez%2Fstm32-ui/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stcarrez%2Fstm32-ui/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stcarrez%2Fstm32-ui/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stcarrez","download_url":"https://codeload.github.com/stcarrez/stm32-ui/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241924438,"owners_count":20043216,"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":["ada","display","display-manager","stm32","ui"],"created_at":"2024-08-04T01:01:25.740Z","updated_at":"2025-03-04T21:28:59.263Z","avatar_url":"https://github.com/stcarrez.png","language":"Ada","funding_links":[],"categories":["Hardware and Embedded"],"sub_categories":["Libraries"],"readme":"# STM32 UI Library\n\n[![Build Status](https://img.shields.io/jenkins/s/http/jenkins.vacs.fr/stm32-ui.svg)](http://jenkins.vacs.fr/job/stm32-ui/)\n[![License](http://img.shields.io/badge/license-APACHE2-blue.svg)](LICENSE)\n![Commits](https://img.shields.io/github/commits-since/stcarrez/stm32-ui/1.0.0.svg)\n\nSTM32 UI provides a set of Ada packages to help in writing graphical\napplication on STM32F746, STM32F769 boards.  Several packages have\nbeen created from two other projects: [EtherScope](https://github.com/stcarrez/etherscope.git)\nand then [Hestia](https://github.com/stcarrez/hestia.git).\nSince then, the UI part of these two projects has been integrated in this separate\nproject with the hope that it could be more easily re-used.\n\nThe UI packages provided by STM32 UI are intended to help in:\n\n* Managing touch buttons on the touch screen,\n* Display graphs (see [EtherScope](https://github.com/stcarrez/etherscope.git)),\n* Display clocks,\n* Display GIF images\n\nThe STM32 UI library uses the following GitHub projects:\n\n* Ada_Drivers_Library   https://github.com/AdaCore/Ada_Drivers_Library.git\n\nYou will also need the GNAT Ada compiler for ARM available at http://libre.adacore.com/\n\n# Build\n\n## STM32F746\n\n```shell\n  configure --with-board=stm32f746\n```\n\n## STM32F769\n\n```shell\n  configure --with-board=stm32f769\n```\n\n## Build\n\nRun the command:\n\n```shell\n  make\n```\n\n## Building the tools\n\nThe `tools` directory contains two tools that can help in some projects.\nThese tools are written in Ada and must be built by using the host GNAT Ada compiler\nas follows\n\n```shell\n  cd tools \u0026\u0026 gprbuild -Ptools -p\n```\n\nThe `cosin` tool is a sinus/cosinus table generation that generated the\n`src/cosin_table.ads` package.\n\nThe `gif2ada` tool is the tool that reads a GIF image and generates an Ada\npackage specification which can be used in programs together with the\n`UI.Images.Draw_Image` procedure.\n\n# Gallery demo\n\nThe gallery demo displays a set of GIF pictures on the screen.\nYou can install it with the command:\n\n```shell\n  make flash-gallery\n```\n\nYou can put your own images by using the `make-gallery-pics.sh` script\nand the `gif2ada` tool.  You can put up to 9 pictures.  The input images\ncan be of any format and any size.  They are resized to a 480x272 form\nand converted to GIF.  The converted image is then used to generate\nAda package specifications that contains selected parts of the GIF file.\n\n```shell\n  sh make-gallery-pics.sh img1.png img2.jpg img3.jpg\n```\n\nAfter updating the pictures, you have to re-build the demos and flash\nthe new binary:\n\n```shell\n make\n make flash-gallery\n```\n\n![](https://github.com/stcarrez/stm32-ui/wiki/images/stm32-ui-ada-lovelace.jpg)\n![](https://github.com/stcarrez/stm32-ui/wiki/images/stm32-ui-makewithada.jpg)\n\n# Graphs demo\n\nThe graphs demo illustrates how the `UI.Graphs` generic package can be used\nto display various graphs on the screen.\nYou can install it with the command:\n\n```shell\n  make flash-graphs\n```\n\nThe `UI.Graphs` package must be instantiated with the integer data type you want to graph.\nIt then provides a `Data_Type` protected object that holds the data values and a\n`Graph_Type` object that allows to display them on the screen.  Data samples must be added\nat a periodic rate through the `Add_Sample` procedure.  The graph itself is displayed\nby using the `Draw` procedure.  Adding new samples and displaying them may be performed\nfrom different tasks.\n\n![](https://github.com/stcarrez/stm32-ui/wiki/images/stm32-ui-graphs.jpg)\n\n# Clock demo\n\nThe clock demo shows a 12 hour clock to demonstrate the use of `UI.Clock` package\noperations.  It uses the RTC clock provided by the STM32 board.\nYou can install it with the command:\n\n```shell\n  make flash-clock\n```\n\n![](https://github.com/stcarrez/stm32-ui/wiki/images/stm32-ui-clock.jpg)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstcarrez%2Fstm32-ui","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstcarrez%2Fstm32-ui","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstcarrez%2Fstm32-ui/lists"}