VoCore: SPI & MicroSD

vocore.spi
Hardware part do not have big issue now, just pin 9, 10 are the microSD detector pin, but there is no place on PCB, have to ignore them…

Now working on the software part, that really stunned me. 😀

I thought that should be already perfectly supported by openwrt driver…But after I check the  driver carefully, I think I have to modify that code or find another way.

The code is under linux kernel source, source/drivers/mmc/host/mmc_spi.c

There is a note in that source…

 58  * - MMC depends on a different chipselect management policy than the
 59  *   SPI interface currently supports for shared bus segments:  it needs
 60  *   to issue multiple spi_message requests with the chipselect active,
 61  *   using the results of one message to decide the next one to issue.
 62  *
 63  *   Pending updates to the programming interface, this driver expects
 64  *   that it not share the bus with other drivers (precluding conflicts).

Does that mean this driver can not work with the exists SPI flash?

And there is a good solution but for other router chip.
http://wiki.openwrt.org/ru/toh/tp-link/tl-mr3420/deep.mmc.hack
I did not try that yet, it might be able to work on RT5350 but need more checks.

I do not want to use GPIO for this, but this way looks much easier.
http://wiki.openwrt.org/doc/howto/mmc_over_gpio

This part will cost some time 🙂

Any idea is welcome here. Please leave a comment, that will help a lot. 🙂

VoCore Alpha Version: Connect through UART/TTL

Software Part:

Here is my kermit config(put it in ~/.kermrc).(other UART software should work too)
(to get kermit into mac, please install macport then call sudo port install kermit)

set line /dev/tty.usbserial
define sz !sz \%0 > /dev/tty.usbserial < /dev/tty.usbserial
set speed 57600
set carrier-watch off
set prefixing all
set parity none
set stop-bits 1
set modem none
set file type bin
set file name lit
set flow-control none
set prompt “MacOS Kermit> ”

Let me explain this:
57600, 8, n, 1, those are the most important parameters.

set line /dev/tty.usbserial
USB-TTL driver position.

set speed 57600
default speed is 57600.

set parity none
8n1, n is this one.

set stop-bits 1
8n1, 1 is this one.

Then, use kermit -c to connect to the UART.

Upload firmware through UART.
There are two ways to download(press ‘x’ once VoCore is booted):
1. tftp
2. uart(loadb then jump out kermit console to send the file)

After load the bin file, then erase linux part by command

erase linux

Final, copy bin to flash.

cp.linux 2c0004

2c0004 is the size of my bin file, change to yours.

I highly recommend to use mtd through wifi, that is much faster.

 

Hardware Part:

Need one USB-TTL:
vocore.usb-ttl

USB-TTL needs three pins(the red part of the following picture) to connect to VoCore.
VoCore.RXD2 => USB_TTL.TXD
VoCore.TXD2 => USB_TTL.RXD
VoCore.GND/Power.GND => USB_TTL.GND
(do not forget connect their GND together, or there will be a lot of garbled text)

WARNING: this is alpha board pin map, release version pin map please read the datasheet on vocore.io/wiki Introduce part.

vocore.alpha

 

WARNING: this is alpha board pin map, release version pin map please read the datasheet on vocore.io/wiki Introduce part.

The blue part is the power pin.
It allows 3.3V~6.0V power input, my suggestion is to use 3.6V~5.4V due to input power is converted by DCDC. If you use 3.3V input, please directly connect to 3.3V at the orange part.

The orange part 3.3V can be use as
a. Output: if you connect power to 3.3V~6.0V pin.
b. Input: if you connect 3.2~3.4V power to it.

power 3.3V~6.0V input is convert to 3.3V then to the chip.
Like this:
vocore.power

My compiled Kermit: http://vonger.cn/upload/tools/kermit

VoCore v1.0 Dock Features

DSC01626

The dock features are confirmed.

1. USB(5V power).
2. USB 2.0 host.
3. RJ45 with protection and two GPIO controlled LED.
4. Micro SD card(TF Card) slot.
5. Two 2.0mm screws hole.

All tests are passed 🙂

The small dock is used to make the tiniest DIY router(29.0 x 27.0 x 21.4mm), it is not a breakout board…someone said my breakout board is ridiculous, now I can tell him, he made a mistake. 😀 That is never my real target from beginning.(but anyway, it can be used as a breakout board if you want 🙂 )

Really thank for my friend Zhiwei De 🙂 We will provide the 3D printer plastic shell blueprint later, then a very small router with SD card slot is born(and it can be used same function as PirateBox but a little more portable and more functions)

VoCore Alpha Fix Video

Here is the video:

This is only for alpha, release version do not need such fix 🙂
Thanks for my teammate WuTong, this video looks so professional. And special thanks for my friend Alex helped to make this video.

Some notes from WuTong:

1. Better to have a tip iron, that will help a lot.
2

2. Better to have this tool to keep it in position.
1

3. Better to have a light.
3

PS: in the package there are are some resistors, four 154Kohm and four 158ohm, those are useless now, just ignore them.

VoCore Alpha Usage

From the China Post, I have get all trace id, the track id will be updated to my server tomorrow, you can get it through that stupid robot 😀 http://vonger.cn:8080/[Your Invoice ID],[Your Email]. For alpha users only.

PS: Next week I will update that stupid robot, add all user data to it and you can easily change your information online. The China Post request me the phone number, but indiegogo do not have that.

You will never know that robot is written in pure C 😀 I am not good at PHP or other web language yet.

Now the USAGE of VoCore Alpha:

