Our new official repo is on github
LCD Smartie version 5.6 is released!
Download it now: https://github.com/LCD-Smartie/LCDSmartie/releases

Idea: 2/3 LCDs On 1 LPT (HD44780)

Discussion about LCD's and other related hardware

Moderators: _X7JAY7X_, caesar, IFR, mattcro, limbo, Fast351, hydrolisk1792

Post Reply
AJ256
Posts: 16
Joined: November 14th, 2007, 8:46 am
Location: Manchester, UK

Idea: 2/3 LCDs On 1 LPT (HD44780)

Post by AJ256 »

:idea:
I have an idea to connect 2 or 3 LCDs to 1 LPT port. With a modified display driver I think it would work in smartie.

Here is the schematic.

Image

If you only wanted 2 LCDs, you could add a transistor in place of the third LCDs enable pin on the LPT and switch the backlight and/or the main power with it.

What do you think?
grantb3
Posts: 50
Joined: February 10th, 2008, 4:27 pm

Post by grantb3 »

As long as you enable E for only one at a time you will be fine. I'm not sure if there is any software for it though...
grantb3
Posts: 50
Joined: February 10th, 2008, 4:27 pm

Post by grantb3 »

I think you have a bug in the power and/or R/W*. Vdd is +5v, Vss is ground. If you only want to write to the LCD's, not read, then R/W* should be ground also.
AJ256
Posts: 16
Joined: November 14th, 2007, 8:46 am
Location: Manchester, UK

Post by AJ256 »

thx grantb3 for the info. Correct me if i'm wrong but I thought Vss stood for Voltage Source & Vdd, Voltage Drain.

Maybe my Schem is not clear, but the power source has + & - and R/W is connected to -
mattcro
Forum Supporter
Posts: 590
Joined: March 8th, 2006, 1:58 pm
Location: Scotland

Post by mattcro »

Vss is the power rail for the "source" terminals of MOSFET devices (like "emitter" on bipolar devices), which is the circuit ground. Vdd is the MOSFET "drain" (like "collector" on bipolar) power rail and is the positive supply side. Can be confusing!

On the parallel port pinout:
D0-D1 = pins 2-9 (data bits)
C0 = pin 1 (/strobe, inverted)
C1 = pin 14 (/autofeed, inverted)
C2 = pin 16 (/init, non-inverted)

I'm not sure how well this would work in Smartie (if at all), since Smartie can only control 1 LCD per instance, and then you'd have 2-3 instances of Smartie trying to access the same port. I don't know whether that works with the I/O driver.

PS: AJ, can you upload the schematic as a GIF or PNG file? The forum doesn't seem to recognise BMPs as image files (they're not standard for the web).
AJ256
Posts: 16
Joined: November 14th, 2007, 8:46 am
Location: Manchester, UK

Post by AJ256 »

Here is the corrected jpeg image.

Image

Thx for clarifying the Vdd/Vss prob. It's very confusing. :?

I have started writing my own LCD prog. It only works with one LCD for now but when I put this circuit together I will modify my prog to run 2/3 LCDs.
AJ256
Posts: 16
Joined: November 14th, 2007, 8:46 am
Location: Manchester, UK

Post by AJ256 »

I think I might try to write a diplay driver instead of a whole new prog. But how would I manage the 2/3 diff displays in smartie? Is it possile to write a display driver in VB.Net?

Any Ideas?
grantb3
Posts: 50
Joined: February 10th, 2008, 4:27 pm

Post by grantb3 »

You're proboably going to series resistors for the backlights too.
AJ256
Posts: 16
Joined: November 14th, 2007, 8:46 am
Location: Manchester, UK

Post by AJ256 »

Should I put the resistors like this:

Image
grantb3
Posts: 50
Joined: February 10th, 2008, 4:27 pm

Post by grantb3 »

Yeah that's probably OK. Depends on what you use for one unit now. Just duplicate that x3.
mattcro
Forum Supporter
Posts: 590
Joined: March 8th, 2006, 1:58 pm
Location: Scotland

Post by mattcro »

I don't know if it's possible to have the LCDs accessed by 3 different instances of Smartie (possibly not), but you may be able to treat 2 or 3 smaller displays as one large display in software. Eg 2 LCDs each of 4x20 could be handled by Smartie as one 4x40 LCD. The driver would decide which LCD to write to depending on the "cursor" location.

I tried writing a display driver in VB.NET (Express 2005) but got nowhere - I couldn't figure out any way to make a DLL with exported functions. You can make a class library, but that only works for regular Smartie plugins, not drivers.

I've used VisualC++ 6 and Visual C++.NET Express 2005 to write plugins for Smartie.

Delphi would be best for a writing a parallel port driver, since the native Smartie drivers are in Delphi and there's some fiddly low-level port access.
AJ256
Posts: 16
Joined: November 14th, 2007, 8:46 am
Location: Manchester, UK

Post by AJ256 »

good idea mattcro. I know a bit of C++, I might try and create a quick display driver that uses 4x20 in smartie but controls 2 2x20 LCDs
AJ256
Posts: 16
Joined: November 14th, 2007, 8:46 am
Location: Manchester, UK

Post by AJ256 »

what if I have 2/3 instances of smartie each with a diplay driver that sends commands to a seperate program. The program then sends the commands seperately to the lcd.

sounds like a good idea? Can anyone think of any problems I might have.
caesar
Forum Supporter
Posts: 734
Joined: October 15th, 2005, 10:39 am
Location: Romania
Contact:

Post by caesar »

If you want to control just two displays just use HD44780 driver and select 4x40 as display.
Use the schematics for 4x40 displays and connect db-0-7, rw, rs to both displays and e1 and e2 as in the schematic.
Worked fine for me when I used 2 24x2 displays. connected to one port.

Each instance of smartie can access just one port. So for each instance you'll have to assign a different parallel port (or serial/whatever). More instances can't use one port, as they must access it directly.

If you still wand to do your own driver, then use the displays in 4-bit mode and you will get 4 extra lines that can be used for extra displays. It will be 2x slower though to send a character.
Post Reply