Following up on our previous LEGO EV3 robot article describing how to get up and running with LEGO EV3 and Cellular connectivity, I reached out again to David from the ev3dev team to see if we could go with a more permanent integration of 3G Dongle support.
Thanks to David@ev3dev, ev3dev base image now has support for ppp linux module which means that we can use standard Linux Network Manager package to establish and manage a connection using a USB Cellular Dongle.In this example, we used Huawei’s MS2131, but tutorial will work with any Dongle supported by Network Manager.
First of all, download the latest Ev3dev image on https://oss.jfrog.org/list/oss-snapshot-local/org/ev3dev/brickstrap/2017-06-27/Please note that only Stretch version of the image is compatible with Network Manager.
Once you have the image, you can write to a SD card using Resin’s Etcher
As soon as your SD card is ready, add it to your LEGO EV3 and boot it up, as we’re going to use ssh access to install additional packages, you can follow ev3dev’s instruction on how to establish an initial internet connection for your EV3 setup, our preferred mode is Bluetooth.
Now that your EV3 is connected to the internet, let us start its configuration:First of all, ssh into your EV3, the default password is ‘maker’ (Please replace 192.168.2.2 with your EV3 IP)
ssh robot@192.168.2.2
Once you’re connected to your EV3, install Network Manager and curl
sudo apt-get update && sudo apt-get install network-manager curl
This will take a little while, once the installation has been completed, you can now add a 3G Dongle configuration using Network Manager CLI
sudo nmcli con add type gsm ifname “*” con-name soracom apnsoracom.io user sora password sora
By default, Linux gives a lower priority to 3G connectivity, for this we’ve created a Network Manager route update script which you can install as follow
sudo curl -o /etc/NetworkManager/dispatcher.d/90.set_ppp_route_metric https://soracom-files.s3.amazonaws.com/handson/90.set_ppp_route_metricsudo chmod +x /etc/NetworkManager/dispatcher.d/90.set_ppp_route_metric
That’s it, your LEGO EV3 is now ready to receive a 3G Dongle and connection, as Network Manager can be a bit sensitive to USB mode, we recommend restarting the device before plugging in your 3G Dongle.
After restart, you will now see a ppp0 interface which shows successful 3G connection
sudo ifconfig ppp0ppp0: flags=4305 mtu 1500inet 10.177.200.138 netmask 255.255.255.255 destination 0.0.0.0ppp txqueuelen 3 (Point-to-Point Protocol)RX packets 7 bytes 106 (106.0 B)RX errors 0 dropped 0 overruns 0 frame 0TX packets 10 bytes 199 (199.0 B)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
We find LEGO EV3 a very useful tool to build concept robots, adding in 3G connectivity greatly expands a variety of use cases, for example I built a EV3 Robot that can sense when mail is delivered in his house and carries it to my home office. Also a perfect companion when away from home as would sense if the door opens and send us an alert, I’m working on adding in a camera which will extend its function to looking around the house for us if needed. More on that use case in the coming months as the code will be tested and open sourced.
For example this robot can interact with you via the IR Beacon. It supports a wide set of sensors that can easily be programmed or extended in the EV3Dev Image.
Alexis Susset

Comments
Please log in or sign up to comment.