Skip to content

Instantly share code, notes, and snippets.

@ervteng
Last active August 4, 2017 00:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 3 You must be signed in to fork a gist
  • Save ervteng/197ae7af441c60228a1a21ff28dd3d0d to your computer and use it in GitHub Desktop.
Save ervteng/197ae7af441c60228a1a21ff28dd3d0d to your computer and use it in GitHub Desktop.
Turning 3DR Solo into a Hotspot
In this guide, we will be turning the 3DR solo into a router. The controller-Solo link will be the WAN, and clients will connect to the
3DR solo as an AP.
NOTE: For each *.conf file, we have to modify the md5 hash as well. Otherwise, when the Solo boots, it will reset the files back to the factory default.
- Run "md5sum <full-path-to-file.conf> > <full-path-to-file.conf.md5>" after editing the file.
1. Change /etc/sololink.conf. Find the parameter called "APEnable" and set it to True.
2. Change hostapd.conf. Set the desired SSID (probably needs to be something other than the Controller's SSID)
3. Change dnsmasq.conf so that the Drone's DHCP server hands out IPs in the right range. Note that <3DR_Solo_address> should NOT be in the 10.1.1.X range.
- dhcp-option=3,<3DR_Solo_address>
- dhcp-option=6,<DNS_Server_address>
4. Change /etc/network/interfaces.
- Give wlan0-ap the address <3DR_Solo_address> (by default, it gives the Controller's IP, that will cause issues!)
- Comment out the post-up line in wlan0, (add default route 10.1.1.1), as that gets stuck on boot and wlan0-ap will never start.
Now, on a reboot, the drone should start broadcasting an SSID. Before rebooting, though, i'd restart /etc/init.d/netinit, /etc/init.d
/hostapd, and /etc/init.d/networking, in that order, and see if the SSID comes up. If something goes seriously wrong and neither wlan0
nor wlan0-ap come up, you may lose access to the drone and have to do a factory reset. I did notice the Solo takes slightly longer to
connect to the controller after this mod, though I have flown with this configuration and didn't have any issues other than the normal
range issues.
----Using Dronekit from clients connected to 3DR Solo----
Change /usr/bin/main.py. Add an additional udpout MAVConnection.
out2 = MAVConnection("udpout:<Client_IP_Address>:14550", source_system=254)
vehicle._handler.pipe(out2)
out2.start()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment