<<HOME>>
Description
I have just started to get into Linux because it seems to be very powerful
and versatile, also because it seems to be pretty much vital to be able
to use it for any future employment.
Anyway I found it really cool they way you could SSH or telnet into any
Linux computer and have full control over it. So I decide to make a wireless
terminal which can be used to log on and gain access to the Linux system.
I had a spare 320x200 LCD display lent to me which I wanted to use, I didn’t know if it worked, but if it did you be ideal for the project.
The terminal would use the serial port for the first version. I had a spare computer on which Mandrake 10 was installed, and configure to output everything to the screen AND serial port. This seems to allow full control and root login over the serial port. (Ideally it would operate over a wireless LAN and allow SSH login, but I wasn’t really prepared to put the time and money require to do that).
The serial protocol is in fact more complicated than just displaying the characters which come out the port, with new line and carriage returns ect. Embedded in the stream are Escape sequences which allow full control of the terminal display, such as text/background colour, cursor location, scroll options, erasing lines..and many more. These can be found at http://www.fh-jena.de/~gmueller/Kurs_halle/esc_vt100.html.
The device would have to be able to interpret most/all of these ANSI/VT100 escape sequences.
The following is a brief description of the steps taken to make the project.
The display:
Model: Seiko GD321 (320x200,b/w)
Controller: SED1300F controller.
Power: +5V Logic, -24V LCD bias, +12V FL backlighting (cold cathode tube)
Features: Various combinations of Text and Graphic layers, cursor, scrolling,
internal character ROM.
The first task was to verify the display was in fact working. I dug out an AVR and wired it to the display. As you can see from the specs above, the display requires quite annoying voltages to make it portable, to generate the +12V and -24V I used an old computer power supply. The PSU outputs 5V,12V,-12V,-5V; the +12 and -12 were used to generate the -24v, and the GND to 12V for the backlighting, (obviously possible because the backlight is totally independent) I have found mobile phone chargers are good sources of +5V.
PSU WARNING!:
It seems every computer PSU wires 0V to the earth wire of the plug, this
means every computer will have their ground electrically connected. As
I was using the +12V to -12V to make -24V, this meant ground was effectively
12V above any other computer; this proved to be a problem as I was
using the serial port (which requires a ground connection) of
my computer to program and debug the AVR. This was solved my simply removing
the earth wire inside the PSU (Not recommended unless you know what your
doing!)
The Backlight:
The LCD is illuminated with a Cold Cathode tube, this came with an inverter
which needs 12V.
At this voltage it drew 145ma, hence required 1.74W, this along with the
12V is simply way too much power for a portable device.
I decided to replace the current backlighting with 10 white LEDs. Once
completed these only needed 40ma at 5V in total, hence using 0.2W. This
was much more acceptable.
|
White LED strip mounted on LCD |
Original Cold Cathode tube |
Testing the Display:
As mentioned before, the display was tested to see if it works, and also to play around with its functions. I wrote a quick VB program with associated AVR code to enable me to easily send command sequences to the display. Below shows the VB program (it will probably be improved) and the test setup.
|
Debugging, the display is currently showing the random data in memory after startup. |
Program used to send commands to the LCD. |
LCD Bias:
So far the backlight has been replaced, and the LCD verified to be working,
it is still however using an external PSU to generate the -24V LCD bias.
To make -24V from 5V or under, I chose to use the MAX749. This is designed
for LCD biasing and can generate up to -100V, it is also digitally controllable.
Main board Design:
Next the main circuit board used to control the project was designed and
made. I used a MEGA128 @ 16MHZ, with 128KB external memory. The LCD Biasing
circuit was also included. The MCU was programed with and excent bootloader
called Megaload, aquired from Here.
|
PCB layout |
3 failed boards |
Etched board |
Board with AVR and LCD bias soldered. The bootloader is being installed and MCU tested. |
|
PCB populated, the ribbon cable plugs into the LCD |
PCB plug into LCD |
PCB working and folded to the front. Note, everything is running off 5V |
----------------------------------------------------------------------------------------
UPDATE 25/07/05
I made a case for the screen from and old CDROM drive case. After bending into shape (with great difficulty) the case fitted perfecty and worked out muched better than I had hoped :)
The code has been updated so as to at least accept VT100 commands and display text incoming on the serial port, the following as so far been implement:
With just these implemented, it is possible to do most tasks at the linux terminal (file browsing, commands ect). Tasks which require the Escape sequences to be functional do not work, such as VIM.
Heres some pics, Iv taken off the plastic film and temporarily stuck a cd case over the LCD, although it seems to work quite well so will probably neaten it and make it permanent.
The text displayed on the screen was from when I was testing the Pacman game I wrote for this project.
![]() |
![]() |
![]() |
![]() |
| Specification | Main Features |
MCU: ATMEGA 128 @ 8Mhz On board Memory: 128Kbytes (currently only 64Kbytes used) Display: GD321 320x200 graphic/text
|
How it works
Files
<<HOME>>