I’m trying to create a rover that will receive RTCM data over NTRIP.
I have an Arduino MKR NB 1500 hooked up to a SparkFun GPS-RTK2 with Qwiic.
The MKR NB 1500 communicates with the NTRIP server just fine. I have attempted to send the RTCM data to the ZED-F9P over I2C, however the ZED-F9P has never successfully received the RTCM data. I have managed to see other data sent over I2C so the issue isn’t the I2C itself. I have seen in u-center that a lot of data sent over I2C is rejected by the ZED-F9P. I have also tried setting up the NTIRP client in u-center and the ZED-F9P successfully receives that data.
I have enabled RTCM messages and I try to send the data by first using Wire.beginTransmission(0x42), then I use Wire.write to register 0xFF and then I send the RTCM message byte by byte. I end the message with Wire.endTransmission. I don’t decode the RTCM message or anything, I send it directly to the ZED-F9P.
My guess is that there is something wrong with how I try to send the RTCM data from the MKR NB 1500, and I wonder how I should do that? Could it be that the format of the RTCM message I receive/send is wrong?
Look at the code at the end of the file. It shows how to use myGNSS.pushRawData to push the RTCM data to the ZED-F9P over I2C. It is designed to work with Example3. Example3 takes data from a Base ZED-F9P and transmits it to the Rover (using Serial1). The Rover code receives the data (also on Serial1) and then pushes it to the ZED.
You can compare your code to pushRawData to make sure you are doing the same thing:
Thank you for your reply! However, now that I use myGNSS.pushRawData the ZED-F9P still won’t get into RTK mode. I send the data I receive from the NTRIP server immediately to the ZED-F9P. Should I maybe sort it so I only push the RTCM3.x messages?