The Linksys WRTSL54GS is a wireless router similar to the WRT54G series, with a single USB port.
| Architecture: MIPS
| Vendor: Broadcom
| Bootloader: CFE
| System-On-Chip: BCM4704KPB
| CPU Speed: 266MHz
| Flash-Chip: Intel TE28F640J3C-120
| Flash size: 8MB
| RAM: 32MB
| Wireless: Broadcom BCM4318EKFBG
| Ethernet: Broadcom BCM5325FKQM
| USB: NEC D720101F1
| Serial: 2 internal (pads only)
| JTAG: internal (pads only)
Interface diagram (per mbm)
| .-----. |
| | br0 |--------------. |
| '-----' | |
| | | |
| .------. .------. .-------. |
'-| eth0 |-| eth1 |-| wlan0 |-'
'------' '------' '-------'
| | |
| '---. |
.-switch--------------|----------. | |
| .-vlan0-------------|--. | | |
| | .--|--+-vlan1 | | |
| |    |  |  | | | |
| '-|---|---|---|--+-----' | | | |
| | | | | '-----------' | | |
'---|---|---|---|----------------' | |
| | | | .-----------' |
| | | | | .--------'
| | | | | |
|     [wan] [wifi] |
This design is different from many units which use a single interface to handle both LAN
& WAN traffic, so performance should be better.
Note that internal switch port 4 is not externally available.
As this is a USB device, the easiest way to add a serial port is to connect a USB-to-serial adapter cable, either directly to the onboard USB port or through a standard USB hub. Kernel drivers are provided for a few of the most common USB-to-serial adapters.
However, if you have installed OpenWRT, you will have noticed that two serial ports (/dev/tts/0 and /dev/tts/1) are already being detected by the kernel. These are internal to the unit, but lack a level-converter (a chip such as the MAX3232 will do the trick) and external connectors to bring them outside the box. The two internal serial ports do not provide RS232 handshaking signals; they do provide serial data in both directions.
2 serial ports in a 2x5 (10-pin) block near front of board, console on ttyS0 at 115,200 baud. No hardware flow control available. Pins are arranged in exact configuration for addition of an IDC-10 ribbon-cable connector. Unfortunately Linksys did not put one there so you will have to add your own. The signal from the WRT board is 3.3 Volt TTL however, so you cannot simply wire to a standard RS-232 connector as they operate at 12 Volts. You will need a circuit to convert the 3.3 Volt signal to a level that is usable by a host.
| connector || 1 || 2 || 3 || 4 || 5 || defaults || usage
|JP4(ttyS0)||3.3v||TX||RX||NC||GND||115,200 baud, 8-n-1, none||console root shell
|JP3(ttyS1)||3.3v||TX||RX||NC||GND||9,600 baud, 8-n-1, none||unused
When soldering to these connections, particularly pin 5, you need to apply quite a lot of heat. If you can, applying an iron to each side of the board helps.
See the serial page for discussion on wiring up serial ports. Possibly the easiest way is with a USB-serial adapter with 3.3V levels, such as the FTDI TTL-232R-3V3. This terminates in a standard 1/8" stereo jack, which makes for a neat external interface. Alternatively, a mobile-phone cable such as the DKU-5 can be easily modified to terminate in a stereo jack.
You have to cross TX and RX wires from the plug to the WRT board.
wiring diagram examples:
Note: When selecting the audio jack, make sure that the threaded end is long enough to poke through your case and still be able to attach the nut that secures it. Many common stereo plugs are for use with a thin metal faceplate and do not have sufficient depth of thread. The one pictured above is from Altex Electronics part number 502K, vincentfox reports that an identical part is available from Fry's/Outpost.com, Mfg Philmore, part number 504K.
| GPIO# || Direction || Location || Name || Function
|0||output||LEDC15||DMZ||LED - DMZ
|1||output||LEDC9||POWER LED||LED - Power
|4||input||PSW2||button||Button - SES
|5||output||LEDC13||SES white||LED - SES white
|6||input||PSW1||RESET||Button - reset
|7||output||LEDC14||SES amber||LED - SES amber
Connect stuff to the USB port
No JTAG header is available. However, all basic pins are present on test points.
SRST and TRST haven't been identified, but ignoring them doesn't prevent JTAG from operating.
Be warned that soldering or probing on test points is fairly tricky. If you are using a cheap unbuffered cable, you only need to solder 5 wires since you won't be using Vcc line.
Both Xilinx and Wiggler cables should work - see JTAG Cables.
HairyDairyMaid's debricker is working, but currently requires /skipdetect and instrlen:8 options since the 4704 isn't in the list of supported processors. The 28F640J3 flash in the SL is in the known parts list of the debricker.
The board has tracking and mounting holes for a stacked dual-USB port, although it is only a single port is fitted. As an alternative to adding an external USB hub, remove the existing unit, and substitute with a dual. Stacked dual-USB port can be scavenged from an old/dead motherboard.
You'll need to cut an extra hole in the case, but with care, this can be done in just the sidewall, avoiding the lid.
Further USB 1.1 ports
There is a theoretical method (no attempts actually made) to add 3 more USB ports, but they are limited to being USB1.1, as the relevant pads for USB2.0 are not routed out from under the USB hub chip. In the image below, the blue dots are the existing USB2.0 traces to the socket, the yellow arrows are the untracked pads necessary for USB2.0, and the red dots are the necessary connections for the extra 3 potential USB1.1 ports. Obviously, the 0V and +5V connections will need to be made somewhere for each port as well, and some care will need to be taken to ensure the source can supply enough current.
RAM upgrade to 64 MiB is possible by soldering the 20 missing resistors and a adding second 32 MiB chip. Noted in the Links section as having been done using a Micron MT46V16M16 which is pin-compatible replacement for the Hynix.
It is likely that by replacement of original RAM chip with a 64-meg one like Micron MT46V32M16, plus a second one at the unoccupied position, the memory could be upgraded to 128 megs.
The LED10 location at front of board contains no LED. Perhaps it is usable for something. But it does not appear to be connected directly to a GPIO pin as a voltmeter shows nothing when cycling all GPIO lines.