{"id":13343770,"url":"https://github.com/faritka/zephyr-ht1632c","last_synced_at":"2025-03-12T06:30:28.450Z","repository":{"id":97407465,"uuid":"385389090","full_name":"faritka/zephyr-ht1632c","owner":"faritka","description":"HT1632C video display driver for Zephyr Project","archived":false,"fork":false,"pushed_at":"2021-07-30T18:24:27.000Z","size":29,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-10-24T16:49:17.052Z","etag":null,"topics":["ht1632","ht1632c","stm32","zephyr","zephyr-rtos"],"latest_commit_sha":null,"homepage":"http://hobby.farit.ru/ht1632-driver-rtos-zephyr-nucleo-stm32/","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/faritka.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-07-12T21:34:03.000Z","updated_at":"2023-11-26T22:08:06.000Z","dependencies_parsed_at":"2023-03-04T05:45:34.837Z","dependency_job_id":null,"html_url":"https://github.com/faritka/zephyr-ht1632c","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/faritka%2Fzephyr-ht1632c","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/faritka%2Fzephyr-ht1632c/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/faritka%2Fzephyr-ht1632c/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/faritka%2Fzephyr-ht1632c/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/faritka","download_url":"https://codeload.github.com/faritka/zephyr-ht1632c/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243171367,"owners_count":20247876,"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":["ht1632","ht1632c","stm32","zephyr","zephyr-rtos"],"created_at":"2024-07-29T19:32:00.764Z","updated_at":"2025-03-12T06:30:28.431Z","avatar_url":"https://github.com/faritka.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# RTOS Zephyr Project Holtek HT1632C display driver\n\nThis repository contains a display driver for the Holtek HT1632C and HT1632D LED chips for RTOS Zephyr.\n\nThe HT1632C chip has built-in display RAM and all circuitry required to drive LEDs. \nIt also has some advanced features such as PWM brightness control (applied to the entire LED array, not individual LEDs), \nblinking mode and low-power mode. The interface to HT1632 is what is described as “SPI-like” and requires only 4 wires – CS (chip select), \nWR (write clock), RD (read clock) and DATA (serial data). \nUnlike real SPI, the interface has separate clock lines for read and write and bi-directional data line.\n\nThe HT1632C driver implements the bit-banging 3-wire protocol using 3 GPIO lines. \nIt supports only writing and only 1 HT1632C chip. \n\nYou create a matrix of pixels with an array of 32 8-bit or 24 16-bit words in your application. \nThen, you set individual bits by copying characters, graphics, etc. \nThe coordinates start from the top left.\nEventually, you send the matrix to the driver, and it transfers the matrix into the HT1632C chip.\n\nCascading support can be added into the driver by coding additional CS lines.\n\n## Getting Started\n\nBefore getting started, make sure you have a proper Zephyr development\nenvironment. You can follow the official\n[Zephyr Getting Started Guide](https://docs.zephyrproject.org/latest/getting_started/index.html).\n\n### Documentation\n\n[Writing HT1632 driver for RTOS Zephyr and Nucleo STM32](http://hobby.farit.ru/ht1632-driver-rtos-zephyr-nucleo-stm32/).\n\n### Initialization\n\nThe first step is to initialize the workspace folder (``my-workspace``) where\nthe ``ht1632c`` and all Zephyr modules will be cloned. You can do\nthat by running:\n\n```shell\n# initialize my-workspace for the ht1632c application (main branch)\nwest init -m https://github.com/faritka/zephyr-ht1632c --mr main my-workspace\n# update Zephyr modules\ncd my-workspace\nwest update\n```\n\n### Configuration\n\nRename the sample overlay file `app/boards/nucleo_l452re.overlay` to `$BOARD.overlay`\nwhere `$BOARD` is your target board.\n\nChange the CS, WE, DATA pins in the overlay file to your liking.\nBy default, the CS pin is connected to PB3, the WR pin to PB5, the DATA pin to PB4 on a Nucleo STM32 board.\n\nThe commons-options is for different configurations:\n```shell\n0x00: N-MOS  opendrain output and 8 common option\n0x01: N-MOS  opendrain  output  and  16 common option\n0x10: P-MOS  opendrain output and 8 common option\n0x11: P-MOS  opendrain  output  and  16 common option\n```\n\n```shell\n/ {\n    ht1632c {\n        compatible = \"holtek,ht1632c\";\n        label = \"HT1632C\";\n        cs-gpios = \u003c\u0026gpiob 3 0\u003e;\n        wr-gpios = \u003c\u0026gpiob 5 0\u003e;\n        data-gpios = \u003c\u0026gpiob 4 0\u003e;\n        commons-options = \u003c0x00\u003e;\n    };\n};\n```\n\nA testing program is provided in `app/src/main.c`.\n\nChange CONFIG_PM and CONFIG_PM_DEVICE to `y` in `app/prj.conf` to enable power management.\n\n### Build \u0026 Run\n\nThe application can be built by running:\n\n```shell\nwest build -b $BOARD -s app\n```\n\nwhere `$BOARD` is the target board.\n\nOnce you have built the application you can flash it by running:\n\n```shell\nwest flash\n```\n\n![HT1632C and Nucleo STM32](http://hobby.farit.ru/wp-content/uploads/2021/07/ht132c_sample.png)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffaritka%2Fzephyr-ht1632c","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffaritka%2Fzephyr-ht1632c","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffaritka%2Fzephyr-ht1632c/lists"}