so, I was curious now and did some bench testing, using a pixracer and a STorM32, and MissionPlanner. The firmware in the pixracer was ArduCopter 3.6 dev (so not Solo!).
many things work as expected, but not all, Iām not sure itās correct or wrong though
first, I have to say that in some recent firmware version a bug has crept in, which makes the serial hang up as soon as the mavlink heartbeat is enabled. Will be corrected in the next version, and should not be present in somewhat older versions.
I connected the STorM32 to serial3, which Iāve set to 115, protocol 1. I did when basically 5 test, where in each test I tried the available settings for the parameter āMavlink Configurationā, namely
"no heartbeat"
āemit heartbeatā (called hb in short)
āheartbeat+attitudeā (called hb+a in short)
āh.b.+mountstatusā (called hb+ms in short)
1. STorM32 directly connected via a USB-TTL adapter to MissionPlanner, MNT_TPYE = 0
all three options hb, hb+a, hb+ms work as expected, that is:
- MP recognizes a gimbal and connects,
- one has access to the STorM32ās parameters
- with hb+a the HUD shows the correct behavior, and with hb+ms the campointa/b/c fields show the correct behaviors
2. STorM32 connected to pixracer, pixracer to MP, MNT_TPYE = 0, Mavlink ID = 1, 67
all three options hb, hb+a, hb+ms work as expected, that is:
- MP recognizes a QUADROTOR-1 and a GIMBAL-1, and connects to both
- when GIMBAL-1 is selcted one has access to the STorM32ās parameters
- when GIMBAL-1 is selcted when with hb+a the HUD shows the correct behavior, and with hb+ms the campointa/b/c fields show the correct behaviors
3. STorM32 connected to pixracer, pixracer to MP, MNT_TPYE = 0, Mavlink ID = 71, 67
all three options hb, hb+a, hb+ms work as expected, that is:
- MP recognizes a QUADROTOR-1 and a GIMBAL-71, and connects to both
- when GIMBAL-1 is selcted one has access to the STorM32ās parameters
- when GIMBAL-1 is selcted when with hb+a the HUD shows the correct behavior, and with hb+ms the campointa/b/c fields show the correct behaviors
These tests I did to see if the STorM32ās Mavlink communication is basically correct
4. STorM32 connected to pixracer, pixracer to MP, MNT_TPYE = 4, Mavlink ID = 1, 67
once the pixracer has booted I can see a lot traffic coming from the STorM32, so the MNT_TYPE 4 must make it send a lot (no problem by itself)
things work nearly as expected
- for all three options hb, hb+a, hb+ms MP recognizes a QUADROTOR-1 and a GIMBAL-1, and connects to both
- when GIMBAL-1 is selwcted one has access to the STorM32ās parameters
- with hb+a: the HUD of GIMBAL-1 shows the correct behavior
- with hb+ms the campointa/b/c fields of GIMBAL-1 do move, but not those of QUADROTOR-1
the latter I find unexpected. I would have thought that when a mount is a component, that then its mount_status message would be recognized by QUADROTOR-1. The MNT_TYPE 4 does not emit a mount_status message to the QUADROTOR-1, so this would have appeared as the logical expectation.
EDIT: I note that 1 to 1 1/2 years ago this was working as expected, and was the reason for the option hb+ms. This allowed e.g. to see the MPās gimbal point in the map !!
I probably have misinterpreted this, and this is the intended behavior for a Mavlink mount.
- with āno heartbeatā I do see six āeā coming from the STorM32, which means that it has received 6 characters from the pixracer. Itās not a disaster, but certainly not good as messages should only come from the pixracer once a valid heartbeat has been seen on that channel.
5. STorM32 connected to pixracer, pixracer to MP, MNT_TPYE = 4, Mavlink ID = 71, 67
once the pixracer has booted I can see a lot traffic coming from the STorM32, so the MNT_TYPE 4 must make it send a lot (no problem by itself)
things do NOT go well here:
- for all three options hb, hb+a, hb+ms, MP cannot connect to either QUADROTOR-1 and a GIMBAL-1, it timeouts with the complain that just one heartbeat message was received.
not sure if that is the correct behavior.
- with āno heartbeatā I do see six āeā coming from the STorM32, which means that it has received 6 characters from the pixracer. Itās not a disaster, but certainly not good as messages should only come from the pixracer once a valid heartbeat has been seen on that channel.
fin
You may want to try to reproduce that with a solo
I would conclude that the best bet is to use ID = 1,67 (and not 71,67). Since no mount_status is send to the flight controller, itās pointless to set anything higher than hb.
I finally note: The info in the wiki, http://ardupilot.org/copter/docs/common-storm32-gimbal.html, and in here, http://ardupilot.org/dev/docs/code-overview-adding-support-for-a-new-mavlink-gimbal.html, differ in the Mavlink system ID. It seems that in this regard indeed something has changed in ArduPilot some time ago.