Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GPS tab: New design for gps Status / Quality #3566

Merged
merged 10 commits into from
Sep 9, 2023

Conversation

HThuren
Copy link
Member

@HThuren HThuren commented Sep 5, 2023

New design for gps Status / Quality

1st column - Status: unused = 'depends', USED = green
2nd column - Quality: no signal = red, unusable = red, searching = red, locked = orange and fully locked = green
'depends' = if not USED, then colour same as Quality

image

@github-actions

This comment has been minimized.

@blckmn
Copy link
Member

blckmn commented Sep 5, 2023

AUTOMERGE: (FAIL)

  • github identifies PR as mergeable -> FAIL
  • assigned to a milestone -> FAIL
  • cooling off period lapsed -> PASS
  • commit count less or equal to three -> PASS
  • Don't merge label NOT found -> PASS
  • at least one RN: label found -> PASS
  • Tested label found -> FAIL
  • assigned to an approver -> FAIL
  • approver count at least three -> FAIL

@ctzsnooze
Copy link
Member

This sounds really good! I look forward to testing. Thank you!

@HThuren
Copy link
Member Author

HThuren commented Sep 6, 2023

By the way, Pls feedback on colour Yellow, rgb yellow was very light, so I use more orange tones, but then move against rgb orange.

@nerdCopter
Copy link
Member

nerdCopter commented Sep 6, 2023

By the way, Pls feedback on colour Yellow, rgb yellow was very light, so I use more orange tones, but then move against rgb orange.

can you send screenshot? recommend re-using any existing colors that are already used in current CSS files.

@HThuren
Copy link
Member Author

HThuren commented Sep 6, 2023

Looks like:
image

colours used:
image
image
image
image

src/js/tabs/gps.js Outdated Show resolved Hide resolved
@ctzsnooze
Copy link
Member

The colours are really nice!
Some thoughts....
I guess we want to see 'green lights' when things are good.

The most important word is 'used'. It means that the satellite is actively involved in calculating the fix, based on signal strength and position.

That's probably the one we want to see standing out by how 'green' it is. It should probably be the leftmost icon in the row.

Healthy refers to signal strength, and when unhealthy, will not be used. 'searching' essentially is a form of 'unhealthy', it means the signal had been received previously, but not now.With either of these flags, the satellite isn't used.

Hence I think the hierarchy goes used > fully locked > locked > healthy > searching > unhealthy

I wonder how it would look with only 'Used' in green, perhaps with the button width a bit wider, and in capitals? Then fully locked and locked could be the orange colours. For signal, healthy could be the same orange as locked, and searching / unhealthy could be grey.

@haslinghuis
Copy link
Member

Agree. Used is most important here. Asked [be]for[e] all three coloms to use green before when in optimal state.

@nerdCopter nerdCopter self-requested a review September 7, 2023 13:43
@github-actions

This comment has been minimized.

@HThuren
Copy link
Member Author

HThuren commented Sep 7, 2023

Ok, now we have this design.
// 1st column: unused = red, used = green
// 2nd column: unknown = red, non healthy = grey, healthy = orange
// 3d column: no signal = red, unusable = red, searching = grey, locked = yellow and fully locked = orange
what do you think ?

image

@github-actions

This comment has been minimized.

@ctzsnooze
Copy link
Member

Thank you! I woke up early before going to work, and thought it looked more 'obvious' in terms of explaining which were the satellites we were actually using for our 3D fix. The green 'USED' signs were very clear.

I found this information about signal quality:

Signal quality indicator:
• 0 = no signal
• 1=searchingsignal
• 2=signalacquired
• 3=signaldetectedbutunusable
• 4=codelockedandtimesynchronized
• 5,6,7=codeandcarrierlockedandtime
synchronized

And signal health flag

Signal health flag:
• 0=unknown
• 1=healthy
• 2=unhealthy

@ctzsnooze
Copy link
Member

I have a feeling that whenever we get unhealthy or unknown, we get red on 'unused', but have to check.

@HThuren
Copy link
Member Author

HThuren commented Sep 8, 2023

I have a feeling that whenever we get unhealthy or unknown, we get red on 'unused', but have to check.

A another design are to show "unused" in grey and green USED, and omit the many red boxes.

@HThuren
Copy link
Member Author

HThuren commented Sep 8, 2023

Give this:

image
image
image

@ctzsnooze
Copy link
Member

ctzsnooze commented Sep 8, 2023

The last changes are really good!

I guess it would be a 'community' decision, but I wonder about the need for the 'healthy' column ? It doesn't seem to add much. I don't mind keeping it, but it seems to not add any useful information over what we get from the signal strength indicator. In your image above, and in my tests, it seems to keep saying 'healthy' even though there is no signal, and that isn't helpful. And also it will sometimes show 'unknown' when the signal strength says 'fully locked', which doesn't make sense.

So maybe try how it looks without the 'healthy' column? Alternatively, it could be the rightmost column, but to be honest I think we are better off without it.

Also, if our principle is that 'red' = "broken" or "unusable", then we should only show 'red' when the satellite is truly broken or truly not usable.

