Raspberry Pi WiFi

Today's project was to bootstrap a WiFi LAN connection for Raspberry Pi 2, with a USB WiFi transceiver.


At the Huon Robotics lab I borrowed Bob's Ralink Technology Corp RT5370 USB WiFi adapter and plugged it into my Pi. It works without any weird jiggery-pokery! (I should get myself one of these - $6.64 from BangGood). Here's the dmesg output snippet for the WiFi device:

[    3.437549] usb 1-1.2: new high-speed USB device number 4 using dwc_otg
[    3.565661] usb 1-1.2: New USB device found, idVendor=148f, idProduct=5370
[    3.574731] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[    3.584074] usb 1-1.2: Product: 802.11 n WLAN
[    3.590766] usb 1-1.2: Manufacturer: Ralink
[    3.596804] usb 1-1.2: SerialNumber: 1.0
[    4.927442] udevd[159]: starting version 175
[    8.057609] usb 1-1.2: reset high-speed USB device number 4 using dwc_otg
[    8.248612] ieee80211 phy0: rt2x00_set_rt: Info - RT chipset 5390, rev 0502 detected
[    8.467608] random: nonblocking pool is initialized
[    8.488610] ieee80211 phy0: rt2x00_set_rf: Info - RF chipset 5370 detected
[    8.553044] ieee80211 phy0: Selected rate control algorithm 'minstrel_ht'
[    8.556921] usbcore: registered new interface driver rt2800usb
[   22.415959] ieee80211 phy0: rt2x00lib_request_firmware: Info - Loading firmware file 'rt2870.bin'
[   22.426198] ieee80211 phy0: rt2x00lib_request_firmware: Info - Firmware detected - version: 0.29

And the wlan0 interface starts up:

[   26.074025] wlan0: authenticate with 94:44:52:de:71:69
[   26.138412] wlan0: send auth to 94:44:52:de:71:69 (try 1/3)
[   26.140174] wlan0: authenticated
[   26.147412] wlan0: associate with 94:44:52:de:71:69 (try 1/3)
[   26.151524] wlan0: RX AssocResp from 94:44:52:de:71:69 (capab=0x411 status=0 aid=3)
[   26.162793] wlan0: associated

Great!

I had no keyboard/screen at the Lab, so to get the WiFi configured, I had to SSH (over Ethernet) and do it all from the good old command line.

The Raspberry Pi website has a good article on setting up WiFi from the command line

Here's my /etc/wpa_supplicant/wpa_supplicant.conf:

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
    ssid="belkin.3269"
    psk="REDACTED"
}

I also borrowed Bob's Belkin WiFi router. That's it's SSID in the network section. I have a spare WiFi router or two of my own after switching from ADSL to VSDL broadband internet, so I should make sure to use my own equipment next time.

Once doing this, rebooting the Pi, and connecting my PC to the same router, I could SSH over the WiFi using it's IP address. But to get the mDNS to work I had to reboot the router itself, because I had already registered the DNS to the Ethernet address, which was a different IP. That took quite a bit of fiddling and eventually just shrugging and trying the Microsoft Method.

I had hoped to be able to do some actual beginner robotics hacking from the Pi: at least to blink a LED off the GPIO pins, or even talk to an Arduino from the Pi, but we ran out of time at the lab. That will have to be a project for a later day. Also before the next meeting I attennd, I'd like to be able to VNC into the Pi's remote desktop -- since I won't be carting a TV and keyboard/mouse around.