For kernel debugging purposes one wants to have access to a serial port on embedded hardware. The Nokia N900 has such a port available, but it’s under the battery and is not 3.3 Volt tolerant (so no cheap USB-TTL Adapters can be used).
Since I had a not booting kernel I build an adapter, which can be used to access the serial pads. Thankfully some hackers from the maemo community already analysed the pads under the battery and found the relevant RX and TX pad. This has been documented in the maemo wiki.
To build the adapter I started with purchasing pogo pins. I got mine from ebay. They are called GKS-181 305 080 A 1500 L. These are used to establish the actual contact with the debug pads.
Next I put the opened phone in a flatbed scanner, so that I can see the exact positions of the debug pads in a graphic. I opened the resulting graphic in inkscape and created a vector graphic for the relevant stuff. To get scaling right I measured the battery compartment with a sliding caliper.
The resulting vector data can be used for CNC manufacturing. I created multiple 3mm slices from cottonwood with a lasercutter in our local hackspace. The slices can be glued together to get the full adapter.
To solve the 2.7 Volt problem I used a logic level convert from Sparkfun. This converts RX and TX between different voltages. It needs a reference voltage on the high-voltage (5 Volt) and on the low-voltage (2.7 Volt) side, though. Most USB-TTL-Adapters provide a 5 Volt pin, which can be used on the high-voltage side, but the phone does not provide a 2.7 Volt pin. Thus another part is needed. I used a LM336Z-2.5, which can be used to get a 2.5 Volt reference voltage from a 5V source voltage.
These parts have been built into the adapter by me, so that the outgoing serial cables can be used with a cheap USB-TTL-Adapter using a 5V-TTL signal (I’m using PL-2303 based ones, which are supported by Linux and can be purchases for ca. 1$ in China).
More images of the Debug Adapter can be found in the Gallery.