At present, however, we show 'red' in the Used/Unused column, even if the sat is healthy and is fully locked. In that case it would be better if the colour for unused was orange, not red. Maybe we could make the colour of the Used/Unused column match the signal status colours, but when it is 'USED', then over-ride that colour to green?

Could you perhaps try that out, and see if you think it is better / more intuitive?

If we then had two columns: both would be solid red on 'no signal', grey on 'searching', pale orange on 'locked',and strong orange on 'fully locked', but the left column would become 'green' when that sat was used in the 3D fix.

I've noticed that if we have a sat that is used in the 3D fix, then I put my hand over the GPS, the signal indicator will drop low even though the 3D fix status stays green. So I think this would be a good solution.

@HThuren
Copy link
Member Author

HThuren commented Sep 8, 2023

I guess it would be a 'community' decision, but I wonder about the need for the 'healthy' column ?

You may have a point, healty came up before anything else, but USED seems to be influenced by quality indicator

@ctzsnooze
Copy link
Member

ctzsnooze commented Sep 8, 2023

PS any chance we could show lat and long with 6 decimal places? The last two decimal places can be useful as an indicator of position stability.

@HThuren
Copy link
Member Author

HThuren commented Sep 9, 2023

PS any chance we could show lat and long with 6 decimal places? The last two decimal places can be useful as an indicator of position stability.

Yes, no issue, changed to fixed at 6

@ctzsnooze
Copy link
Member

ctzsnooze commented Sep 9, 2023

Thanks, again!
The number of decimal places for lat and lon are still showing 4, perhaps it needs changing in other places also?
I was able to try some options and ended up with:

  • replaced 'grey' colour with 'red'
  • removed the 'healthy/unhealthy' column
  • if the satellite was not 'in used', then I set the 'not used' button to the colour of the 'signal' column
  • made 'fully locked' green, and 'locked' orange.

It ended up looking like this, which I thought was fairly easy to interpret.
Screen Shot 2023-09-09 at 23 44 57

@HThuren
Copy link
Member Author

HThuren commented Sep 9, 2023

regarding 6 digit, not yet uploaded :-)

@HThuren
Copy link
Member Author

HThuren commented Sep 9, 2023

Here we go
image

@haslinghuis
Copy link
Member

Looking good! Please rebase and resolve sonarcloud issues.

@HThuren HThuren changed the title Gps colour ajustment when translated GPS tab: New design for gps Status / Quality Sep 9, 2023
@github-actions

This comment has been minimized.

@haslinghuis
Copy link
Member

5 code smells remaining 😋

src/js/tabs/gps.js Outdated Show resolved Hide resolved
@sonarcloud
Copy link

sonarcloud bot commented Sep 9, 2023

Kudos, SonarCloud Quality Gate passed!    Quality Gate passed

Bug A 0 Bugs
Vulnerability A 0 Vulnerabilities
Security Hotspot A 0 Security Hotspots
Code Smell A 0 Code Smells

No Coverage information No Coverage information
0.0% 0.0% Duplication

@github-actions
Copy link
Contributor

github-actions bot commented Sep 9, 2023

Do you want to test this code? Here you have an automated build:
Betaflight-Configurator-Android
Betaflight-Configurator-Linux
Betaflight-Configurator-macOS
Betaflight-Configurator-Windows
WARNING: It may be unstable and result in corrupted configurations or data loss. Use only for testing!

@ctzsnooze
Copy link
Member

ctzsnooze commented Sep 9, 2023

@HThuren thank you! That looks absolutely great! Very easy to interpret now. Approved!

Apart from any technical coding suggestions (maybe name the colours with the colour itself?), this works really well, and is a definite improvement over the old display.

Also the 6 decimal places is quite useful. If only the last digit is changing, the reading is probably inside a 1-2m circle. If the 5th digit is changing a lot, then we have low accuracy.

If we had access to the 'dilution of precision value' (a multiple of the specified accuracy of the module), or its newer and more precise horizontal accuracy (hAcc) value (a value in metres), it would be awesome if, on the map, we drew a grey circle around the current point, the radius of which could indicate current precision.
We could do something similar from the reported speed value. A smoothed average of the speed value, with say a time constant of half a second, would, while the quad was still, relate to accuracy. And we already have the speed value.

A related concept could be used with our 'distance to home' value. I had wondered if we could have a button which 'set' the home point to the current latitude and longitude. The user could click it, then get a distance traveled from home indicator. Once that distance stabilised a bit, they could click again, and watch for absolute drift over time with that specific GPS module.

Both these tools would be quite useful for assessing the accuracy of the GPS and monitoring how that evolved over time.

Oh and yeah on the map it would be awesome to have a distance scale, and even better, a faint grid at say 1m minor lines. If say we zoom in a lot, especially at a field, the map can be empty of detail, and we no longer can see the random movement of the quad over time.

@haslinghuis haslinghuis merged commit bb76112 into betaflight:master Sep 9, 2023
9 checks passed
@haslinghuis haslinghuis added this to the 10.10.0 milestone Sep 9, 2023
@HThuren HThuren deleted the gpsAjustment branch September 9, 2023 23:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Status: COMPLETED
Development

Successfully merging this pull request may close these issues.

7 participants