Skip to content
A hobbyist project to connect a character LCD to the PyBoard
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

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.


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

Connection diagram 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. (


  • Generic 16x2 green character display
  • Adafruit standard 20x4 blue character LCD


  • 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



  • (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 is pretty heavily commented because this project is meant for hobbyists just starting out with PyBoard!

You can’t perform that action at this time.