Archive

Posts Tagged ‘open source’

Getting Started with WRTnode OpenWRT Development Board

September 18th, 2014 No comments

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.

WRTnode Unboxing

I’ve received WRTnode by Fedex, and the board is stored in a plastic box.
WRTnode_Package
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.

WRTnode, "special" USB cable, and Quick Start Card (Click to Enlarge)

WRTnode, “special” USB cable, and Quick Start Card (Click to Enlarge)

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.

WRTnode_Webcam_Flash_Drive_USB_Hub

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…

WRTnode Board (Click to Enlarge)

WRTnode Board (Click to Enlarge)

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.

WRTnode_pinout

WRTnode Quick Start Guide

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.
WRTNode_Access_PointNormally the board will resolve as several URL, but at first none of them worked.

$ ping i.wrtno.de
ping: unknown host i.wrtno.de
$ ping openwrt.lan
ping: unknown host openwrt.lan
$ ping wrtnode.lan
ping: unknown host wrtnode.lan

But you can check the route to see which subnet is used by your Wi-Fi connection:

$ route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 192.168.0.1 0.0.0.0 UG 0 0 0 eth0
192.168.0.0 * 255.255.255.0 U 1 0 0 eth0
192.168.8.0 * 255.255.255.0 U 9 0 0 wlan0

I could finally ping the board with:

$ ping 192.168.8.1
PING 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 ms
64 bytes from 192.168.8.1: icmp_seq=2 ttl=64 time=2.37 ms
64 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:

$ telnet 192.168.8.1

WRTNode_Telnet

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:

$ ssh [email protected]
The 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)? yes
Warning: Permanently added '192.168.8.1' (RSA) to the list of known hosts.
[email protected]'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:

root@OpenWrt:~# aps
WRTnode 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 DPID
1 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?):

root@OpenWrt:~# vw
config wifi-device 'ra0'
 option type 'ralink'
 option mode '9'
 option channel '1'
 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'
 option ApCliSsid 'CNX-TRANSLATION'
 option ApCliAuthMode 'WPA2PSK'
 option ApCliEncrypType 'AES'
 option ApCliPassWord 'router_password'
 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:

aps:Security           vw:ApCliAuthMode/ApCliEncrypType
=========================================================
WPA1PSKWPA2PSK/TKIPAES	WPA2PSK/AES
WPA2PSK/AES		WPA2PSK/AES
WPA2PSK/TKIP		WPA2PSK/TKIP
WPAPSK/TKIPAES		WPAPSK/TKIP
WPAPSK/AES		WPAPSK/AES
WPAPSK/TKIP		WPAPSK/TKIP
WEP			WEP/WEP

Finally, restart the network:

root@OpenWrt:~# nr

and verify WRTnode got an IP address from the Wi-Fi router using DHCP:

root@OpenWrt:~# ia
apcli0 Link encap:Ethernet HWaddr 66:51:7E:32:9A:60
inet addr:192.168.0.105 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::6451:7eff:fe32:9a60/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX 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:

root@OpenWrt:~# ping cnx-software.com
PING cnx-software.com (104.28.18.95): 56 data bytes
64 bytes from 104.28.18.95: seq=0 ttl=53 time=81.999 ms
64 bytes from 104.28.18.95: seq=1 ttl=53 time=87.759 ms
64 bytes from 104.28.18.95: seq=2 ttl=53 time=81.381 ms
^C
--- cnx-software.com ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 81.381/83.713/87.759 ms

All good!

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 withoption 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:

root@OpenWrt:~# opkg update
Downloading http://d.wrtnode.com/packages/Packages.gz.
Updated list of available packages in /var/opkg-lists/barrier_breaker.
root@OpenWrt:~# opkg install luci
Package luci (svn-r10457-1) installed in root is up to date.
root@OpenWrt:~# opkg install openvpn-easy-rsa
Installing 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:

root@OpenWrt:~# df -h
Filesystem Size Used Available Use% Mounted on
rootfs 7.3M 348.0K 7.0M 5% /
/dev/root 7.5M 7.5M 0 100% /rom
tmpfs 30.2M 80.0K 30.1M 0% /tmp
/dev/mtdblock5 7.3M 348.0K 7.0M 5% /overlay
overlayfs:/overlay 7.3M 348.0K 7.0M 5% /
tmpfs 512.0K 0 512.0K 0% /dev

root@OpenWrt:~# free -m
total used free shared buffers
Mem: 61852 29084 32768 0 3536
-/+ buffers: 25548 36304
Swap: 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.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

