wiki:Hardware/SerialCable

The Calypso phones typically all have a serial port @ 3.3V levels on the 2.5mm earphone jack.

Those cables are sometimes called T191 unlock cable and come in a variety of fashions, such as

  • Real RS232 on DB9
  • with integrated USB serial converter chips
    • PL2303 (cheap, only standard baud rates)
    • FT232 (expensive, non-standard baud rates, the voltage levels are set with the pin VCCIO that you can measure)
    • CP2102 (medium price, non-standard baud rates)

You can either buy ready-made cables, e.g. at:

Or you can build it yourself (detailed instructions can be found on the net, search for "t191 unlock cable" or the like).

  • TxD is at the tip of the plug (PC to Device)
  • RxD is at the middle contact (Device to PC)
  • GND is the outer contact

Hints and Warnings

  • If you don't use a 3.3V (low voltage TTL, LVCMOS) serial port you can fry your phone! (internally, it connects to the IO-pins of the baseband processor which run at 2.8V). Don't connect directly to your PCs serial port (running at +/- 12V!).
  • If your development system is virtualized (runs inside VMware, Virtualbox, Parallels...) the connections can be unreliable (the loader protocol is timing critical).
  • Your safest bet is a USB cable with a FTDI chip (FTx232) configured for operation at 3.3V connected to a machine running Linux natively. Prolific chips (PL2303) also work, but are far less reliable.

Testing/Debugging? the Cable

  • See this message for a testing procedure for the Phone to PC and PC to Phone connections.
  • If either of the two tests do not work, the cable or chip itself may be faulty.

non-standard higher baud-rates (burst_ind branch)

If you want to communicate with the Calypso at baudrates higher than 115200 bps, you'll have to resort to non-standard baudrates.

These are not supported by cheap PL2303 based cables and only work with a FTDI or CP210x based USB adapter cable.

Using OsmocomBB with a Bus Pirate

To connect to your phone using a Bus Pirate, you have to put the bp into "Bridge Mode", that is a transparent bridge between whatever you connect to the bp and the serial terminal it provides. Because timing is _very_ critical when working with the phone's boot loader, you have to set the bp in "Bridge Mode with Flow Control". Thus, the code can use exact timing and would not have to wait for serial port timeouts. To do so, first disconnect your bus pirate if it already is in bridge mode. Then connect it to your computer and open a serial terminal. At the "HiZ>" prompt, enter the following keys exactly as described:

  1. m - to change the mode
  2. 3 - for UART mode
  3. 9 - for 115200 bps
  4. 1 - for 8 bits of data, no parity control
  5. 1 - for 1 stop bit
  6. 1 - for Idle 1 receive polarity
  7. 2 - for Normal output type

Then you are at the "UART>" prompt. Enter "(0)" to show available macros:
UART>(0)

0.Macro menu
1.Transparent bridge
2.Live monitor
3.Bridge with flow control

Now enter "(3)" to enter bridge mode with flow control, confirm your selection with "y" and you're ready to go!

Last modified 22 months ago Last modified on Feb 17, 2013, 1:47:13 PM