Skip to main content

FLL EV3 Robot

This blog post is about our current EV3 robot we're planning to use in the 2023/2024 FLL competition. Some features: 2 large motors for steering. 2 medium motors for attachments.  2 colour sensors for picking up the white and black lines, also used for line squaring. 1 gyro sensor. To enable attachments to be changed as quickly as possible we're using gravity to keep the gears connected, i.e. you don't need to fasten anything to the robot. Every attachment has 2x 12 tooth double bevel gear (part 32270) which comes in contact with the 2x 20 tooth double bevel gears (part 32269) on the robot. The medium motors are horizontally aligned on the robots, but we use 12 tooth double bevel gears to convert that to vertical alignments. These in turn are connected to 20 tooth double bevel gears, and the attachments in turn connect to these 20 tooth double bevel gears with their 12 tooth double bevel gears.  The complete robot is modelled in Bricklink Studio 2 . You can download the rob

Install OpenWRT 14.09 on TP-Link MR3420 with Huawei E353 3G dongle

This post will describe how to install OpenWRT 14.09 on a TP-Link MR3420 router, plus configure it to use a Huawei E353 3G dongle to connect to the internet.

First download the firmware, plus extra packages we'll need later. Store this on your computer:
http://downloads.openwrt.org/barrier_breaker/14.07/ar71xx/generic/openwrt-ar71xx-generic-tl-mr3420-v1-squashfs-factory.bin
http://downloads.openwrt.org/barrier_breaker/14.07/ar71xx/generic/packages/base/kmod-mii_3.10.49-1_ar71xx.ipk
http://downloads.openwrt.org/barrier_breaker/14.07/ar71xx/generic/packages/base/kmod-usb-net_3.10.49-1_ar71xx.ipk
http://downloads.openwrt.org/barrier_breaker/14.07/ar71xx/generic/packages/base/kmod-usb-net-cdc-ether_3.10.49-1_ar71xx.ipk
http://downloads.openwrt.org/barrier_breaker/14.07/ar71xx/generic/packages/base/kmod-usb-net-rndis_3.10.49-1_ar71xx.ipk
http://downloads.openwrt.org/barrier_breaker/14.07/ar71xx/generic/packages/base/libpthread_0.9.33.2-1_ar71xx.ipk
http://downloads.openwrt.org/barrier_breaker/14.07/ar71xx/generic/packages/base/librt_0.9.33.2-1_ar71xx.ipk
http://downloads.openwrt.org/barrier_breaker/14.07/ar71xx/generic/packages/base/libusb-1.0_1.0.9-1_ar71xx.ipk
http://downloads.openwrt.org/barrier_breaker/14.07/ar71xx/generic/packages/base/usb-modeswitch_2014-07-18-01ecc3b9764d1dd89cf36ede0a2d98f9adb0cd33_ar71xx.ipk

Connect a network cable between any LAN port of the router and your computer (make sure you're not using the router's WAN port).

Flash your router with the 14.07 image. See http://wiki.openwrt.org/toh/tp-link/tl-mr3420 for more information on how to do this. After flashing it should reboot the router.

For OpenWRT 14.07 you don't need to set a static IP address on your computer. The router's IP address will default to 192.168.1.1 plus it will assign an IP address to your computer via DHCP. Unplug the network cable and plug it back in to make sure we're getting the new IP address from the router. Simply browse to http://192.168.1.1 and you should see the OpenWRT login page.

Login with username root and no password, then change the password and click on save & apply. You don't need to change anything on the SSH settings.

In my case I want to use a Huawei E353 3G dongle for my internet access. This dongle acts as a mini-router in itself, setting itself up as a gateway on a network (ethernet) interface. It's a lot more stable compared to dial-up (ppp) dongles because it handles connection drops and reconnects internally, meaning you don't need to do any fancy checks from OpenWRT's side.

The dongle usually comes up with an IP address of 192.168.1.100, but this clashes with the router's default subnet of 192.168.1.1. So the first step is to change the router's subnet to something else, I'll use 192.168.0.1.

On the web go to Network - Interfaces, click Edit on LAN and change "IPv4 address" to 192.168.0.1. Click on Save and Apply, then disconnect your network cable and reconnect so the router can assign a new IP in the 192.168.0.x range for you. On your computer browse to http://192.168.0.1 and you should be able to log in.

Now we need to install extra packages. In a previous post I've explained how to use the 3G dongle on your computer and set up your computer with internet sharing, but there is an easier way. Using WinSCP (http://winscp.net/eng/index.php) you can transfer files from your computer to the router. Set up a new connection to 192.168.0.1, set the file protocol to SCP (important because the default SFTP won't work), and connect with username root and your password. Then transfer the *.ipk packages you've downloaded above to /tmp.

Now using Putty (http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html) log into the router. Connect to 192.168.0.1 with user root and your password.

