OLED display issues, gLCD_SH1106_I2C1, Arduino Nano

For general Flowcode discussion that does not belong in the other sections.
pmgreene01
Posts: 35
http://meble-kuchenne.info.pl
Joined: Sat Jul 08, 2023 7:39 pm
Has thanked: 3 times
Been thanked: 4 times

OLED display issues, gLCD_SH1106_I2C1, Arduino Nano

Post by pmgreene01 »

I want to use 128x64 OLED display in my Arduino Nano project. I have been using a 1602 character display over I2C, but need more real estate.

I have purchased several OLED modules and can't get them to work with Flowcode. I am currently running an SH11106 display using the Adafruit library and the demo program and is is working fine in the Arduino IDE. After reading some posts, I added pull up resistors (2k) to optimize the signals, but is does function without any pullups in the Arduino IDE.

No matter what I do, I can't get it to do anything in Flowcode. I checked the address with an Arduino I2C scanner. As I said, I added the pullups and my I2C signals are very clean. I also tried the SSD1306 component, but that did not work.

I am wondering if anyone has a suggestion of how to get a graphical display to work with an Arduino Nano. I am also wondering if there is a way to incorporate the Adafruit libraries into Flowcode so that I can just call the functions I need from that.

The libraries that I use in Arduino IDE are the Adafruit_SH110x and Adafruit GFX libraries. I only need to write text to the screen, so I just need a simple program that will let me place the cursor and write strings.

Looking for any suggestions or part numbers of displays that people have made with with Flowcode.

chipfryer27
Valued Contributor
Posts: 1146
Joined: Thu Dec 03, 2020 10:57 am
Has thanked: 284 times
Been thanked: 412 times

Re: OLED display issues, gLCD_SH1106_I2C1, Arduino Nano

Post by chipfryer27 »

Hi

Can you attach your chart?

Does it work in simulation?

Regards

pmgreene01
Posts: 35
Joined: Sat Jul 08, 2023 7:39 pm
Has thanked: 3 times
Been thanked: 4 times

Re: OLED display issues, gLCD_SH1106_I2C1, Arduino Nano

Post by pmgreene01 »

Thanks for the reply.

I attached my program. It is pretty simple.

I just tried it again and it did start to write text, but the "ClearDisplay" does not work, so the last image from the Adafruit demo is still on the screen. I attached a picture of that as well.
Attachments
screen_image.png
screen_image.png (238.79 KiB) Viewed 27340 times
OLED_display_test_02.fcfx
(12.71 KiB) Downloaded 711 times

chipfryer27
Valued Contributor
Posts: 1146
Joined: Thu Dec 03, 2020 10:57 am
Has thanked: 284 times
Been thanked: 412 times

Re: OLED display issues, gLCD_SH1106_I2C1, Arduino Nano

Post by chipfryer27 »

Hi

Have you tried rebooting and powering up the display whilst only running FC?

Although I don't have your exact chip and display, I do have a Nano and SSD1306 displays and can't remember any issues using them together. If I get time I'll try and dig them out over the weekend.

Regards

pmgreene01
Posts: 35
Joined: Sat Jul 08, 2023 7:39 pm
Has thanked: 3 times
Been thanked: 4 times

Re: OLED display issues, gLCD_SH1106_I2C1, Arduino Nano

Post by pmgreene01 »

Update. I recreated the program from scratch. Now it runs, but "ClearDisplay" still does not work. I got around that by drawing a rectangle over the entire screen area and then writing my text values for the value labels. Then I have a loop where I update the sensor values.

My problem now is that the display updates are really slow. I am writing 3 values to the screen that each have a max of 3 characters and a decimal point. The update rate on the display is about 2.5Hz with nothing else happening and no delay timers. The simulation in Flowcode runs much faster than the actual screen. I am wondering it this is as good as it gets or if there is a setting that can make it faster. I have the i2c rate at 1 Mhz. I am wondering if there is another setting that is slowing it down or if this is as good as it gets.

I attached the diagram.
Attachments
OLED_display_test_02.fcfx
(17.34 KiB) Downloaded 764 times
IMG_2235.jpg
IMG_2235.jpg (50.63 KiB) Viewed 27274 times

chipfryer27
Valued Contributor
Posts: 1146
Joined: Thu Dec 03, 2020 10:57 am
Has thanked: 284 times
Been thanked: 412 times

Re: OLED display issues, gLCD_SH1106_I2C1, Arduino Nano

Post by chipfryer27 »

Hi

Sounds like there may be a bug in the "ClearDisplay" macro.

Datasheet for the display suggests a maximum of 400KHz for i2c

Regards

pmgreene01
Posts: 35
Joined: Sat Jul 08, 2023 7:39 pm
Has thanked: 3 times
Been thanked: 4 times

Re: OLED display issues, gLCD_SH1106_I2C1, Arduino Nano

Post by pmgreene01 »

Noted on the I2C rate, I tried that just because the updates are so slow. It didn't really improve the update rate.

Is 2.5 Hz the best I can expect for just displaying a few numbers? I really thought this display would be an improvement over a 16x2 character display, but not unless I can get it to update faster. Not sure where to look to make it faster.

Thank you for answering my questions,

chipfryer27
Valued Contributor
Posts: 1146
Joined: Thu Dec 03, 2020 10:57 am
Has thanked: 284 times
Been thanked: 412 times

Re: OLED display issues, gLCD_SH1106_I2C1, Arduino Nano

Post by chipfryer27 »

Hi

I looked at your chart, thinking perhaps that when you drew your rectangle you were "colouring it in", which would tie up time, but I don't see anything that would slow things to a crawl.

This is the only relevant post I found from about a year ago

viewtopic.php?f=5&t=1499&p=8594&hilit=sh1106+slow#p8594 which required an update to resolve.

Regards

pmgreene01
Posts: 35
Joined: Sat Jul 08, 2023 7:39 pm
Has thanked: 3 times
Been thanked: 4 times

Re: OLED display issues, gLCD_SH1106_I2C1, Arduino Nano

Post by pmgreene01 »

I did the library update, but no success in speeding things up.

I uploaded a video to Youtube to show how slow the updates are. https://youtu.be/jmP96dvl_9c

Since "ClearDisplay" does not work, I draw a rectangle and you can see how long it takes to fill in the rectangle with the background color.

If anyone has any suggestions to get the updates to happen a little faster, then I would appreciate it.

Thanks

mnfisher
Valued Contributor
Posts: 953
Joined: Wed Dec 09, 2020 9:37 pm
Has thanked: 104 times
Been thanked: 507 times

Re: OLED display issues, gLCD_SH1106_I2C1, Arduino Nano

Post by mnfisher »

I rewrote ClearDisplay - as ClearDisplay2. Could you try this? Here just compile the program (not as a component) - it should just print a 'Hello' and then clear the display repeatedly...

There is a lot of data to write to i2c so it's always going to be fairly slow?

Try the new version below....

If you want to test as a component - either export ClearDisplay2 or overwrite the code for ClearDisplay and re-export..

Martin

Post Reply