Welcome to the Yargy Bot Comapq/HP GSM/GPRS Sleeve Page!

Update Robert Woerle has revived this project under the name gomunicator, and plans to expand it to work with GSM CompactFlash card. More information can be found here

At some expense, I bought a GSM/GPRS sleeve for my iPAQ 3870 at about the same time as I bought the iPAQ itself. My intention was to use my iPAQ as my mobile phone and to be able to connect to the Internet on the road. I have now abandoned this pursuit, for the time being at least, in favour of a separate, Bluetooth enabled, mobile phone handset. I thought I would share what I learned about and created for the sleeve here.

The sleeve appears as a PCMCIA serial device, normally (on a 3800 at least) /dev/tts/0. This port seems quite happy to run at 115200bps. At powerup, the sleeve seems to be in a mode somehow related to the "3GPP TS 07.10 Terminal Equipment to Mobile Station multiplexer protocol". Documentation about this protocol is available (in Micro$oft Word format, unfortunately) from the 3GPP website.
The only command from this protocol that I was able to get to work correctly is the Close Down command, which puts the sleeve into "Hayes-compatible" AT command mode. The 3GPP standard has an AT commands document available from here, although I actually primarily used a WAVECOM Muse Platform "AT commands interface guide" for reference. I got it from here quite some time before I became aware of the 3GPP document.

To put the phone into AT command mode, I think that the correct procedure is to send it "flag bytes" (0xF9) until it starts replying with flag bytes of its own. You then send the Close Down command (0x03, 0xEF, 0x05, 0xC3, 0x01, 0xF2, 0xF9). I only discovered this business about flag bytes relatively late in the piece, so my source code just uses the "well known" 12-byte command string which consists of five flags followed by the Close Down command (technically, the last of the five flags is the first byte of the Close Down command's frame).

Most, if not all, of the sleeve's features are accessible through AT commands (actually, I never tried accessing the SIM card phone book through the AT commands, but I'd be very surprised if this doesn't work). One day I might create a summary of some of these commands here, but don't hold your breath. ;)

For now, you can see how to use some of the commands by browsing through the source code for my half-finished application, gphone. As it stands, this app. is capable of making and receiving calls and it can survive suspend/resume cycles with the aid of the included scripts (these need to be copied to /etc/suspend-scripts and /etc/resume-scripts and made executable). As you would expect, much of the code is in a "work in progress" kind of state. The filename for the file containing the waveform to be played back when the phone is ringing is currently "hard-coded" in RING_SAMPLE_FILENAME, which is #defined in sound.h. The file I was using can be downloaded here, and needs to be copied to /usr/share/gphone for the code to work as it stands. You will also need to copy the pixmaps sub-directory from the tarball to /usr/share/gphone if you want the battery level, signal strength, missed calls, and messages icons to appear.

One of the problems with this app. stems from a change in the Familiar kernel. Up to and including version 2.4.19-rmk6-pxa1-hh21, it was possible to set a bit in the CPU's PWER (Power Wake Enable Register) that would cause the iPAQ to wake up when the sleeve received an incoming call. This change introduced for version ...-hh22 means that this no longer works, however. This is just one of the many reasons why I've given up on the sleeve for now.