I am trying to get ArduIMU+ V2 (with V1.7 firmware) to work with LS20031 GPS (http://www.sparkfun.com/commerce/product_info.php?products_id=8975).
I wired GPS's Tx to "IN" directly, and GPS's Rx to "OUT" through a 1:2 resistor divider (2.5V should be high enough for a 3.3V high).
And I set
#define PRINT_GPS 1
#define GPS_PROTOCOL 1
The GPS is getting a fix (flashing red LED), but I don't see anything from the GPS in the ArduIMU serial output (reading through a FTDI adapter), and the GPS fix LED on ArduIMU doesn't turn on.
Has anyone gotten this combination to work? The code has references to LOCOSYS so I'm assuming someone has at least attempted to support it.
Thanks!
Matthew
Here is my entire configuration section, for reference -
// *** NOTE! Hardware version - Can be used for v1 (daughterboards) or v2 (flat)
#define BOARD_VERSION 2 // 1 For V1 and 2 for V2
// Ublox gps is recommended!
#define GPS_PROTOCOL 1 // 1 - NMEA, 2 - EM406, 3 - Ublox We have only tested with Ublox
// Enable Air Start uses Remove Before Fly flag - connection to pin 6 on ArduPilot
#define ENABLE_AIR_START 0 // 1 if using airstart/groundstart signaling, 0 if not
#define GROUNDSTART_PIN 8 // Pin number used for ground start signal (recommend 10 on v1 and 8 on v2 hardware)
/*Min Speed Filter for Yaw drift Correction*/
#define SPEEDFILT 2 // >1 use min speed filter for yaw drift cancellation, 0=do not use speed filter
/*For debugging propurses*/
#define PRINT_DEBUG 0 //Will print Debug messages
//OUTPUTMODE=1 will print the corrected data, 0 will print uncorrected data of the gyros (with drift), 2 will print accelerometer only data
#define OUTPUTMODE 1
#define PRINT_DCM 0 //Will print the whole direction cosine matrix
#define PRINT_ANALOGS 0 //Will print the analog raw data
#define PRINT_EULER 1 //Will print the Euler angles Roll, Pitch and Yaw
#define PRINT_GPS 1 //Will print GPS data
// *** NOTE! To use ArduIMU with ArduPilot you must select binary output messages (change to 1 here)
#define PRINT_BINARY 0 //Will print binary message and suppress ASCII messages (above)
// *** NOTE! Performance reporting is only supported for Ublox. Set to 0 for others
#define PERFORMANCE_REPORTING 0 //Will include performance reports in the binary output ~ 1/2 min
/* Support for optional magnetometer (1 enabled, 0 dissabled) */
#define USE_MAGNETOMETER 0 // use 1 if you want to make yaw gyro drift corrections using the optional magnetometer
/* Support for optional barometer (1 enabled, 0 dissabled) */
#define USE_BAROMETER 0 // use 1 if you want to get altitude using the optional absolute pressure sensor
#define ALT_MIX 50 // For binary messages: GPS or barometric altitude. 0 to 100 = % of barometric. For example 75 gives 25% GPS alt and 75% baro
Replies
The Arduino serial buffer is 128 bytes long, and 2 NMEA sentences can easily exceed that, especially when you have a fix (lines get quite a bit longer).
I'm not sure how to get around that yet, short of doing external buffering.
The baudrate doesn't matter because we are asking for 2 sentences, and they always arrive at the same time, most likely when the MCU is doing something else.
Any suggestions?
I am very interested in your investigation, because I also have LS20031 module and I am going to use it
with ArduIMU board.
Is it possible that 2.5v is too low voltage? The LS20031 spec says that minimum input voltage is 3v.
You could verify this by connecting the FTDI cable directly to the GPS module (in parallel with ArduIMU).
If you see normal NMEA output form it, then 2.5v input voltage is fine, and problem roots are somewhere
in GPS_NMEA parser.
Thanks,
Andrew