Hi @joshholder, welcome to the forum
Great to see you’ve looked into this before asking about it. This has been asked about a few times recently, and today I had a thought for a hacky workaround that would make it possible, which I’ve described (and implemented) here.
Are you using port 14550 for pymavlink, or have you set up a separate endpoint for it? Two programs aren’t supposed to be able to access the same port at the same time, and 14550 is what QGC uses by default.
Receiving heartbeats isn’t a requirement (since the other end doesn’t know or care who is listening to its heartbeats). master.wait_heartbeat()
is the correct code to wait for one though, when it’s relevant to do so.