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

Adjust SW blink interval #9644

Merged
merged 2 commits into from
Jan 22, 2024
Merged

Conversation

mmosca
Copy link
Collaborator

@mmosca mmosca commented Jan 14, 2024

200ms seems to iteract badly with some digital systems, causing unreliable blinking.

I will turn the cycle interval into a configuration variable in 8.0.

200ms = original value, unreliable blinking
500ms = acceptable blinking with walksnail
1000ms = was also tested and worked ok

For software blink emulation, Blinking changes a character appearance at a given frequency, the OSD code on digital systems updates the OSD at a different arbitrary frequency. Depending on the relationship between the two you may not see the text, or it may not blink. Similar to how lights can blink if you have mismatched frequencies when recording video (50Hz mains, 60fps video).

I also suspect that the way some of the digital systems handle blinking characters may rely on the clear screen command, which also happens at a given frequency in INAV.

This is a temporary workaround for #9552

I will make the value configurable in INAV 8.0

200ms seems to iteract badly with some digital systems, causing
unreliable blinking.

I will turn the cycle interval into a configuration variable in 8.0.

200ms = original value, unreliable blinking
500ms = acceptable blinking with walksnail
1000ms = was also tested and worked ok

For software blink emulation, Blinking changes a character appearance
at a given frequency, the OSD code on digital systems updates the OSD at a
different arbitrary frequency. Depending on the relationship between the two
you may not see the text, or it may not blink. Similar to how lights can
blink if you have mismatched frequencies when recording video (50Hz
mains, 60fps video).

I also suspect that the way some of the digital systems handle blinking characters
may rely on the clear screen command, which also happens at a given
frequency in INAV.
@mmosca mmosca added this to the 7.1 milestone Jan 14, 2024
Looks like display.c already handles it,
and displayport_msp is always using sw blinking.
@rts18
Copy link

rts18 commented Jan 22, 2024

@mmosca This change has made it more consistent.
Some timer coupling can still be observed when 20 - 32 items are added to the screen. But unlike before when the blink slowed to14s OFF. The only fluctuation now is 0.5 to 0.9s. Which I consider acceptable.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants