Archive

Posts Tagged ‘open source’

Radxa Rock Pro / Lite Development Boards are Now Open Source Hardware

October 24th, 2014 17 comments

Many projects claim to be “open source hardware” (OSHW) after they’ve released the schematics in PDF format, and source code. But the definition of OSHW has a few more requirements, which is practise means you’ve got to release schematics and PCB layout in the native format, not only in PDF, as well as the gerber files, and the bills of materials. Open Source Hardware can also truly be useful, if you can source the components. and for example, Broadcom BCM2835 processor might be impossible to procure, especially in small quantities, and that makes the Raspberry Pi unsuitable as an open source hardware platform. Existing companies / associations dedicated to OSHW include Arduino, Beagleboard.org, Olimex, etc.., and today Radxa has joined the club by releasing all hardware designs files for Rockchip RK3188 based Radxa Rock Pro and Lite development boards (2014 version) under a Creative Commons Attribution 4.0 International License. This could be the very first Chinese company to do so, at least for ARM development boards.

Radxa_Rock_Schematics

You can get the hardware design files on Radxa’s oshw repository in github. Let’s see what’s they’ve released:

  1. Schematics in Orcad 16.5 and PDF formats
  2. PCB layout (.dsn) to be open with PADS 9.5
  3. Manufacturing files including the Gerber files, Bill of material (BOM), components placement, etc…
  4. Mechanical drawings in DXF format

It looks good to me, did they forget anything?

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

USB Armory is an Open Source Hardware Freescale i.MX53 Dongle for Security Applications

October 22nd, 2014 4 comments

Most computers-on-a-stick come with an HDMI port, and a few USB ports, but Inverse Path’s dongle is quite different. USB Armory is a flash drive sized computer powered by Freescale i.MX53 Cortex A8 processor with only a USB port and a micro SD slot, that targets security applications such as mass storage devices with automatic encryption, virus scanning, host authentication and data self-destruct, VPN routers, electronic wallets, password managers, portable penetration testing platforms, and so on.

Inverse_path_USB_armoryUSB Armory specifications:

  • SoC – Freescale i.MX53 ARM Cortex-A8 @ 800Mhz with ARM TrustZone
  • System Memory – 512MB DDR3 RAM
  • Storage – microSD card slot
  • USB – 1x USB host port. USB device emulation: CDC Ethernet, mass storage, HID, etc.
  • Expansion Header – 5-pin breakout header with GPIOs and UART
  • Misc – customizable LED, including secure mode detection
  • Power – 5V via USB  (<500 mA power consumption)
  • Dimensions – 65 x 19 x 6 mm

The board is said to run Android, Debian, Ubuntu, and FreeBSD. USB Armory is open source hardware and software, and you can already find the Kicad schematics and PCB layout files for the alpha version, distributed under a GPL v2 license, on github. Some software documentation can be found on the project’s Wiki, with firmware images coming later. Security features are achieved through ARM Trustzone which allows for secure and normal zones, and you may want to read a Trustzone on i.MX53 article on Genode OS framework project for more technical details.

USB armory is still under development, but you can register your interest on Crowdsupply where it should sell for less than 100 Euros later this year. Some more information is also available on Inverse Path’s USB Armory page.

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

HydraBus is an Open Source Hardware STM32 Devkit with Support for NFC via HydraNFC Shield

October 1st, 2014 No comments

Recently, I wrote about public availability of Micro Python board based on STMicro STM32F4 Cortex M4 support that can easily be programmed with Python. It turns out there’s another STM32 board called HydraBus, also supporting Micro Python firmware, or another embedded firmware based on ChibiOS, together with an optional HydraNFC shield capable of sniffing, reading/writing or emulating any 13.56MHz NFC tags.

 

Hydrabus_Board

HydraBus Specifications:

  • MCU – STMicro TM32F405RG micro-controller @ 168 MHz with 1MB flash, 192KB SRAM, and an FPU.
  • External Storage – Micro SD card slot up to 48MHz (~24MB/s)
  • Expansion Headers – 4 headers with access to 44 I/Os (some already used by micro SD and USB 1 & 2).
  • USB – 2x micro USB connector including 1x OTG port, and 1x device/host port, both with ESD protection.
  • Misc – Reset and user button, user LED,
  • Power – 5V via micro USB port.
  • Dimensions – 60mm x 37mm (compliant with a Dangerous Prototype DP6037 PCB size)

