Modern Device LCD117/Serial LCD Driver Commands

A popular display chip seems to be LCD117 and is a 9600 baud chip that is recommended for Arduino,
Basic Stamp and most microcontrollers, which are capable of 9600 bps serial transmission.

Some of the following commands are CASE Sensitive and may require a pause.

 

 

Command / Comments

Suggested Pause

Example

 

Send Text

 

Serial.print("Hello World!");

?a

Home Cursor

 

Serial.print("?a");

?b

Destructive Backspace

 

Serial.print("?b"); // backspace

?c#

Set Cursor Style:  0= none 2= blinking 3=underline

 

Serial.print("?c0"); // turn cursor off

?f

Clear Screen

 

Serial.print("?f");

?g

Beep (requires speaker on pin 6)

 

Serial.print("?g");

?h

Backup Cursor (Non-destructive backspace)

 

Serial.print("?h");

?i

Forward cursor

 

Serial.print("?i");

?j

Up cursor

 

Serial.print("?j");

?k

Down cursor

 

Serial.print("?k");

?l

Clear cursor line

 

Serial.print("?l");

?m

Carriage Return

 

Serial.print("?m");

?n

CRLF, carriage return & line feed,
cursor at start of next line, line cleared

 

Serial.print("?n");

?s#

Set tabs at # spaces

100 ms

Serial.print("?s7");
// set tab to 7 spaces

?t

Tab, advance one tab position

 

Serial.print("?t");

?x##

Position cursor on x column, (two characters are required), first column is column 0

 

Serial.print("?x09");
// cursor to column 10

?y#

Position cursor at y row, first row is row 0,
one digit only (no leading zero)

 

Serial.print("?y3");
// cursor to row 4

??

Display a "?"

 

Serial.print("??");

?!

Send direct command to LCD

 

Serial.print("?!01");

?B

Backlight Intensity – sets PWM value, two hex digits req. (00 to FF)

100 ms

Serial.print("?BFF");
// backlight on full brightness

?D#

Define Character "?D#1A001A001A001A00" D# = character
# 0-7 then 8 two character hex digits representing
(5 bit values top to bottom)

100 ms

Serial.print("?D31F001F001F001F00");
// custom character 3
// every other line black

?#

Print a custom character
numerals 0-7 are valid

5 ms

Serial.print("?3);
// print custom character 3

?H

High output on auxiliary digital pins: valid numbers are 4,5,6

 

Serial.print("?H4");
// aux pin 4 HIGH

?L

Low output on auxiliary digital pins: valid numbers are 4,5,6

 

Serial.print("?L4");

// aux pin 4 LOW

?G

Configure for LCD geometry. Supported formats:
2X16, 2X20, 2X24, 2X40, 4X16 and 4X20.

 

Serial.print("?G216");
// configure driver for 2 x 16 LCD

 

Ganging up commands is OK, except for commands requiring a following  pause

 

Serial.print("?x01?y1?fHello World");
// cursor to beginning of line 1
// clear screen, print "Hello World"

 

Enhanced Commands

   

?>#

Enter BIG Number Mode (numbers only!) "?>3" X # = 3 or 4 ,

# represents number of characters displayed. (20x4 LCD's only)

100 ms

Serial.print("?>4");
// enter big number mode, 4 character option.

?<

Exit BIG number mode "?<"

 

Serial.print("?<");

?C#

Define custom boot screen line # = 0 - 3

100 ms

Serial.print("?C0abcdefghijklmnopqrst")

?S#

"?S0" - display no screen on boot.
"?S1"  - display the configuration setting on boot
"?S2" - display the user custom text screen on boot.

 

Serial.print("?S2); // custom boot screen

?* display boot screen at any time   Serial.print("?*); // show boot screen
 
 
 

Copyright © 2008-2015  Ted J. Mieske
All Rights Reserved.