I've returned to this topic again. So far I have.
1. Obtained a breakout board for the accessory port: (10 USD)
store.brownieboards.com
2. Cut a USB extension cable (2USD) in half and wired it to the usb pins on the accessory breakout board as per:
3drobotics.github.io
Note: Making sure to wire the host usb mode OTG enable pin to ground
3DRID | USB ID pin for OTG port on iMX6 OTG port |
3. Attached my USB 4G LTE dongle. On powering up the solo, the LED lights showed the dongle was powering up and connecting to a 4G network.
4. Downloading the kernel device modules from
The1only/DroneBuildSystem, and copying them via SSH/SCP onto the solo.
5. After rebooting the solo, I connected via SSH and checked via the lsusb command - which yielded:
Code:
Bus 001 Device 002: ID 12d1:1f01 Huawei Technologies Co., Ltd.
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.10
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x12d1 Huawei Technologies Co., Ltd.
idProduct 0x1f01
bcdDevice 1.02
iManufacturer 1 HUAWEI_MOBILE
iProduct 2 HUAWEI_MOBILE
iSerial 3 0123456789ABCDEF
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 32
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0x80
(Bus Powered)
MaxPower 2mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 8 Mass Storage
bInterfaceSubClass 6 SCSI
bInterfaceProtocol 80 Bulk-Only
iInterface 4 Mass Storage
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 1
Binary Object Store Descriptor:
bLength 5
bDescriptorType 15
wTotalLength 22
bNumDeviceCaps 2
USB 2.0 Extension Device Capability:
bLength 7
bDescriptorType 16
bDevCapabilityType 2
bmAttributes 0x00000002
Link Power Management (LPM) Supported
SuperSpeed USB Device Capability:
bLength 10
bDescriptorType 16
bDevCapabilityType 3
bmAttributes 0x00
wSpeedsSupported 0x000f
Device can operate at Low Speed (1Mbps)
Device can operate at Full Speed (12Mbps)
Device can operate at High Speed (480Mbps)
Device can operate at SuperSpeed (5Gbps)
bFunctionalitySupport 1
Lowest fully-functional device speed is Full Speed (12Mbps)
bU1DevExitLat 1 micro seconds
bU2DevExitLat 500 micro seconds
Device Status: 0x0001
Self Powered
Conclusion so far:
- The 4G dongle is connected, and detected by the solo.
- By default this type of dongle starts up as a usb-mass storage device.
- The solo needs to initiate a usb modeswitch to use it as a cdc_ether device - the code for this is at
Draisberghof - Software - USB_ModeSwitch
- Most linux distros have this built in and it happens automatically when a USB LTE dongle is detected. But for the solo this needs to be compiled and added.
- The build instructions / scripts on
The1only/DroneBuildSystem no longer work, as some of the git repositories needed for the builder.sh script in
OpenSolo/solo-builder don't work or have changed.
- So next I will try to build the latest Opensolo build via the instructions at
OpenSolo/OpenSolo, and then try to build usb_modeswitch for the solo.
- If successful this will enable the solo to put the dongle into modem/ethernet device mode, and then should be able to do the necessary ifconfig/dhcp stuff to get it connected to the internet, and then to a Zerotier link.