- Joined
- Jun 27, 2001
- Messages
- 15,814
Text Displays
Ok, I'm a total newb and don't understand any of this LCD setup stuff, where can I find help?
You just found it! This FAQ will hopefully be able to answer all your questions. If not please try the Search feature on the top right or if that is unsucessful make a new thread and we will try to help you
What is the difference between a serial and parallel LCD?
Parallel port LCDs are cheaper, first off. They're also very very fast. The downside is that you either have to wire it yourself to a parallel port, or buy a prewired version from someone. The LCD comes with a chip or two on the back - almost always the Hitachi HD44780 or some clone of it like the Samsung KS0060, and you wire a parallel cable, power wires, and contrast/backlight controls onto the 14 or 16 pins on the LCD.
The reason you don't see them as much is not because of their construction, but because of Windows. Windows OSes that use NT kernels (NT 4, 2000, and XP) restrict port access as a security and stability measure. THIS IS A GOOD THING for you, but for software engineers like me, it's a pain in the ass. There's two ways to get around this limitation.
The first way is to use a commercial OCX or DLL that "tricks" the kernel into allowing your software to have port access. The downsides to this are that it only works for ports, so you can't do any autodetection, it's hard to port from OS to OS, and if the company turns around and decides it wants to start charging, you're screwed. LCDCenter uses this technique, using Port95NT, but it's doubly limited since it's written in VB and as such can't drive the port very quickly.
The second way is to write your software to insert a Ring 0 driver (i.e. assembly at the lowest level) into the NT kernel on the fly. This allows you to get full access to physical memory addresses, ports, etc which means you can autodetect ports using the BIOS and other stuff - but it's a royal pain in the ass to do. LCDriver v2.0 uses this technique, and uses an existing opensource kernel-level driver called WinIO.
Now, serial's a lot easier to do. Since you can do serial port access no matter what version of Windows you're running, a lot of prebuilt displays (CrystalFontz, Matrix Orbital, Seetron) use serial. The upside is, you don't have to run it as Administrator under NT, and from my perspective, it's easy to program for. The downsides are that serial's slower, and it's much harder to implement for the LCD manufacturer, which means that serial LCDs tend to cost far more than their parallel counterparts.
I've worked with CrystalFontz and Matrix Orbital extensively, and would definitely recommend either of them - they both have excellent quality and great people.
There's also a third option - you can buy a serial conversion board, colliquially called a backpack. You solder these onto a parallel LCD, and solder a serial cable to the backpack, and then can plug the whole shebang into a serial port. I know of six currently being
produced, two of which are DIY boards:
* The Wirz SLI-OEM (the first one on the scene)
* The Seetron BPK-000 (a clone of the Wirz board)
* The iMods UltraSI (another Wirz clone)
* The Econo-LCD (makes it equivalent to a Matrix Orbital display)
* The PIC-an-LCD chip (completely DIY)
* The ELabs EDE700 chip (completely DIY)
The first three all have the same opcodes and are supported by LCDriver v1.x - the second one emulates a Matrix Orbital command set perfectly, and also works with the v1 codebase. The latter two have their own funky setup, and only work in LCDriver v2.0, which is currently in semi-public beta testing.
There is a guide here for hooking up a CrystalFontz Parallel LCD to a Wirz SLI-OEM backpack
Q: When I try to test my CrystalFontz LCD display, I get a post then alot of weird letters, what's wrong?
A: The first thing you should do is check the supported baud rates of your LCD. This info can be found at CrystalFontz's website or if you check the back of your LCD there should be a small table on the back of the circuit board with a list. Check the table and compare it to your dipswitches on the back of the LCD. For each default baud rate there is a dip setting. I would reccomend you set it to a baud rate of 9600 because this is the max supported by the ever popular LCDriver. Then make sure your default baud rate setting on the LCD matches the baud rate setting on the software of your choice!
Where can I buy Serial LCDs?
Matrix Orbital
Offer a few Serial LCDs in different sizes, also carry serial VFDs
CrystalFontz
Loads of different Serial LCDs now, sizes and mostly colors.
Scott Edwards Electronics (aka Seetron)
They offer a small range of Serial LCDs and VFDs.
Where can I buy Parallel LCDs?
eio.com
BGMicro
All Electronics
The Electronic Goldmine
Timeline
MPJA
These are all Electronics Surplus outlets, their inventory changes a lot and they get all sorts of different sizes and colored LCD's and some (BGMicro a lot) get VFDs also
Ok, I'm a total newb and don't understand any of this LCD setup stuff, where can I find help?
You just found it! This FAQ will hopefully be able to answer all your questions. If not please try the Search feature on the top right or if that is unsucessful make a new thread and we will try to help you
What is the difference between a serial and parallel LCD?
Parallel port LCDs are cheaper, first off. They're also very very fast. The downside is that you either have to wire it yourself to a parallel port, or buy a prewired version from someone. The LCD comes with a chip or two on the back - almost always the Hitachi HD44780 or some clone of it like the Samsung KS0060, and you wire a parallel cable, power wires, and contrast/backlight controls onto the 14 or 16 pins on the LCD.
The reason you don't see them as much is not because of their construction, but because of Windows. Windows OSes that use NT kernels (NT 4, 2000, and XP) restrict port access as a security and stability measure. THIS IS A GOOD THING for you, but for software engineers like me, it's a pain in the ass. There's two ways to get around this limitation.
The first way is to use a commercial OCX or DLL that "tricks" the kernel into allowing your software to have port access. The downsides to this are that it only works for ports, so you can't do any autodetection, it's hard to port from OS to OS, and if the company turns around and decides it wants to start charging, you're screwed. LCDCenter uses this technique, using Port95NT, but it's doubly limited since it's written in VB and as such can't drive the port very quickly.
The second way is to write your software to insert a Ring 0 driver (i.e. assembly at the lowest level) into the NT kernel on the fly. This allows you to get full access to physical memory addresses, ports, etc which means you can autodetect ports using the BIOS and other stuff - but it's a royal pain in the ass to do. LCDriver v2.0 uses this technique, and uses an existing opensource kernel-level driver called WinIO.
Now, serial's a lot easier to do. Since you can do serial port access no matter what version of Windows you're running, a lot of prebuilt displays (CrystalFontz, Matrix Orbital, Seetron) use serial. The upside is, you don't have to run it as Administrator under NT, and from my perspective, it's easy to program for. The downsides are that serial's slower, and it's much harder to implement for the LCD manufacturer, which means that serial LCDs tend to cost far more than their parallel counterparts.
I've worked with CrystalFontz and Matrix Orbital extensively, and would definitely recommend either of them - they both have excellent quality and great people.
There's also a third option - you can buy a serial conversion board, colliquially called a backpack. You solder these onto a parallel LCD, and solder a serial cable to the backpack, and then can plug the whole shebang into a serial port. I know of six currently being
produced, two of which are DIY boards:
* The Wirz SLI-OEM (the first one on the scene)
* The Seetron BPK-000 (a clone of the Wirz board)
* The iMods UltraSI (another Wirz clone)
* The Econo-LCD (makes it equivalent to a Matrix Orbital display)
* The PIC-an-LCD chip (completely DIY)
* The ELabs EDE700 chip (completely DIY)
The first three all have the same opcodes and are supported by LCDriver v1.x - the second one emulates a Matrix Orbital command set perfectly, and also works with the v1 codebase. The latter two have their own funky setup, and only work in LCDriver v2.0, which is currently in semi-public beta testing.
There is a guide here for hooking up a CrystalFontz Parallel LCD to a Wirz SLI-OEM backpack
Q: When I try to test my CrystalFontz LCD display, I get a post then alot of weird letters, what's wrong?
A: The first thing you should do is check the supported baud rates of your LCD. This info can be found at CrystalFontz's website or if you check the back of your LCD there should be a small table on the back of the circuit board with a list. Check the table and compare it to your dipswitches on the back of the LCD. For each default baud rate there is a dip setting. I would reccomend you set it to a baud rate of 9600 because this is the max supported by the ever popular LCDriver. Then make sure your default baud rate setting on the LCD matches the baud rate setting on the software of your choice!
Where can I buy Serial LCDs?
Matrix Orbital
Offer a few Serial LCDs in different sizes, also carry serial VFDs
CrystalFontz
Loads of different Serial LCDs now, sizes and mostly colors.
Scott Edwards Electronics (aka Seetron)
They offer a small range of Serial LCDs and VFDs.
Where can I buy Parallel LCDs?
eio.com
BGMicro
All Electronics
The Electronic Goldmine
Timeline
MPJA
These are all Electronics Surplus outlets, their inventory changes a lot and they get all sorts of different sizes and colored LCD's and some (BGMicro a lot) get VFDs also