Ecosyste.ms: Awesome

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

https://github.com/scitoast/pyboard-LCD-character-display

A hobbyist project to connect a character LCD to the PyBoard
https://github.com/scitoast/pyboard-LCD-character-display

Last synced: 2 months ago
JSON representation

A hobbyist project to connect a character LCD to the PyBoard

Lists

README

        

# Using a character LCD display with PyBoard:
## A project including circuit and Python Module!

This project includes a python module with heavily commented code, meant for hobbyists to use and modify, as well as a Fritzing circuit diagram and photograph of the end result. This should allow you to attach a character display screen to your PyBoard very easily.

Required:
- Pyboard 1.1 with micro-SD card
- Standard sized breadboard
- Wires
- Mini breadboard-mount potentiometer
- Some knowledge of Python.

![Connection diagram](https://github.com/scitoast/pyboard-LCD-character-display/blob/master/PYBOARD_20x4_DISPLAY_SCHEM_bb.png)

## CHAR_LCD.py
CHAR_LCD.py is a module for micropython (meant for the PyBoard v1.0 or 1.1) meant to allow easy use of LCD character displays of the standard parallel-in type (viz, Hitachi HD44780 or compatible character display chipsets).

The code for this project has been released under the MIT License.

Tested on PyBoard v1.1 running micropython.
(http://www.micropython.org)

TESTED LCDs:
- Generic 16x2 green character display
- Adafruit standard 20x4 blue character LCD

Compatibility:
- Any LCD chipset compatible with the Hitachi HDD44780

This module should give you a pretty self-contained
set of functions for writing text to a character LCD
display of the standard 8-bit-parallel input kind.

This is a library of functions. Not a class. It would be
unnecessary to make this a class, and would complexify
the usage for hobbyists.

This library ASSUMES you are using PyBoard pins X1-X8 to
communicate to the LCD display.

Requires: pyb module; stm module.

###Features Implemented:
- CLEAR / RESET the display
- multiple sizes (e.g. 16x2 or 20x4)
- user specified command & latch pins
- change to command mode or input mode
- LOCATE cursor anywhere on the screen.
- WRITE an ASCII character
- WRITE a string
- WRITE a full line of text

###Not Implemented:
- Scrolling
- Changing the text viewport in memory
- Custom LCD characters
- Serial in / out from character display
- READ from character display
-

### FURTHER READING:
- 'How to Use Intelligent L.C.D.s' by Julyan Ilett, "Constructional Feature".
- (http://lcd-linux.sourceforge.net/pdfdocs/lcd1.pdf)
- Datasheet: LCM Module TC2004A-01
- (https://cdn-shop.adafruit.com/datasheets/TC2004A-01.pdf)

###KNOWN ISSUES:
- (Minor) clear_display() and reset_display() do not show consistent
behavior for all displays.
- (Minor) Sometimes you must call reset_display() twice (in a row)
to get the desired behavior.

### For more information read the code comments.
The code for CHAR_LCD.py is pretty heavily commented because this project is meant for hobbyists just starting out with PyBoard!