VoCore2

The Coin-sized Linux Computer

VoCore2 + USB Header (Power Supply Only)

VoCore2 + MicroSD

VoCore2 + USB Header + MicroSD


Parameters

Details
SIZE25.6mm x 25.6mm x 3.0mm
CPUMT7628AN, 580 MHz, MIPS 24K
MEMORY128MB, DDR2, 166MHz
STORAGE16M NOR on board, support SDXC up to 2TB
WIRELESS802.11n, 2T2R, speed up to 300Mbps.
ANTENNAOne U.FL slot, one on board antenna.
ETHERNET1 port/5 ports, up to 100Mbps.
USBSupport USB 2.0, up to 480MBit/s.
PCIe 1.1Supported
GPIO>=40 (pinmux)
UARTx3 (UART2 for debug console)
PWMx4
POWER SUPPLY3.6V ~ 6.0V
POWER CONSUMPTION74mA wifi standby, 230mA wifi full speed, 5V input.

Sources

Hardware: Download   md5:710ce05e5f95076b5e42b2feaf8a4de4

OpenWrt 1505: Download   md5:613621b833102e7ccde7b50c5f5ef6a7

MediaTek SDK: Download   md5:4591c418ba6599920337859633d2aa18

Downloads

note: normally, we upgrade or fix brick are using Firmware. Flash Image is a clone of the full flash, for professional usage only.

Firmware(128MB): Download   md5:6f7c4b019577a7cec077562b75bc838b

Firmware(64MB, for Lite): Download   md5:2162ef05b5232154d4f20dee57561da7

Flash Image: Download   md5:f4c527a1e563d0ad7ef9ab0b5e0b35c6

Toolchain: Download (Ubuntu 14.04 x64)

Datasheet: Download

Links

VoCore2 + Dock   Ultimate version makes it easy to use.

VoCore Camera   Tiny camera supports h264 + microphone.

Details

VoCore2 is a successor of VoCore, make it more fast, stable, but still same size.

pin id is same as the one on MT76x8 datasheet in source

LeftNameMuxNote
-+3.3VO+3.3V outputmax output current 100mA
30TXD0GPIO12, UART0 Lite TXD3.3V
31RXD0GPIO13, UART0 Lite RXD3.3V
29REFCLKGPIO11, reference clock
33P0RP10/100 PHY Port #0 RXP
34P0RN10/100 PHY Port #0 RXN
35P0TP10/100 PHY Port #0 TXP
36P0TN10/100 PHY Port #0 TXN
43TXD210/100 PHY Port #1 TXN, GPIO15, PWM Channel, SPI Slave Clock
44RXD210/100 PHY Port #1 TXP, GPIO14, PWM Channel, SPI Slave Chip Select
40PWM010/100 PHY Port #1 RXN, GPIO17, UART2 Lite TXD, SPI Slave MOSI4.7K pull down to GND
42PWM110/100 PHY Port #1 RXP, GPIO16, UART2 Lite RXD, SPI Slave MISO
45P2RP10/100 PHY Port #2 RXP, GPIO18, PWM Channel
46P2RN10/100 PHY Port #2 RXN, GPIO19, PWM Channel
47P2TP10/100 PHY Port #2 TXP, GPIO20, PWM Channel
48P2TN10/100 PHY Port #2 TXN, GPIO21, PWM Channel
49SD WPGPIO22, 10/100 PHY Port #3 TXP, SDXC Write Protect
50SD CDGPIO23, 10/100 PHY Port #3 TXN, SDXC Card Detect
TopNameMuxNote
-GNDGroud
28SPI CS0GPIO10, SPI Master Chip Select 04.7K pull up to 3.3V
25SPI CLKGPIO7, SPI Master Clock4.7K pull up to 3.3V
26SPI MISOGPIO9, SPI Master In Slave Out
27SPI MOSIGPIO8, SPI Master Out Slave In4.7K pull down to GND
24SPI CS1GPIO6, SPI Master Chip Select 14.7K pull down to GND
21I2C SDGPIO5, I2C Data4.7K pull up to 3.3V
20I2C CLKGPIO4, I2C Clock4.7K pull up to 3.3V
19I2S CLKGPIO3, I2S Bit Clock
18I2S WSGPIO2, I2S L/R Clock
16I2S SDIGPIO0, I2S Data In
17I2S SDOGPIO1, I2S Data Out4.7K pull down to GND
RightNameMuxNote
-GNDGround
148RXD1GPIO12, UART1 Lite RXD3.3V
147TXD1GPIO13, UART1 Lite TXD3.3V
141GPIO41GPIO41, JTAG TMSJTAG needs 10K pull up, R9 -> R6
140GPIO40GPIO40, JTAG ClockJTAG needs 10K pull up, R9 -> R6
139GPIO39GPIO39, JTAG ResetJTAG needs 10K pull up, R9 -> R6
143GPIO43GPIO43, JTAG TDOJTAG needs 10K pull up, R9 -> R6
142GPIO42GPIO42, JTAG TDIJTAG needs 10K pull up, R9 -> R6
138RSTReset, touch GND to reset
137GPIO38GPIO38
136GPIO37GPIO37
-+3.3VO+3.3V outputmax output current 100mA
-GNDGround
-GNDGround
-+1.8VO+1.8V outputmax output current 100mA
BottomNameMuxNote
-GNDGround
51SD D1GPIO24, 10/100 PHY Port #3 RXP, SDXC Data Bit1
52SD D0GPIO25, 10/100 PHY Port #3 RXN, SDXC Data Bit0
54SD CLKGPIO26, 10/100 PHY Port #4 RXP, SDXC Clock
55SD CMDGPIO27, 10/100 PHY Port #4 RXN, SDXC Command
56SD D3GPIO28, 10/100 PHY Port #4 TXP, SDXC Data Bit3
57SD D2GPIO29, 10/100 PHY Port #4 TXN, SDXC Data Bit2
-+3.3VO+3.3V outputmax output current 100mA
61USB DPUSB2.0 Data+
62USB DMUSB2.0 Data-
-+5.0VI+5.0V inputmin input current 500mA
-+5.0VI+5.0V inputmin input current 500mA
-GNDGround
-GNDGround
MiddleNameMuxNote
133PCI CKPPCI Express External Reference Clock Output+
132PCI CKNPCI Express External Reference Clock Output-
130PCI RXNPCI Express Differential Receiver RX-
129PCI RXPPCI Express Differential Receiver RX+
-GNDGround
127PCI TXPPCI Express Differential Transmit TX+
126PCI TXNPCI Express Differential Transmit TX-
135PCI RSTPCI Express Device Reset

Tutorials

Connect to Power

1. connect to 3.6V~6.0V and GND with a stable power source, such as USB charger.

note: be careful, high voltage will damage your VoCore.

2. if everything works, after 30 seconds, you will find VoCore2 in your computer hotspot list.

3. connect to VoCore2 hotspot.

4.a using ssh or putty or similar tools login to VoCore2(root/vocore).

4.b using USB2TTL, please check manual in Download section.

important : UART speed is 115200bps, 8bits, no even, 1 stop bit


Connect to VoCore through USB2TTL

video tutorial: youtube

1. connect USB2TTL.TXD to VoCore2.RXD2, USB2TTL.RXD to VoCore2.TXD2, USB2TTL.GND to VoCore2.GND.

2. setup your serial application(such as putty for windows, kermit for mac,linux) in your computer to 115200bps, 8 data bits, no even, 1 stop bit.

3. power on your VoCore2, no you should find some text output.


Setup AP + STA Mode

video tutorial(require USB2TTL): youtube

1. connect to your VoCore through USB2TTL.

2. run command in console(UART console).

3. setup network to enable dhcp(get ip from your hotspot).

uci delete network.wwan

uci set network.wwan=interface

uci set network.wwan.proto=dhcp

uci commit

4. setup firewall to enable access to internet through your hotspot.

uci del_list firewall.@zone[1].network=wwan

uci add_list firewall.@zone[1].network=wwan

uci set firewall.@zone[1].input=ACCEPT

uci set firewall.@zone[1].output=ACCEPT

uci set firewall.@zone[1].forward=ACCEPT

uci set firewall.@zone[1].masq=1

uci set firewall.@zone[1].mtu_fix=1

uci commit

5. setup wireless to enable ap+sta mode.

uci set wireless.sta.ssid="[TARGET AP SSID]"

uci set wireless.sta.key="[TARGET AP PASSWORD]"

uci set wireless.sta.network=wwan

uci set wireless.sta.disabled=0

uci commit

note:replace [TARGET AP SSID] to the target ap ssid you want to connect to, [TARGET AP PASSWORD] is its password.

5. restart your network, it will work.

/etc/init.d/network restart

6.(option) once ap+sta is totally up, disable it in config, so if next time your target ap is missing, you still able to connect to VoCore2.

uci set wireless.sta.disabled=0

uci commit

/etc/init.d/network restart

sleep 10

uci set wireless.sta.disabled=1

uci commit

note: better copy the three lines to /etc/rc.local


Upgrade VoCore2 Firmware

1. download the latest firmware(not the flash image) in this page Download section.

2. connect to your VoCore hotspot, open browser view 192.168.1.1 or 192.168.61.1.

3. LuCI console using username: root, password: vocore, click on "Login" (picture part 1).

4. select "System" -> "Backup/Flash Firmware" (picture part 2).

5. click on "Choose File", choose your downloaded firmware(again, not the flash image, picture part 3), then click "Flash Image".

6. it will upload the firmware to your VoCore2, takes a few seconds, check if the md5 matched. (picture part 4)

7. if everything ok, press "Process".

8. normally it will take 2~3 minutes, please wait until it is ready.

note: if power cut off during the upgrade process, your VoCore2 will brick, check "Fix Bricked VoCore2"


Compile OpenWRT for VoCore2

video tutorial: youtube

1. install Ubuntu 14.04 64bit Server to Virtual Machine.

2. in virtualbox, we will need install some packages to compile openwrt:

sudo apt-get install gcc g++ binutils patch bzip2 flex bison make autoconf gettext texinfo unzip sharutils subversion libncurses5-dev ncurses-term zlib1g-dev libssl-dev python

