Prototype I2C Display Board with EEPROM

My lat­est project is a pro­to­type I2C RGB LCD dis­play board with added EEPROM and some oth­er extras.

RGB-LCD display V4.24 with 64K of EEPROM on I2C bus
RGB-LCD dis­play V4.24 with 64K of EEPROM on I2C bus

I decid­ed to do some more work on the Programmable Voltage Reference project, after a long run of test equip­ment cleanup and repairs.

A spe­cif­ic area of the project that I want­ed to tack­le was the automa­tion of the cal­i­bra­tion pro­ce­dure, and the pos­si­bil­i­ty of mul­ti­ple cal­i­bra­tion off­sets at dif­fer­ent tem­per­a­tures. Another cur­rent lim­i­ta­tion of the PVR is that it can only direct­ly dis­play the volt­age set point.
It would be fair­ly easy to cycle thru the Set point, Output volt­age, Voltage dif­fer­ence, and Mode by just using the exist­ing dis­play and update the dis­play once a sec­ond with the next val­ue. Or even ded­i­cat­ing anoth­er push-but­ton switch to cycle thru the displays.
The char­ac­ters on the RGB-LCD dis­play are sig­nif­i­cant­ly small­er and will be hard­er to read from a dis­tance, but can dis­play much more infor­ma­tion all at once. Another advan­tage is using the RGB col­or back-light­ing as a sta­tus indi­ca­tor instead of the rotary encoders RGB led.

RGB-LCD display V4.24 bare circuit board from OSH Park
RGB-LCD dis­play V4.24 bare cir­cuit board from OSH Park

I changed around my exist­ing V4.23 RGB-LCD dis­play board by remov­ing the DS3231 RTC (Real Time Clock) IC and added a Microchip Technology 24LC64T‑I/SN 64K EEPROM chip. I also made some oth­er changes to the board such as adding an extra I/O pin and +5 to the JP3 head­er. The EEPROM foot­print is the same as the larg­er 128K EEPROM 24LC128‑I/SN I.C. which would make it easy to upgrade to a larg­er EEPROM in the future.

RGB-LCD display V4.24 surface mount components installed
RGB-LCD dis­play V4.24 sur­face mount com­po­nents installed

So far the board is work­ing as expect­ed, along with the Write Protect jumper. I am using the Arduino External EEPROM Library by JChristensen, along with the MCP23017 libraries from Adafruit.

I have also recent­ly designed an inline EEPROM board for my exist­ing PVR units with the 4 dig­it 7 seg­ment displays.
Boards have arrived from OSH Park.

64K I2C Inline EEPROM upgrade for 7 segment PVR Version 1.0
64K I2C Inline EEPROM upgrade for 7 seg­ment PVR Version 1.0

The next part of the project is to work on chang­ing the code to use the exter­nal EEPROM, instead of the run-length encod­ed data stored on the inter­nal Teensy 3.2 EEPROM.
After fin­ish­ing the Teensy code the next task is to auto­mate the cal­i­bra­tion off­set mea­sure­ments and stor­ing the data into the exter­nal EEPROM. My cur­rent plan is to use Excel to set the PVR out­put volt­age using ser­i­al com­m’s and read­ing the volt­age with my Keithley 2015 and the inter­nal Teensy ADC. Then cal­cu­late the dif­fer­ence from the set-point and write the off­set val­ues for the out­put DAC and the Teensy inter­nal ADC using the comm port.
After cal­i­bra­tion is com­plet­ed for all 4,095 set­tings, the sys­tem will ver­i­fy the out­put with off­sets applied.

OSH Park shared I2C RGB LCD Display 4.24 W/eeprom project

EagleCAD Schematic and board files ZIP for Display V4.24 EEPROM

7 Replies to “Prototype I2C Display Board with EEPROM

    1. The I2C Display board should work with any HD44780 based text display.
      I used the #399 RGB back­light neg­a­tive LCD 16x2 dis­play, but the board will work with mono­chrome dis­plays and 20x4 RGB dis­plays such as the #498.

      Greg (Barbouri)

  1. Thanks Greg.

    I have assem­bled two of these, but I can­not make them work with any screen. These are detected:

    I2C scan­ner. Scanning …
    Found address: 39 (0x27)
    Found address: 80 (0x50)
    Found 2 device(s).

    but the screen 16x2 is not com­ing up.
    Assembly is very sim­ple so I feel I am miss­ing something?


  2. OK, it seems like I have a faulty Sparkfun Arduino Pro Mini 5V. It does not work with this LCD Board, but Arduino Nano works just fine.

    1. Hi Alex,
      The first thing to check is that there is only one pair of I2C pullup resis­tors in the cir­cuit. I usu­al­ly use 10K ohms.
      I have also found that some dis­plays need a long time to start up, and by press­ing the onboard reset on the Pro Mini it will communicate.

      Greg (Barbouri)

  3. Hi Greg,

    You are absolute­ly cor­rect — this is not Pro mini. Pressing RST but­ton helps, but some­times I have to press it many times with­out any luck. I can see that in Millivolt Meter project you sol­dered a cap between RST and GND? 0.1 uF? Does it help? Maybe there has to be a delay () in void set­up () before LCD init?


    1. Alex,
      I used a 2.2 uF capac­i­tor from RST to GND on the MV Meter project dis­play to keep the micro from start­ing before the display.
      For the cap I attached it using some IC sock­et jacks, so I could unplug it eas­i­ly from the pins on the micro for trans­fer­ring programs.
      I have had some dis­plays start­up with no prob­lems, and oth­ers that require the capac­i­tor or reset but­ton every time.

      Greg (Barbouri)

Leave a Reply

Your email address will not be published. Required fields are marked *