Dockstar repair with serial cable

2010-10-13 13:49
I recently bought a Seagate Freeagent Go Dockstar, which is basically a SheevaPlug device with less RAM and Flash memory for a lot less money (~ $25). It comes with the same 1.2 GHz Feroceon 88FR131 CPU as the SheevaPlug. Unfortunately my Dockstar device arrived in dead condition.

Dockstar

When I first started the device its LED was flashing green for a few seconds (boot loader phase) and then began flashing amber. That is all that was happening. It did not aquire an IP address from my DHCP server nor was it reachable on its default IP address.

As I did not want to bring it back to the store where I bought it and because I intended not to use the pre-installed Pogoplug software anyway, I opened the device to check what was going on.
Opening the device revealed that there is a small connector on the PCB. Three of the pins are assigned to a serial port.

Dockstar serial port header

This serial port is basically a standard RS232 serial port with the exception that it uses only 3.3 V instead of the up to 12 V of a normal serial port found on desktop computers. It also comes without any handshaking lines, which is why there are only three pins (RX, TX, GND) neccessary for the serial port. Most serial ports on such embedded devices do not use 12 V, but either use 5 or 3.3 V where 3.3 V is becoming more and more common.

To connect such a device to a PC and its standard serial port, a level shifter (e.g. built around a MAX3232) is needed. While such a circuit is rather easy to build, there is an even simpler solution which has the advantage of also being usable on computers without a serial port.

All that is needed is a data cable used for certain older mobile phones. Lots older mobile phones have a serial port built-in instead of the now common USB device ports.

A suitable cable for this purpose is a DKU-5 data cable. I have used this one.

This cable comes with the very common PL2303 usb serial converter. In Linux it is being detected as:
pl2303 4-5:1.0: pl2303 converter detected
usb 4-5: pl2303 converter now attached to ttyUSB0
usbcore: registered new interface driver pl2303
pl2303: Prolific PL2303 USB to serial adaptor driver
To build a universal serial cable that can easily be used on different devices I decided to use test hooks for the serial connection instead of a connector suitable only for the Dockstar's serial connector.

Serial cable with test hooks

When using the serial cable mentioned above, the blue wire is the ground wire (GND), the green wire is the receive wire (RX) and the white wire is the send wire (TX). If you have got another serial cable and you got a multimeter you can easily find out which of the wires is connected to ground by measuring the resistance between each wire and the outer metal shield of the usb connector of the cable. Only the wire connected to ground will have a resistance close to zero ohms. You cannot as easily figure out which of the remaining wires is the RX wire and which is the TX wire, though. Either use the same cable as I did, so you already know the wiring or open the USB connector and have a look at the PCB inside.

Serial cable attached to Dockstar

Now that the serial cable is connected to the Dockstar, a program to communicate with the Dockstar over the serial connection is needed. On Linux minicom or screen can be used for that. This time I have used screen:
$ screen /dev/ttyUSB0 115200
When powering on the Dockstar the U-Boot bootloader immediately writes some messages to the serial port which should appear in the screen session. This immediately revealed the reason why my Dockstar was unable to boot. The Linux kernel on the Dockstar's NAND flash had a checksum error preventing U-Boot from booting the kernel.

To fix that a working Linux kernel needs to be written to the flash. This can be done by telling U-Boot to first load a kernel over tftp and then tell U-Boot to write it to the NAND flash. To do that a tftp server on the local network is needed. On many Linux systems there is a package called tftp-hpa which contains such a tftp server.

The original Dockstar redstone kernel image can be found here. This needs to be placed in a location such that is accessible through the tftp server.

Once the tftp server is ready it is time to reboot the Dockstar.

When booting the Dockstar with the serial cable connected, after a short while U-Boot prints a message telling you to press a key to enter the u-boot console. Failing to do so will result in U-Boot trying to boot the broken kernel again.

First, the Dockstar needs an IP address:
setenv ipaddr 192.168.0.222
Of course this IP address needs to be part of the subnet used for the local network and it must not be identical to the IP of another computer on the network.

