An open API service indexing awesome lists of open source software.

https://github.com/kunerd/clerk

Hardware independent HD44780 LCD library written in Rust
https://github.com/kunerd/clerk

hd44780 rust-embedded rust-lang

Last synced: 5 days ago
JSON representation

Hardware independent HD44780 LCD library written in Rust

Awesome Lists containing this project

README

          

# clerk

[![Build Status](https://travis-ci.org/kunerd/clerk.svg?branch=master)](https://travis-ci.org/kunerd/clerk)

Hardware independent HD44780 LCD library written in Rust

The library's goal is to provide a high level interface to control HD44780 compliant LCD displays. It does not rely on `std` and therefore it should work on PCs as well as on embedded devices. Its main goal is to provide all features defined in the HD44780 spec.

## Current state
This library is actively maintained and most of the features described in the HD44780 spec are implemented. The current work mainly concentrates on providing a first stable version.

### Features
- [x] Clear display
- [ ] Return home (but is possible via `seek()`)
- [x] Entry mode settings
- [x] Cursor and display shift
- [x] Function set
- [x] Display control settings
- [x] Set DDRAM address (high level interface via `seek()`)
- [x] Set CGRAM address
- [x] Read/write DDRAM
- [x] Read/write CGRAM (create custom characters)
- [x] Read busy flag and cursor address

### TODOs
- more unit and integration testing
- error handling
- feature flags to allow additional (high level) functions
- conditional compilation for different hardware variants (read-only, read-write)
- test on different targets (currently only tested on Raspberry Pi)

### Documentation
https://docs.rs/clerk

## Getting started/help
Have a look at the [How-to](https://github.com/kunerd/clerk/wiki/How-to-use-HD44780-LCD-from-Rust) for a detailed description on getting started with `clerk` on a RaspberryPi.

If you have any questions, just [create a ticket](https://github.com/kunerd/clerk/issues/new) or ping me on Mozillas IRC channels `#rust` or `rust-embedded`.

## Contribution
All kinds of contributions are highly welcome (see TODOs). [Create tickets](https://github.com/kunerd/clerk/issues/new) with feature requests, design ideas and so on. You can also find me on Mozillas IRC channel `#rust` and `#rust-embedded`.

## License
This project is licensed under MIT license ([LICENSE](docs/CONTRIBUTING.md) or https://opensource.org/licenses/MIT)