ExLCD is a Hex package providing an API and support for character matrix LCD displays in your Elixir and nerves projects. It uses elixir_ale for hardware IO.
The hardware interface and the user API are separate modules providing relative hardware independence. This provides you with the ability to change displays without significant changes your application code.
Disclaimer: This is still under heavy development and probably isn't suited for production use. Please consider testing and contributing to improving the project.
Project and API documentation is available online at hexdocs.pm
Example applications using ExLCD are available in the cthree/ex_lcd_examples Github repository.
If you wish to support a new type of display module, fix or report a bug, add a feature or otherwise contribute to the project please open an issue to discuss your issue or idea. I'm happy to accept suggestions, bug reports, pull requests and other help. Driver modules for unsupported displays is especially appreciated.
Many thanks to @tmecklem for inspiration and encouragement. ExLCD started as his elixir_lcd package.
Licensed under the Apache-2.0 license. Please see the LICENSE file included in the repository if you are unfamiliar with the terms and conditions.
ExLCD is available in Hex, the package can be installed as a dependency of your project:
- Add ex_lcd to your list of dependencies in
mix.exs
:
def deps do
[{:ex_lcd, "~> 0.4.0"}]
end
- Ensure ex_lcd is started before your application:
def application(_target) do
[mod: {MyApplication.Application, []},
extra_applications: [:ex_lcd]]
end