cancel
Showing results for 
Search instead for 
Did you mean: 

www.st.com

Francesco Virlinzi
ST Employee

Hi all

Have a look @

https://www.st.com/resource/en/application_presentation/teseo-3-quick-testing-guide.pdf

it's an easy way to test the connection to the Teseo III server based Assisted GNSS without special equipment and/or tool.

41 REPLIES 41

Hello again,

So I'm "almost" there. 🙂 I have code that processes the output of the 'curl' command and seems to generate proper commands from it. Unfortunately, I always get an error response when I try to send it to the GPS.

Here is an example line

$PSTMEPHEM,1,64,fd07dc50dc50282828b007002ca68e001506472a4c055d0507007500513200002769421d9f02ecf9fd369c961545b8c393922bafa03e6d110c00bdff4bf3c803*08

$PSTMEPHEMERROR*17

I have verified that I can get an okay response by dumping the existing ephemeris in the GPS and then writing it back.

I'm assuming that I have done something incorrect in generating the string. Do you have any suggestions on what I can use to debug this? I've used the code from the library provided and it didn't generate any errors.

Should this ephemeris data from the server look the same as what is already stored in the device by itself?

I'll keep debugging, thanks for any pointers you can offer.

Eric

Hi

humm... it's strange...

What are you decoding?

RealTime-data or Seed-Data?

Which PSTM command is raising the error?

Thansk

Ciao

Francesco

EHuse
Associate II

From my example line above, the $PSTMEPHEM is generating the error. Actually any of the lines I've generated (both PSTMEPHEM and the PSTALMANAC) return an error. I'm doing a RT-assistance request for GPS data.

Here is a response that I got... (my translation to PST command is below)

