This is the Revision F version of the LCD32 RoboBrick. The status of this project is work in progress.

LCD32 Module (Revision F)

Table of Contents

This document is also available in PDF format.

1. Introduction

The LCD32 module can display a total 4 lines of 16 characters each, of which only 2 lines are visible at a time. The characters are displayed using a 5×7 dot matrix. There is a mechancal switch labeled LINES on the LCD32 module that switches between displaying lines 1-2 and lines 3-4. The LCD32 module is based upon the inexpensive Lumex® LCM-S01602DTR/M 2×16 liquid crystal display (LCD) module available from both Digikey® and Mouser®. The LCD32 module has a small trim potentiometer that allows you adjust the display contrast.

The LCD32 can be used in two ways:

User Mode
In user mode, the LCD32 is being used an output device under user control. All serial data communication is between the master connected on N1 and the LCD32 module. In this mode, connectors N2 and N3 are left disconnected. A pull-up on one of the N2 connector pins allows the LCD32 module to determine that it is in this mode.
Debug Mode
In debug mode, the LCD32 module is inserted between a master brick and a slave brick. The master brick is connected on N1 and the slave brick is connected on N3. In addition, there is another connection from a "debug" port on the slave brick and connector N2 on the LCD32. In this mode, the master brick does not even know that the LCD32 is present. However, the slave brick can detect that LCD32 is present and output additional debugging information to the LCD32. There are two sub-modes of operation in this mode -- 1) slave sending data to the master and 2) slave sending data to the LCD32. The LCD32 module determines this by examining the "select" line on connector N2.
The various paths for serial data are summarized in the table below:
Description Mode Select Master Out Slave Out LCD32 RX
(S1) (S0) (N1-5) (N3-4) (U1-5)
Master to LCD32 (User Mode) 1 x LCD32 TX (U1-6) x (Master In) (N1-4) Master In (N3-4)
Slave to LCD32 (Debug Mode) 0 1 idle (high) Master In (N1-4) Slave In (N3-5)
Slave to Master (Debug Mode) 0 0 Slave In (N3-5) Master In (N1-4) idle (high)

The LCD32 module is meant to be used in conjunction with the LCD32Holder (Rev. A) board which carries the actual LCM-201602DTR/M and plugs onto the top of the LCD32 module.

2. Programming

Command Send/
Receive
Byte Value Discussion
7 6 5 4 3 2 1 0
Back Space Send 0 0 0 0 1 0 0 0 Move cursor to the left.
Line Feed Send 0 0 0 0 1 0 1 0 Advance currsor to beginning of next line; clear the next line
Form Feed Send 0 0 0 0 1 1 0 0 Clear entire display and place cursor at home
Carriage Return Send 0 0 0 0 1 1 0 1 Return cursor to beginning of line
Character 32 to 63 Send 0 0 1 x x x x x Enter the character on the display and advance cursor.
Character 64 to 127 Send 0 1 x x x x x x Enter the character on the display and advance cursor.
Line Set Send 1 0 0 0 0 0 l l Move cursor to line ll
Line Clear Send 1 0 0 0 0 1 l l Move cursor to line ll and clear it
Cursor Mode Set Send 1 0 0 0 1 0 v b Cursor mode is set (v=1 visible cursor) (b=1 blinking cursor)
Cursor Mode Read Send 1 0 0 0 1 1 0 0 Read cursor mode (v=1 visible cursor) (b=1 blinking cursor)
Receive 0 0 0 0 0 0 v b
Character Read Send 1 0 0 0 1 1 0 1 Read the current character ccc cccc; advance cursor
Receive 0 c c c c c c c
Line Read Send 1 0 0 0 1 1 1 0 Read the current line ll
Receive 0 0 0 0 0 0 l l
Position Read Send 1 0 0 0 1 1 1 1 Read the current character position pppp
Receive 0 0 0 0 p p p p
Position Set Send 1 0 0 1 p p p p Move cursor to character position pppp
Position Set Send 1 0 1 0 p p p p Move cursor to character position pppp; clear to end of line
Shared Commands Send 1 1 1 1 1 c c c Execute shared command ccc.

3. Hardware

The hardware consists of a circuit schematic and a printed circuit board.

3.1 Circuit Schematic

The schematic for the LCD32 RoboBrick is shown below:

LCD32 Schematic

The parts list kept in a separate file -- lcd32.ptl.

3.2 Printed Circuit Board

The printed circuit board files are listed below:

lcd32_back.png
The solder side layer.
lcd32_front.png
The component side layer.
lcd32_artwork.png
The artwork layer.
lcd32.gbl
The RS-272X "Gerber" back (solder side) layer.
lcd32.gtl
The RS-272X "Gerber" top (component side) layer.
lcd32.gal
The RS-272X "Gerber" artwork layer.
lcd32.drl
The "Excellon" NC drill file.
lcd32.tol
The "Excellon" tool rack file.

4. Software

The LCD32 software is available as one of:

lcd32.ucl
The µCL source file.
lcd32.asm
The resulting human readable PIC assembly file.
lcd32.lst
The resulting human readable PIC listing file.
lcd32.hex
The resulting Intel® Hex file.

5. Issues

The fabrication issues will be listed here.


Copyright (c) 2001-2005 by Wayne C. Gramlich. All rights reserved.