Posted: Sun Mar 28, 2010 22:07 Post subject: WRT54Gv6 debrick (with Arduino JTAG "cable")
Hello all. I've been given a WRT54Gv6 that up and stopped working one day. It originally had the stock Linksys (vxWorks) firmware on it, but now appears to be bricked. When I turn it on, 3 or 4 of the LAN LEDs come on immediately and power LED just blinks.
I figured it would be fun to try to fix this thing. I've never tried to debrick a router before -- I've done a lot of reading about it, but this is my first time trying. Unfortunately, I don't have a parallel port on any computer I own, so I couldn't make a parallel-port-based cable.
I do, however, have an Arduino (hobbyist microcontroller board). I downloaded tjtag 3.0.1, read through the code, and made some modifications so that instead of writing to a parallel port, my version of tjtag now talks to my Arduino. The Arduino acts like a Wiggler cable and carries out the bit-twiddling that a Wiggler normally would do, and it also reads the JTAG data pin and sends it back to tjtag.
Surprisingly, this Arduino/Wiggler setup seems to be working.
It seems bad that I'm getting the "Unknown or NO Flash Chip Detected" thing. Anyone know how to help with this? I haven't tried any -backup/-erase/-flash commands yet, just variations of -probeonly.
My WRT54Gv6 board has a Samsung K8D***** chip on it. The ***** is covered up by a sticker that says "VER.1.00.0 CS:CC99"
Thanks in advance for any help. If this Arduino/Wiggler JTAG "cable" ends up being viable, I'll gladly clean up and release the source code.
Posted: Mon Mar 29, 2010 0:10 Post subject: It worked!
Hey, it worked!
I was able to -erase:nvram and that got the router back on its feet too.
Thanks for the quick response, Dark_Shadow.
I guess this means my Arduino "Wiggler Emulator" (or would that be "ArduWiggler"?) works, too.
Now, here's another question: Since I've never used a parallel-port-based cable, how fast are they? I'm wondering how my Arduino Wiggler did speed wise vs the real thing.
I briefly tried to do a -backup:cfe (before calculating that it would take way too long and giving up). It was averaging about 0.75 seconds per byte.
Thanks again.
I'll try and clean up this code to post somewhere, in case anyone would ever want to use it.
Posted: Thu Apr 29, 2010 1:01 Post subject: arduino jtag
I have a bricked wrt54g and an arduino diecimila too so i dont want spend more money on a jtag programmer.
Please post the code and more info about the wire connections showed on your image..my wrt is an V2.2 so my jtags pinouts are different.
Perhaps you would start a new treath with all the info....for sure it will be a massive treath because all bricked routers out there. 8)
I have a bricked wrt54g and an arduino diecimila too so i dont want spend more money on a jtag programmer.
Please post the code and more info about the wire connections showed on your image..my wrt is an V2.2 so my jtags pinouts are different.
Perhaps you would start a new treath with all the info....for sure it will be a massive treath because all bricked routers out there. 8)
I have a bricked wrt54g and an arduino diecimila too so i dont want spend more money on a jtag programmer.
Please post the code and more info about the wire connections showed on your image..my wrt is an V2.2 so my jtags pinouts are different.
Perhaps you would start a new treath with all the info....for sure it will be a massive treath because all bricked routers out there. 8)
Posted: Sat Nov 13, 2010 17:27 Post subject: Arduiggler/JTMOD Source Code Tarball
Alright, here is the source code and some basic documentation. The arduino/ subdirectory has the "sketch" code that you'll need to load onto your Arduino board, as well as a schematic for connecting the Arduino to your router's JTAG port (and a picture of my setup, just for reference).
See the JTMOD_README.txt file for rough instructions.
The code isn't pretty or fast, but hopefully you'll find this useful (and maybe somebody will find a way to make it faster). Let me know how your experience goes.
-Jeremy Trimble
tjtag3-0-1_JTMOD.tar.gz
Description:
Source code and documentation for a version of tjtag that connects to a router's JTAG port through an Arduino board.
I am running Ubuntu 11.10 and trying to get my Arduino Uno to work as a wiggler. My computer recognizes the Uno on ttyACM0 and I have no luck setting the environment variables to ttyACM0 from ttyUSB0. Any suggestions?
I'm running into the same problem with /dev/ttyACM0 on Ubuntu when using the patched tjtag command line tool. When I set the environment variable to use ttyACM0 I also get the error message "Hmm.. Looks like the Arduino isn't responding"
The sketch is programmed correctly. I was able to successfully upload it via /dev/ttyACM0 and I also programmed it under Windows as well. The user using tjtag is in the "dialout" group in order to r/w to /dev/ttyACM0
Any ideas what's wrong here? Is /dev/ttyACM0 behaving any different from /dev/ttyUSB0?
I tried to run the tools under Ubuntu, as the Windows version is not running correctly either. I already tried the provided Win32 ports and all the tools run OK so far but I never got any response from the WRT54GS (v1.0). (--> The sketch is working correctly when using the Windows tools, it is just the Linux version of tjtag which behaves strangely with /dev/ttyACM0).
I already checked all JTAG headers for short circuits but everything looks fine, however no matter which command line options I am using, there is never any response from the router via JTAG tjtag stays there saying "Probing bus..." and times out after approx. 20 second with the error "No response" and various sources of errors. During the probe, the LEDs of the Arduino flash, so there seems to be serial port activity.
How fast should this response be returned normally after the message "Probing bus..."? When does the watchdog timer of the router kick in? How many seconds do I have?
Is the pinout of the WRT54GS v1.0 the same as for the WRT54GS v2 which is mentioned in the Wiki? Is there anything else how I can debug this? Everything looks gut, it is just that there isn't any response from the router... As the Linux version of the tool seems to be the native platform I thought I could give Ubuntu a try. Maybe it would have worked there instead of Windows... :-/
My specs: Win7 x64, COM4@115200 8N1, Linksys WRT54GS v1.0, Arduino Uni SMD edition, Power LED of router blinks after powering the unit. LAN ports react, but router is not reachable via any means (no ping, no tftp). Flashed dd-wrt version is unknown (flashed it a couple of years ago and router was used at my Dad's site). It think it is a v24 SP2 but I cannot remember more.
I'm trying to do the same.
How are you connecting the Arduino to the WRT?
However, did you put resistors when making connections?
I haven't done that yet but it may be worth it.