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.
OLED display issues, gLCD_SH1106_I2C1, Arduino Nano
-
- Posts: 35
- http://meble-kuchenne.info.pl
- Joined: Sat Jul 08, 2023 7:39 pm
- Has thanked: 3 times
- Been thanked: 4 times
-
- Valued Contributor
- Posts: 1148
- Joined: Thu Dec 03, 2020 10:57 am
- Has thanked: 285 times
- Been thanked: 412 times
Re: OLED display issues, gLCD_SH1106_I2C1, Arduino Nano
Hi
Can you attach your chart?
Does it work in simulation?
Regards
Can you attach your chart?
Does it work in simulation?
Regards
-
- 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
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.
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 (238.79 KiB) Viewed 27341 times
-
- OLED_display_test_02.fcfx
- (12.71 KiB) Downloaded 711 times
-
- Valued Contributor
- Posts: 1148
- Joined: Thu Dec 03, 2020 10:57 am
- Has thanked: 285 times
- Been thanked: 412 times
Re: OLED display issues, gLCD_SH1106_I2C1, Arduino Nano
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
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
-
- 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
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.
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 (50.63 KiB) Viewed 27275 times
-
- Valued Contributor
- Posts: 1148
- Joined: Thu Dec 03, 2020 10:57 am
- Has thanked: 285 times
- Been thanked: 412 times
Re: OLED display issues, gLCD_SH1106_I2C1, Arduino Nano
Hi
Sounds like there may be a bug in the "ClearDisplay" macro.
Datasheet for the display suggests a maximum of 400KHz for i2c
Regards
Sounds like there may be a bug in the "ClearDisplay" macro.
Datasheet for the display suggests a maximum of 400KHz for i2c
Regards
-
- 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
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,
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,
-
- Valued Contributor
- Posts: 1148
- Joined: Thu Dec 03, 2020 10:57 am
- Has thanked: 285 times
- Been thanked: 412 times
Re: OLED display issues, gLCD_SH1106_I2C1, Arduino Nano
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
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
-
- 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
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
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
-
- Valued Contributor
- Posts: 956
- Joined: Wed Dec 09, 2020 9:37 pm
- Has thanked: 104 times
- Been thanked: 509 times
Re: OLED display issues, gLCD_SH1106_I2C1, Arduino Nano
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
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