WRTnode – Low power Mini OpenWRT Dev Board / Mini Linux + Wi-Fi board, MTK MT7620N/MIPS24KEc CPU 512M/128M 802.11n 2.4GHz with 23 GPIO JTAG SPI UART for Smart Device
- WRTnode is a high performance CPU, low power consuming, cheap and small dev board that can run OpenWRT OS and also easy to port all open source software of Linux. OpenWRT is a Linux distribution for embedded devices, the framework to build an application without having to build a complete firmware around it; for users this means the ability for full customization, to use the device in ways never envisioned.
- Today, more and more devices could connect to internet, named Internet of Things. The WRTnode is a small node which could connect internet all by itself and do complicated tasks. Such as track a cat running over, identify what you are saying and twitter it, check email and pronounce for you, learn how your room layout and find garbage to sweep while streaming camera video to you over internet. Just to name a few.
- Opensource hardware for OpenWrt
- Mini Linux + Wi-Fi board
- Smart machines’ heart
- Low power-consuming
- High performance 300MBit/s Wi-Fi
- Software Feature:
- Based on OpenWrt BARRIER BREAKER (Bleeding Edge, r41508)
- Using rt2860v2 Wi-Fi driver hacked by lintel
- Using customized uboot hacked by manfeel
- WRTnode aplci up link Wi-Fi configuration (aps/vw/nr/ia)
- Luci Wi-Fi WPA patch for rt2860v2
- Local DNS add i.wrtno.de & wrtnode.lan besides openwrt.lan to WRTnode with the default WRTnode ip is 192.168.8.1
- WRTnode additional feature (all source opened github.com/WRTnode):
- Opencv 2.4.8
- Native gcc-mipsel on mt7620 and bin-utils
- Porting linino (Arduino yun) source to WRTnode
- Shine: fast fixed-point mp3 encoding
- And some WRTnode demo apps: opencv application demo, mechanical control demo, RESTful front-end demo and some other things
- Size: 45 * 50mm
- MTK MT7620N 600MHz mips cpu (MIPS24KEc)
- 512Mb DDR2ram
- 128Mb SPI flash 2T2R
- 802.11n 2.4 GHz
- 23 GPIOs
- 5-Port PHY (JTAG)
- UART Lite
- Documents: //wiki.wrtnode.com/
- Quick Mesh Project for WRTnode: //qmp.cat/Experimenting_with_the_WRTnode
- WRTnode SDK: //qmp.cat/Experimenting_with_the_WRTnode
- WRTnode – A Mini OpenWRT Dev Board x1
Getting Started with WRTnode OpenWRT Development Board
Seeed Studio sent me two nice little boards that can be used for IoT development: WRTNode and LinkIt ONE. Today, I’ll show pictures of WRTNode and accessories, and go through the “starting guide“, and will test LinkIt ONE board a few days later.
I’ve received WRTnode by Fedex, and the board is stored in a plastic box.
Inside the box, you’ll find the board, a “special” USB used to power the board and as an OTG adapter, a piece of paper with useful links (Wiki), and some WRTnode stickers.
Any micro USB to USB cable can be used to power the board, but this cable is useless to connect USB devices such as flash drives, webcams (OpenCV is supported), Bluetooth dongles, and so on. You could even connect a USB hub to connect multiple USB devices as shown below.
I’ve also taken a picture of both sides of the board shown the antenna on-board antennas, Mediatek MT7620n WiSoC, Elixir N2TU51216DG-AC DDR2 chip (64MB @ 400 MHz), the 16 MB SPI flash, as well as the headers for connecting various peripherals via I2C, SPI, UART, USB, etc…
You can also add Ethernet easily by making your own Ethernet cable using T568B wiring standard. I’m not 100% sure it’s safe though, as there are usually some extra components for Ethernet. I’ve included the board pinout chart for your reference.
To start the board simply connect the USB cable to a power adapter or a USB port on your computer. After about 10 seconds, you should see a blue LED lit up, and shortly after, you should see WRTnodeXXXX ESSID, where XXXX are the last 4 digit of the board MAC address. Connect it with your computer, and input the password: 12345678.
Normally the board will resolve as several URL, but at first none of them worked.
|123456||$ ping i.wrtno.deping: unknown host i.wrtno.de$ ping openwrt.lanping: unknown host openwrt.lan$ ping wrtnode.lanping: unknown host wrtnode.lan|
But you can check the route to see which subnet is used by your Wi-Fi connection:
|123456||$ routeKernel IP routing tableDestination Gateway Genmask Flags Metric Ref Use Ifacedefault 192.168.0.1 0.0.0.0 UG 0 0 0 eth0192.168.0.0 * 255.255.255.0 U 1 0 0 eth0192.168.8.0 * 255.255.255.0 U 9 0 0 wlan0|
I could finally ping the board with:
|12345||$ ping 192.168.8.1PING 192.168.8.1 (192.168.8.1) 56(84) bytes of data.64 bytes from 192.168.8.1: icmp_seq=1 ttl=64 time=12.4 ms64 bytes from 192.168.8.1: icmp_seq=2 ttl=64 time=2.37 ms64 bytes from 192.168.8.1: icmp_seq=3 ttl=64 time=12.1 ms|
Interestingly, ping openwrt.lan, and the other two URL also work afterwards, so maybe I was a little to impatient during my testing…
The first time you need to connect to the board via telnet in order to set the root password:
|1||$ telnet 192.168.8.1|
Now change the root password using passwd as you would do in any other Linux machine, and exit the connection, in order to connect via SSH instead:
|123456789||$ ssh firstname.lastname@example.orgThe authenticity of host ‘192.168.8.1 (192.168.8.1)’ can’t be established.RSA key fingerprint is bc:00:71:ac:b1:56:e7:7b:c7:7a:9b:6a:59:8e:da:82.Are you sure you want to continue connecting (yes/no)? yesWarning: Permanently added ‘192.168.8.1’ (RSA) to the list of known email@example.com’s password:BusyBox v1.22.1 (2014-08-13 19:31:12 UTC) built-in shell (ash)…..root@OpenWrt:~#|
At this point, you’ve got another Wi-Fi access point on your network, but it’s not connected to Internet, so let’s start by locating the Wi-Fi routers with aps command:
|12345678||root@OpenWrt:~# apsWRTnode AP scaner.Begin scaning APs, pls wait…Finished.APs available are…ra0 get_site_survey:Ch SSID BSSID Security Siganl(%)W-Mode ExtCH NT WPS DPID1 CNX-TRANSLATION 94:0c:6d:e6:5b:10 WPA1PSKWPA2PSK/TKIPAES 100 11b/g/n ABOVE In YES|
I only have one ESSID here, but this will list all ESSID in your environment. With that data, you can configure WRTnode to connect to your Wi-Fi router using vw command (vi wireless?):
|123456789101112131415161718192021||root@OpenWrt:~# vwconfig wifi-device ‘ra0’ option type ‘ralink’ option mode ‘9’ <strong>option channel ‘1’</strong> option txpower ‘100’ option ht ’20+40′ option country ‘US’ option disabled ‘0’config wifi-iface option device ‘ra0’ option network ‘lan’ option mode ‘ap’ option encryption ‘psk2’ option key ‘12345678’ option ApCliEnable ‘1’ <strong>option ApCliSsid ‘CNX-TRANSLATION’ option ApCliAuthMode ‘WPA2PSK’ option ApCliEncrypType ‘AES’ option ApCliPassWord ‘router_password'</strong> option ssid ‘WRTnode9A60’|
You need to change the lines in bold above using the data from aps. The first line is the Channel (Ch) , and the four lines in the wifi-iface section are pretty much self-explanatory. Save the file with Esc + “:wq”.
aps and vw do not report security features in the same way. Here’s the conversion table in case you don’t use WPA2PSK/AES:
|123456789||aps:Security vw:ApCliAuthMode/ApCliEncrypType=========================================================WPA1PSKWPA2PSK/TKIPAES WPA2PSK/AESWPA2PSK/AES WPA2PSK/AESWPA2PSK/TKIP WPA2PSK/TKIPWPAPSK/TKIPAES WPAPSK/TKIPWPAPSK/AES WPAPSK/AESWPAPSK/TKIP WPAPSK/TKIPWEP WEP/WEP|
Finally, restart the network:
and verify WRTnode got an IP address from the Wi-Fi router using DHCP:
|123456789||root@OpenWrt:~# iaapcli0 Link encap:Ethernet HWaddr 66:51:7E:32:9A:60inet addr:192.168.0.105 Bcast:192.168.0.255 Mask:255.255.255.0inet6 addr: fe80::6451:7eff:fe32:9a60/64 Scope:LinkUP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1RX packets:0 errors:0 dropped:0 overruns:0 frame:0TX packets:0 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)|
Good 192.168.0.105 is an IP adress from local network. Let’s also check we can ping a site on the Internet:
|123456789||root@OpenWrt:~# ping cnx-software.comPING cnx-software.com (126.96.36.199): 56 data bytes64 bytes from 188.8.131.52: seq=0 ttl=53 time=81.999 ms64 bytes from 184.108.40.206: seq=1 ttl=53 time=87.759 ms64 bytes from 220.127.116.11: seq=2 ttl=53 time=81.381 ms^C— cnx-software.com ping statistics —3 packets transmitted, 3 packets received, 0% packet lossround-trip min/avg/max = 81.381/83.713/87.759 ms|
Once I had a problem connecting to my Wi-Fi router, and it turned out my router was configured to automatically select the channel, and it had switched to Channel 4. Running vw again to change the configuration with “option channel ‘4’” made the connection work again. There’s probably an option in OpenWRT to automatically detect the channel, but I haven’t investigated.
You can also install packages for okpg. I tried to install luci, but it was pre-installed, so I added openvpn support instead:
|12345678910111213||root@OpenWrt:~# opkg updateDownloading http://d.wrtnode.com/packages/Packages.gz.Updated list of available packages in /var/opkg-lists/barrier_breaker.root@OpenWrt:~# opkg install luciPackage luci (svn-r10457-1) installed in root is up to date.root@OpenWrt:~# opkg install openvpn-easy-rsaInstalling openvpn-easy-rsa (2013-01-30-2) to root…Downloading http://d.wrtnode.com/packages/openvpn-easy-rsa_2013-01-30-2_ramips_24kec.ipk.Installing openssl-util (1.0.1h-1) to root…Downloading http://d.wrtnode.com/packages/openssl-util_1.0.1h-1_ramips_24kec.ipk.Configuring openssl-util.Configuring openvpn-easy-rsa.root@OpenWrt:~#|
That’s it the quick start guide is completed.
I’ve also run some command to show memory and storage usage:
|1234567891011121314||root@OpenWrt:~# df -hFilesystem Size Used Available Use% Mounted onrootfs 7.3M 348.0K 7.0M 5% //dev/root 7.5M 7.5M 0 100% /romtmpfs 30.2M 80.0K 30.1M 0% /tmp/dev/mtdblock5 7.3M 348.0K 7.0M 5% /overlayoverlayfs:/overlay 7.3M 348.0K 7.0M 5% /tmpfs 512.0K 0 512.0K 0% /devroot@OpenWrt:~# free -mtotal used free shared buffersMem: 61852 29084 32768 0 3536-/+ buffers: 25548 36304Swap: 0 0 0|
Out of the 16Mb SPI flash, only 7.3M available are available for OpenWRT, the rest is probably used by the bootloader. There’s nearly 64MB RAM available, and 29MB free.
If you are interested in the board, you can purchase it from Seeed Studio ($25), which provided the board for this review, but it’s also available on other shops such as DFRobot or Eleduino for the same price, although shipping fees may vary. To go beyond this Quick Start Guide, visit WRTnode WiKi to access the source code, schematics, and various documentation including tutorials.