Mavproxy problem, could be PEBCAK

I have ArduSub running on a Pixhawk. It is connected to a Pi ( Pi address is 192.168.2.2). QGroundControl is on an Ubuntu VM on 192.168.2.3. I have a program running on the Pi that reads/write various hardware values. I have the message passing working in an SITL environ. It should work like this QGC → ArduSub → Pi → ArduSub → QGC. That way all messages to Q!GC come from ArduSub. The PI receives MAVLink messages on Port 14550.

When ArduSub gets a message from QGC it reformats it (changes one parameter of the message SUB2PI) and uses MAVLink to send it to the Pi. The Pi does what it needs to do and send the message back with the parameter changed (PI2SUB) to ArduSub and then ArduSub sends back to (STATUS) QGC. This works fine in SITL but not an the Pixhawk and Pi.

It works fine on the test SITL but it seems that QGC isn’t sending commands to the ArduSub but QGC is receiving data FROM ArduSub.

To restate it. QGC send a COMMAND to ArduSub. ArduSub send a SUB2PI message to the Pi. The Pi sends PI2SUB to ArduSub and ArduSub sends a STATUS to QGC.

I was assuming that mavproxy could send my messages. I’m obviously missing something.

Running on a single host my mavproxy command is

mavproxy.py --out 127.0.0.1:14550 --out 127.0.0.1:14551 --master tcp:127.0.0.1:5760 --sitl 127.0.0.1:5501

Thanks for any clarification of my confusion