Next the Dockstar needs to know the IP address of the TFTP server:
setenv serverip 192.168.0.3
Now the kernel image can be fetched over the network:
tftp 0x800000 ce_kernel_redstone_v63.img
It is important that the entire file is being transfered. Verify the file size. Now the kernel has been loaded into the Dockstar's RAM. We could boot the kernel from there, but we first want to write it to the NAND flash.
nand write.e 0x800000 0x100000 0x1e30f0
This command tells U-Boot to write 1978608 bytes of data (0x1e30f0 bytes in hex - this is the size of the default Dockstar kernel) found at RAM address 0x800000 to the NAND location 0x100000.

Now it is time to boot the kernel. Either execute
bootm 0x800000
to boot the kernel already loaded to RAM, or power-cycle the Dockstar.

This should now successfully boot the system. If it now fails at a later point in the boot process you might need to also reflash the RAM disk image.

The Pogoplug image comes with ssh enabled by default but is being disabled as soon as the Dockstar is able to connect to the Internet. With a serial cable this is no problem as the access to the system over the serial port is still possible.

After repairing my Dockstar I immediately installed a U-Boot bootloader capable of booting from USB devices, as I did not intend to use the Pogoplug system.
 
ND (web) says:
2010-11-17 11:12:43
Hi,

I also have bought a new DockStar, but mine worked fine the first time. I logged in with the IP determined by the MAC-Address.

But something got wrong during shutdown (my USB-Stick did not unmount) and afterwards the DockStar only flashed amber.

With this superp description I will try to fix it.

Could you lend me your serial cable, as I prefer to support mail-services and your work rather than internet shops.

Best, ND
wejp (web) says:
2010-11-17 18:50:18
ND: Sorry, but I won't do that. You could try to buy such a serial cable at a local mobile phone shop, though. It might be a little more expensive than from DX, but should still be pretty cheap.
ND (web) says:
2010-12-04 20:19:53
Hi,

I finally bought a DKU-5 cable via Ebay (~5€ w/o PayPal...). And now it works!

But I encountered the problem, that the wires were differently colored. Only thing that helped was opening the USB-plug and checking the labels. They are :

red and white : GND
black : RX
green : TX

Now I can talk to the device by serial (screen /dev/ttyUSB0 115200). My system is dropping to a BusyBox and I have to figure out, what to do next.

Thanks for the very good documentation!

Greetings, ND
Vincent RABAH (web) says:
2011-03-08 09:52:51
Hi,
I need help. I followed all the process, but still got an issue :

- When all the 3 wires are plugged, I then plugged the power, and the LED don't blink. If I remove the GND wire, LED start blinking.

I've make it again, and again, without any success ?

Any idea ...

I have 2 bricked DockStar + one I used for my home hosted blog : http://www.it-wars.com

Thank's
wejp (web) says:
2011-03-08 12:13:09
Vincent RABAH: When you power on the Dockstar with all cables connected, is there any output on the serial line? Also, make sure none of the wires touch each other. As the connector on the Dockstar is really tiny, this might happen by mistake.
macmino (web) says:
2011-03-09 23:31:51
Thank you very much !!!! My RX/TX/GND is different:

DKU-5:
White = GND
Blue = TX
Red = RX

