Interfacing robot with LCD

I really hate to post this twice, but I’m not getting any responses in the Electrical forum. I’m pretty sure it should be in the Programming section anyway. I’m really sorry about double posting.

OK, I’m still very interested in this. I would like to know:

  1. HOW to interface an LCD to the robot. (TTL port?) I really need to know how to wire it to the robot.

  2. how to talk to the LCD in programming.

*note that I’m not a programmer, but I can relay the information to our team programmer. So, an idea or some sample code would be helpful.

Towards the bottom of the page there are several “serial enabled” LCDs.

Any of those, or any oher one that wil connect to their serial backpackwill connect to the TTL serial port, then there are few commands, mostly you just write whatever you want to showup, and it does.

If you want to know I have two of the 16x2 black on green w/backlight

Thanks. That helps a little. cool.

(Maybe I should have left the other one going for awhile. Oh, well.
Again, sorry about double posting.)

Attached is some of the code I used to drive it. It needs Kevin’s serial port code already installed.

Its not totally complete, since I finished it as I needed it.

You should read the datasheetfor the serial adapter. (1.55 KB) (1.55 KB)

The question is too general to permit a simple answer. “How” depends entirely on what LCD panel you use. Its documentation will explain what signals it needs.

Filtering programming information through a non-programmer is usually a bad idea. It’s very easy for useful suggestions to get misinterpreted and miscommunicated. Once your programmer has specific questions, it would be best for him or her to ask them himself/herself.

Good point. I will try and get him to use chief delphi. but, sometimes he likes to do his own things.

as for wiring. I see your point about different LCD’s having different inputs. But, I had not seen any “wiring diagrams for TTL” connections. I know it’s a type of serial communication, but I am a little confused. there has to be a general guideline to wiring doesn’t there?

A problem with serial LCD that I have had, is they require to many programming delays and may interfer with interrupts. On the other hand a Parallel LCD is very fast, but requires too many I/O pins.

If you are using it just temporarily, perhaps a self contained data acquisition - LCD would do the trick. A cheap Parallax SX chip (aprox $3.50 + $14.00 for a 4 line LCD (ebay) ) and use the SX/Basic example in the SX-IDE. That way you don’t have to add any unnecessary code that may interfere with your actual program.

Ok, I think I am going to either get this one

or this one

Does anyone know how to wire it up? I have no idea which pins go where. This is my first time working with LCD’s. Now that I have chosen a specific model I’m hoping someone can help me out.

Using serial LCDs is actually really easy (I suspect you’re thinking about the interface to the Hitatchi 44780 LCD controller, which was pretty ugly). Attached are a few files from a project that had a LCD attached to the programming port.


lcd.c (1.84 KB)
lcd.h (740 Bytes)
user_routines.c (1.79 KB)

lcd.c (1.84 KB)
lcd.h (740 Bytes)
user_routines.c (1.79 KB)

No, these have the ugly Hitatchi 44780 interface I mentioned above. An example of a display that will work is the BPP-420L, which I’ve been using for some time with the FRC RCs.


With the SX/B LCD project, you can make your own serial LCD for cheap. But I left out the price of the Programmer and that will set you back another $30 to $50.00. The SX/B Serial LCD is similar to older Seetron units without any bells and whistles. For the price you would be better off purchasing a Serial LCD from Seetron or somebody else.


just to clarify, on your serial code, what ports are serial 1 and 2? is it the programming port and TTL that we used with the CMUCam?

The programming port is serial port one and operates at standard RS-232 voltage levels. The TTL/CMUcam2 port is serial port two and operates at TTL voltage levels.

-Kevin by Netmedia, they have great serial LCD’s, only takes 1 I/O line with no additional circuitry, i have one, and they work great! barely any code

Wonder why you’d want to use and LCD, a touch screen for controling the robot?? :S :confused:

thank you! :slight_smile:

“Wonder why you’d want to use and LCD, a touch screen for controling the robot??”

For debugging the robot (displaying operating parameters etc) w/o the programming port. And probably just to be kewl!

Another way of using a LCD display with the Robot Controller is to use the digital pins. The digital pins can be configured to be outputs. Most LCDs have a 14 pin connector. If you use the LCD at is fully configurable and fastest state you will need to use 11 pins! The pins are DB0-DB7, E, R/W, RS.

Whoa that is too many, but this can be reduced. First the data lines (DB0-DB7) can be cut in half by doubling the number of commands sent to the LCD, which is ok. The R/W line can be connected to GND since we don’t really care about reading bytes back from the LCD. So now we are down to 6 digital lines. DB4, DB5, DB6, DB7, RS (register select), and E (enable).

We can even get it down further. If we use a 74164 serial shift register we can get the number of pins down to three.

Now, not only can we get down to a small amount of your digital pins, but the heavy lifting of designing and coding all of this has been done for you. The Seattle Robotics Society has a document about all of this. It can be found:

The code is for a Atmel AVR processor, but with a little bit of work it can be translated for the RC.

If you use this and are at an event with team 1318, Issaquah High School, thank their mentor Cathy Saxton for this work.