does anyone even use pygpsclient?
sparkfun seemed to reccomend it but there is no info on how to use it to collect data for opus.
I can’t believe how complex all this is and there is no way to actually learn it, hours of feeling around in the dark
how do you take what pygpsclient records and turn it into rinex, rtklib can’t use these files.
Hi @steve1428 ,
What GNSS hardware are you using? And how do you have it configured?
So long as you have “Binary” selected, the files logged by “DataLogging” should be a complete copy of all data received from the GNSS. So long as you have the correct messages enabled, rtklib should be able to process them OK.
I see semuadmin has already given you help on this issue:
For the LG290P, I suspect you need to log the RTCM Ephemerides 1019, 1020, 1042, 1046 together with NMEA GPGGA :
I hope this helps,
Paul
I know all that.
rtklib can’t do anything with the files
I changed the extension from .log to .bin to see if that would help but no luck
I read and followed the manual for RTKCONV a bunch of times, no luck.
The problem is that people who program computers all the time assume that some things are obvious…when they aren’t
I’ve asked sparkfun support to make a quck tutorial, I doubt they will.
it’s all stuff I bought from sparkfun.
I’m using the pHAT qucktel unit.
“so long as you have the correct messages enabled”
doesn’t help
$GNGGA,040627.000,3448.08833950,N,11405.00920262,W,2,34,0.25,644.949,M,-29.887,M,4C
$GNRMC,040627.000,A,3448.08833950,N,11405.00920262,W,0.026,233.29,130625,D,V2F
If I remember, the proc. is to enable base_mode after restore & reset and enable RTCM ephemerides & e.g. all msm7 or default _4 (without base fix 1005 _6)
then “filter” the log file in strsvr as rtcm3 to rtcm3 (for message & nmea…)
and put the obtained file in rtkconv as rtcm3 format…
I will reproduce later
You might take a moment to describe the equipment you have.
This Sparkfun RTK getting started tutorial has helpful information: GPS-RTK Hookup Guide - SparkFun Learn
i’'ve said i have the Phat many times
I have no problem getting the boards to work, I’ve used my postcard with skylark to get rtk fix. I’ve plugged in skylark coordinates into pygps and used my pHat as a base station for my rtk postcard no problem.
the exercise of collecting data and finding an accurate base station location without using skylark…completely lost
RAW observation data recording with LG290P is done via RTCM 3.x and not ubx format.
Using Quectel program check or change UART port configuration to set it to RTCM 3.x transmission. Instead of a UART port, you will probably use a USB port. Below is a ready-to-flash configuration script based solely on commands from https://cdn.sparkfun.com/assets/f/7/b/c/c/Quectel_LG290P_GNSS_Protocol_Specification_v1-0.pdf.
# 1. Mute all unneeded NMEA sentences on UART0
$PQTMCFGMSG,UART0,GGA,0*24
$PQTMCFGMSG,UART0,RMC,0*2A
$PQTMCFGMSG,UART0,GSA,0*22
$PQTMCFGMSG,UART0,GSV,0*21
# (set any other active NMEA talker to 0 as well)
# 2. Select RTCM v3 as the outgoing format
$PQTMCFGRTCMOUTFMT,UART0,3*51
# 3. Enable raw “Multi-Signal Messages”
# – the minimum kit for later PPP/RTK post-processing
# 1077 (GPS MSM7) 1 Hz
# 1087 (Galileo MSM7) 1 Hz
# 1097 (GLONASS MSM7) 1 Hz
# 1127 (BeiDou MSM7) 1 Hz
$PQTMCFGRTCM,UART0,1077,1*7F
$PQTMCFGRTCM,UART0,1087,1*71
$PQTMCFGRTCM,UART0,1097,1*70
$PQTMCFGRTCM,UART0,1127,1*73
# 4. (Optional) add ephemeris / orbit states
# 1019 – GPS ephemeris every 10 s
# 1020 – GLONASS ephemeris every 10 s
# 1045 – Galileo F/NAV eph. every 10 s
# 1046 – Galileo I/NAV eph. every 10 s
$PQTMCFGRTCM,UART0,1019,10*75
$PQTMCFGRTCM,UART0,1020,10*7A
$PQTMCFGRTCM,UART0,1045,10*76
$PQTMCFGRTCM,UART0,1046,10*77
# 5. Persist everything to NVRAM
$PQTMSAVEPAR*3F
# 6. Soft-reset the module (hold POWER_KEY high ≈ 30 ms)
$PQTMSYSRST*29
Common “gotchas”
- The LG290P spits out MSM7 only after it has a 3-D FIX + ≥ 5 SV per constellation.
- If you previously switched the receiver to Base mode, flip it back to Rover:
$PQTMCFGRCVRMODE,W,1*3A
→ reset. - For PPP/RTK post-processing you usually do not drop ephemeris (step 4); tools like RTKLib will look for them in the log.
Record data using strsvr program from RTKLIB demo5 package. Select serial port as Input and file as Output.
Convert the received file using rtkconv program from RTKLIB demo5 package (rtcm3 → rinex OBS/NAV).
Hai una buona fantasia a scrivere i comandi…la sintassi corretta è diversa ma il principio è corretto.
that’s all too complicated for me.
my LG290P is on an adapter that fits on a rasp Pi so I’m using this pygpsclient program.
it has a gui, you check boxes and record binary data.
I have RTCM data, when I pick that file with rtkconv and press the convert button, nothing happens, no rinex file is generated.
sorry, i have to stick with using this system, i don’t want to get into operating this thing with cryptic CLI commands.
The second way to save observation data is in binex format.
You configure the receiver to send data in binex format:
# 0. Connect via UART0 (460 800 8N1 default)
# 1. If you don’t need RTCM on this port, disable it
$PQTMCFGRTCM,UART0,0,0*2B # “0,0” = ALL off
# 2. Turn on BINEX at 1 Hz
# type=2 → BINEX, rate=1 s
$PQTMCFGRAWOUT,UART0,2,1*4C
# 3. Optional: mirror the log on USB as well
$PQTMCFGRAWOUT,USB,2,1*47
# 4. Save and soft-reset
$PQTMSAVEPAR*3F
$PQTMSYSRST*29
In the above script, data is sent to the UART port and the USB port. If the module is connected to the USB port, it will be seen as a COM port in the computer.
You record data with the strsvr program from RTKLIB demo5, selecting the appropriate COM port as Input, and a file with the bnx extension as Output.
You convert the bnx file in rtkconv from RTKLIb demo5 to the rinex format.
Okay. Sorry.
Errare humanum est, perseverare autem diabolicum !
@JanW,U continue to write incorrect command sentences…
…
@steve1428
I wonder, if module does not get a fix the log will be empty…
here an example to view a log file:
if file is mixed U can re-log and give supplementar inputs:
filtered file:
Regards
Please ignore the posts by JanW. They contain bad information - almost certainly AI-generated.
We will work on a tutorial for this. It will take us a few days, possibly a couple of weeks (due to some logistical issues), but we will get to it.
Best wishes,
Paul
SkyNet trying to lead us astray!