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?