DeviationTX / deviation

Custom firmware for RC Transmitters
http://www.deviationtx.com
GNU General Public License v3.0
247 stars 153 forks source link

CRSF device names longer than 12 characters break the device page #1017

Closed howels closed 2 years ago

howels commented 2 years ago

When using CRSF module protocol, if a device name is > 12 characters then a blank line is shown and the CRSF device page cannot be used.

I've tried to fix it myself but I cannot figure out where the 12 char limit is coming from and my attempts to pre-emptively cut the name strings short before they hit whatever is throwing the error are going nowhere.

So I'm leaving this issue here in case someone who knows more about the GUI rendering process finds it.

hexfet commented 2 years ago

What transmitter are you using? What radio module are you using? Can you please give an example of a device name that causes the failure?

I only have a Crossfire radio and it doesn't seem to have this problem. The device name is "XF Transmitter" which is 14 characters and works correctly.

You can try reducing the constant CRSF_MAX_NAME_LEN to see if the behavior changes.

howels commented 2 years ago

What transmitter are you using? What radio module are you using? Can you please give an example of a device name that causes the failure?

Jumper T8SGv2 ExpressLRS TX (various) "BetaFPV Micro TX" or "HappyModel ES24TX"

I only have a Crossfire radio and it doesn't seem to have this problem. The device name is "XF Transmitter" which is 14 characters and works correctly.

You can try reducing the constant CRSF_MAX_NAME_LEN to see if the behavior changes.

This happens with ExpressLRS devices. We can for instance see the RX which has a shorter name but the TX is not visible with the default name "BetaFPV Micro TX" I experimented a lot trying to shorten the length of strings but nothing seemed to work, Deviation would show a blank line when the input string was too long - it would be strongly desirable to truncate the string instead of showing a blank line.

Issue is reported by numerous other users trying out ExpressLRS, and is only resolved when they manually edit the ExpressLRS code to decrease the length of the device name. These device names are working fine under OpenTX and the CRSF protocol supports them but in DeviationTX they are shown as blank lines in the CRSF device page.

Regarding 14 character names - you may be right but the limit is either 12 or 14 characters and anything past that is rendered blank.

howels commented 2 years ago

FYI I have tried a custom build with CRSF_MAX_NAME_LEN increased to 40 characters and the 14 character limit still applies.

hexfet commented 2 years ago

Thanks for the pointer in the right direction. Should be fixed by #1020. Please give it a try.

howels commented 2 years ago

Thanks for the pointer in the right direction. Should be fixed by #1020. Please give it a try.

Thanks, I'll give it a go tomorrow. Really appreciate you looking at this!

howels commented 2 years ago

BTW this is now fixed as of https://github.com/DeviationTX/deviation/commit/458a87e71dbaf7379d0bd94a44bc62243c6da258