Support for 16x1 displays with "Crazy 8 addressing".

Issue #53 new
Ryan Neve
created an issue

Most, if not all, new 16x1 displays are really 8x2 displays. Rather than addressing from 00 - 15, they address from 00-07,40-47 which makes using them awkward. Having to support both types with the same code is difficult especially if scrolling is needed.

Some of this has been done in the LiquidCrystal440library where the problem is described thusly:

Crazy 8 Addressing 16x1 LCDs often have an unusual address layout; these modules often have two 8 character halves and work best with this software if you declare them as lcd.begin(8,2); if you do that, then you can print(“abcdefghilklmno”); and have all the characters appear as you would like across the screen. If you use any of the scrolling commands, the bizarre addressing of these modules will manifest itself. For details follow the LCD Addressing link at web.alfredstate.edu/weimandn

Comments (1)

  1. Carles

    Dear Sirs. First of all, thanks a lot for this great library. I've done a couple of very amaterur projects, and works like a charm. I could not did it without this library, specially, my latest one, with I2C + PCF8574T.

    Lately, i've hit this "crazy 8 addressing", in a 16x1 display, wich turns it like a "crazy" 8x2. So, to print a "abcdefghijklmnop" on the screen, I can do: lcd1.begin (8, 2); lcd1.print ("abcdefgh"); lcd1.setCursor (0, 1); lcd1.print ("ijklmnop");

    Or I can do also:

    lcd1.print ("abcdefgh");
    lcd1.print ("                                ");
    lcd1.print ("ijklmnop");
    

    (second line, prints 32 spaces), and it also prints from a to p, in a single line.

    I'm very amateur, so I can not understant and follow the high technical abstract object code of the library, so, looking inside it, to figure out how to do a very simple patch, I can not find anything.

    But I am very interested in trying to address this, because I feel very easy to implement the "logical" trick, and now, I'm learning a lot of coding on the Arduino, althought I code at very "plain" and classical way (no object).

    I'm very ready, to almost, test to do it, if someone, can give to me some clue on where I must look on to the library.

    Hope someone can give me some help, I promise to give back to you my tests and progress, may be to improve the library. Thanks again for your work!

          Carles
    
  2. Log in to comment