@Swingw , you buy an OpenIMU300ZI evk.
Posts made by Dong xiaoguang
@simon-rob , I will find the firmware engineer to answer your question.
Could you tell me more details about what you want to do? So, I can get a firmware engineer to help you.
I tried both the jumper ON and OFF, it worked fine.
When I first got this app to work, I tried the following steps. You can follow these steps.
- Are you using the latest code? The latest code should be released around late in 2019. If no, get the latest code and then continue. If yes, Continue.
- In the function TaskGps() in taskGps.c, you can check (by debugging in vscode or outputting debug messages) if the app can run to the line
If not(unlikely), please tell me. If yes, that means the taskGps is working, and continue.
3. In GPSHandler(), check if the app can run into
and then into
parseNMEAMessage(tmp, gpsMsg, GPSData);
If so, that means the app can run into the GNSS message decoder as in UserConfiguration.C, and continue. If not, you need to check your configuration.
4. In parseNMEAMessage(), you can see the final results. There are a few things you can do.
4.1 check if gpsMsg contains actual NMEA messages.
4.2 check if the app can run into processNMEAMessage().
4.3 in processNMEAMessage(), check if the app can run into _handleNMEAmsg().
4.4 and in _handleNMEAmsg(), you can check if all three messages can be decoded.
You can actually directly check step4.
In a serial monitor, can you see other messages than NMEA GGA/VTG/RMC? There may be some binary-format packets that should be disabled. Besides, are you sure the GPS protocol in the INS app is configured to NMEA?
If the above are confirmed, you need to dive into the taskGps.c to figure out why.
gAlgorithm.Behavior.bit.useGPS is used to control state transition. If it is set to false, the algorithm will stay in attitude only mode. This bit does not control the use of each GPS sample. To do that, you need to use gEKFInput.gpsFixType. Setting this bit to false means this GPS measurement is invalid and will not be used in the EKF update stage. You can either directly change this bit or change the GPS driver where this bit get its value.
You can. However, you may need change a lot of things. First, you need to create your own interface from OpenIMU300ZA to your sensor. Second, you need to change the algorithm to update the error model of your sensor. Third, you need to take care of the data sampling rate.
GPS visibility should be an input to the INS app. All the application source code is open-source, and you can do anything to it. To add a command, our firmware engineer deisgn a good framework to do that. To add GPS signal status in e2 packet, it is also very easy because all UART messages are customizable. You just need to spend more time on the source code.
The algorithm itself is actually platform independent. However, due to some tradeoffs in implementation, it is slightly coupled with firmware code. What you need to do is to separate the algorithm from the firmware, which can either be easy or difficult depending on if you are familar with embedded development.