Hey guys, I’m stuck on what I think is my final problem. I’ve got a 3DR Iris+ that has TELEM2 from the Pixhawk connected to an FPV/LTE device.
When I the FPV client and Mission Planner, I am able to connect over LTE and can retrieve/view the Pixhawk in Mission Planner. If I move the drone, I see the movements happen on-screen.
The problem is for some reason I cannot write WPs (or even read WPs) to the device. Actually, scratch that. It seems to partially work (tested it as I was writing this up)! On some occasions, when I select Write WPs, it times out right away with:
In some other instances, I actually saw it write a couple of WPs and then fail at maybe the 3rd or 4th one. I also successfully Read WPs one time. So, it sounds like the connection/cabling is good in-fact, and maybe it’s a parameters issue?
I think this could be a limitation of the LTE device in this application. I tried once to use an LTE bridge to the Pixhawk and found that the latency was too high for sending and receiving missions reliably, as the Pixhawk would routinely time out during the send/ack/reply handshake for mission uploads. I had to use a companion computer and custom code to buffer commands from the LTE device and do the handshaking onboard the aircraft.
Honestly, we were in the field and had to quickly apply a patch, so we didn’t look for the “best” solution, we just made one that worked. As you’re seeing, telemetry and commanding generally worked well over LTE but updating missions were not reliable so we just patched that function.
Round trip times on our LTE link (Verizon) were upwards of 500ms at times, as indicated by ping. 40-100ms sounds borderline workable. But the latency for the telemetry radios that these links are designed around is just a couple ms, and I think that’s what the timeout values are tailored to.
There are timeout values both in mission planner and the Pixhawk, but I think they’re both hard-coded and don’t think either one is readily changed. Maybe one of the devs could chime in on that? I couldn’t find any documentation with my Google searching. But I did find one discussion that could be relevant.