3. download openwrt at "Sources" section in this page, software part.

4. call "tar -jxvf openwrt.tar.bz2" to uncompress the package.

5. call "make menuconfig" in the openwrt folder, configure openwrt in menu, choose MT7688/28/VoCore2 in menu.

6. call "make" in the openwrt folder, start the make process


Compile your App for VoCore2

1. compile openwrt for VoCore2, it will create toolchain or download it at Downloads/Toolchain(for Ubuntu 14.04 64bit).

2. make a simple code in C, compile it in command line.

/path.to.your.toolchain/bin/mipsel-openwrt-linux-gcc -g yourcode.c -o yourcode

3. after this, you will get an executable file named "yourcode", use scp, copy it to your VoCore2

4. in VoCore2, call chmod +x yourcode, after that, you can run it in VoCore2, call ./yourcode


Upload Firmware

1. upload firmware through luci, please read manual in Download section.

2. upload firmware through console, connected to VoCore hotspot.

(1) copy from pc to VoCore[operate in PC]: scp [your firmware].bin root@192.168.61.1:/tmp/vocore2.bin

here is two choices, 2.a will erase all data/config you write to VoCore, 2.b just upgrade the firmware but keep them.

(2.a) write to VoCore nor flash[operate in VoCore]: mtd -e firmware write /tmp/vocore2.bin firmware

(2.b) system upgrade VoCore nor flash[operate in VoCore]: sysupgrade /tmp/vocore2.bin firmware

(3) wait until mtd done, reboot your VoCore.

note: if you want set your VoCore back to first time boot up, call "firstboot" in console.


Fix Bricked VoCore2 (uboot alive)

1. connect your VoCore2 to computer through USB2TTL(UART2 RXD2+TXD2+GND).

2. open tty tools(must have kermit protocol), such as kermit, ckermit.

3. power up your VoCore, once you find: "0: Load system code then write to Flash via SERIAL.", press '0'.

note: VoCore will show "## Ready for binary (kermit) download to 0x80100000 at 115200 bps..."

note: kermit: press Ctrl and '\' same time then press 'c', you will switch to kermit command console.

5. send upgrade firmware to VoCore, after that, back to VoCore uboot console.

note: kermit: call "send path/to/your/upgrade/file/on/pc.bin" to send firmware, around 10 minutes, once it finished, call 'c' back to console.

6. wait around 20~30 seconds, firmware uploaded, your VoCore will reboot.


Fix Bricked VoCore2 (uboot dead)

1. You must have another VoCore/VoCore2 or one flash loader and six wires.

2.1 using another VoCore/VoCore2 to recover your bricked VoCore2.

2.1 check blog http://vonger.cn/?p=8054.

2.2 using flash loader to recover your bricked VoCore2.

2.2.a disconnect VoCore2 from power;

2.2.b connect VoCore2 GND to flash loader GND;

2.2.c VoCore2 +3.3V to flash loader +3.3V;

2.2.d VoCore2 SPI MISO -> flash loader SPI MISO;

2.2.e VoCore2 SPI MOSI -> flash loader SPI MOSI;

2.2.g VoCore2 SPI CS0 -> flash loader SPI CS;

2.2.h VoCore2 SPI CLK -> flash loader SPI CLOCK;

2.2.i VoCore2 RST -> VoCore2 GND; (keep VoCore2 in reset mode)

note: if not work, swap MISO/MOSI.

2.2.j now, download then send "Flash Image" to VoCore2.2.

2.2.k remove wires, connect VoCore2 back to power, everything should back normal.

3. option: better to upgrade your firmware after recover, Flash Image is out of date.


Enable another antenna on VoCore2(standard version only)

On VoCore2 standard version we have another antenna, default it is power off status(to avoid two antenna cross-talk to each other), if you have a external U.FL antenna, you can connect it to VoCore2, convert it from a portable router to a full function 802.11n router, maxmize its speed and signal strength.

note: suggest distance between two antennas is > 6cm

1. download a factory setting read/write tool to /tmp/ on VoCore, chmod +x /tmp/factory.

2. we run the following script to enable second antenna.

enable second antenna:

/tmp/factory 0x34 0x22 > /tmp/mtd2.tmp

mtd -e factory write /tmp/mtd2.tmp factory

disable second antenna:

/tmp/factory 0x34 0x11 > /tmp/mtd2.tmp

mtd -e factory write /tmp/mtd2.tmp factory

3. restart wireless driver is necessary(better to reboot).

call "wifi" or "reboot" on VoCore2.


Directly write to memory/register

We made a simple tool for this, download here, its name is "mem", put the executable file into /bin/ in VoCore2.

1. read from register/memory, for example: 0x10000060, pin control register

example: mem 0x10000060

2. write to register/memory, must in 32bits(4bytes)

example: mem 0x10000064 0x05540555

here is an example bash script flash the LED every second on VoCore2

mem 0x10000064 0x05540555; mem 0x10000604 0x1000; while [ 1 ]; do mem 0x10000634 0x1000; sleep 1; mem 0x10000644 0x1000; sleep 1; done