Peptu (PIC Enabled Parallel To USB) LCD



Background

Some time ago I decided that I wanted to use an LCD character display on my PC systems. Initial research showed that the cheapest way to implement a character display was by using one that connected to the PC's parallel port together with one of the freely available software packages available on the Internet. However, the easiest method was to purchase one of the commercially available serial port connected devices, or even the newly emerging (then) USB connected devices.

However, I really wanted a device that utilised a USB or, better still, ethernet interface but the cost of such commercial products was prohibitive. I therefore decided that I would have to design and build my own. I recognised that this would involve the use of some sort of micro-controller but had no experince of using any of the available products. I also recognsed that I knew little of the manner in which LCDs were being used by PC enthusiasts so decided to further my education by implementing a parallel-connected device as a learning project whilst researching micro controllers. I purchased a couple of cheap 2x16 and 4x20 displays and a few days later I had working displays on two of my systems. I tried a variety of software packages but was never really happy with the results. I often got corrupt data, system lock-ups (freezes) or even crashes but when the designs did work they worked well. Then disaster, one of my units got very hot and stopped working and I could not figure out why it had failed. (still do not know why that unit failed!) I had not modified it or even unplugged and re-plugged it, it just died. I then discovered that the warranty offered by Crystalfontz explicitly precludes devices connected directly to a PC's parallel port (presumably because of the number of 'faulty' units being returned, I have not confirmed this with them so it is just my guess).

This prompted a re-think of my approach. I new that I needed to a micro controller but which one? It was suggested that I should use a PIC and my response was 'what's a PIC?

A few months later I had purchased several PICs together with a developments system and after lots of 'burning the midnight oil' and much reading of PIC programming manuals, had a working prototype up and running. It was then the I hit the next problem, application software. All of the applications that I could find were designed to work with specific commercial modules, none (that I could find) would work with my 'generic system'. I spent a few weeks writing my own application but, although it worked OK, it was limited in what it could display so I decided an alternative approach was required. What I needed to do was make the PIC based code emulate one of the commercially available products and thus the problems associated with the application software would go away. After some deliberation I decided that I would emulate the Crystalfontz 632/634 systems. The reasoning behind this decision was that Crystalfontz produce their own software, CrystalControl, that works with parallel, serial and USB based displays and also makes available test software for both the 632 and 634 systems. With this software I would be able to ensure that my design met the compatibilty criteria. Also I had been 'playing' with CrystalControl and had realised that it was very good but offered slightly less features than other generally available application software. However, this was offset by its ease of use and its compatibility with all versions of MS Windows. (not sure about Win95 or NT4 but I have used it on Win98, Win2000, Win ME and Win XP without problem. Over the next few weeks (months?) I modified my PIC code to, not only emulate most of the functionality offered by the Crystalfontz serial/USB products, but work seamlessly with the CC software. I still use that software today and it is unlikely that I will ever switch to any other. It is not possible to totally emulate the Crystalfontz solution as they use a graphics display to 'emulate' a character based display whereas I was producing a design that worked with a cheap character-based display. The display does not have to be a Crystalfontz unit, any 'generic' HD44780 controlled device should work. I currently use Cf units but all development was undertaken using the cheapest displays I could find to ensure that any 'failures' due to my design were as painless as possible. To date I have only experienced one failure that was the parrallel connected device. If I were to start from scratch again now I would possibly use a 120x32 pixel graphic display and might get nearer the 100% compatibilty mark.