Inject CV GPS to pixhawk IMU problems

Hey all,
We have an computer vision sensor to estimate position and we trying to inject it to Pixhawk via GPS_INPUT message.
the message sent via Telem2.
To use our software, we disconnecting the RX line from GPS1 (primary) to pixhawk so GPS2 start to effect.
we saw that the IMU changed to internal (i guess that GPS2 position is to far from GPS1 position so the Kalman Filter decide to ignore it).
how can we solve this problem?
is it OK the way that i inject the GPS to pixhawk?

thank you

Are you aware that many GPS also contain a magnetomer? So when you plug out your GPS it might have to switch from external mag to internal mag which might be what you’re referring to with “IMU changed to internal”.

For your use case it might make sense not to connect the mag of the GPS board, or somehow try to disable it in software.

no, we have our GPS component (without IMU),
I am trying to connect to GPS2 port to sent the GPS location.
my GPS_INPUT message look like this:

mavlink_message_t gps_input;
float covariance[21];
float q[] = {1, 0, 0, 0};
uint16_t ignore_flags = 8 | 16 | 32 | 64 | 128;
mavlink_msg_gps_input_pack(
    SYS_ID,         //uint8_t system_id,
    COMP_ID,        //uint8_t component_id,
    &gps_input,     //mavlink_message_t * msg,
    getTime_usec(), //uint64_t time_usec,
    1,              //uint8_t gps_id,
    ignore_flags,   //uint16_t ignore_flags,
    0,              //uint32_t time_week_ms,
    0,              //uint16_t time_week,
    3,              //uint8_t fix_type,
    lat * 10000000, //int32_t lat,
    lon * 10000000, //int32_t lon,
    alt,            //float alt,
    1.5,            //float hdop,
    1.5,            //float vdop,
    0.01,           //float vn,
    0.01,           //float ve,
    0.01,           //float vd,
    5,              //float speed_accuracy,
    5,              //float horiz_accuracy,
    5,              //float vert_accuracy,
    5               //uint8_t satellites_visible
);

i don’t know our accuracy and the velocity, so i mark the flags like i showed (ignore_flags = 8 | 16 | 32 | 64 | 128)
i disconnecting the RX line (in GPS1 port) and i see in QGroundControl that the location changed to GPS2’s posotion.
in “satellite number” i see “0 satellites” (in my message i send 5 satellites).
while i trying to do the same with 2nd here device (only RX, TX, GND, VDD - without I2C) i also see “0 satellites”. -is it ok?
i think that the IMU problem is cause i send too far GPS location with good accuracy so the Kalman Filter killing the IMU.
the message is:

EKF2 IMU1 is using GPS
EKF2 IMU0 is using GPS
EKF3 IMU1 is using GPS
EKF3 IMU0 is using GPS
EKF3 IMU1 Origin set to GPS
EKF3 IMU0 Origin set to GPS
EKF2 IMU1 Origin set to GPS
EKF2 IMU0 Origin set to GPS

i tried to disabled the EKF, is it good idea?
Is is better to send GPS as NMEA?