Ultimate GPS and OLED ssd1306 display problem

by buton on Tue Feb 26, 2013 11:13 am

Hi guys

i got yesterday my ultimate gps V3 breakout board and it works great with the serial port and the test programs....

how ever the problem is that when i want to use the SSD1306(128 x 64 spi) oled display and the adrafruit display library just to display the location on the parsing example and for some reason the arduino goes mega Crazy and it does nothing.

on the other hand, i have also the nokia pcd8544 display and i found a basic text display library http://code.google.com/p/pcd8544/ that i inserted on the parsing example display and it works great.

i am wondering if there is something wrong with the library for the ssd1306 maybe the library :
Uses the same timer interrupt as the GPS Parsing sketch?
The library is too heavy and with the GPS Parsing sketch it goes crazy(but seriously i am just displaying once and it is just one line)?

I dont know if it is possible but it would be a good request to adafruit if you guys can do SIMPLE text display library for the SSD1306 which does not eat half of the arduino resources?

thanks
buton
 
Posts: 54
Joined: Fri May 11, 2012 7:06 am

Re: Ultimate GPS and OLED ssd1306 display problem

by adafruit_support_rick on Tue Feb 26, 2013 1:34 pm

The ssd1306 library does not use any timer interrupts. The parsing example really doesn't need to use interrupts, either. Have a look at the leo_parsing sketch - it's essentially the same thing, except the timer interrupt is removed and the GPS.read() is done at the top of the loop function.

The big difference between the nokia display and the ssd1306 is the size of the display: 48X84 vs 128X64. Driving the nokia requires less than half as much SRAM buffer space as the ssd1306. If you only want to use a restricted area of the ssd1306 screen, it should be easy to modify the library accordingly. You might even try simply changing the size definition in the library to 128X32:
Code: Select all
//   #define SSD1306_128_64
   #define SSD1306_128_32
User avatar
adafruit_support_rick
 
Posts: 8496
Joined: Tue Mar 15, 2011 10:42 am
Location: Buffalo, NY

Re: Ultimate GPS and OLED ssd1306 display problem

by buton on Tue Feb 26, 2013 5:46 pm

so whats the point of making and interrupt each 2 or 1 milliseconds if the gps sends his nmea chunk every second? also i put on the oscilloscope the output of the GPS TX and all the chunk of data to be transmited last 100 ms ? so we are interrupting while he is transmiting?
buton
 
Posts: 54
Joined: Fri May 11, 2012 7:06 am

Re: Ultimate GPS and OLED ssd1306 display problem

by adafruit_support_rick on Tue Feb 26, 2013 6:14 pm

I don't know why the library was done that way. But it's interrupting at a 1ms rate because 9600 baud is ~1 character/ms, and the GPS is sending at 9600 baud. At a guess, reading the GPS in the interrupt may be a holdover from some earlier version of SoftwareSerial that wasn't interrupt-driven.

But don't worry about the interrupt - It's not going to be causing any problems.
User avatar
adafruit_support_rick
 
Posts: 8496
Joined: Tue Mar 15, 2011 10:42 am
Location: Buffalo, NY

Re: Ultimate GPS and OLED ssd1306 display problem

by buton on Wed Feb 27, 2013 1:50 pm

Problem solve with the OLED display....

YES RAM issue.... with the adafruit library, the arduino could not keep up...

i found this Library for teh OLED display which is just character library...

http://forums.adafruit.com/viewtopic.php?f=47&t=26636&p=185226#p185226

and it works great
buton
 
Posts: 54
Joined: Fri May 11, 2012 7:06 am

Re: Ultimate GPS and OLED ssd1306 display problem

by adafruit_support_rick on Wed Feb 27, 2013 4:24 pm

Cool - I didn't know about that library. Thanks for the tip!
User avatar
adafruit_support_rick
 
Posts: 8496
Joined: Tue Mar 15, 2011 10:42 am
Location: Buffalo, NY