Use a Nokia Serial Cable on an ARM9 Linkstation
At the time of writing, clones of the Nokia DKU-5 and CA-42 data cables for mobile phones are cheaply and widely available (I purchased mine from ebay). Both should be electrically compatible with the Linkstation Pro (and the Linksys NSLU2 as well, for that matter) - they incorporate a USB to RS232-3V tranceiver (usually built-into a longer-than-usual USB A plug).
What You Will Need
- 2Some soldering skills.
- Some means of determining continuity (e.g. a multimeter + hand-held probe leads).
- Some means of stripping insulated wires.
- A willingness to invalidate your warranty.
- A CA-42, or DKU-5 (some later Nokia phone cables FIXME - insert model numbers here - which look similar are actually pure USB cables with no transceiver - DON'T use these - you can tell because the USB plug is shorter, they are also a bit cheaper).
- Suitable safety gear.
- Pliers, glue/tape, and volt meter (optional).
If you don't have all of these, then find someone who does. Maybe ask your local TV repair place to do the work (they'd probably be glad of the business).
Prepare the Cable
Cut the data cable about 60mm from the Nokia connector end, strip away approx 20mm of the outer sheath, and remove approx 3mm of insulation from each inner core.
The cables I bought were of two different designs, this may well vary from manufacturer to manufacturer.
- The RS232 transceiver is powered from the USB port, you only need to connect ground, data transmit, and data receive to the linkstation (this was my CA-42 cable, and had 3 wires).
- The RS232 tranceiver is powered from the phone/linkstation, as well as txd, rxd, and gnd, you also need to connect power (3.3v) to the linkstation board (this was my DKU-5 cable, and had 5 wires - an additional wire was used to signal what sort of cable was plugged into the phone (I think), and can be safely left disconnected).
Identify Each Wire
Establish which core is connected to which pin on the Nokia connector end (Nokia "pop port") using your continuity tester. The part of the "pin-out" which we care about are:
- pin 1 On both of the cables I used, pin 1 is actually missing (not needed with this design, so they didn't include it) it's the "other side" of the spring-clip from all the other pins).
- pin 2 On both of the cables I used, pin 2 is also missing (there is a space where it should be).
- pin 3 (normal length) connected to one of the wires on my DKU5, but not needed for the linkstation (isolate this wire)
- pin 4 (sticks out a bit further)+3.3v this is used to power the transceiver on the DKU-5 cable I have (red), but not the CA-42
- pin 5 (not connected)
- pin 6 (normal length) serial rxd - Data into phone/linkstation green on DKU-5 blue
- pin 7 (normal length) serial txd - Data out from phone/linkstation white on DKU-5 red
- pin 8 (sticks out a bit further) Signal Ground (gnd) black on dku5, orange on ca-42
- pin 9 to 14 not connected, and missing on both my connectors
On a piece of paper make a note of which colour wire was attached to each pin.
Sanity Check Your Findings
Check signal voltage levels for USB-powered designs (this won't work yet for device-powered designs, as you need to provide power to them for them to work).
If your cable does not connect to pin 3 (power from device), then at this point, it's probably wise to check the voltage generated by the adaptor:
- Make sure none of the bared wires are touching, and plug the adaptor into your PC.
- Fire up a terminal emulator, and connect it to the correct port (e.g. /dev/ttyUSB0 on Linux, you'll need to use the driver that came with the adaptor on Windows).
- Use a volt meter to verify the voltages between i. txd and gnd and ii. rxd and gnd. Neither voltages should exceed about 3.4v.
- Set your terminal emulator to use no hardware, or software flow control.
- Type some stuff into your terminal emulator (nothing should happen, but the voltage on the phone rxd pin should sag slightly as the bits are transmitted - press and hold a key on the keyboard to test).
- Connect together rxd and txd (just twisting them together is fine), and type some more. The characters which you see should appear back in the terminal window... Congratulations, you have just made a "loop back cable", and you have got the pin assignments correct.
- Exit your terminal emulator, and unplug the cable from your PC.
Connecting to the Linkstation
Open up the linkstation pro - I have the v2 hardware undo the two screws at the back, and slide the side panel off.
CAUTION - high voltages are present in the power supply, and may be present even after the device is disconnected from the mains. Don't touch anything in the power supply area!
CAUTION - beware of sharp edges, wear gloves.
Work out a way of getting the cable into the Linkstation - I slid it in through the "Kensington Lock" slot at the back, perversely, the 5 wire cable went in quite easily, but the 3 wire CA-42 was thicker, and more difficult. Flatten the cable slightly with a pair of pliers as you push it into the slot. If the cable isn't a tight fit, you should secure it to something inside the Linkstation at a later point (e.g. using a tie-wrap), to stop it being accidentally pulled out.
Locate the serial header
Identify the holes in the circuit board where the serial signals are made available (see photo).
Connect the Cable
Pull sufficient cable into the linkstation to reach the serial header. With the board still screwed in, and the serial header at the bottom, the holes (from left to right) are:
- Ground - connect this to the wire that was connected to pin 8 of the Nokia pop port
- +3.3v - connect this to the wire that was connected to pin 4 of the Nokia pop port
- rxd (data into linkstation) - connect this to the wire that was connected to pin 6 of the Nokia pop port
- txd (data out of linkstation) - connect this to the wire that was connected to pin 7 of the Nokia pop port
Don't poke too much bare copper through the holes, or you'll touch the grounded steel of the chassis, 3 mm of bare copper is enough. Find some way of holding the cable in place while you solder the connectors - I used a couple of dabs of hot-melt glue, but you could try some strong tape, or a willing assistant.
(If you are using a cable which uses the device-powered transceiver design, then you may wish to initially connect just gnd, and +3.3v to the cable, and then wire rxd and txd together (and isolate with some tape). Replace the cover and screws, and power-up the linkstation, your terminal emulator should then behave as a "loop-back" and characters which you type should be echoed back to you - see the [#Sanity Check Your Findings] section).
Using your continuity tester, verify that none of +3.3v, rxd, or txd are shorted to gnd.
Replace the cover, and power-up your Linkstation.