Can you "invert" the LCD display?

Usually the display on a LCD is a clear background and the information/letters/numbers are black.

I know if you use a polariser, you can "invert" the display so the background is black and the display is clear.

Yeah, not impossible, but I was wondering if it is possible with programming?

I have the 20x4 display and am using it as a bedside clock.

Though I can turn down the backlighting, I was thinking it would look "nicer" if it was the digits which emitted the light rather than the whole display with the digits being black.

Anyone?

Usually the display on a LCD is a clear background and the information/letters/numbers are black.

This is what is known as a 'Positive' LCD. You are looking for a 'Negative' LCD.

...but I was wondering if it is possible with programming?

I don't think so.

Don

but I was wondering if it is possible with programming?

Only if you have access to each individual pixel in the display which in most cases you don't.

You can get positive and negative displays but you choose when you buy it.

You could kind of sort of do it using custom characters to create a "large" font.
You would need to create the blocks for the larger font but then invert them.
If all you need is digits then the custom chars can be pretty simple.
If you don't already have a character that is "all pixels on" reserve 1 custom character to be all "black".
You would end up with a mostly dark display but there would still be
light around the edges and in between the LCD characters.

There are a few example sketches floating around out there that do large fonts on character LCDs
and here is thread that talks about it:
http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1245352653

In your case you will want to invert all the bits to allow the light to show through.

--- bill

That will still have a clear background, just with odd-looking reversed characters in 5x8 (or whatever) blocks.


Rob

Graynomad:
That will still have a clear background, just with odd-looking reversed characters in 5x8 (or whatever) blocks.


Rob

It won't have a clear background. Did you have a look at the examples on the link I provided?
The examples in the linked thread were using a "positive" pixel method on negative LCD for the big characters.
This would be using a "negative" method on a positive LCD.
You will have large "characters" that span multiple physical lines that
are composed of custom characters that are inverted by flipping all the bits used
in the custom characters used for the larger characters.

But I tried it, and it doesn't work very well. The pixels on the display have too much area
around them (top,bottom, left and right) then because of the gaps between the 5x8 characters
there is too much light.
If you used black electrical tape along the top,bottom, left and right of the pixels
then it is kind of ok, but still not very good.
(It could be done with a glcd)

I think the easiest option would be to simply replace the lcd with a reverse one.
They are pretty inexpensive. < 10$ USD if it is only for a one off project.

http://www.ebay.com/itm/2004-20x4-Characters-LCD-Display-Module-Blue-Blacklight-/160797755014?pt=LH_DefaultDomain_0&hash=item25704b0686

--- bill

But I tried it, and it doesn't work very well. The pixels on the display have too much area
around them (top,bottom, left and right) then because of the gaps between the 5x8 characters

That is what he meant by background.

(Old post, I know.)

I used to reverse the display of cheap calculators by taking the polarized film off the top of the display and reorienting it over (can't remember if it was rotate 180°, flip left-right/top-bottom or some combination). If you pry the bezel off your 20x4, you might be able to do the same, but it's probably kind of destructive.

For graphic lcds, it is simply inverting the bit map data.

For character lcds (hd44780), you are limited by the custom chacters.

Use my phi_superfont on your 20X4 displays. May look good enough for you.