sodaqone-universaltracker-v3's People
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
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.