XPicoWiFi/Usb
This is an Alpha Feature of 1.4 firmware. Features are subject to change. Please contact a Lantronix Field Applications Engineer to get firmware that supports this feature
Contents
Why USB to Wi-Fi with xPico Wi-Fi
<youtube>QBgPcWqLIEE</youtube>
USB Communications Protocol
The USB interface of the xPico Wi-Fi is a device-side, Full speed (12Mbps) port. When plugged into a USB Host, it will enumerate as a RNDIS Ethernet device.
Drivers
No special drivers are needed for the xPico Wi-Fi. The operating system of the host needs to support RNDIS as a network interface. Most Debian Linux distributions have built in support in the kernel. Most Windows operating systems also have built in support for RNDIS.
Configuring xPico Wi-Fi
To enable the USB to Wi-Fi bridging function, go to the web manager, click on Bridge, then Configuration, and set the radio checkbox to Enabled. Click Submit, then reboot the xPico Wi-Fi. See the screenshot.
Configuring WLAN Profiles
Unlike most USB to Wi-Fi adapters, the xPico Wi-Fi enumerates as an Ethernet interface. This means that the host doesn't have to configure the Wi-Fi interface with the SSID and password or other details of the WLAN Profile. Just plug into USB, and it appears as an Ethernet interface, and the xPico Wi-Fi automatically connects to one of the saved WLAN Profiles.
To provision a WLAN Profile, you can use the SoftAP interface of the xPico Wi-Fi and use the Web Configuration Manager's QuickConnect feature (see the Quick Start Guide), or use the Lantronix xPico Wi-Fi Utilities App. The other option is to connect one of the UARTs to your host's UART and use it in Command Line mode to configure the WLAN Profiles.
Raspberry Pi
If running Raspbian, then edit the /etc/modprobe.d/blacklist.conf file and add this line:
blacklist cdc_subset
This will prevent the built in driver in the kernel from loading (as it currently doesn't work), and will instead load the RNDIS driver from the modules, which is more up to date and does work.
Also, you will want to add eth1 to /etc/network/interfaces so that it is automatically configured and it tries to get a DHCP address (or assign it a static IP if that's what you would like to do):
iface eth1 inet dhcp auto eth1
When plugged in, the xPico Wi-Fi will show up as eth1 interface, see below:
pi@raspberrypi ~ $ ifconfig eth0 Link encap:Ethernet HWaddr b8:27:eb:17:87:bf inet addr:192.168.20.164 Bcast:192.168.20.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:513 errors:0 dropped:0 overruns:0 frame:0 TX packets:371 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:53048 (51.8 KiB) TX bytes:63921 (62.4 KiB) eth1 Link encap:Ethernet HWaddr 00:80:a3:a0:0a:89 inet addr:192.168.20.160 Bcast:192.168.20.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1480 Metric:1 RX packets:14 errors:7 dropped:0 overruns:0 frame:7 TX packets:2 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:1423 (1.3 KiB) TX bytes:772 (772.0 B) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Other Embedded Linux devices
Make sure that the kernel has the following enabled:
CONFIG_USB_NET_RNDIS_HOST CONFIG_USB_NET_CDC_SUBSET CONFIG_USB_NET_CDCETHER CONFIG_USB_NET_DRIVERS