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)
- USB variant
- sysmocom shop (CP2102 for burst_ind!)
- RS232 variant, you still need a RS232 serail port or separate USB/RS232 adapter
- USB/RS232 cable
- tronisoft.com (FTDI and Prolific cables)
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¶
From this message are the following two test procedures for the Phone to PC and PC to Phone connections.
When i test my cables i prefer the following test procedure:
Plug the cable in, use a terminal program (e.g. gtkterm or cu) to
connect at 115200 baud. Press the powerbutton. You should now see
someting like fmttool error and some garbeled chars. This indicates that
the Connection from the Phone to the PC works properly.
Then unplug the cable, short circuit the last 2 pins on the audio jack
and type some chars. The chars should be echoed on the screen. This
verifies the correct function of the sender (PC to the Phone)
When these 2 tests are passing properly you can be sure that your cable
is working properly.
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.
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:
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!