When I connect to my ZealotH743 via either QGroundControl or Mission Planner, the board name is truncated in the initial status messages that are displayed when the board first connects. Instead of “QioTekZealotH743”, I only see “QioTekZealotH” - since it happens in both GCS I think maybe it’s being truncated on the FC. I know they only have an “F427”, and “H743” now, but assuming there are other processors in the future, (an “F405”?) this could be confusing.
I tried to find the source code for this, but everything is super abstracted, so I can’t quite track it down. The GCS banner messages don’t appear to be limited in string/buffer length to the extent that it would truncate like that.
It’s also a really strange value to truncate to - 13 characters?
I’m sure there’s an easy answer to this, and I’m just not finding it. But it has me very curious, and I stumbled on
Tools/scripts/firmware_version_decoder.py. It doesn’t really lend much of a clue, but it was an interesting exercise.
This output is from a slightly stale download and build of master:
~/ardupilot$ ./Tools/scripts/firmware_version_decoder.py -f build/QioTekZealotH743/bin/arduplane
string: ArduPlane V4.3.0dev (46342900)
board subtype: CHIBIOS_GENERIC
hash integer: 0x46342900
hash: ArduPlane V4.3.0dev
I’m sure it’s a generic piece of code that just outputs the board name at startup. I’d be looking in the ArduPilot core initialization code (if I knew where that was).
It’s more likely in the MAVLink/GCS code - the banner that is sent upon a new connection. I did look there, but the abstraction is a bit deeper than my dive took me.
ardupilot/GCS_Common.cpp at master · ArduPilot/ardupilot (github.com)
Anyway, I’m not much help here, so I’ll let the experts chime in. @hendjosh, any chance you can help?
I think it might be Util.cpp. There is a function get_system_id() that hard codes taking the first 13 characters from the CHIBIOS_SHORT_BOARD_NAME, to “display system identifer - board type and serial number”.
There is also a function get_system_id_unformatted() that returns only the first 12 characters (hardcoded) - so this would probably only return “QioTekZealot”.
Yeah there is a limit on board name length when it comes to display in MP.
I forget where it comes from though an ardupilot thing or MP thing.
As I mentioned in my original post, this happens in QGroundControl also. But it begs the questions:
- Why truncate it? or
- Why is it possible to have a 16 character board name?
QioTek is very insistent that their registered marks for this board include the full name of their company and the full name of the board. This likely affects other board makers who also have names > 12 or 13 characters.
Given recent discussions, they are looking forward to the changes that were discussed in the DevCall a month or so ago to surface the full board name in MavLink messages to the GCS.
Reworking the PR to apply more broadly. Looks like it will work just fine!
This is now in 4.3.0 stable - which I just installed on my Zealot H743. The full board name is now displayed. It looks great!