As mentioned in the introduction, there are two available firmware for the board, both with source code available on github: Micro Python and a HydraFW based on ChibiOS. The board is also open source hardware with CadSoft Eagle 6.x schematics & PCB layout, BoM, and Gerber files available on Github too, and licensed under Creative Commons BY NC.

 

HydraNFC

If you’d like to “play” with NFC, Benjamin Vernoux, HydraBus’ developer, has also designed HydraNFC shield for HydraBus board with the following hardware specs:

  • Autonomous mode with 4 User buttons and 4 User LEDs.
  • Use HydraBus microSD card to save or load data – Support of microSD (FAT16/FAT32) card up to 32GB (tested with SanDisk Extreme 32GB).
  • Use Texas Instrument TRF7970A NFC chipset with full access to all pins and all modes of TRF7970A through connectors J1/J2/J3.
  • HydraBus Antenna (external) with U.FL connector(cable included) or SMA (optional) and can read Mifare card at up to 8cm (with 20cm cable).

Firmware support is achieved via HydraFW running on STM32 MCU. HydraNFC is also open source hardware, and you’ll find the hardware design files in hydranfc repository.

More details are available on Hydrabus.com. You can purchase the boards directly on the website, or via Seeed Studio for $49 and $79 for respectively HydraBus and HydraNFC boards.

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 Android SDK with APIs for HotKnot, Video & Image Processing, Multi-SIM, etc…

September 22nd, 2014 3 comments

Mediatek seems motivated in getting involved with maker and open source communities. Thanks to its works on Android One with Google, the company recently released the Linux kernel source for MT6582 processor, and with a separate endeavour, launched Mediatek Labs bringing LinkIt ONE platform for IoT and wearables to market, as well as a preview release of an Android SDK for its mobile processors.

Features of the SDK includes:

  • Set of libraries for MediaTek feature APIs with full API documentation.
  • x86 MediaTek emulator based on a reference implementation of an Android 4.4.2 (KitKat) device powered by a MediaTek chip, adding capabilities to test and debug telephony and multi-SIM features, a vibrator indicator and a hot-swappable SD card.
  • Customized version of the DDMS (Dalvik Debug Monitor Server), which adds support for testing telephony features, such as plugging and unplugging a headset, sending telephony commands to test call and SMS features, etc…

Mediatek_Android_SDKYou can download the Android SDK after registration, on Mediatek Labs’ Android SDK page.

The SDK contains two zipped files:

  • mediatek_android_sdk_api-19.3.1.zip including several folders:
    • emulator – Linux and Windows executables.
    • images – Images needed by emulator.
    • libs – API libraries.
    • samples – API sample applications.
    • skins – 720p / 1080p skin for emulator.
    • doc – SDK documentation
  • mediatek_android_sdk_tools-19.3.2.1.zip with two folders:
    • ddms-linux-x86_64 – MediaTek customized DDMS (Linux version)
    • ddms-win – MediaTek customized DDMS (Windows version)

The current APIs have three levels, and allow app developer to access:

  • Multi-SIM Telephony
  • Audio / Video
  • Camera MAV (Multiple Angle View) to create 3D and other effects
  • HotKnot (Mediatek’s alternative to NFC)
  • Portrait Enhancements using features such as skin smoothing and eye enlargement
  • Image Transformation such as flip, rotate, and sharpen (hardware accelerated)
  • Gesture, for instance, detection of open palm and victory (V) hand gestures
  • API Level Version Check

You can also consult the API documentation online, and to get started download MediaTek SDK for Android Developer’s Guide. Although many of the API features can be tested on the emulator, you’ll probably want to do some testing on actual phones, and Mediatek will soon provide a list of reference Android phones.

If you happen to live in the United Kingdom, Mediatek will showcase both LinkIt platform and their Android SDK in Manchester at XDA:devcon on September 26-28, 2014.

Via Steve Jones

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

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 6 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