Mediatek Releases Linux Source Code for Android One Smartphones

September 18th, 2014 5 comments

Android One is a program by Google aiming at bringing low cost smartphones to the emerging markets with firmware updates to the latest Android version guaranteed for two years. Three phones part of Android One program have recently been announced for the Indian market: Micromax Canvas A1, Karbonn Sparkle V, and Spice Dream Uno, and Android One phones will be available in Indonesia, the Philippines and South Asia (Bangladesh, Nepal, Pakistan, and Sri Lanka) by the year of the year. The three phones currently available sell for $100, which based on the specs (quad core processor, 1GB RAM, 4GB flash, 4.5″ display) is not exactly an aggressive pricing compared to what is already available from Aliexpress, but the main advantage here is clearly Google support with promised firmware updates, and currently Android 4.4.4. All these phones appear to be powered by Mediatek MT6582, and company decided to release the Linux 3.4.67 source code on Google servers. Please note it’s not the first time Mediatek Linux source code has been released, but at the time, the code was pretty messy, and not standard, so hopefully working with Google may have improved things.

Mediatek_Linux_Kernel_Android_One

Here’s how you can get it:

git clone https://android.googlesource.com/kernel/mediatek/ -b android-mediatek-sprout-3.4-kitkat-mr2

Before building the kernel, you may want to install Android gcc toolchain (in Ubuntu 14.04):

sudo apt-get install gcc-arm-linux-androideabi

Then the build should start with a script::

./build.sh

But it fails looking for an existing external script… Oh well. So I located a config file for MT6582, and completed the build the usual way:

make ARCH=arm sprout_defconfig
make ARCH=arm CROSS_COMPILE=arm-linux-androideabi- -j8

and it could generate zImage successfully.

I’ve also checked the Kernel Configuration, and it seems the “Mediatek Properitary Configuration” (sic) section found in the older 3.4.5 source code has now disappeared, and the company is using a standard method to define the kernel configuration (see screenshot above).

Via XDA Developers Blog

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

$39 PcDuino3 Nano ARM Linux Development Board Features HDMI, SATA, Gigabit Ethernet, Arduino Headers…

September 18th, 2014 5 comments

Linksprite recently announced PcDuino3 Nano development board powered by AllWinner A20 dual core processor. PcDuino3 Nano is, as you can expect, a smaller and cheaper version the company’s PcDuino3 board without Wi-Fi module, LVDS header, and I2S interface. The board does not appear to support Li-Po batteries either, but it adds one extra USB host port compared to its big brother.

PcDuino3_Nano

pcDuino3 specifications:

  • SoC – AllWinner A20 dual core ARM Cortex A7 @ 1.0 GHz with Mali 400MP2 GPU
  • System Memory – 1GB DRAM
  • Storage – 4GB NAND Flash, SATA connector, and microSD card slot (up to 32GB)
  • Video Output – HDMI 1.4 with HDCP support
  • Audio Out – 3.5mm analog audio interface
  • Connectivity – Gigabit Ethernet
  • USB – 2x USB host, 1x USB OTG
  • Expansion Headers – Arduino UNO extension interface with 14xGPIO, 2xPWM, 6xADC, 1xUART, 1xSPI, 1xI2C.
  • Camera – MIPI camera support
  • Misc – IR receiver
  • Power – 5V, 2000mA
  • Dimensions – 91.4mm x 53.3mm (PcDuino3: 121mm x 65mm)

In some ways it’s similar to Cubieboard2 but in a smaller factor, with Gigabit Ethernet, but lacking the audio ports. The company still provide Ubuntu 12.04 and Android 4.2 images and source code for the board, as well as an API to control the I/O pins available on the Arduino headers (UART, ADC, PWM, GPIO, I2C, SPI).

PcDuino3 Nano can be purchased on Linksprite or Cutedigi for $39. Shipping is not included, and I got a ridiculous quote for UPS shipping to Thailand ($78) on Cutedigi, but USPS First Class is available on Linksprite for $6.75. You can also visit PcDuino3 Nano product page, and access the download, Wiki, and tutorial sections of the site to find out more.

Thanks to John for the tip.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

Rockchip RK3288 Android 4.4.2 SDK and Schematics Released for Firefly Board

September 2nd, 2014 18 comments

Firefly-RK3288 development board was first announced in July. I still don’t have news about availability nor pricing, but the T-Firefly website launched yesterday. They seem do have a nice Wiki, but unfortunately everything is currently in Chinese, except when you go to the download page. You’ll find firmware upgrade_tool for Linux and Windows, the USB drivers for rooting and firmware update, firmware images (Android 4.4.2, Ubuntu 14.04, and dual boot), the board schematics (PDF), and Android KitKat 4.4.2 SDK with U-Boot, Linux, and Android source code, some documentation, XBMC apk (no source) with H.265 hardware decode support for MP4, MOV and MKV container formats.