{"rtAssistance":{"body":[{"GPS:1NAC":"HwAD\/QBKKGABAAAALQAtAAA3hHYAlCAcAGAb0XNZDAAAYK4A\/73\/+e4kCUUzFU9CKDAH9ARc\/qMIHqENM\/9grgAZ\/6O5ls2U\/+Uns57lJugb3vFT\/\/+jiQVZAQP9AEooYAEBAABjAGMAAD+EdgCUIBwAYBvRc1nUAABgrgD\/rP\/6dWQJ5TUpWzaM9QgzCbCWiwkjoQ1Wr2CuAB8AX7bYDrz\/eybaCVkjurhjBnj\/\/6YcBX0CA\/0ASihgAQEAAGsAawAAP4R2AJQgHABgG9FzWQUAAGCuAAAIAAYgXPNANAQovHfA9GEA\/reGDwyhDHiEYK4AHwAf5BVx8gAjJzhmGh4zF95yxf\/\/pCr57QQD\/QBKKGABAAAANwA3AAA3hHYAlCAcAGAb0XNZ6AAAYK4AAAAAAAnt8143L8d3OcP1DQLZ8uYMFKENMU5grgAfAFbjBywF\/98mr0q0IAkcxpjD\/\/+jFPsiBQP9AEooYAEAAAA5ADkAADeEdgCUIBwAYBvRc1kKAABgrgD\/sgAIMQQI\/TG8V1IvjAf1ANPmKgjnoQxXo2CuAB\/\/\/blAYg3\/7CewI8Ml29EVGh7\/\/6TxBXEGA\/0ASihgAQAAAC8ALwAAN4R2AJQgHABgG9FzWegAAGCuAP+\/AABZXQifOoE2YPpnB9QGUPt3CN+hDMR1YK4AH\/\/IOf0j9QBTJvAK1CVnmztnt\/\/\/n0MDDAcD\/QBKKGABAAAAFAAUAAA3hHYAlCAcAGAb0XNZCwAAYK4A\/\/P\/+4LUBZQpbLKQdPIEsgI9Xt8f0aENxtdgrgAf\/+iOJRlsABgniuXXC9Hzw3Mr\/\/+r3wIxCAP9AEooYAEAAAA8ADwAADeEdgCUIBwAYBvRc1kDAABgrgD\/zAAOed4C+jFbtR+rrALFALSe+B\/1oQ3LXmCuAB8ADg4iSJoAFybUnHMKcka8b73\/\/6j+An0JA\/0ASihgAQAAAAIAAgAAN4R2AJQgHABgG9FzWQQAAGCtAP+zAAMFGPQmM6P6r2DY9cICQxlYDhuhDU6tYK0ADf\/54\/NhywAeJzi7vB9gkUxx0v\/\/pJ768AoD\/QBKKGABAAAAJAAkAAA3hHYAlCAcAGAb0XNZ5gAAYK4AADv\/6v25Dfc\/0TJvQJ0Lswh2dvQRHKENhcVgrgAfAFGnZID7\/x8lBersGBJMQ0lA\/\/+eDAdXCwP9AEooYAEAAAArACsAADeEdgCUIBwAYBvRc1nlAABgrgD\/4wAIdjz0wi4NF\/1EyvYzA+LvDRAtoQ1nk2CuABT\/tGbGbWMABigSeX8ehyrDsy7\/\/6eJ+CAMA\/0ASihgAQAAADgAOAAAN4R2AJQgHABgG9FzWegAAGCuAAAN\/\/2tagT2LbV7yfdbBDQB3599HFGhDVyKYK4AHwAnE65RNf\/aJ3WOaQ9SNtmKNf\/\/qyIDoA0D\/QBKKGABAAAALgAuAAA3hHYAlCAcAGAb0XNZ6wAAYK4AAAz\/\/SHLBgcvHp3Vrs4FGwVG3o8bzqENgLJgrgAfAEER5C8WAAEnKE2cDzmwsSVH\/\/+rrwPxDgP9AEs16AEAAAABAAEAADeEdgCUIBwAYBvRc1npAABgrQAAEf\/1bxn\/gDafg6uoEP9NBcJY7B14oQ1OqGCtAAP\/9Qrx1hH\/lCXVZhMLdB8+S3D\/\/6hFAUsPA\/0ASihgAQAAAEYARgAAN4R2AJQgHABgG9FzWekAAGCuAP\/p\/\/8d9PVKLOvJ9Tyt9osFiF3qEWqhDFDJYK4AHwBkZ4uuc\/\/hKBZwRhy6FqGiw\/\/\/qZ\/5ABAD\/QBKKGABAAAADQANAAA3hHYAlCAcAGAb0XNZ6AAAYK4AADMAAOC5BWwmaqU8PVoEowaaQocfSqENxB9grgAfAIGQ20PB\/+woGjOCDOi6HIP5\/\/+v4QJ+EQP9AEsf7wEAAAAKAAoAADeEdgCUIBwAYBvRc1nzAABgrQAAHwABNU0J2jeRRS\/YZwgSB7vuzghqoQ23zmCtAAP\/\/bdmycL\/ICbTtw0lIDg3qGT\/\/6GcBh8SA\/0ASihgAQAAABkAGQAAN4R2AJQgHABgG9FzWd8AAGCuAAAm\/\/TdnAUlJ3sXx5RZBM0E1cVuHwGhDRVoYK4AHv+qkr7FM\/\/GKALDqg3yN28iSP\/\/q7cB6RMD\/QBKKGABAAAAKgAqAAA3hHYAlCAcAGAb0XNZ7gAAYK4AAAMAESW59Lc8Y0FoJCj2FgI6tlcKL6ENbcdgrgAaABbfNyTV\/\/ol5kV6IZ1eO05E\/\/+giPstFAP9AEooYAEAAAAxADEAADeEdgCUIBwAYBvRc1nqAABgrgAAQv\/4heQIqjluBhv0nAeyDK\/7QgoKoQ4i2mCuAB7\/KLcLPUD\/qiaYccQjosRzdZX\/\/5zOBFkVA\/0ASihgAQAAAFYAVgAAN4R2AJQgHABgG9FzWdkAAGCuAP+\/\/+oXhPKdPQGIs6Hn9A4Dumd4C5ShDGhDYK4AHwBC4TVDAwBcJcSOiB8jxxcac\/\/\/oJP7GxYD\/QBKKGABAAAANwA3AAA3hHYAlCAcAGAb0XNZ1QAAYK4AAAz\/+asuApAyYm4j\/sYCIgahWzkgZaENDRJgrgAeAAgN86ab\/6QmdMxMCPii5QW9\/\/+qiwJhFwP9AEooYAEBAAA9AD0AAD+EdgCUIBwAYBvRc1kGAABgrgD\/\/P\/96cYJ5TxcWoeF6QhjBDkgoAlwoQ3D32CuAB\/\/fTdYnfP\/2iZArEIjIhiQMmf\/\/6EaBK8YA\/0ASihgAQAAADAAMAAAN4R2AJQgHABgG9FzWQwAAGCuAP\/V\/+firfUqMeEKxYwF9qoESSIcDpKhDeS3YK4AH\/\/gZDBTjQA0J48j+R8rI4y9Gv\/\/pLz4pRkD\/QBKKGABAAAAOAA4AAA3hHYAlCAcAGAb0XNZEAAAYK4AAFkABRTo9HU2He\/Ank31rQHmrP0OdaEMjBBgrgAfABhjEyp+ABEmzDZ\/HkAF3mzr\/\/+jpfhzGgP9AEooYAEAAAAIAAgAADeEdgCUIBwAYBvRc1kDAABgrgD\/uf\/9BboEayeTp7PqbwOuA4avFh6AoQ0lhWCuAB\/\/3Y6V+d\/\/7yfhLKwNsRIq\/M\/\/\/64GAl4bA\/0ASihgAQAAAFMAUwAAN4R2AJQgHABgG9FzWegAAGCuAAADABkeuPP\/LrvJZImF9dwJzQ6LEiGhDZWUYK4AH\/99Z7VthgDGKAtVAxw2xA\/\/pf\/\/pi33ZxwD\/QBKKGABAAAANQA1AAA3hHYAlCAcAGAb0XNZ6gAAYK4A\/7IACACyBTInbsmpDkQEfgBrJo4b2KEMcwlgrgAfAA2RTkQpAAQoKQ7OETE7cQ4b\/\/+s\/wIhHQP9AEooYAEAAAA8ADwAADeEdgCUIBwAYBvRc1kIAABgrgD\/xf\/9oRoIQj2VNrY3nQebAe09JgdqoQzd3GCuABIAJjstjD7\/+CZYe2QlXYUfsxb\/\/55VA0oeA\/0ASihgAQAAAGoAagAAN4R2AJQgHABgG9FzWeMAAGCuAP\/pAAGonweuOBMmDq65BwwEuppuBtOhDJgRYK4AHwBAOoz7CgBLJx+VaSb+\/8s7yv\/\/ockCOx8D\/QBKKGABAAAAWgBaAAA3hHYAlCAcAGAb0XNZAQAAYK4AAKL\/+mqAA+QwWMPokCcDYgFmzDwcm6EOLf9grgAfACAOZOdN\/\/UnAT3yDl+WyYTE\/\/+ptAI7"},{"GPS:1ALM":"AP0fAEXeAJAU4\/1NAAAAoQzY\/7mGcQAb3IL\/zyO6\/zz\/\/gGbCQCQB0r9QwAAAKEM9f+2x0P\/uGkC\/9sNcf9N\/\/0CD+MAkA0U\/TYAAAChC\/f\/5ASOABfrBP+ooW4AxAAABC2WAJAEhP0rAAAAoQyz\/+L16AAcz84AR1AHAAEAAAUNRQCQFK39UgAAAKEL\/v+5MAD\/0Ruc\/9c9MwEE\/\/4GZSMAkAin\/TgAAAChDGQAOeww\/5s9hv+2R9QACv\/+ByPYAJASRf1dAAAAoQ1g\/44VSP\/z9nMAMjC8\/3AAAAgLOQCQBt39VgAAAKENVgAOEjAARsrhADTlDwHO\/\/4JJEwAkA0a\/TkAAAChDNP\/4+J+\/5FN9gB6pW8AX\/\/+CodmAJDqBv0nAAAAoQ0Q\/6dTHwBMRyz\/skXd\/WEAAgs+PwCQGrT9QAAAAKENAwBmtdwAKssm\/5fRHAEO\/\/8MHeMAkBDv\/WIAAAChDPwAE56SADbFAf\/7ufH\/tgAADVSSAJAMG\/1cAAAAoQ0eABHUSP+wsUwAHa4p\/6QAAA5cKgCQ9uj9PQAAAKEM0wAK4SIAH0E2AAOgCv6uAAEPWJQAkBrz\/UIAAAChC\/UAZ3scABampwBJ4j\/\/4\/\/\/EGmWAJAbPP1qAAAAoQ1q\/5DLyP+6GsYAJRBhAB0AAhF7vACQBub9PQAAAKENUv+3VfkAODl6\/8UbVQAnAAESTXwAkBnH\/WoAAAChDLn\/kq9CADd8n\/+Xm1X+nQABEyO5AJD39\/0YAAAAoQzf\/98lXgBeYDD\/wSGlAiUAABTK8wCQAzH9PQAAAKENuv+2+kj\/xHsH\/4XgqP8SAAIVO60AkPXb\/RQAAAChC9P\/4SNt\/8cZ8QAIpYn9Qf\/+Fmo6AJAA3\/1PAAAAoQyQAA3jWv+i8VX\/7fwy\/zYAABdDmQCQ\/bH9LAAAAKENWgA3R1oAGJJB\/9pZ0\/+9AAAYRKUAkBKB\/TIAAAChDXcAZB9kACOSBP+KkfD8+\/\/\/GR5\/AJAGU\/0iAAAAoQwfAGMBvAAF5xMAb6afAKUAAxo4jACQF6r9ZAAAAKEMyf+OhlcAEkZ4ACd4R\/+f\/\/4bnNkAkBpD\/UIAAAChDTQAZ6TV\/8QWBQBJNbwDJAAAHAbWAJAcKv1tAAAAoQwY\/5E+1wA7slQASVZ5AP7\/\/h0e4wCQ\/y79KwAAAKEMcwA7HDT\/hScw\/7aWh\/+z\/\/4eS64AkAuf\/T4AAAChDEAAOnwX\/\/\/TqP+l8lgANf\/\/HxaLAJAJpv1YAAAAoQ3IAA5U6P+W5xEAQ5Vp\/1EABQ=="}],"status":200}}

And here is my list of decoded commands

Send $PSTMEPHEM command...

$PSTMEPHEM,1,64,fd07ae60ae602d2d2d64150089a56e004509e8261e08f407e5ffa3ff15330000e5a0227ba3ffcb57ff347cf43029b1a294cf050d53f34d6f0c00bdff24efe803*55

$PSTMEPHEM,2,64,fd07ae60ae60636363f415001ca86e00e509ba23230933087bff5f0029350000590b497a8b971f5daf577cf4f58da5aebc10470a7808d20bd400acff6476e913*58

$PSTMEPHEM,3,64,fd07ae60ae606b6b6bb4e7002aa66e0040f3331e0c0f61f423001f00043400001a68a77a86b86d5484797bf4c0782b7cf2738437c5744d6b050008005c21f513*54

$PSTMEPHEM,5,64,fd07ae60ae6037373788ec0014a56e005ef30920140c0df5dfff56002f370000b44c1e7ae6f348564e327cf4c33ae61a052e7636c39a3570e8000000ed0aef03*50

truncated to keep the post length down.

Okay, this may actually complicate the issue more, but I noticed that the response I get back from the Curl request does not have the outer set of brackets "[]". If I add these into the message before I decode it, the JSON parsing crashes with a segment fault on my PC. One of the string compares locks it up.

I noticed this when I added the "seed_valid()" function into my code and it rejected the JSON message because it did not have the outer set of brackets.

EHuse
Associate II

Another question, is the STAGPS on by default?

Does the setting of its state via the $PSTMSTAGPSONOFF command survive a power cycle?

Also, what is the default value of $PSTMSTAGPSSETCONSTMASK? Do I have to set the mask to make the STAGPS work properly?

Would the endianess of my machine have any impact on decoding? I ran the mbedtls_base64_self_test() function and it did pass.

Ciao

" $PSTMSTAGPSONOFF" doesn't survive to a power cycle.

To be active by default is has to enabled in the firmware configuration:

CDB-ID: 200 bit-4 (0x10)

But in the default firmware configuration STAGPS is already enabled.

On $PSTMSTAGPSSETCONSTMASK it changes the constellation managed by ST-AGPS.

In the default-configuration it is GPS & Glonass.

Ciao

Francesco

Just FYI. I solved the issue. The code library that was shared under NDA seemed to have a bug in it when I ran it on my Ubuntu PC. The routine was extract_dword(). I changed this line

 *dword += (local_buffer[0] << 24) + (local_buffer[1] << 16) + (local_buffer[2] << 😎 + local_buffer[3];

to

 *dword += ((local_buffer[0] << 24) & 0xFF000000) + 

      ((local_buffer[1] << 16) & 0x00FF0000) + 

      ((local_buffer[2] << 😎 & 0x0000FF00) + 

       (local_buffer[3]    & 0x000000FF);

Seems like the shift was putting in garbage bits that needed to be masked off. Not sure why, I believe the former code should work but did cause issues on my platform.

Thanks,

Eric

Ciao

It's interesting...

It seems there is some difference in the compilation results...

On Ubuntu... you have a GCC... and at the end also the compiler used on STM32 is a "GCC-like"...

Is your PC 32bits or 64 bits?

Ciao

Francesco