-
Notifications
You must be signed in to change notification settings - Fork 46
Open
Open
Copy link
Labels
enhancementNew feature or requestNew feature or requesthelp wantedExtra attention is neededExtra attention is needed
Description
Problem
X20P devices present multiple USB interfaces:
0x01ab- Main interface (working)0x050c- UART1 interface (not working)0x050d- UART2 interface (not working)
Users may attempt to connect to UART1/UART2 interfaces expecting them to work like the main interface,
but these require different USB-to-UART bridge protocols that are not currently implemented.
Investigation Summary
We attempted several approaches to support UART1/UART2:
- USB packet analysis: Discovered that these interfaces use 2-byte status headers per 64-byte USB
packet - Status header stripping: Successfully removed headers but received all zeros (no UART data)
- Vendor-specific USB control transfers: Tried various initialization sequences (baud rate, line
format, bridge enable) - CDC control transfers: Failed with
LIBUSB_ERROR_PIPEas expected for vendor-specific interfaces
Root Cause
Despite UBX being enabled by default on UART1, the USB-to-UART bridge initialization is incomplete. The
specific vendor control sequence required for this chip is unknown.
Current Solution
- Added explicit error message when attempting to connect to UART1/UART2 interfaces
- Users are directed to use the main interface (
0x01ab) which works reliably - Error message:
"X20P UART1/UART2 interface (0x050c/0x050d) is not currently supported. Please use the main X20P interface (0x01ab) instead."
Code Changes
usb.cpp:418-431- Added error check and exception for UART interfacesublox_dgnss_node.cpp:1282-1310- Commented out header stripping code (preserved for future reference)
Future Work
To support these interfaces, we would need:
- Reverse engineering of the USB-to-UART bridge chip's control protocol
- Proper vendor-specific initialization sequence
- Understanding of the exact status header format and UART data extraction
Workaround
Use the main X20P interface (0x01ab) which provides full functionality for all GNSS operations.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or requesthelp wantedExtra attention is neededExtra attention is needed