4D Systems uOLED 128Rev G1h and SD card Image read to display

Hi all

I apologize for the length of this cry for help.

I developed a prototype analogue input monitoring device using the Arduino Pro Mini ATmega 168 3.3v micro connected via pins 4 and 5 to the 4D systems display. The original uOLED was sourced from Sparkfun and was a rev G1 version.

I developed the Arduino code over a considerable period of time using Arduino IDE versions 012, 018 and 022.

I loaded three 128 x 128 images and a five frame video clip onto the SD card into hex addresses 00, 40, 80 and c0. The program ran as expected and different accumulated input values triggered the appropriate image or video clip to display on the uOLED.

Over - zealous beta testing damaged the display so I replaced this with another uOLED sourced directly from 4D Systems. The uOLED supplied was a new version with the “h” added to the revision ID.

Since installing the replacement display I cannot get the code to run successfully. The uOLED will display text, graphics such as circles and rectangles, but as soon as one of the images is called from the SD card the display locks up. Sometimes a half screen of white displays and sometimes I can see a small collection of pixels glowing in the top right corner of the display.

The Arduino micro continues to run and outputs data to the serial port. The 3D Systems FAT Controller utility shows the images and video are still present and correct on the SC card. The display still works, but not the SD card read to screen function.

I am using the Arduino version 022 SoftwareSerial library for USB serial output and Oscar Gonzales uOLED library for the text and graphic object displays.

Can anyone throw some light on this please - I am at my wit’s end.

The code I use for reading the images to the uOLED display is provided here:

  if (finHR < zoneTwo) {
     heaColour = 0x00;
  if (finHR > zoneOne && finHR < zoneThree) {
     heaColour = 0x40;
  if (finHR >= zoneThree) {
     heaColour = 0x80;
     delay (1000);
     OLED_DrawText(6, 7, 2, finRate, white);