When in the field testing autonomous vehicles, a required but often tedious task consists of setting up a network and connecting all devices. Usually this consists of at least three devices: The rover, the base station, and optionally an access point to create and manage the network. Since the platform that I’m working on, Burro, runs completely on board the rover computer, a Raspberry Pi, I thought it’d be fitting to have the same computer act as an access point. This eliminates the need to carry around a separate access point, and make sure it’s close to your rover at all times.
I had a 5Ghz WDN3200 USB dongle lying around, so I thought to use that. In the past I found that it had good performance, and there’s also the 5 GHz operation, which means that it won’t interfere with either RC control (2.4 GHz) or gamepad (also 2.4 GHz). The only sticky part is that setting up this dongle as an access point in Raspbian is not as straightforward as I had thought. I’ve had a number of attempts at it before actually getting it to work. In summary, the takeaway is as follows:
- The only DHCP server that worked for me reliably is ISC DHCP server.
- The only tutorial that I’ve has consistent results with is this (over more than 10 installations).
- Don’t bother with
udhcpd. I’ve never got it to work (that said, here’s a rather straightforward tutorial)
- If you want to make a 5GHz Access Point with a WDN3200 follow this answer before doing anything else, to setup the correct version of
hostapd. Do not forget to change
/etc/hostapd/hostapd.conffile. Ignore the
- Pay attention to what you copy/paste from the web! Not for security issues (which you should do anyway), but for misinterpreted characters, such as
For comprehensive tutorials, you are directed to the guides and tutorials above. Below I provide a synopsis of the commands necessary. It is suggested that you try this first in a vanilla Raspbian installation, or at least one where there are no changes in the networking configuration.
First step is to configure your Pi with a static address.
Comment out (put a
# in front of) all the lines which mention
wpa, except for “
allow hotplug wlan0“. Then add the following lines to the file:
Don’t reboot yet.
This will install the standard version of
hostapd, but the WDN3200 needs a different version. Clone it as follows:
Compile and install the driver:
You should now have a suitable version of
hostapd. Verify as follows:
You should see the following output:
Paste the following:
wpa_passphrase to your desired values.
hostapd where to find its configuration file by setting the default location:
# in front of
DAEMON_CONF and alter the line to read:
The rest of this tutorial is identical to the 2nd part of this tutorial.
Now install and configure
# character in front of the
option domain-name lines like this:
# sign in front of the
authoritative; statement like this:
At the bottom of the file add the following:
Save and exit. Make the wireless adapter the default for the DHCP request:
INTERFACES="wlan0" and save and exit.
Now you should reboot the Pi. If all went well, you should be able to see the WiFi network in your networks list from any other machine, and connect and obtain an IP.
This tutorial does not cover bridging ethernet and wireless for internet acces, but this information is available from the tutorial link above.
This post summarized how to turn your Raspberry Pi to an access point, focusing on creating a 5GHz network using the WDN3200 adapter. You can apply this tutorial to the RPi used in your vehicle, so that it functions as an access point as well, therefore eliminating the need for additional equipment.