simpleRTK2B Lite Connection to Arduino

Hey

I have bougth a simpleRTK2B Lite and now i want to conntect it to my arduino, so i can read out the GPS data.

I build it like in the pictures.

In videos I saw that i can just upload the simple ,new file, code on the arduino and open the serial monitor. There you shoulde see the incomeing GPS data. But it is just blank. I do not if i have it on the right baud or the cabling is wrong. Is there a better way to connecet the modul with the Arduino (I also have the Xbee usb adapter)?

Thanks for the help.

image

You’ve only one data cable connected?

Try:

  • TX1: ZED-F9P UART1 TX
  • RX1: ZED-F9P UART1 RX

Also, post a link to the sketch you loaded to Arduino?

Pretty sure that GPS is 3.3volt only, so it’s not going to like the 5volt Arduino for very long.

Why would you want the Arduino connected anyway?

Just put it on that adaptor to the left in your picture & connect that to your computer & open the serial monitor to view the data.

1 Like

I was going to write an answer like this, but I was worried that the usb adapter there would give 5 volts to the mini f9p.

yes its 3.3v so i linked it with the 3.3v from the arduino.

i want to make it portable and save it on a sd card->no pc

yes first just with one.

Your wiring is also not working.

Now im trying it with power with the Xbee Adapter and wire it like in the picture.

i use the tinygpsplus Fullexampel code

#include <TinyGPS.h>

#include <SoftwareSerial.h>

#include <TinyGPS.h>

/* This sample code demonstrates the normal use of a TinyGPS object.
It requires the use of SoftwareSerial, and assumes that you have a
4800-baud serial GPS device hooked up on pins 4(rx) and 3(tx).
*/

TinyGPS gps;
SoftwareSerial ss(0, 1);

void setup()
{
Serial.begin(115200);
ss.begin(115200);

Serial.print("Simple TinyGPS library v. "); Serial.println(TinyGPS::library_version());
Serial.println(β€œby Mikal Hart”);
Serial.println();
}

void loop()
{
bool newData = false;
unsigned long chars;
unsigned short sentences, failed;

// For one second we parse GPS data and report some key values
for (unsigned long start = millis(); millis() - start < 1000;)
{
while (ss.available())
{
char c = ss.read();
// Serial.write(c); // uncomment this line if you want to see the GPS data flowing
if (gps.encode(c)) // Did a new valid sentence come in?
newData = true;
}
}

if (newData)
{
float flat, flon;
unsigned long age;
gps.f_get_position(&flat, &flon, &age);
Serial.print(β€œLAT=”);
Serial.print(flat == TinyGPS::GPS_INVALID_F_ANGLE ? 0.0 : flat, 6);
Serial.print(" LON=β€œ);
Serial.print(flon == TinyGPS::GPS_INVALID_F_ANGLE ? 0.0 : flon, 6);
Serial.print(” SAT=β€œ);
Serial.print(gps.satellites() == TinyGPS::GPS_INVALID_SATELLITES ? 0 : gps.satellites());
Serial.print(” PREC=");
Serial.print(gps.hdop() == TinyGPS::GPS_INVALID_HDOP ? 0 : gps.hdop());
}

gps.stats(&chars, &sentences, &failed);
Serial.print(" CHARS=β€œ);
Serial.print(chars);
Serial.print(” SENTENCES=β€œ);
Serial.print(sentences);
Serial.print(” CSUM ERR=β€œ);
Serial.println(failed);
if (chars == 0)
Serial.println(”** No characters received from GPS: check wiring **");
}

i changed the baud to 115200 because the f9f use it.

but in the serial monitor is only:

14:46:56.210 β†’ **** ***** ********** *********** **** ********** ******** **** ****** ****** ***** *** ******** ****** *** 0 0 0
14:46:57.201 β†’ No GPS data received: check wiring
14:46:57.201 β†’ **** ***** ********** *********** **** ********** ******** **** ****** ****** ***** *** ******** ****** *** 0 0 0
14:46:58.252 β†’ No GPS data received: check wiring
14:46:58.252 β†’ **** ***** ********** *********** **** ********** ******** **** ****** ****** ***** *** ******** ****** *** 0 0 0
14:46:59.255 β†’ No GPS data received: check wiring

SoftwareSerial ss(0, 1); is using IO 0 & 1 but you have your wires connected to 4 & 5 according to your picture.

1 Like

The pins that you use for software serial must support pin change interrupt, on an arduino UNO the only two pins that support pin change interrupts are pins 2 and 3.

So you have to use pins 2 and 3. Update both the code and wiring.

Edit: ignore me, I was wrong in how I understood the implementation of softwareSerial, you should be able to use any pin (obv not pin 0, 1 if also using the hardware serial).

1 Like

As far as I know pins 2 and 3 for uno are external interrupt pins, so they are not related to softwareserial.
I think other digital pins other than 0 and 1 can be used in software serial, for example 8-9 or 10-11, but altsoftserial library is more successful.

Of course, for this code to work, f9p must be set at 115.200, if it does not work, the baud setting of ss.begin in the code can be tried at different speeds such as 9600, 38400, but the best thing is to connect it to the usb adapter and set it with u-center.

image