Pages: [1]   Go Down
Author Topic: Ability to use TinyGPs and Arduino Mini Pro  (Read 979 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 19
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I have the following 5V Arduino Mini:  https://www.sparkfun.com/products/9218 and the LS20031 GPS receiver http://www.sparkfun.com/tutorials/176 

It works GREAT on the UNO with the TinyGPS library but I cannot get it to work with the Mini.  I've tried everything but when I run the test_with_gps_device demo that comes with the TinyGPS library I never get any real values, just the *****'s.  I get a lock and I know the unit work because the simple test works on both Arduinos and the TinyGPS test works on the Uno.  I've even done as folks suggested in the bottom of the thread where they change the SS_MAX_RX_BUFF value in SoftSerial.h to 256 as suggested in one of the thread responses but still no dice.

Has anyone gotten this combo to work?
Logged

London
Offline Offline
Tesla Member
***
Karma: 10
Posts: 6255
Have fun!
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I don't have that combo but the link to the gps in your post indicates that the baud rate is 57600. If that is correct then it may be too fast for the pro  mini, particularly if its the 8MHz version.   

What baud rate are you using?
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 19
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

My baud rate is 57600.  Thing is I can talk to the GPS unit via the serial port on that baud rate.  I guess the SoftSerial cannot?

How do I know what speed my mini is?  I know I have the 5V model.
Logged

London
Offline Offline
Tesla Member
***
Karma: 10
Posts: 6255
Have fun!
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

> How do I know what speed my mini is?
From the IDE, click on Tools>Boards, your are running at 16MHz if your selected board is "Arduino Pro or Pro Mini (5V, 16 MHz) w/ ATmega328"

The Pro Mini uses a ceramic resonator which is not as precise as the quartz crystal in the Uno and that may be a reason that SoftwareSerial can't cope with the baud rate. Can you use the hardware serial (on pins 0 and 1) for the GPS?
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 4
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Can you use the hardware serial (on pins 0 and 1) for the GPS?

How does one do this? I have this same GPS unit. If I connect it to the hardware serial and then just upload a blank sketch and start the serial monitor then I see the GPS messages being spit out. I tried a sketch which opens the hardware serial, reads the GPS and writes it to an SD (without starting the serial monitor) and it doesn't seem to write any data.

There must be a way to read the GPS through the hardware serial (and then do something with this data) but I haven't figured it out yet. Seems like if I open the serial port [ I.E. Serial.begin(57600); ] then it connects to the host computer. And of course if I don't open the serial port then I don't see how I can get GPS data.

Thanks.
Logged

London
Offline Offline
Tesla Member
***
Karma: 10
Posts: 6255
Have fun!
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Can you use the hardware serial (on pins 0 and 1) for the GPS?

How does one do this?

Have a look at the tutorial here: http://www.sparkfun.com/tutorials/176

And remember that you may need to disconnect the GPS when uploading a new sketch.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 4
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Then this should work...
Code:
void setup() {
  Serial.begin(57600);     // gps TX,RX on 0,1
}

void loop() {
  if (Serial.available()) {
    Serial.print(Serial.read());
  }
}
except that it doesn't. If I hold in the reset button -- so that presumably the microcontroller isn't doing anything -- then I see the NMEA messages come out. As soon as I release the reset button then nothing is printed anymore, except sometimes I see one more sentence.

However, the following code does work,

Code:
#include <SoftwareSerial.h>
SoftwareSerial gps(3, 2);   // gps TX,RX on 2,3

void setup() {
  Serial.begin(57600);      // serial monitor
  gps.begin(57600);         // serial to GPS
  }

void loop() {
  gps.listen();             // doesn't seem to matter if this is here or not
  if (gps.available()) Serial.print((char)gps.read());
  if (Serial.available()) gps.print((char)Serial.read());
  }
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 4
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Then this should work...
except that it doesn't.
You know, I once had a college professor who repeated this mantra,

"it's in the wiring"

without even looking at your problem specifically, and he was always right.

 smiley-red
Logged

Pages: [1]   Go Up
Jump to: