ubx-cfg

ESP-GPS Testing

Choosing the right constellations, satellite limits, and logging rates is a complex, but crucial decision.

It would be good to identify a shortlist of optimal configurations, based on M10 and ESP32 clock speeds.

Static testing provides a controlled environment to test devices systematically, and is very easy to perform.

Be aware that the +/- values in the software may mislead you… see earlier test comparing 5 Hz and 10 Hz.

This battery of tests has been inspired by the plan for fundamentals testing, but is specific to the ESP-GPS.

Overview

There are several phases planned, which can each be split up over a number of days:

  1. Compare both of the 2 constellation configurations - 6 hours
  2. Test whether GPS + GLONASS + Galileo improves accuracy - 6 hours
  3. Test whether GPS + Galileo + BeiDou B1C improves accuracy - 6 hours
  4. Compare both of the 3 constellation configurations - 6 hours
  5. Compare 4 constellations against 3 constellations - 6 hours

The final outcome should be an optimal configuration for the existing ESP-GPS devices.

Note: 16 Hz is not a divisor of 1000, but it is closely related to 4 Hz and 8 Hz.

Approach

Test Duration

Configuration

Data Analysis

Phase 1

Compare both of the 2 constellation configurations:

Test ESP-GPS #1 ESP-GPS #2 Rate
1.1 GPS + GLONASS GPS + Galileo 10 Hz
1.2 GPS + GLONASS GPS + Galileo 16 Hz
1.3 GPS + GLONASS GPS + Galileo 20 Hz

Total duration = 6 hours, excluding analysis

Notes:

Expectations

I suspect that GLONASS will have the least favourable results, but it needs some actual proof.

The 20 Hz tests might result in some dropped frames, demonstrating that the CPU bandwidth has been exceeded.

Dropped frames can potential be avoided by reducing the maximum number of satellites from the default of 32.

Phase 2

Test whether GPS + GLONASS + Galileo improves accuracy:

Test ESP-GPS #1 ESP-GPS #2 Rate
2.1 GPS + GLONASS + Galileo GPS + GLONASS 10 Hz
2.2 GPS + GLONASS + Galileo GPS + GLONASS 16 Hz
2.3 GPS + GLONASS + Galileo @ 16 Hz GPS + GLONASS @ 20 Hz -

Total duration = 6 hours, excluding analysis

Notes:

Expectations

The addition of Galileo should improve the accuracy of the results.

The 16 Hz and 20 Hz tests might result in some dropped frames, demonstrating that the CPU bandwidth has been exceeded.

Dropped frames can potential be avoided by reducing the maximum number of satellites from the default of 32.

Phase 3

Test whether GPS + Galileo + BeiDou B1C improves accuracy:

Test ESP-GPS #1 ESP-GPS #2 Rate
3.1 GPS + Galileo + BeiDou B1C GPS + Galileo 10 Hz
3.2 GPS + Galileo + BeiDou B1C GPS + Galileo 16 Hz
3.3 GPS + Galileo + BeiDou B1C @ 16 Hz GPS + Galileo @ 20 Hz -

Total duration = 6 hours, excluding analysis

Notes:

Expectations

The addition of BeiDou B1C should improve the accuracy of the results.

The 16 Hz and 20 Hz tests might result in some dropped frames, demonstrating that the CPU bandwidth has been exceeded.

Dropped frames can potential be avoided by reducing the maximum number of satellites from the default of 32.

Phase 4

Compare both of the 3 constellation configurations:

Test ESP-GPS #1 ESP-GPS #2 Rate
4.1 GPS + Galileo + GLONASS GPS + Galileo + BeiDou B1C 8 Hz
4.2 GPS + Galileo + GLONASS GPS + Galileo + BeiDou B1C 10 Hz
4.3 GPS + Galileo + GLONASS GPS + Galileo + BeiDou B1C 16 Hz

Total duration = 6 hours, excluding analysis

Notes:

Expectations

I suspect that GLONASS will have the least favourable results, but it needs some actual proof.

The 16 Hz tests might result in some dropped frames, demonstrating that the CPU bandwidth has been exceeded.

Dropped frames can potential be avoided by reducing the maximum number of satellites from the default of 32.

Phase 5

Compare 4 constellations against the best 3 constellations, assumed to be GPS + Galileo + BeiDou B1C :

Test ESP-GPS #1 ESP-GPS #2 Rate
5.1 GPS + Galileo + BeiDou B1C + GLONASS GPS + Galileo + BeiDou B1C 8 Hz
5.2 GPS + Galileo + BeiDou B1C + GLONASS GPS + Galileo + BeiDou B1C 10 Hz
5.3 GPS + Galileo + BeiDou B1C + GLONASS @ 10 Hz GPS + Galileo + BeiDou B1C @ 16 Hz -

Notes:

Total duration = 6 hours, excluding analysis

Expectations

I suspect that 4 systems will show negligible benefit, because the maximum number of satellites is limited to 32.

The 10 Hz and 16 Hz tests might result in some dropped frames, demonstrating that the CPU bandwidth has been exceeded.

Dropped frames can potential be avoided by reducing the maximum number of satellites from the default of 32.

Summary

The intended outcome of this investigation will be the optimal configurations, based on M10 and ESP32 clock speeds.

For example:

  M10 @ 128 MHz M10 @ 192 MHz
ESP32 @ 80 MHz GPS + Galileo + BeiDou B1C @ 8 Hz -
ESP32 @ 160 MHz - GPS + Galileo + BeiDou B1C @ 16 Hz

In order to prevent dropped frames, maximum numbers of satellites will almost certainly need to be restricted.

Different logging rates can be offered to anyone who wants smaller files, e.g. GPS + Galileo + BeiDou B1C @ 4 Hz.

Future refinements to the ESP-GPS configuration may also benefit from the findings of fundamentals testing.

Useful Tools

Use GNSS View with mask angle of 5 degrees to ascertain the expected number of satellites for each constellation.

Ignore the square satellites (geo-stationary) and focus only on the round ones (MEO).