User Tools

Site Tools


toh:vocore:vocore

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
toh:vocore:vocore [2014/08/06 18:41]
noltari
toh:vocore:vocore [2015/12/14 21:59] (current)
tmomas New bootlog formatting applied
Line 1: Line 1:
 +====== VoCore: A coin-sized Linux computer with wifi ======
  
 +Supported since [[https://​dev.openwrt.org/​changeset/​41939|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.
 +
 +  * [[https://​www.indiegogo.com/​projects/​vocore-a-coin-sized-linux-computer-with-wifi/​x/​7777573|VoCore on indiegogo]]
 +  * [[http://​vonger.cn/​|Vonger'​s Blog (VoCore creator)]]
 +  * [[http://​forum.vocore.io/​|VoCore Forum]] ([[http://​vonger.cn/?​forum=vocore|Deprecated Forum]])
 +
 +
 +===== 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 [[http://​downloads.openwrt.org/​barrier_breaker/​14.07/​ramips/​rt305x/​|download page]] ([[http://​downloads.openwrt.org/​barrier_breaker/​14.07/​ramips/​rt305x/​openwrt-ramips-rt305x-vocore-squashfs-sysupgrade.bin|direct link to image]])
 +
 +  - open 192.168.61.1 from browser
 +  - login: root/vocore
 +  - go to update page
 +  - upload image
 +
 +
 +==== OEM installation using the TFTP method ====
 +->​[[doc:​howto:​generic.flashing.tftp]]
 +
 +FIXME
 +
 +===== 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 ====
 +-> [[doc:​howto:​generic.failsafe]]
 +
 +To enter Failsafe mode you need to manually pause OpenWrt booting, since this board doesn'​t have any button.
 +
 +==== Buttons ====
 +-> [[doc:​howto:​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 ====
 +| **[[wp>​Instruction set]]:** | [[wp>​MIPS architecture|MIPS]] |
 +| **Vendor:​** ​                | [[wp>​Ralink]] |
 +| **[[doc:​techref:​bootloader]]:​** | [[doc:​techref:​bootloader:​uboot|U-Boot]] |
 +| **[[doc:​hardware:​soc|System-On-Chip]]:​** | RT5350F (MIPS 24Kc V7.4) |
 +| **[[doc:​hardware:​cpu|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) |
 +| **[[doc:​hardware:​port.serial|Serial]]:​** ​  | [[#​Serial|Yes]] ​  |
 +| **[[doc:​hardware:​port.jtag|JTAG]]:​** ​      | [[#​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, [[http://​forum.vocore.io/​viewtopic.php?​f=9&​t=299#​p828|source]])
 +==== Photos ====
 +=== PCB ===
 +^  Top  ^  Bottom ​ ^
 +| {{:​media:​toh:​vocore_pcb_up.jpg?​200|}} | {{:​media:​toh:​vocore_pcb_down.jpg?​200|}} |
 +
 +=== Layout ===
 +^  Alpha  ^  Beta  ^
 +| {{:​media:​toh:​vocore_layout_alpha.png?​200|}} | {{:​media:​toh:​vocore_layout_beta.png?​200|}} |
 +
 +==== Serial ====
 +
 +To connect to Serial port on this specific device check pins (TXD2, RXD2, GND) on [[toh:​vocore:​vocore#​Layout|Layout]]
 +
 +==== JTAG ====
 +-> [[doc:​hardware:​port.jtag]] general information about the JTAG port, JTAG cable, etc.
 +
 +To connect to JTAG port on this specific device check pins on [[toh:​vocore:​vocore#​Layout|Layout]]
 +
 +===== Debricking =====
 +-> [[doc:​howto:​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 ====
 +Alpha v1.0 EAGLE 6 by omerk [[https://​github.com/​omerk/​vocore-evk/​tree/​master/​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.
 +
 +<​code>​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>;​
 + };
 +};
 +</​code>​
 +
 +===== Bootlogs =====
 +==== OpenWrt Bootlog ====
 +<WRAP bootlog>
 +<​nowiki>​[ 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</​nowiki>​
 +</​WRAP>​\\
 +
 +===== Tags =====
 +[[meta:​tags|How to add tags]]
 +{{tag>​ramips rt5350 FastEthernet 1NIC 1WNIC no_switch USB 802.11bgn InternalAntenna 32RAM 8Flash 16Flash MIPS MIPS32 24Kc}}