Sorry. Of course that was you talking to @JDL.
I should check names better than I do.
For Ublox GPS's, Revo class FCs can do combinations of:
- AutoBaud (different than just setting baud rate, detects baud rate of GPS and uses that to tell the GPS to temporarily use the requested baud rate, then switches to the new baud rate)
- Configure (temporarily tells GPS what kinds of GPS packets to constantly send out)
- Store (make the baud and config settings permanent in the GPS, not really needed since Revo configures at each power up, but for real paranoia, even on a Revo, if the GPS gets reset in flight the Revo won't configure it, so this will make sure that even works)
- Disable (after storing the GPS settings into the GPS, you don't really need to configure each time, so AutoBaudConfigureStoreAndDisable does it all, yes this is overkill and I wrote it
)
For Revo class FC's the default is AutoBaudAndConfigure. For CC3D the effective setting is Disabled where it just sets the FC baud rate and assumes the GPS will send what it supposed to at that baud rate.
DJI/Naza GPS's are hard coded to be effectively configured and stored, but use a different data language.
It would be an interesting experiment to see if changing the CC3D build configuration in:
flight/targets/boards/coptercontrol/firmware/inc/pios_config.h
from:
#define PIOS_INCLUDE_GPS_UBX_PARSER
/* #define PIOS_INCLUDE_GPS_DJI_PARSER */
to:
/* #define PIOS_INCLUDE_GPS_UBX_PARSER */
#define PIOS_INCLUDE_GPS_DJI_PARSER
would require anything more to get DJI GPS running on CC3D.
UPDATE 2021-01-03: It builds. Set the baud rate to 115200. It does display System -> GPSPositionSensor info but there is a memory size warning and GPS health doesn't know it is actually alive. Headed to bed now.
UPDATE 2021-01-04: DJI GPS's runs at 115200 baud. That is twice as fast as previous (Ublox) GPS's. That means that the FC data buffers will fill up twice as fast. That means that the GPS code needs to be called twice as often; every 2.7ms at the worst. Round that down to 2ms. In flight/modules/GPS/GPS.c
change this:
#define GPS_LOOP_DELAY_MS 6
to this:
#define GPS_LOOP_DELAY_MS 2
and change this:
portTickType xDelay = 5 / portTICK_RATE_MS;
to this:
portTickType xDelay = 2 / portTICK_RATE_MS;
This is actually an issue that affects Revo code too, although I have not seen any problems caused by it.
I need to create a Jira for this.