ex_lcd icon indicating copy to clipboard operation
ex_lcd copied to clipboard

A hex package to support character matrix LCD displays in Elixir

ExLCD

Hex.pm Hex.pm Hex.pm

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.

Documentation

Project and API documentation is available online at hexdocs.pm

Examples

Example applications using ExLCD are available in the cthree/ex_lcd_examples Github repository.

Contributing

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.

Acknowledgements

Many thanks to @tmecklem for inspiration and encouragement. ExLCD started as his elixir_lcd package.

License

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.

Installation

ExLCD is available in Hex, the package can be installed as a dependency of your project:

  1. Add ex_lcd to your list of dependencies in mix.exs:
    def deps do
      [{:ex_lcd, "~> 0.4.0"}]
    end
  1. Ensure ex_lcd is started before your application:
    def application(_target) do
      [mod: {MyApplication.Application, []},
       extra_applications: [:ex_lcd]]
    end