User Tools

Site Tools


toh:vocore:vocore

VoCore: A coin-sized Linux computer with wifi

Supported since r41939

VoCore is an open hardware which runs OpenWrt. It has WIFI, USB, UART, SPI, 20+ GPIOs but size is only one inch. It helps you make a smart house or study embedded system.

Hardware Highlights

The chip comes as a populated card.

CPU Ram Flash Network USB Serial JTag
Ralink RT5350 @ 360MHz 32MiB 8MiB, 16MiB 2 1 Yes Yes

Additionally it is possible to attach a dock, which covers 1 USB port and 1 network port and can be bought in the online shop.
Because the dock is public, there may be other docks by different suppliers.

CPU Ram Flash Network USB Serial JTag
Ralink RT5350 @ 360MHz 32MiB 8MiB, 16MiB 1 (dock) 1 (dock) Yes Yes

Installation

Installation is quite easy, because VoCore is designed to use OpenWrt as default image.
The PCB is shipped with a preinstalled version.
A official OpenWrt image can be downloaded from download page (direct link to image)

  1. open 192.168.61.1 from browser
  2. login: root/vocore
  3. go to update page
  4. upload image

OEM installation using the TFTP method

Basic configuration

The board comes preflashed.
It is accessible over open wifi (SSID Vocore) or ethernet port.
Address for alpha and beta releases is 192.168.1.1
Address for relase version 1 is 192.168.61.1
default address from images of openwrt download page is 192.168.1.1

For security reason wifi access should be limited or protected over WPA.

FIXME

Specific Configuration

Interfaces

The default network configuration is:

Interface Name Description Default configuration
br-lan LAN & WLAN 192.168.1.1/24
vlan1 (eth0.1) LAN None
radio0 WLAN Disabled

Switch Ports (for VLANs)

Only 2 of the 5 ethernet ports have been exported: 0 and 4 (1, 2 and 3 are not exported).
For using port 0 a separate dock is needed (like VoDock).
However, port 4 is not avaiable on VoDock and needs a custom dock.

Port Switch port
LAN 1 0
LAN 2 4

Failsafe mode

generic.failsafe

To enter Failsafe mode you need to manually pause OpenWrt booting, since this board doesn't have any button.

Buttons

hardware.button on howto use and configure the hardware button(s).

This board doesn't come with any button. However, new buttons can be added using one of the unused GPIOs

Hardware

Info

Instruction set: MIPS
Vendor: Ralink
bootloader: U-Boot
System-On-Chip: RT5350F (MIPS 24Kc V7.4)
CPU/Speed 24Kc V7.4 360 Mhz
Flash-Chip: winbond W25Q64FVSTIM, 25Q128FVTM
Flash size: 8192 KiB, 16384KiB
RAM-Chip: EtronTech EM63A165TS-6G
RAM: 32 MiB
Wireless: Ralink RT5350 2.4ghz 802.11bgn
Ethernet: Ralink RT5350 Fast Ethernet
2 (on PCB) / 1 (in use with VoDock)
USB: 1 (on PCB) / 1 (in use with VoDock)
Serial: Yes
JTAG: Yes

Flash Size

Originally VoCore should have been shipped with 8MiB flash, which the alpha boards (v1.0a) did. On the production run though there where no 8MiB chips available and therefore (not only bakers of the 16MiB version but) everyone got 16MiB flash. So if the VoCore is labeled as v1.0 it probably got 16MiB flash, but better make sure by looking at the flash-chip (8 pin Winbond chip):

Flash chip Flash size
25Q64 8MiB
25Q128 16MiB

The default configuration for OpenWrt is 8MiB flash (which can also be used on the 16MiB version, with less available space of course). To create a 16MiB image compiling yourself is necessary. In target/linux/ramips/dts/VOCORE.dts there's a section partition@50000. Change the second value of reg from 0x7b0000 (=8MiB config) to 0xfb0000 (=16MiB config).
(tested for 14.07, source)

Photos

PCB

Top Bottom

Layout

Alpha Beta

Serial

To connect to Serial port on this specific device check pins (TXD2, RXD2, GND) on Layout

JTAG

port.jtag general information about the JTAG port, JTAG cable, etc.

To connect to JTAG port on this specific device check pins on Layout

Debricking

generic.debrick

There are three option:

  • JTAG method → see jtag
  • serial method → see serial
  • TFTP method → see tftp

JTAG always works, but needs a JTAG adapter.
For serial and TFTP methode bootloader must be availaible.

Notes

Power usage

Config Power Usage
Wifi Enabled 5V 200mA
Wifi Disabled 5V 120mA

EAGLE library

DTS Buttons

In order to automatically export GPIO buttons you can modify the DTS file adding the gpio-keys section.
However, don't forget to remove the GPIOs you want to use as buttons from the LEDs/GPIOs sections, since a specific GPIO can only be used for one purpose at a time.

gpio-keys-polled {
	compatible = "gpio-keys-polled";
	#address-cells = <1>;
	#size-cells = <0>;
	poll-interval = <20>;
	reset {
		label = "reset";
		gpios = <&gpio0 0 0>;
		linux,code = <0x198>;
	};
};

Bootlogs

OpenWrt Bootlog

[ 0.000000] Linux version 3.10.32 (vonger@debian) (gcc version 4.8.3 (OpenWrt/Linaro GCC 4.8-2014.01 r39957) ) #3 Thu Mar 20 21:56:24 HKT 2014 [ 0.000000] SoC Type: Ralink RT5350 id:1 rev:3 [ 0.000000] bootconsole [early0] enabled [ 0.000000] CPU revision is: 0001964c (MIPS 24KEc) [ 0.000000] MIPS: machine is VoCore v0.3 [ 0.000000] Determined physical RAM map: [ 0.000000] memory: 02000000 @ 00000000 (usable) [ 0.000000] Initrd not found or empty - disabling initrd [ 0.000000] Zone ranges: [ 0.000000] Normal [mem 0x00000000-0x01ffffff] [ 0.000000] Movable zone start for each node [ 0.000000] Early memory node ranges [ 0.000000] node 0: [mem 0x00000000-0x01ffffff] [ 0.000000] Primary instruction cache 32kB, VIPT, 4-way, linesize 32 bytes. [ 0.000000] Primary data cache 16kB, 4-way, VIPT, no aliases, linesize 32 bytes [ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 8128 [ 0.000000] Kernel command line: console=ttyS0,57600 rootfstype=squashfs,jffs2 [ 0.000000] PID hash table entries: 128 (order: -3, 512 bytes) [ 0.000000] Dentry cache hash table entries: 4096 (order: 2, 16384 bytes) [ 0.000000] Inode-cache hash table entries: 2048 (order: 1, 8192 bytes) [ 0.000000] Writing ErrCtl register=0007a400 [ 0.000000] Readback ErrCtl register=0007a400 [ 0.000000] Memory: 29356k/32768k available (2132k kernel code, 3412k reserved, 544k data, 200k init, 0k highmem) [ 0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1 [ 0.000000] NR_IRQS:256 [ 0.000000] CPU Clock: 360MHz [ 0.000000] Calibrating delay loop... 239.61 BogoMIPS (lpj=1198080) [ 0.070000] pid_max: default: 32768 minimum: 301 [ 0.070000] Mount-cache hash table entries: 512 [ 0.080000] pinctrl core: initialized pinctrl subsystem [ 0.090000] NET: Registered protocol family 16 [ 0.130000] bio: create slab <bio-0> at 0 [ 0.140000] rt2880_gpio 10000600.gpio: registering 24 gpios [ 0.150000] rt2880_gpio 10000600.gpio: registering 24 irq handlers [ 0.160000] Switching to clocksource MIPS [ 0.170000] NET: Registered protocol family 2 [ 0.180000] TCP established hash table entries: 512 (order: 0, 4096 bytes) [ 0.200000] TCP bind hash table entries: 512 (order: -1, 2048 bytes) [ 0.210000] TCP: Hash tables configured (established 512 bind 512) [ 0.220000] TCP: reno registered [ 0.230000] UDP hash table entries: 256 (order: 0, 4096 bytes) [ 0.240000] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes) [ 0.250000] NET: Registered protocol family 1 [ 0.260000] rt-timer 10000100.timer: maximum frequncy is 7324Hz [ 0.310000] squashfs: version 4.0 (2009/01/31) Phillip Lougher [ 0.330000] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc. [ 0.350000] msgmni has been set to 57 [ 0.360000] io scheduler noop registered [ 0.360000] io scheduler deadline registered (default) [ 0.380000] Serial: 8250/16550 driver, 2 ports, IRQ sharing disabled [ 0.390000] 10000c00.uartlite: ttyS0 at MMIO 0x10000c00 (irq = 20) is a 16550A [ 0.410000] console [ttyS0] enabled, bootconsole disabled [ 0.410000] console [ttyS0] enabled, bootconsole disabled [ 0.440000] m25p80 spi32766.0: found s25fl064k, expected gd25q64 [ 0.450000] m25p80 spi32766.0: s25fl064k (8192 Kbytes) [ 0.460000] 4 ofpart partitions found on MTD device spi32766.0 [ 0.470000] Creating 4 MTD partitions on "spi32766.0": [ 0.480000] 0x000000000000-0x000000030000 : "u-boot" [ 0.500000] 0x000000030000-0x000000040000 : "u-boot-env" [ 0.510000] 0x000000040000-0x000000050000 : "factory" [ 0.530000] 0x000000050000-0x000000800000 : "firmware" [ 0.540000] 0x00000013fb81-0x000000800000 : "rootfs" [ 0.550000] mtd: partition "rootfs" must either start or end on erase block boundary or be smaller than an erase block -- forcing read-only [ 0.580000] mtd: device 4 (rootfs) set to be root filesystem [ 0.590000] mtd: partition "rootfs_data" created automatically, ofs=0x360000, len=0x4a0000 [ 0.610000] 0x000000360000-0x000000800000 : "rootfs_data" [ 0.630000] eth0: done loading [ 0.640000] rt3xxx-usbphy ubsphy.3: loaded [ 0.650000] rt2880_wdt 10000120.watchdog: Initialized [ 0.660000] TCP: cubic registered [ 0.670000] NET: Registered protocol family 17 [ 0.680000] 8021q: 802.1Q VLAN Support v1.8 [ 0.710000] VFS: Mounted root (squashfs filesystem) readonly on device 31:4. [ 0.720000] Freeing unused kernel memory: 200K (8029e000 - 802d0000) procd: Console is alive procd: - watchdog - procd: - preinit - [ 7.100000] rt305x-esw 10110000.esw: link changed 0x00 Press the [f] key and hit [enter] to enter failsafe mode Press the [1], [2], [3] or [4] key and hit [enter] to select the debug level [ 8.220000] usbcore: registered new interface driver usbfs [ 8.230000] usbcore: registered new interface driver hub [ 8.240000] usbcore: registered new device driver usb [ 8.260000] dwc_otg: version 2.72a 24-JUN-2008 jffs2 is ready [ 10.910000] jffs2: notice: (260) jffs2_build_xattr_subsystem: complete building xattr subsystem, 1 of xdatum (0 unchecked, 0 orphan) and 11 of xref (0 dead, 0 orphan) found. switching to jffs2 procd: - early - procd: - watchdog - procd: - ubus - procd: - init - Please press Enter to activate this console. [ 14.730000] NET: Registered protocol family 10 [ 14.750000] l2tp_core: L2TP core driver, V2.0 [ 14.760000] l2tp_netlink: L2TP netlink interface [ 14.780000] nf_conntrack version 0.5.0 (461 buckets, 1844 max) [ 14.810000] ip6_tables: (C) 2000-2006 Netfilter Core Team [ 14.850000] Loading modules backported from Linux version master-2014-01-23-0-g62c147d [ 14.860000] Backport generated by backports.git backports-20140124-0-g1256d3e [ 14.890000] ip_tables: (C) 2000-2006 Netfilter Core Team [ 14.960000] xt_time: kernel timezone is -0000 [ 15.020000] cfg80211: Calling CRDA to update world regulatory domain [ 15.040000] cfg80211: World regulatory domain updated: [ 15.050000] cfg80211: DFS Master region: unset [ 15.050000] cfg80211: (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp) [ 15.070000] cfg80211: (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm) [ 15.090000] cfg80211: (2457000 KHz - 2482000 KHz @ 40000 KHz), (300 mBi, 2000 mBm) [ 15.100000] cfg80211: (2474000 KHz - 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm) [ 15.120000] cfg80211: (5170000 KHz - 5250000 KHz @ 80000 KHz), (300 mBi, 2000 mBm) [ 15.130000] cfg80211: (5735000 KHz - 5835000 KHz @ 80000 KHz), (300 mBi, 2000 mBm) [ 15.150000] cfg80211: (57240000 KHz - 63720000 KHz @ 2160000 KHz), (N/A, 0 mBm) [ 15.260000] PPP generic driver version 2.4.2 [ 15.280000] NET: Registered protocol family 24 [ 15.330000] ieee80211 phy0: rt2x00_set_rt: Info - RT chipset 5350, rev 0500 detected [ 15.350000] ieee80211 phy0: rt2x00_set_rf: Info - RF chipset 5350 detected procd: - init complete - [ 29.350000] device eth0.1 entered promiscuous mode [ 29.360000] device eth0 entered promiscuous mode [ 29.380000] br-lan: port 1(eth0.1) entered forwarding state [ 29.390000] br-lan: port 1(eth0.1) entered forwarding state [ 30.470000] IPv6: ADDRCONF(NETDEV_CHANGE): eth0.1: link becomes ready [ 31.390000] br-lan: port 1(eth0.1) entered forwarding state [ 32.790000] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready [ 32.800000] device wlan0 entered promiscuous mode [ 32.840000] br-lan: port 2(wlan0) entered forwarding state [ 32.850000] br-lan: port 2(wlan0) entered forwarding state [ 32.860000] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready [ 34.850000] br-lan: port 2(wlan0) entered forwarding state


Tags

toh/vocore/vocore.txt · Last modified: 2016/02/26 12:37 by danitool