EC25 QuecOpen GNSS

Hi,
I am using QuecOpen EC25EFAR06A01M4G_OCPU_01.001.01.001_SDK with the EC25 and I’m struggling to get the GNSS part working correctly in QuecOpen.
Maybe a newer SDK had been released that improves the use of GNSS with QuecOpen ?
My main problem is that I do not understand half of what is written in the ql_mcm_gps.h file.
For example:

  • I do not understand how to put to good use the min_interval, preferred_accuracy and preferred_time of the QL_LOC_POS_MODE_INFO_T struct. Comments in the code are not very clear as to what the values of these parameters do and the QuecOpen Software application note on GNSS doesn’t explain much either.

  • Same thing goes for E_QL_LOC_POS_MODE_MS_BASED and E_QL_LOC_POS_MODE_MS_ASSISTED in E_QL_LOC_POS_MODE_T which don’t seem to work. Seem to recall reading in the AT command document that these modes were not supported… Doesn’t explain why they’re in the .h file though.

  • Same thing goes for using Xtra. Doesn’t really say how to use it in QuecOpen.

  • Last thing is that if I start the GNSS using only the functions defined in ql_mcm_gps.h as explained in the application note and software example, it takes ages to get a fix (more than a minute). But if I start the GNSS using AT+QGPS=1 in my code, then the GNSS gets a fix much faster (20 to 30s).

I do not know which of these two approaches is the best:

  1. Use only the AT commands within the QuecOpen C code (which seems a bit of a shame when using the QuecOpen SDK);

  2. Or use the functions provided in the QuecOpen SDK ?

So far I’m using a mix of both to get the GNSS working more or less properly. Works fine when GNSS conditions are excellent, but not so much when the conditions are poor. Hence the questions above about how to configure the GNSS parameters in QL_LOC_POS_MODE_INFO_T, how to use AGPS and how to use Xtra.

I’ve already asked my local FAE about this a year ago but never got a reply.

Best regards,

Harold Nottingham

Hi @hnott

Thank you for your information,
I’m not sure if you have referenced the following documents, I uploaded them and hope it helps you.

KBA_QuecOpen_GPS_API_UserGuide_V1.0.pdf (1.2 MB)
Quectel_EC2X&AG35-QuecOpen_Base_Station_Position_Solution_V1.0_Preliminary.pdf (1.1 MB)

Hi @Puck-Q,

Thank you for your reply.
I already have these exact documents in the documentation that was provided in the QuecOpen software package. They do not however answer any of my questions as they do not go too deep into the details of the API…

First question I had was about the contents of the QL_LOC_POS_MODE_INFO_T structure in ql_mcm_gps.h :

  1. Which values can be used for min_interval and what do the values mean/represent in reality ? What are the minimum and maximum values that can be used and that make sense ?

  2. Same question for preferred_accuracy : What does it represent ? What happens if the value specified cannot be achieved ? Is there a minimum and maximum value ?

  3. Same question for preferred_time : What does it represent ? What happens if the value specified cannot be achieved ? Is there a minimum and maximum value ?

Maybe people that have done GNSS/GPS for a long while have the answers to these questions. But that is not my case. Can you please shed some light on these questions ?

We can tackle the remaining question afterwards. I realise I’ve put quite a lot of questions in :wink:

Best regards,

Hi @hnott

My feedback is as following.

  1. Which values can be used for min_interval and what do the values mean/represent in reality ? What are the minimum and maximum values that can be used and that make sense ?
    [Puck] :
    min_interval Represents the time between fixes in milliseconds.
    unit: ms
    Ranges:100,200,500,1000,>1000

  2. Same question for preferred_accuracy : What does it represent ? What happens if the value specified cannot be achieved ? Is there a minimum and maximum value ?
    [Puck] :
    preferred_accuracy Represents requested fix accuracy in meters.


    My opinion is that the setting of this parameter only allows GNSS to work at a performance value, but there are many factors that affect the positioning accuracy. If the accuracy is not achieved, the positioning accuracy will continue to be updated(pt_location->accuracy), and the positioning will continue to work.

  3. Same question for preferred_time : What does it represent ? What happens if the value specified cannot be achieved ? Is there a minimum and maximum value ?
    [Puck]:
    preferred_time Represents the requested time to first fix in milliseconds.
    I think this parameter is only suitable for warm start. You can try to run the example_gps as sync_get_position_once mode .
    Once you have successfully positioning in cold start (positioning time depends on the set timeout_sec, if the positioning is not successful within the timer_out time, it will return -2, generally Cold start is recommended for 90s). The time interval for obtaining positioning information next time will refer to the preferred_time setting value.
    For example, I set the preferred_time to 1s,then when sync_get_position_once is executed again, positioning message will be displayed within 1s after QL_LOC_Set_Position_Mode setting.



    actually,in warm start mode,the message display time depends on which value of time_out and preferred_time is smaller, such as time out =1s, preferred_time = 10s, then the positioning message will be displayed after 1s.
    Ranges:>=1ms.

Hope those can help you.

Hi @Puck-Q,

Thank you for your reply. That does makes things clearer.
There are still things I don’t quick get though:

  1. preferred_accuracy is a uint32_t variable. What is the unit ? m or mm ? Because uint32_t is quite big for indicating something in the meter range that goes from 1m to 10km for example…

  2. Same question for preferred_time. You replied by saying it is in ms (would be more logical for a uint32_t) but then you show sample code that has 1 written in it instead of 1000 for 1s. So which is it ? ms or seconds ?

If this could be indicated in the comments for typedef struct { } QL_LOC_POS_MODE_INFO_T; in ql_mcm_gps.h I am sure other people would find the information useful.

Best regards,

Hi @hnott

please refer to the answes below.
1- preferred_accuracy // unit: m
2- preferred_time // unit: s
sorry , 1 = 1s

Yes, thank you for your suggestion, we will optimize it.

Hello,
i have almost the same problem. I have to implement AGPS but i’m having trouble using GNSS API. So i’m starting to use AT commands, is there any correct AT commands flow that u can suggest me?
In addition I saw from the ec21eu page that there is a new application note Quectel_EC2x&EG9x&EG2x-G&EM05_Series_GNSS_Application_Note_V1.3 but it’s only for premium users.

Furthermore i have problem with Xtra functionality too. I read from other topics in the forum that the correct address is http://xtrapath4.izatcloud.net/xtra2.bin and that only xtra2.bin is supported. Is that right? I tried to check using at commands and the response was dated 1980 for other xtra file but xtra2.bin (downloaded from the link above).

Best regards
AM

Hi @DJCC,

As you guessed from the above I had the same problems. However I never got round to enabling the AGPS or the Xtra for lack of time to spend on the subject. I also could not figure out which date to inject for the Xtra, kept getting the 1980 date and none of the Xtra files I uploaded seemed to have any effect.

So far everybody keeps saying look at the documentation and figure it out. As you noticed this is quite tedious and takes a long time. I haven’t found any straight forwards explanation on how to do this yet. However I believe that by looking at all the relevant documentation (which would require having access to all documents) and by doing intensive research on this forum you should be able to figure it out. Other people must have been able to do it. But it will probably take a very long time…

Sorry that I cannot be of more help.

Best regards,

Harold