Android_4.4._Linux_Rockchip_RK3288

The SDK is available on Bitbucket. I planned to test it, but unfortunately my network connection is very slow (and unstable) to this server, and I failed to retrieve it with git clone. The company also posted the build instructions in Chinese in their website, but I’ll reproduce them here for Ubuntu 14.04.

  1. Install required packages:
    sudo apt-get install git-core gnupg flex bison gperf libsdl1.2-dev \
    libesd0-dev libwxgtk2.8-dev squashfs-tools build-essential zip curl \
    libncurses5-dev zlib1g-dev pngcrush schedtool libxml2 libxml2-utils \
    xsltproc lzop libc6-dev schedtool g++-multilib lib32z1-dev lib32ncurses5-dev \
    lib32readline-gplv2-dev gcc-multilib libswitch-perl gcc-arm-linux-gnueabihf \
    lzop libncurses5-dev  libssl1.0.0 libssl-dev
  2. Checkout the SDK:
    mkdir -p ~/edev/firefly
    cd ~/edev/firefly
    git clone https://bitbucket.org/T-Firefly/firefly-rk3288.git
    
  3. Build the Linux kernel:
    cd firefly-rk3288/kernel
    make firefly-rk3288_defconfig
    make -j8 rk3288-box.img
  4. Build Android:
    cd ..
    make -j8
    ./mkimage.sh ota

And after some patience, Android should be fully build. Instructions to create a Ubuntu image are also available in the Wiki, but only in Chinese.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

xWifi Open Source Hardware Wi-Fi Module and Dock for the Internet of Things (Crowdfunding)

September 1st, 2014 8 comments

For some reasons, Wi-Fi modules are pretty popular this year. After modules such as VoCore, AsiaRF AWM002, and ESP8622, here’s come xWifi. This module is based on Mediatek MT7681 SoC which includes a TCP/IP stack like Espressif ESP8622 or TI CC3300, so it won’t run OpenWRT like VoCore or AsiaRF modules. The module only consumes about 350mW during transfer, it will be open source hardware, and the xWifi module plus a dock with a 10A relay, a humidity and temperature sensor, and a LED will go for as low as $17.

xWi-Fi_IoT_ModulexWifi module only specifications:

  • SoC – Mediatek MT7681 802.11 b/g/n SoC with 32-bit RISC CPU. Support for Client/softAP mode. Package size 5×5 mm
  • Storage – 512KB SPI Flash (for firmware)
  • I/Os via headers:
    • UART and SPI interfaces.
    • 5x GPIOs
    • PWM
  • Power – 3.3V, GND
  • Power Consumption – ~70mA  @ 5V (during RX active)
  • Dimensions – 14 x 17 mm

The module can be used for smart home appliances, smart plug and door locks, smart lighting, metering, remote control, network consumer devices, and more.
There’s also a dock available with xWifi modules:

  • Relay – Songle SRD03VDC-SL-C – 3V for control pins. 230V/10A support.
  • Sensors – Humidity & Temperature sensor
  • Header – 2x 8 pin header for xWifi module
  • Misc – 3-color LED
  • Power – 5V via micro USB port
  • Dimensions – N/A, estimated ~ 4 x 3 cm

The kit comprised of the xWiFi module and the dock with be open source hardware with schematics, PCB layout, Gerber files, and BoM released. An SDK with samples apps for Android & iOS will also be provided.

If you want to know a bit more about MT7681, you can download the datasheet, but you may also access much more resources with documentation, code samples, and SDK via a forum post on Andes Workshop. The datasheet also gives some pricing information for another MT7681 module by Shenzhen Anxinke Technology, which sells for 30 CNY (~$5) in 500-unit order, and as low as 25 CNY (~$4) for 10k orders.

xThink Lab, the company behind the project, has now completed development, and they are looking for $4,500 or more via an Indiegogo campaign to start mass production in November. There’s no word about FCC/CE compliance by the way…, but it was the same with VoCore at the beginning and it ended up being ultra successful. An early pledge of $17 will get your a full kit with xWifi module and the dock. There’s no way to get a xWiFi module only, unless you pledge $37 for 3 modules. Shipping is free to the US and China, and $3 to the rest  of the world, with delivery scheduled for November 2014.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

