-
Notifications
You must be signed in to change notification settings - Fork 18k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Serial passthrough does not work for serial ports configured to "GPS" with GPS protocol set to ublox #17269
Comments
We really need to get support questions raised in the forums before being raised as issues. Sorry to be strict but if we're not then our to-do list for bugs and enhancements becomes a support forum. Any chance you could create a new topic in the appropriate 4.1 category depending upon the vehicle? Copter-4.1 is here: https://discuss.ardupilot.org/c/arducopter/copter-41/159 Also if possible it would be great if you could use the beta instead of "dev". This makes it easier for developers to know exactly which version of software is being used. Txs and sorry to be strict. |
I've reproduced this issue with both Copter-4.0 and 4.1.0-beta3 using serial pass through as described here on the wiki. As mentioned above we can see that the packets from the GPS are very intermittant. We get packets for a few seconds then they stop arriving for perhaps 10 seconds, then they restart again. |
Hi @Sebbb, We discussed this on the dev call and figured out the issue. The underlying problem is that ArduPilot's GPS driver is still running and so it is sometimes consuming the GPS output. So this means in u-center you sometimes get data but other times that data goes to the GPS driver. The solution is to disable the GPS driver's use of the serial port by changing SERIAL3_PROTOCOL = -1 (None). I also found that I needed to set SERIAL3_BAUD = 230400 and I knew this was the correct baud rate by checking the results of the GPS driver's "auto bauding" that it does soon after startup. I've added these instructions to the Serial Passthrough Wiki page (changes should appear within 30min of this post). Maybe you could try and see if this resolves the issue you're seeing? If not maybe I can make the wiki clearer. |
Hi Randy, yes, I figured out that SERIAL3_PROTOCOL = -1 will solve it, as written in the original problem description. As I migrated to an UAVCAN GPS, this isn't relevant for me anymore, but it took me some hours to find out what's wrong, and that it is not a hardware issue. So it's good, that this is documented now :) Is it planned to fix it, that it will also work without changing the PROTOCOL? SERIAL_PASS2 reverts automatically to -1, for the protocol I would need to do it manually.. Thx, |
At the dev meeting we did discussed two possibilities:
We didn't commit to making these changes though and I'm not sure if/when we will get to it. It's not that they wouldn't be useful, it certainly would be, it's just about developer time and priority and with so much else on the to-do list I can imagine it will be a long time before we would get to this. Txs for the feedback and the report, I'm going to close this now that the wiki is updated. |
BTW, there's a small typo in the wiki page: "For example, if attempting passthrough to the first GPS, SERIAL3_BAUD should normally be set to 230400 but you may check the GPS driver’s “autobauding” by looking at the ground stations Message window soon after starup" |
@Sebbb, great thanks for the feedback, typo fixed! |
Serial passthrough is certainly broken in 4.3 but we have a fix that will certainly go into 4.4.0. It is unclear if/when we will backport this fix to 4.3. |
Bug report
Issue details
Serial passthrough does not work for serial ports configured to "GPS" with GPS protocol set to ublox
With the settings
SERIAL3_PROTOCOL = 5
GPS_TYPE=2
SERIAL_PASS1=8
SERIAL_PASS2=3
I only receive a few packets every 10 seconds
After setting
SERIAL3_PROTOCOL = -1
and rebooting it's working fine.
Version
4.1-dev
Platform
[X] All
[ ] AntennaTracker
[ ] Copter
[ ] Plane
[ ] Rover
[ ] Submarine
(tested only with Copter, probably affecting other platforms as well)
Airframe type
irrelevant
Hardware type
Matek H743
Logs
output of u-center packet console, where you should see packets all the time, however, there are big gaps between the time stamps
19:56:49 R -> UBX NAV-PVT, Size 100, 'Navigation PVT Solution'
19:56:49 R -> UBX NAV-DOP, Size 26, 'Dilution of Precision'
19:56:49 R -> UBX NAV-PVT, Size 100, 'Navigation PVT Solution'
19:56:49 R -> UBX NAV-DOP, Size 26, 'Dilution of Precision'
19:56:49 R -> UBX NAV-PVT, Size 100, 'Navigation PVT Solution'
19:56:49 R -> UBX NAV-DOP, Size 26, 'Dilution of Precision'
19:56:49 R -> UNKNOWN ???, Size 359, 'UNKNOWN'
19:56:49 R <- UBX MON, Size 8, 'Monitor'
19:56:58 R -> UBX NAV-PVT, Size 100, 'Navigation PVT Solution'
19:56:58 R <- UBX MON, Size 8, 'Monitor'
19:56:58 R -> UBX NAV-DOP, Size 26, 'Dilution of Precision'
19:56:58 R -> UBX MON-VER, Size 228, 'Version'
19:56:58 R -> UBX MON-VER, Size 228, 'Version'
19:56:58 R -> UBX NAV-PVT, Size 100, 'Navigation PVT Solution'
19:56:58 R -> UBX NAV-DOP, Size 26, 'Dilution of Precision'
19:56:58 R -> UBX MON-HW, Size 68, 'Hardware Status'
19:56:58 R -> UBX MON-HW2, Size 36, 'Extended Hardware Status'
19:56:58 R -> UBX NAV-PVT, Size 100, 'Navigation PVT Solution'
19:56:58 R -> UBX NAV-DOP, Size 26, 'Dilution of Precision'
19:56:58 R -> UBX NAV-TIMEGPS, Size 24, 'GPS System Time'
19:56:58 R -> UBX NAV-PVT, Size 100, 'Navigation PVT Solution'
19:56:58 R -> UBX NAV-DOP, Size 26, 'Dilution of Precision'
19:56:59 R -> UBX NAV-PVT, Size 100, 'Navigation PVT Solution'
19:56:59 R -> UBX NAV-DOP, Size 26, 'Dilution of Precision'
19:56:59 R -> UBX NAV-PVT, Size 100, 'Navigation PVT Solution'
19:56:59 R -> UBX NAV-DOP, Size 26, 'Dilution of Precision'
19:56:59 R -> UNKNOWN ???, Size 377, 'UNKNOWN'
19:56:59 R <- UBX MON, Size 8, 'Monitor'
19:57:07 R -> UBX NAV-PVT, Size 100, 'Navigation PVT Solution'
19:57:07 R <- UBX MON, Size 8, 'Monitor'
19:57:07 R -> UBX NAV-DOP, Size 26, 'Dilution of Precision'
19:57:07 R -> UBX MON-VER, Size 228, 'Version'
19:57:07 R -> UBX MON-VER, Size 228, 'Version'
19:57:08 R -> UBX NAV-PVT, Size 100, 'Navigation PVT Solution'
19:57:08 R -> UBX NAV-DOP, Size 26, 'Dilution of Precision'
19:57:08 R -> UBX NAV-PVT, Size 100, 'Navigation PVT Solution'
19:57:08 R -> UBX NAV-DOP, Size 26, 'Dilution of Precision'
19:57:08 R -> UBX NAV-PVT, Size 100, 'Navigation PVT Solution'
19:57:08 R -> UBX NAV-DOP, Size 26, 'Dilution of Precision'
19:57:08 R -> UBX MON-HW, Size 68, 'Hardware Status'
19:57:08 R -> UBX MON-HW2, Size 36, 'Extended Hardware Status'
19:57:08 R -> UBX NAV-PVT, Size 100, 'Navigation PVT Solution'
19:57:08 R -> UBX NAV-DOP, Size 26, 'Dilution of Precision'
19:57:08 R -> UBX NAV-TIMEGPS, Size 24, 'GPS System Time'
19:57:08 R -> UBX NAV-PVT, Size 100, 'Navigation PVT Solution'
19:57:08 R -> UBX NAV-DOP, Size 26, 'Dilution of Precision'
19:57:08 R -> UNKNOWN ???, Size 481, 'UNKNOWN'
19:57:08 R <- UBX MON, Size 8, 'Monitor'
19:57:17 R -> UBX NAV-PVT, Size 100, 'Navigation PVT Solution'
19:57:17 R <- UBX MON, Size 8, 'Monitor'
19:57:17 R -> UBX NAV-DOP, Size 26, 'Dilution of Precision'
19:57:17 R -> UBX NAV-TIMEGPS, Size 24, 'GPS System Time'
19:57:17 R -> UBX MON-VER, Size 228, 'Version'
19:57:17 R -> UBX MON-VER, Size 228, 'Version'
19:57:17 R -> UBX NAV-PVT, Size 100, 'Navigation PVT Solution'
19:57:17 R -> UBX NAV-DOP, Size 26, 'Dilution of Precision'
19:57:18 R -> UBX NAV-PVT, Size 100, 'Navigation PVT Solution'
19:57:18 R -> UBX NAV-DOP, Size 26, 'Dilution of Precision'
19:57:18 R -> UBX NAV-PVT, Size 100, 'Navigation PVT Solution'
19:57:18 R -> UBX NAV-DOP, Size 26, 'Dilution of Precision'
19:57:18 R -> UBX NAV-PVT, Size 100, 'Navigation PVT Solution'
19:57:18 R -> UBX NAV-DOP, Size 26, 'Dilution of Precision'
19:57:18 R -> UBX MON-HW, Size 68, 'Hardware Status'
19:57:18 R -> UBX MON-HW2, Size 36, 'Extended Hardware Status'
19:57:18 R -> UBX NAV-PVT, Size 100, 'Navigation PVT Solution'
19:57:18 R -> UBX NAV-DOP, Size 26, 'Dilution of Precision'
19:57:18 R -> UBX NAV-TIMEGPS, Size 24, 'GPS System Time'
19:57:18 R -> UNKNOWN ???, Size 352, 'UNKNOWN'
19:57:18 R <- UBX MON, Size 8, 'Monitor'
19:57:27 R -> UBX NAV-PVT, Size 100, 'Navigation PVT Solution'
19:57:27 R <- UBX MON, Size 8, 'Monitor'
19:57:27 R -> UBX NAV-DOP, Size 26, 'Dilution of Precision'
19:57:27 R -> UBX MON-VER, Size 228, 'Version'
19:57:27 R -> UBX MON-VER, Size 228, 'Version'
19:57:27 R -> UBX NAV-PVT, Size 100, 'Navigation PVT Solution'
19:57:27 R -> UBX NAV-DOP, Size 26, 'Dilution of Precision'
19:57:27 R -> UBX NAV-TIMEGPS, Size 24, 'GPS System Time'
19:57:27 R -> UBX NAV-PVT, Size 100, 'Navigation PVT Solution'
19:57:27 R -> UBX NAV-DOP, Size 26, 'Dilution of Precision'
19:57:28 R -> UBX NAV-PVT, Size 100, 'Navigation PVT Solution'
19:57:28 R -> UBX NAV-DOP, Size 26, 'Dilution of Precision'
19:57:28 R -> UBX NAV-PVT, Size 100, 'Navigation PVT Solution'
19:57:28 R -> UBX NAV-DOP, Size 26, 'Dilution of Precision'
19:57:28 R -> UBX NAV-PVT, Size 100, 'Navigation PVT Solution'
19:57:28 R -> UBX NAV-DOP, Size 26, 'Dilution of Precision'
(I know, there is this "MAVSerial Pass" feature in Mission planner, however, serial passthrough should also work)
The text was updated successfully, but these errors were encountered: