Position Control with Visual Odom not Arming

I’ve got a Pixhawk lite with px4 firmware installed. I’m sending it a mavlinkvisionpositionestimate via a companion computer (PI) through telemetry 2. This data is being processed through the LPE, and I am getting Local_position_NED messages back from the state estimator. This is consistent with the data I am sending it and movement of the UAV. When I send it RC_Command override (with flight mode select through the channel 5 value.) QGroundControl shows the flight controller switching flight modes. The light on the pixhawk goes green etc.

However it wont arm. When I send the command_long with MAV_CMD_COMPONENT_ARM_DISARM, the pixhawk green light will flash, but the system wont arm, but will not advise why. I’ve gone into the nuttX shell and the status outputs from the commander and mavlink are as follows:

Commander:
nsh> commander status
WARN [commander] type: symmetric motion
WARN [commander] safety: USB enabled: [NO], power state valid: [OK]
WARN [commander] avionics rail: 4.98 V
WARN [commander] home: lat = 40.4300003, lon = -86.9290009, alt = 0.19, yaw: 3.03
WARN [commander] home: x = 0.0000003, y = -0.0000006, z = -0.19
WARN [commander] datalink: LOST
WARN [commander] arming: STANDBY

nsh> mavlink status

instance #0:
mavlink chan: #0
no telem status.
flow control: OFF
rates:
tx: 0.892 kB/s
txerr: 0.000 kB/s
rx: 0.000 kB/s
rate mult: 0.580
accepting commands: YES
MAVLink version: 1
transport protocol: serial (/dev/ttyS1 @57600)

instance #1:
mavlink chan: #1
no telem status.
flow control: OFF
rates:
tx: 1.135 kB/s
txerr: 0.000 kB/s
rx: 0.417 kB/s
rate mult: 0.141
accepting commands: YES
MAVLink version: 1
transport protocol: serial (/dev/ttyS2 @57600)

instance #2:
mavlink chan: #2
no telem status.
flow control: OFF
rates:
tx: 13.285 kB/s
txerr: 0.000 kB/s
rx: 0.000 kB/s
rate mult: 1.000
accepting commands: YES
MAVLink version: 1
transport protocol: serial (/dev/ttyACM0 @2000000)

Here is a log of the Startup, sending visual info, triggering poscontrol, then setting land mode

2000_01_01_04_12_20: REJECT AUTO LAND
2000_01_01_04_12_20: MANUAL CONTROL LOST (at t=3809ms)
2000_01_01_04_12_21: [lpe] land init
2000_01_01_04_12_22: [lpe] baro init 66 m std 205 cm
2000_01_01_04_12_22: [lpe] z resume
2000_01_01_04_12_22: [lpe] tz resume
2000_01_01_04_12_59: [lpe] vision position init: -0.00 0.00 -0.15 m s
2000_01_01_04_13_00: [lpe] xy resume
2000_01_01_04_13_08: MANUAL CONTROL REGAINED after 47925ms
2000_01_01_04_13_11: MANUAL CONTROL LOST (at t=54708ms)
2000_01_01_04_13_18: MANUAL CONTROL REGAINED after 7610ms
2000_01_01_04_13_41: MANUAL CONTROL LOST (at t=85010ms)
2000_01_01_04_13_47: [lpe] xy timeout
2000_01_01_04_13_48: no gps
2000_01_01_04_13_48: failsafe mode on
2000_01_01_04_13_50: [lpe] vision position timeout

Is there anything here which suggests that there’s a problem. Should commander consider telem2 as the datalink, why would it be status as lost. I think from 13_41 onwards is me shutting the system down.
cheers
Peter