Usually when you install packages via the web it will handle all dependencies for you. For a manual install you need to handle the dependencies yourself.
opkg install /tmp/kmod-mii_3.10.49-1_ar71xx.ipk
opkg install /tmp/kmod-usb-net_3.10.49-1_ar71xx.ipk
opkg install /tmp/kmod-usb-net-cdc-ether_3.10.49-1_ar71xx.ipk
opkg install /tmp/kmod-usb-net-rndis_3.10.49-1_ar71xx.ipk
opkg install /tmp/libpthread_0.9.33.2-1_ar71xx.ipk
opkg install /tmp/librt_0.9.33.2-1_ar71xx.ipk
opkg install /tmp/libusb-1.0_1.0.9-1_ar71xx.ipk
opkg install /tmp/usb-modeswitch_2014-07-18-01ecc3b9764d1dd89cf36ede0a2d98f9adb0cd33_ar71xx.ipk

Reboot the router for changes to take effect.

After reboot putty back into the router.

Type in dmesg and you should see a line like this
[  164.050000] cdc_ether 1-1:1.0 eth2: register 'cdc_ether' at usb-ehci-platform-1, CDC Ethernet Device, XX:XX:XX:XX:XX:XX

If you don't please run the following command from Putty:
/etc/init.d/usbmode start

Alternatively you can unplug your dongle, then insert it back into the router and check again. This is because by default usb-modeswitch does not run at startup, but you can Enable it by going to System - Startup and enable "usbmode".

If all went well we should have eth2 registered, meaning it has picked up our 3G dongle and registered it as a ethernet network "eth2".

Go back to the web interface, choose Network - Interfaces. Click edit on WAN, choose Physical Settings and change to interface to Ethernet Adapter: eth2. Click on Save and Apply.

Going back to the Network - Interfaces and you should see the WAN interface has an IP address of 192.168.1.100/24. This means we've connected successfully to the 3G dongle and you should be able to access the internet. You can test this by pinging www.google.com from the router, after that try it from your computer.

Finally set up your Wifi settings. Go to Network - Wifi, click Edit, change your ESSID and your security, click Save and Apply, then click on Enable and your wifi should be up & running.

Comments

Unknown said…
Even though I have a different Huavwei 3G dongle, but it still works perfectly. You made my day. Tanks a lot.

Popular posts from this blog

Installing Lego Digital Designer (LDD) on Windows 10

If you're using Windows 10 18.09 or later and try to install Lego Digital Designer (LDD) 4.3.11 you'll probably get an installation error for Adobe Flash Player. However, there is an easy way around it: Download the installation file for LDD 4.3.11. Rename the .exe file to .zip. If you don't see the .exe extension in Explorer, go to "View - Options" on the Explorer menu, then under the "View" tab deselect the "Hide extensions for known file types". Open the zip file with Windows Explorer. Copy all files in the zip to another directory on your computer. In the new folder: Delete install_flash_player_active_x.exe. Copy OpenGLChecker.exe and rename it to install_flash_player_active_x.exe. Run LDDSetup.exe. In short the installer will execute install_flash_player_active_x.exe during the installation process, but all it does now is to execute the same logic as what OpenGLChecker does. In theory you can run any .exe that will not retu

OpenWRT 3G connection checker & logger

A 3G connection is normally not very stable - so we need something to periodically check it & reconnect when needed. I also wanted a summary email at the end of each day with the total traffic per client. I'm using the following settings/scripts: Edit /etc/crontabs/root (create if not existing): # send stats & disconnect 3G at 23:00 everyday. # check the connection every 5 minutes between 5:00 and 23:00 and reconnect if needed # reboot at 5:00 if /tmp/stats.msg doesn't exist - will be sent in checkconnect */5 5-22 * * * /usr/bin/checkconnection 0 5 * * * if [ ! -s /tmp/stats.msg ]; then reboot ; fi 0 23 * * * /usr/bin/sendstats && ifdown wan The first line will run /usr/bin/checkconnection every 5 minutes between 5:00 and 22:59. Then at 23:00 the  day's statistics will be emailed and the 3G connection disconnected. The next morning at 5:00 it first checks if the email was sucessfully sent at 23:00, if so it will reboot the router (seems to be m

Windows Hyper-V Server 2019

This post will explain how to use the free Hyper-V Windows 2019 Server version. This version doesn't come with any GUI interface as provided in the full Windows 2019 Server version. Instead it comes with a character interface, but with the help of some third party tools you can easily get a fully functional Hyper-V server for free. The following will be assumed: You have a dedicated server connected to a network and you want to install Hyper-V 2019 on this server to run Virtual Machines and/or act as a file server. You have physical access to this server to do the installation. You have another machine connected to the same network to do remote management, running a recent version of Microsoft Windows. You don't want to join a domain or use Active Directory. You can do this if you want to, but this is not included in this post. First you'll need to download the Hyper-V 2019 ISO from  https://www.microsoft.com/en-us/evalcenter/evaluate-hyper-v-server-2019 . You’ll