Ciao from Italy
killiak (web) says:
2011-03-27 01:26:06
Cannot find the kernel ANYWHERE :(
The link in your post brings me to a 403 page and every other link Ive found through google is down as well.
Please help me get a copy of this kernel.

pandelelak (at) gmail (dot) com
kmihelich (web) says:
2011-06-30 00:47:36
PlugApps is now Arch Linux ARM, and we've reorganized some of the folders. You can find the redstone images now here:
http://archlinuxarm.org/mirror/ce/
Mike (web) says:
2011-07-20 01:18:50
Hi, I bought the same cable. When I connect the cable to pc, it shows unknown device in windows 7 and "unable to emuernate usb device" in linux. Please help.
wej (web) says:
2011-07-20 11:54:42
Mike: The "unable to emuernate usb device" error message sounds like a hardware problem. Did you connect the cable through a hub or an usb extension cable? If so, try connecting it to the computer directly. You also could try another usb port. I have had similar problems (with various devices) when using cheap usb extension cables.
Mike (web) says:
2011-07-21 15:23:35
The cable was suddenly recognized. Don't know why. I can set up the connection now. The thing is that when transferring images I always get timeout, saying retry count exceeded.
I am sure that my tftp server is running well, as I can get files from another computer.

Is it true that the pc running tftp server is the same pc used to connect the dockstar?

Thanks
wej (web) says:
2011-07-21 18:17:07
Mike: The tftp server does not need to run on the same PC that is being used to connect to the Dockstar via serial port. The tftp server should be on the local LAN, meaning it should be connected to the same switch as the Dockstar. Also make sure you give the Dockstar an IP on the same subnet as the tftp server.
Mike (web) says:
2011-07-25 14:50:55
Thank you for the response. I was so stupid that I did not connect the ethernet cable to the dockstar. I finally finished reflashing. After bootm, it froze at following output,


Uncompressing Linux.............................................................
............................................................... done, booting the kernel.


Thanks again for the response.
wej (web) says:
2011-07-26 11:11:32
Mike: I'm not exactly sure if the kernel was configured to print its output to the serial port. If it is you might also need to flash the the RAM disk image and not only the kernel. On my Dockstar "only" the kernel was broken, but the RAM disk part was intact, which is why I did not need to reflash that part.
Before doing that, you should verify that the Dockstar did not boot correctly. It might have booted just fine without noticing.
chessplayer (web) says:
2011-08-09 15:36:24
Hi,

this howto seems just like what the doctor ordered for my broken Dockstar (exactly the same as the situation you described, wejp). So, I now have the serial cable and am waiting for the hooks. While this is so, I was wondering how you got the output concerning the detection of the cable. "lsusb" does not give it. What command did you use?

Thanks for taking the time for answering such a stupid question ...
wej (web) says:
2011-08-10 08:11:43
chessplayer: lsusb should say something like this:

Bus 006 Device 009: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port

Also, you might want to keep an eye on the kernel ringbuffer log, when you plug in the cable. You can check the ringbuffer with the dmesg command.
chessplayer (web) says:
2011-08-11 15:10:05
Thanks, that's what I thought. I got the wrong cable first (maybe you could point out that warning here as well: see [URL="http://buffalo.nas-central.org/index.php/Use_a_Nokia_Serial_Cable_on_an_ARM9_Linkstation"]here[/URL]). Now I have the right one (they are actually cheaper at Amazon in Germany than they are at DealExtreme, while for the testing hooks, DealExtreme really is extreme ...) and all is as you described it!

Cheers,

chessplayer
Unicorn (web) says:
2012-02-04 11:11:07
I re-flashed file ce_kernel_redstone_v63 and was using 2 month then the problem came back, yellow led blinks. I lost the file and the link to download gone, could you please re-upload the file
Thanks
gabidospi (web) says:
2012-04-16 13:11:34
Hi, I buyed one of those cables for nokia, and my wires are black, red and white. I tried to mesure the resistance under metal part of the usb plug and each wire, but nothin (everytime the resistance = 1) then, I plug the cable into an USB port of my computer and then I vérified the tension between 2 wires. So, between red and black (as expected) there was a 3.5 V (nothing between the others) so I think that the black wire is the ground, and the red is the alimentation wire (is that the receive one??)

I opened the usb plus but the PCB does'n tell me much more. If you could "aware" me, I put the photos if my plug:

http://imageshack.us/photo/my-images/827/dsc2050y.jpg/


http://imageshack.us/photo/my-images/833/dsc2051l.jpg/

Thank you
gabidospi (web) says:
2012-04-16 14:10:24
Hi again,

After I opened up without any positive result my cable, I find out a description of the pins on the nokia plug, here: http://buffalo.nas-central.org/wiki/File:CA-42_DKU-5_pinout.jpg

So, for me black - GND (as I supposed), red - RX and White - TX.

I conclude that a simple method for find out wires utilisation is:

Connect the usb nokia cabke on usb port of your computer
then mesure the potential between 2 wires
when you find 3.5 VCC you have the RX wire (on the red wire of your voltmeter) and the ground wire (on the black wire of your voltmeter)

Simple, isn't it?? If somebody verify that, I suppose that is a logical deduction and I'm not in error....
Marco (web) says:
2012-06-26 15:12:54
I hade problems connecting pins, they are smaller than others common pins. So i haven't those hooks, i used an old audio cable for the connection of cdrom player to the motherboard. It has just three cables but you have to destroy the white plastic to extract single connectors. http://imageshack.us/photo/my-images/201/imag0197n.jpg/
fred (web) says:
2012-07-12 23:09:25
Shame on me, bought this unit in July 2010, just opened up the box July 12 two years later, amber light flashing, yikes, no recourse for warranty replacement,spent an hour on phone with seagate tech support. Well how much would you charge to repair it? Thanks. fred
wej (web) says:
2012-07-13 08:05:00
fred: Sorry, but I don't do repairs for money. I strongly recommend trying to fix it yourself, though. It is probably the same issue as with my Dockstar (broken kernel image in flash memory).
fred (web) says:
2012-07-13 19:55:34
thanks anyway, I will probably forego any repair, seems complicated to do, find and procure all the stuff. I dont know what screen is and dont have linux.
codezmith (web) says:
2013-03-07 10:23:59
Wej,
I've soldered up the DKU cable and connected as shown but getting gibberish from the dockstar. Have tried swapping tx/rx connections as well as changing baud rates and parity. No luck. Any thoughts? The DKU-5 Cable I have is using the ark3116 module if it matters.
codezmith (web) says:
2013-03-07 11:50:49
Checked my pinouts with an ohmmeter ( http://imgur.com/h6rXBul) Now if I can make heads-or-tails out it http://sleclire.blogspot.com/2010/09/clone-non-original-nokia-ca-42-cable.html
codezmith (web) says:
2013-03-07 11:53:07
...looks like mine uses Red for ground according to sleclire website above (wires 8,7,6)...hrm
codezmith (web) says:
2013-03-07 12:11:38
in case it helps anyone else Red for ground did the trick!
John DeGood (web) says:
2019-06-05 16:53:49
Thanks for posting this excellent tutorial! I used your instructions with a FTDI TTL-232R-3V3 cable to fix a new, unopened, old stock DockStar which had the exact same problem:

U-Boot 1.1.4 (Jul 16 2009 - 21:02:16) Cloud Engines (3.4.16)

U-Boot code: 00600000 -> 0067FFF0 BSS: -> 00690D60

Soc: 88F6281 A0 (DDR2)
CPU running @ 1200Mhz L2 running @ 400Mhz
SysClock = 400Mhz , TClock = 200Mhz

DRAM CAS Latency = 5 tRP = 5 tRAS = 18 tRCD=6
DRAM CS[0] base 0x00000000 size 128MB
DRAM Total size 128MB 16bit width
Flash: 0 kB
Addresses 8M - 0M are saved for the U-Boot usage.
Mem malloc Initialization (8M - 7M): Done
NAND:256 MB

CPU : Marvell Feroceon (Rev 1)
CLOUD ENGINES BOARD: REDSTONE:1.0

Streaming disabled
Write allocate disabled


USB 0: host mode
PEX 0: interface detected no Link.
Net: egiga0 [PRIME], egiga1
Hit any key to stop autoboot: 0

NAND read: device 0 offset 0x100000, size 0x300000

Reading data from 0x3ff800 -- 100% complete.
3145728 bytes read: OK
## Booting image at 00800000 ...
Image Name: Linux-2.6.22.18
Created: 2009-08-31 23:31:05 UTC
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 1976384 Bytes = 1.9 MB
Load Address: 00008000
Entry Point: 00008000
Verifying Checksum ... Bad Data CRC
CE>>

Leave a comment

Name
E-Mail
Website
Homepage
Comment