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.