(MUST fix the board first, please check http://vonger.cn/?p=722 for the fix)

vocore.alpha.usage

 

Do you find that two red box? Connect power to it, any power between 3.3V~6.0V is OK(USB, Li Battery, etc…)

Once connect to power, the LED will light about 1sec, that means VoCore is on boot. Wait about 30 seconds, you will find a AP named VoCore, connect to it.

vocore.alpha.usage2

 

 

 

  • LuCI Login:

Now please open your browser, visit VoCore root site, 192.168.61.1, default username is root, default password is vocore.

vocore.alpha.usage3

 

Now everything is ready for UI login.

 

  • SSH Login

open command ui or windows could use putty.

ssh root@192.168.61.1

Type ‘yes’ then return/enter when it request.
Input password ‘vocore’, then you are in openwrt. 😀

Screen Shot 2014-06-25 at 15.55.41

 

OK, that is all.

When I get it work, I make it into AP+STA mode at first 😀 This blog is send though my VoCore AP+STA mode(http://vonger.cn/?p=377)

Alpha version do not have MAC address yet, all of them are using same MAC, but release version will have.

 

VoCore Hardware: How to Fix Alpha

First: this one is fixed one:

vocore.alpha.fixed

Plan A: Simple Tools(need high skill):
vocore.alpha.plan.a.tools

Step 1 => take off the old 27pF cap.

I am using Ag-Sn, 221C melt down(Ag-Sn-Cu is another choice). And 180C Pb-Sn or Ag-Bi-Sn should be OK too.

Use the tweezer bit that 27pF cap, then use your iron(better to be 280~300C) touch the one red point, about 1 second, move to another red point for 1 second, do this again and again… until the paste is melted.(my iron is not good, only 250C, it takes about 2min) Then your tweezer will get the cap.

vocore.alpha.plan.a

Step 2 => solder 27pF cap onto the position.

We need to cut off some Ag-Sn from the Ag-Sn bunch.
Use iron to melt them into two about 0.3mm Ag-Sn metal ball.
The ball can not be too big, or it will be easy to cause short connect, and once it is short connected, it is very hard to fix.

vocore.alpha.plan.a

There are two white point.
Put a little flux onto the white cycle, the put one little Ag-Sn ball to one white cycle(the flux is used to keep the ball touch the PCB and not roll to everywhere.)
Put the 0402 cap beside that ball. Like this:
vocore.alpha.plan.a.ball

Use your iron melt that ball, so one side of the 27pF is connected to 300ohm(or 1uF)

Then put other ball between another white cycle and another side of 27pF, use the iron melt down that ball. Now the 27pF should be well connected with the two white point.

Plan B: Hot air + Ag-Sn-Cu Paste(about 226C) (very easy)

IMG_20140625_131054

Step 1 => Make hot air to 280C~300C, target to that 27pF, about 30second, use tweezer take it off.

Step 2 => Put 27pF onto the position(blue rectangle).
vocore.alpha.plan.a.ball

Use your tweezer get a little paste, and put some to the white cycle.(do not put too much or it will short connected). Then put 27pF on the paste.
vocore.alpha.plan.a

Hot air again, melt down that paste, it is connect perfectly.

VoCore: Alpha Version 5

IMG_20140622_192630

 

An ugly fix from me 🙂

PS: If you have additional 0402 27pF(> 6.3V, 10%), solder it to the position should be OK too, do not have to move/remove the old 27pF.

VoCore: Alpha Version 4

The six days I checked many possibilities…
Finally, I find it is clock circuit problem.

This is clock sch from v0.5:

vocore.v0.5.clock

 

This is clock sch from v1.0a:

vocore.v10a.clock

 

So do you find the problem?

I moved 27pF cap to other side of the crystal for the new version…I did not even notice that …(when I optimised the layout of the PCB, I changed some parts of schematic, then forgot to change this part back…)

This small careless problem caused the hole board unstable and the wifi not working. Such problem will never happen again.

 

Why this BUG is so critical?

Normally, hardware is stable and able to afford some problem, for example, if you remove two or three 0.1uF cap, it works normal.

But crystal problem is always a big problem.

If RT5350 is the heart of VoCore, the crystal(clock) is the heart of RT5350. It can not work with a buggy clock.

v0.5 circuit is a standard noise reduction circuit, the high frequent noises are block by the 300ohm, and direct to ground by the 27pF cap. But when I move 27pF cap to another side, this RC noise reduction circuit is broken, so clock noise will be very loud, so some chips are unstable. Wifi signal is 2.4GHz, that is from crystal clock(20MHz) x 120, the noise is even 120 times stronger than the chip, so the wifi is not working at all.

This morning I contact the factory, their repair team is very busy, we have to wait at least one week. And from WuTong, The alpha VoCores had shipped to China Post and I can not make them back to change any hardware, so the alpha contributor have to change this yourself. Really sorry for that problem, I will record a video or write a blog with detail to show how to make that.

For simple, it should be changed like this:

vocore.alpha.repair

VoCore: Alpha Version 3

Good news 🙂
Finally I find the real problem…Thank you for everyone help!!!
I have fixed three boards, so I think 99% chance I get this bug.
It is very late day, I will public it tomorrow afternoon. Keep that as a secret for couple hours. 😀

And tomorrow daylight I need to contact the factory first, ask if they can fix the 300 pcs for me. If not, that will be a little trick for new hand of iron/hot air gun.

This indiegogo campaign makes me carries too much…For 2K more contributors, I can not afford any mistake. After this I will/must have a big rest. 😀 😀 😀