character OLED with a standard serial protocol???

I have not been able to find a character OLED that communicates via standard serial protocol or does not have timing issues in parallel. Due to the timing issue, OLED’s are not a direct application for Liudr's phi-backpack.

I like Liudr's ideas about his backpack doing most of the display work to free-up the Arduino, but his backpack does not work well with OLED's.

I have been looking at the Newhaven OLED character displays due to their price and availability.

http://www.newhavendisplay.com/oled-character-oled-c-119_576.html

I talked with Newhaven regarding communication with these displays. They said,

  1. The parallel communication is like the Hitachi but the timing is different.

  2. The serial communication does not comply with a standard protocol like I2C or SPI.

To avoid misunderstanding, let me clarify what I mean by standard serial communication.

This is from the Newhaven LCD datasheet.

This is from the Newhaven OLED datacheet.

The Newhaven LCD conforms to a standard serial communication, while the OLED does not.

Does anyone know of a character OLED that can be used with a standard serial communication protocol that has a solid library?

Is there a backpack that will work with character OLED's like Liudr's backpack?

Why don't character OLED's follow the Hitachi standard? Seems dumb to make a product to compete with character LCD's and not follow the existing communication standard or at least establish a new standard for easy implementation.

Any help is appreciated.

Don,

Unfortunately after several days of testing I concluded that there is not a stable OLED library support to even use them with or without the phi-panel. The only popular OLED library was developed by adafruit. If you try that library (directly connecting OLED display to arduino), it has a few places that will freeze the display. My tests confirmed it. Just read the library code. The developers weren't even sure about a few function calls. If someone can develop a new library for this Newhaven display, since there is a spec sheet, then I can support it with phi-panel easily. But now without a library, I'll be unable to support it with phi-panel.

Thanks for the input.

Newhaven said the timing would be different with their OLED in parallel but everything else should be the same. Would you know where the library is for the hitachi parallel timing control? I want to see how this is written.

I found this website that explains how to code instructions and commands for the Hitachi LCD. Where is this code for the Arduino? I can't find it. I want to see how this is currently done so I can make changes for the Newhaven OLED.

Any help is appreciated.

Don,

The Arduino code is under \arduino\libraries\LiquidCrystal

This code is not making use of the RW pin thus not compatible with the OLED.

Thanks. It takes a bit to find it on Linux.

I ordered your Phi backpack and a Newhaven OLED. Should get it Tuesday. Then I will adjust timing in the library to see how well the OLED works connected to the Arduino in parallel.

Does your backpack use 8 bit or 4 bit?

It uses 4 bit mode, which leaves enough pin for a matrix keypad. You may need to modify the wiring to use a pin to drive the RW pin, which is currently grounded.

try a search for axe133y oled serial display

there is a library for it

Thanks for the info on the OLED!

Liudr,

I just received your backpack. I ordered it from Rugged Circuits, along with a Ruggeduino. I received a v1.6 backpack. Is their much more that I need to do different than the picture of your modified v1.9?

The 1.6 is the firmware version while the 1.9 is the PCB version. They are not locked in. Yes this modification should do it if you have a working OLED library. I recommend you to first use the OLED on arduino directly to test the library to work. I made the wrong assumption that the Adafruit OLED library worked, which was the source of lots of frustration. Make sure you can lcd.print immediately after lcd.clear. Make sure lcd.cursor() etc also work. If you can test the library with the OLED directly connected to Arduino, I can take the library to try to compile a new firmware for the backpack and send to you for testing.

As I mentioned previously, Newhaven said the only difference with their OLED character display regarding parallel communication compared to the Hitachi standard was timing. Therefore, I changed the LiquidCrystal.cpp library file. I only changed the timing values in this file to match the timing on the Newhaven spec and it worked.

I tried the Hello World example. I found I would get a garbled mess after downloading the program. If I cycled the power to the Arduino, the display worked perfectly. I don't know why their is a problem after downloading, but it is fine after the power cycle.

I made sure to include the RW pin when initializing. LiquidCrystal lcd(RS, RW, enable, d4, d5, d6, d7);

I tried the functions lcd.print, lcd.clear, and lcd.cursor without any problems.

I was surprised how easy this was. It took no time at all.

Sounds like this should be an easy change for the backpack. Thanks for all the help.

To put it in fewer words, if you want to use a Newhaven character OLED in parallel:

  1. Change all the times within each delayMicroseconds() function found in the LiquidCrystal.cpp file. Change these times to the times on the spec sheet.

  2. Within your sketch, be sure to ad the RW pin in the LiquidCrystal lcd(RS, RW, enable, d4, d5, d6, d7) function.

I found other people have the problem with garbled characters after reset and have to cycle the power then it works fine. I tried this idea, but it did not provide a change.

http://www.newhavendisplay.com/forum/viewtopic.php?f=15&t=3930

I have an arduino mega 2560, DS1307 RTC, and serial axe133. but I can not do I display the time and date on screen which codes are not used to see that data, I'm using the Library axe133y, someone could help me? thanks

I happen to have used a quite nice I2C OLED module for Arduino in my project.
http://www.arduinodev.com/low-cost-arduino-obd-ii-logger/

Cool project. Thanks for sharing.

With regard to the OLED, I am looking for a character OLED that is a standard serial protocol. Unless Liudr can get the Newhaven working on his backpack, then the Newhaven and his backpack will get the job done nicely.

I am looking for a character OLED that is a standard serial protocol.

Simple, check out 4D Systems, they have heaps of them (well a few).

http://www.4dsystems.com.au/products.php


Rob

Thanks, but I only see graphical OLED displays by 4D. Do they carry a character OLED with a standard serial protocol?

All graphical AFAIK, but can't you just write characters?


Rob

Graphical libraries can be a bit heavy. The more I look at Liudr's backpack, I like the fact that it lightens the load for the Arduino and he has a nice menu.

liudr:
If you can test the library with the OLED directly connected to Arduino, I can take the library to try to compile a new firmware for the backpack and send to you for testing.

Hello Dr., Have you had any time to play with this? No rush, just curious.

liudr:
I recommend you to first use the OLED on arduino directly to test the library to work. I made the wrong assumption that the Adafruit OLED library worked, which was the source of lots of frustration. Make sure you can lcd.print immediately after lcd.clear. Make sure lcd.cursor() etc also work. If you can test the library with the OLED directly connected to Arduino, I can take the library to try to compile a new firmware for the backpack and send to you for testing.

DonPitcher:
To put it in fewer words, if you want to use a Newhaven character OLED in parallel:

  1. Change all the times within each delayMicroseconds() function found in the LiquidCrystal.cpp file. Change these times to the times on the spec sheet.

  2. Within your sketch, be sure to ad the RW pin in the LiquidCrystal lcd(RS, RW, enable, d4, d5, d6, d7) function.

Hello Dr. Liu,

Were you able to make any progress with this?