Configure ubx ITFM on supporting versions#179
Conversation
|
I don't think we should get into carrying configuration differences for specific firmware versions unless there's significant benefit. Presumably there's a reason they fully dropped the jamming/interference monitor? That makes me think we should just remove support for now. Any opinion @AlexKlimaj @dakejahl? |
dakejahl
left a comment
There was a problem hiding this comment.
@aubin-cldn how did you arrive at these changes? The UBX-CFG-ITFM message is removed, but we are not using that message. We are using UBX_MSG_CFG_VALSET as it suggests
|
Using UBX-CFG-ITFM even in UBX_MSG_CFG_VALSET results in the configuration issue. That's why this key should only be used in earlier version. |
dakejahl
left a comment
There was a problem hiding this comment.
I went ahead and tested this out. I am indeed seeing a NAK returned on 1.51, but it appears to be harmless. The rest of the module configuration appears to work as expected.
Can you provide a little bit more context? How did you arrive at these changes? Was there a certain failure mode that prompted this discovery?
|
|
||
| if (fwver_str != nullptr) { | ||
| GPS_INFO("u-blox firmware version: %s", fwver_str + strlen("FWVER=")); | ||
| const char *fwver_val = strrchr(fwver_str, ' ') |
There was a problem hiding this comment.
| const char *fwver_val = strrchr(fwver_str, ' ') | |
| const char *fwver_val = strrchr(fwver_str, ' '); |
this doesn't compile
| // available only on firmware versions earlier than 1.40 | ||
| if (_firmware_version < 1.40f) { | ||
| cfgValset<uint8_t>(UBX_CFG_KEY_ITFM_ENABLE, 1, cfg_valset_msg_size); | ||
| } |
There was a problem hiding this comment.
you should also wrap the below sendMessage and waitForAck in this if statement
On 1.50 theres a new jamming detector enabled by default. We could remove this key entirely, but then modules on older firmware would lose jamming detection |
The UBX configuration
CFG-ITFM-ENABLEhas been removed for u-blox FW versions greater than 1.32 (so 1.40, 1.50...). Thus, trying to configure this parameter results in a NAK response, and prevents PX4 from configuring the receiver.This MR:
_firmware_version;CFG-ITFM-ENABLEon_firmware_version < 1.40.To convert the FW version from a string to a float, uses
atofon the last part of the string (after the space delimiting the number in the string), allowing to differentiate values likeHPG 1.51andHPGL1L5 1.40for example.