Giter Club home page Giter Club logo

sodaqone-universaltracker-v3's People

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

sodaqone-universaltracker-v3's Issues

RN2903

Hi, what's required to use it with the sodaq with RN2903?

Thanks

Deep Sleep current

I use the software with a Sodaq One โ€‹โ€‹v3 and unfortunately cannot verify the specified 50 uA in deep sleep.
I measure about 115 uA in deep sleep mode.

Network Key, Passphrase, Name

Hi

DEFAULT_APPSKEY_OR_APPEUI is the Network name? does it accept only EUI or Name also?
DEFAULT_NWSKEY_OR_APPKEY is the Passphrase? Does it accept only key or passphrase also?

Does it expect hexadecimal values or string values? Or what's the expected format

Thanks

Modification to get u-blox GPS in airborne mode.

For a national balloon fox hunt event we needed to get the u-blox receiver in the SODAQ-ONE into "airborne mode". We did that the last time by cutting the trace to the battery backup of the u-blox, attaching a battery, then loading software to get it into airborne mode, and then restore the original firmware to send location data to the organization.

Looking at the board and the code, I felt that we could provide airborne mode to all SODAQ-ONE users without hardware hacks by sending the approriate commands to the u-blox.

I'd like to get (and then set) the navigation engine settings of the u-blox chip. The setting will be stored in the SODAQ-ONE, configurable with the menu, and persitant between reboots. I have forked this repository and am preparing a pull request with those changes. However I am running into a small problem.

According to the u-blox protocol specification, sending an incorrect or empty payload will be treated as a "get" request and the u-blox will respond with the correct payload with the current settings.

I can verify that that mechanism works by calling the existing UBlox::getTimePulseParameters(uint8_t tpIdx,TimePulseParameters* tpp) function, which returns a boolean true and fills the received data in the tpp location. This command is described on page 222 of the spec, but the SODAQ-ONE message does not seem to completely match the specification on page 134, as it sends length "1", then a zero byte, and then the tpxId. However, it seems to work, which looks strange to me.

I want to use that same mechanism to get the dynamic model settings for the GPS. The default dynamic model setting for the u-blox GPS module on the SODAQ-ONE is (should be) 'portable'. To receive the current GPS Navigation settings (CFG-NAV5 message in the protocol specification, page 175), I created the following function in ublox.cpp.

/*
 * Gets the navigational engine settings.
 * See "CFG-NAV5" in u-blox protocol description.
 */
bool UBlox::getNavEngineSettings(NavigationEngineSettings* settings) {
    uint8_t buffer[4];
    buffer[0] = 0x06; // Class
    buffer[1] = 0x24; // Id
    buffer[2] = 1;    // Length 1 (incorrect payload should trigger a "get")
    buffer[3] = 0;    // 0 byte, incorrect message should trigger a response

    (void) this->send(buffer,sizeof(buffer));
    
    // wait for response and copy answer into navDynModel
    return this->wait(0x0624,sizeof(NavigationEngineSettings),settings);
}

In ublox.h I defined the following type:

typedef struct __attribute__((packed,aligned(1))) NavigationEngineSettings {
    uint8_t  mask;              // Parameters Bitmask. Only the masked parameters will be applied.
    uint16_t dynModel;          // Dynamic platform model
    uint8_t  fixMode;           // Position Fixing Mode: 1: 2D only 2: 3D only 3: auto 2D/3D
    int32_t  fixedAlt;          // Fixed altitude in meters (mean sea level) for 2D fix mode
    uint32_t fixedAltVar;       // Fixed altitude variance for 2D mode in m^2.
    int8_t   minElev;           // Minimum Elevation in degrees for a GNSS satellite to be used in NAV
    uint8_t  drLimit;           // Reserved
    uint16_t pDop;              // Position DOP Mask to use
    uint16_t tDop;              // Time DOP Mask to use
    uint16_t pAcc;              // Position Accuracy Mask in meters
    uint16_t tAcc;              // Time Accuracy Mask in meters
    uint8_t  staticHoldThresh;  // Static hold threshold in cm/s
    uint8_t  dgnssTimeout;      // DGNSS timeout in seconds
    uint8_t  cnoThreshNumSats;  // Number of sattelites required to have C/NO above cnoThresh 
                                // for a fix to be attempted
    uint8_t  cnoThresh;         // C/N0 threshold for deciding whether to attempt a fix in dBHz
    uint8_t  reserved1;
    uint16_t staticHoldMaxDist; // Static hold distance threshold before quitting static hold
    uint8_t  utcStandard;       // UTC standard to be used:
                                // 0: Automatic; receiver selects based on GNSS configuration 
                                //    (see GNSS time bases).
                                // 3: UTC as operated by the U.S. Naval Observatory (USNO); 
                                //    derived from GPS time
                                // 6: UTC as operated by the former Soviet Union; derived from 
                                //    GLONASS time
                                // 7: UTC as operated by the National Time Service Center,
                                //    China; derived from BeiDou time
                                //    (not supported in protocol versions less than 16).
    uint8_t  reserved2;
} NavigationEngineSettings;

However when I call the getNavEngineSettings function it returns false. I added some debug lines to UBlox::wait(uint16_t rid,int reqLength,void *d) and discovered that the ublox is not returning an answer to my request.

I hope someone can tell me if there is something obvious I am missing or not doing according to specification.

Thanks in advance.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.