MinnowBoard MAX Schematics, Board layout, Gerber, and BoM Released

August 30th, 2014 2 comments

MinnowBoard MAX (aka MinnowBoard2) is an embedded board powered by Intel Atom Bay-Trail-I E3815 (single core) or E3825 (dual core) processor, with 1 to 2GB RAM, SATA II, USB 3.0, Gigabit Ethernet ports, and more. The board currently officially supports four operating systems: Debian GNU/Linux, Linux built with the Yocto Project, Android 4.4, and Windows 8.1. One of its main selling point is the price as the single core version sells for $99, and the dual core version for $129, rivalling in price with equivalent ARM based development boards. It’s also an open source hardware board, and as it’s now about to ship, CircuitCo released all hardware files under a Creative Commons CC-BY-SA license, allowing anybody with the right skills to create a clone, or their own hardware.

MinnowBoard MAX Block Diagram as Shown in Schematics

MinnowBoard MAX Block Diagram as Shown in Schematics

Here are the files that have been released:

Schematics and PCB layout have been designed with Cadence Orcad and Allegro, so you’d need these tools to modify them. You can also open the Allegro files with Cadence Allegro FREE Viewer (Windows only).
All these files, and other documentation, can be found on MinnowBoard MAX page on eLinux.org. Single and dual core versions of the board can be pre-ordered on Mouser, Tigal (Europe), or Techno Disti. MinnowBoard MAX DUAL should ship shortly (Early September), and the single core board a little later.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

MIPS Creator CI20 Development Board Formally Announced, Free to Selected Developers

August 28th, 2014 9 comments

Earlier this month, I discovered MIPS Creator CI20 development board based on Ingenic JZ4780 dual core MIPS processor thanks to one of my reader.  Imagination Technologies has now launched the board, which will run Debian 7 first, soon support Android 4.4 and others Linux distributions, and the company places their MIPS board as a competitor to the popular ARM based boards such as the Raspberry Pi and BeagleBone Black. This is the first board part of Prpl initiative for open source Linux and Android software for the MIPS architecture.

MIPS_CI20_Development_BoardAs a reminder, I’ll list the hardware specifications again:

  • SoC – Ingenic JZ4780 dual core MIPS32 processor @ 1.2 GHz with Imagination PowerVR SGX540 GPU. 32kI + 32kD per core, 512K shared L2.
  • System Memory – 1GB DDR3
  • Storage – 8GB NOR flash, 1x SD card slot, 1x SD card slot via expansion
  • Video Output – HDMI up to 1080p
  • Audio I/O – HDMI, Audio In and Out via 3.5mm jack
  • Video Playback – Up to 1080p60
  • Connectivity – 10/100M Ethernet, Wi-Fi + Bt 4.0 module (IW8103)
  • USB – 1x USB OTG, 1x USB 2.0 Host.
  • Expansions Headers – Access to 23x GPIOs, 2x SPI, 1x I2S, 7x ADC on header, including 5-wire touch and battery monitoring function, 1x UART, Transport Stream I/F.
  • Debugging – UART, and 14-pin MIPS EJTAG header
  • Misc – IR receiver, power LED, and button
  • Power Supply – 5V via 4mm/1.7mm barrel connector
  • Dimensions – 90x95mm

One thing I did not mention the last time are the multimedia capabilities of the Ingenic SoC, as it can handle codec such as MPEG-4, H.264, VP8, MPEG-2, and RV9 thanks to the video hardware, “making it ideal for HTPC enthusiasts” according to Imagination. The Linux source code  (3.0.8 and 3.16 kernel) is currently available on github and Imagination plans to up-streamed support to mainline. Graphics support includes Xorg-compliant OpenGL 2.1 and OpenGL ES 1.1/2.0 drivers, which means Linux distributions available for the board should have 3D GPU acceleration. The complete documentation is available on eLinux.

MIPS_Creator_CI20_vs_Raspberry_Pi_vs_BeagleBone_BlackBased on the comparison table above, MIPS Creator CI20 are significantly higher than Raspberry Pi, and even BeagleBone Black, and the board size is about double, so it’s unlikely it will compete on price with either, unless it’s sponsored. Its specs are more akin to the Cubietruck (except for 2GB RAM, SATA support, GbE…) which sells for $89, so something between $70 to $80 could be expected.

With regards to availability there are good and bad news. The bad news is that you can’t buy it right now, and they haven’t announced the price yet. The good news is that if you are involved in an open source project, you may be able to get it for free by requesting one. Eventually MIPS Creator CI20 should sell via Imagination Technologies e-Store.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter