File and PIM transfer between Pocket PC and Palm OS devices & advanced Pocket PC Bluetooth answers and explanations

NOTE: this article contains both answers and explanations to anything data transfer between Palm OS and Pocket PC devices. In addition, I elaborate on a lot of Pocket PC-only, Bluetooth-related questions not properly explained before. Therefore, reading the article is highly recommended not only for people wanting to communicate between Palm and Pocket PC devices, but also for Pocket PC owners that have questions about how Bluetooth file transfers should be done on the Pocket PC. Also, I elaborate on the latest advances in the field of Bluetooth and Windows Mobile – for example, I discuss every possible Bluetooth (BT for short) implementation, including the latest ones and also the latest (version 5) Windows Mobile operating system.

Also note that I’ll continue elaborating on Palm and Pocket PC interoperability issues. In my next article, I will elaborate on BT Personal Area Network and Dial-Up Networking-related issues.

PDA owners, let them be Palm or Pocket PC users (or both), often ask me how files can be transferred between Pocket PC and Palm OS devices. As noone has ever written a full (concerning all the possible scenarios – for example, the two most prevalent Pocket PC Bluetooth stacks - and third-party programs – the two SoftIck applications on Palm OS) roundup of all these questions, I took the liberty to write one myself.

First, transferring files and Personal Information Manager (PIM for short) records between Palm and Pocket PC devices isn’t as simple as one would think. First and foremost, Palm OS devices store all its files in so-called “databases†because the operating system completely lacks a “real†file system when it comes to the built-in RAM and ROM. It’s only the memory card (if present) that is accessed as a real (FAT16/FAT32) file system.

This also means there are no files in a Palm OS device in the usual sense of the word. When you, for example, send a .txt (textual) file to a Palm OS device, it will be converted to an entry in Memos. When you send an Excel file (if the Palm PDA is able to handle it at all – more on this later), it will also be converted and so on. That is, you won’t ever see anything non-PRC or PDB (these are the two native file types Palm OS is able to store) in the "file system" of a Palm device.

1. Sending and receiving files

What types of files can you send to a Palm device? Ones that are registered in the operating system. For example, if you have installed (or have it in the ROM as with most Tungsten devices) Documents to Go on it (a really good-quality Office document handler – not even the built-in Office Mobile applications in WM5 are as good as even older versions of it), then, you’ll be able to send native Excel and Word files to it (unfortunately, not PowerPoint presentations); they will be made accessible to Documents to Go. Or, if you have ‘Photos’ on your device, you will be able to send JPG and GIF files (assuming they aren’t big enough – for example, don’t send a 6 Mpixel shot to the Palm because it’ll result in a fatal exception upon trying to render it) to the Palm device; it’ll automatically file them into Photos.

And, naturally, you can, on the Palm, also receive PRC program files (screenshot here and here showing receiving and inserting a PRC as a stand-alone app) and PDB files. Sending (via BT) your own in-memory and on-card programs (from the Palm) works from inside App/Send as can be seen in here and here.

1.1 What are the restrictions of sending files from the Palm OS?

  1. You can only send (executable, PRC) program files on the OS level - that is, from App/Send – as can be seen in this and this screenshots (showing what you can send from the main storage and from an SD card, respectively)
  2. Data files must be sent from inside the application that they’re belonging to (assuming the given application supports sending at all) – this will be later elaborated on in Chapter 2.
  3. The above means you can’t just send a file present on your memory card but not used by any of your applications. That is, unlike under Windows, you can’t just click a file (any file) on your storage card and tell the system to send only that file to other devices, unlike on Windows Mobile (or Windows).

It was because of these restrictions that well-known Palm OS software developer Softick has developed an excellent application, Bluetooth Commander, which makes it possible to initiate the Bluetooth sending of any file or database record from a Palm OS device.

(Note that there’s two other Palm OS applications very similar to Bluetooth Commander: the free (!) FileZ and (the no-longer free) McFile. They are very similar to Bluetooth Commander; this is why I don’t discuss them in here. That is, if you know to use Bluetooth Commander, you will also be able to operate the other two apps and vice versa.)

1.1.1 Bluetooth Commander in action

As has already been pointed out, Bluetooth Commander initiates sending (as opposed to the other Bluetooth transfer-related Softick product, Blue Files, which will be discussed in the next section).

What are the problems with this?

Only Pocket PC’s with the Widcomm BT stack will be able to be connected by Bluetooth Commander. Pocket PC users with the Microsoft (MS for short) BT stack will see the error message “Attribute is not set for record (0x311F)â€. This is caused by the fact that the MS BT stack has no support for the “File Transfer†service, which is needed for this kind of transfer. It only supports the “OBEX Object Push†service, while the client Bluetooth Commander would require support for File Transfer.

That is, if the target is a Pocket PC with the Microsoft BT stack, you will only be able to send files from either the standard App / Send system applet (because it uses OBEX Push, not File Transfer) or files/records from individual applications (File/Send File… in Documents to Go, Record / Send Event in Calendar, Record / Send Contact in Contacts, Photo/Send… in Photos, Record / Send Note in Notes, V Memo/Send V Memo in Voice Memo, Record / Send Memo in Memos etc.– see Chapter 2 for a full list and explanation).

The compatibility chart of sending from Palm to Windows Mobile is, therefore, as follows (note that the referenced Blue Files will be introduced in Section 1.1.2):

Windows Mobile BT stack type:Widcomm BT stackMicrosoft BT stack
Palm OS by defaultRegistered, sendable types; no individual files; no files off cardsSame as with Widcomm
Palm OS + Blue Files (Receive initiated in Windows Mobile)Anything (with registered types, NO conversion will take place!)- (impossible to initiate anything – no BT FTP client in MS BT stack)
Palm OS + Bluetooth Commander (Send initiated in Palm OS)Anything (with registered types, NO conversion will take place!)- (not possible to log into the MS BT stack)

Some example screenshots of BT Commander in action: Transferring files from the WM5-upgraded hx4700, the iPAQ 3660 + Belkin BT card combo and from the Pocket Loox 720. (Of course, I’ve also successfully tested it with the iPAQ 2210 and the Dell Axim x51v with the Widcomm BT hack.)

1.1.1.1 Other remarks on Bluetooth Commander

It’s not only a fully-fledged file commander for the Palm OS with local necessities like renaming, deleting, moving, copying, examining Palm database and normal (filesystem) FAT attributes, but is also able to do the same over Bluetooth.

Its usage can look a bit complicated at first. However, once you learn how to drag files to be sent/received onto the target tab (let it be local storage/memory card or a remote, BT-connected device) and, then, what menu item to choose from the pop-up context menu that is, then, displayed and what the three main categories (of which, “Bluetooth Files†stands for the remote devices) are, everything becomes very easy.

Having a file manager on your Palm can be of high importance in other cases too. For example, during the writing of this article, I’ve done a lot of tests. One of them was transferring a 6 Mpixel, untouched image to my T3, which made the built-in Photos application crash the entire device upon every start. As the built-in operating system-level Delete applet doesn’t list data files, I needed to turn to BT Commander to delete the file (now, converted to a Palm database) as can be seen in here. After this, Photos, which, at last, was able to start, marked the placeholder of the directly deleted record with an X. To fix the latter problem, I had to manually delete the placeholder from inside Photos.

1.1.2 Blue Files – a File Transfer service provider on Palm

If you know a bit more about Bluetooth and its profiles, you may want to know whether Palm OS has the Bluetooth standard File Transfer service built-in.

It’s the File Transfer service that would make it possible to connect to a Palm OS device from another Bluetooth device, using a Bluetooth File Transfer client. If a given Bluetooth device implements the File Transfer service, then, any (Bluetooth) File Transfer client will be able to connect to it, traverse its directories and send/receive files to/from it.

You may ask about the difference between File Transfer and the OBEX Object Push service, which is, as opposed to the former, supported by Palm OS. The differences are as follows:

BT profile:File TransferOBEX Object Push
Client must be…File Transfer compliant: that is, Widcomm onlyOBEX Object Push compliant: both MS and Widcomm BT stacks – or another Palm OS device
Files can be…Both up- and downloadedOnly uploaded
Target directory…settableNon-settable; received files are stored in the main memory in Palm OS or, with Windows Mobile, to \My Documents (with the desktop Windows, \Documents and Settings\ <username>\My Documents\ Bluetooth Exchange Folder\)
Conversion to native formats upon uploads?Nope, no conversion will take place. If the target can’t store the file (for example, you try to upload a non-PDB/PRC file to the built-in storage/memory in Palm OS), it just won’t be stored in there. This happens even if the file would otherwise be compatible with the programs on the Palm handheld (.txt, .jpg, .gif, .doc, .xls, .png, .wav). Uploading to an inserted memory card will, however, always work.Yes, the uploaded .txt, .jpg, .gif, .doc, .xls, .png, .wav files will be converted to the native PDB format and stored in the device.
Able to transfer more intricate PIM records like calendar items and contacts?Nope.Yes. What is more, it generally works over all Bluetooth-enabled platforms – even with low-end mobile phones!

Unfortunately, the Palm OS doesn’t support the File Transfer service – neither in client mode (after all, this is why we need to use Bluetooth Commander!) nor in server mode (when an external File Transfer-compliant client connects to it via Bluetooth, browses its files/databases and up/downloads).

This is where Blue Files comes into picture, which is the exact opposite of the previously-discussed Bluetooth Commander. It provides a complete File Transfer service implementation on the Palm. This means if you install and activate Blue Files on your Palm OS PDA, your (File Transfer-capable; that is, Widcomm-based) other Bluetooth devices will be able to discover its File Transfer service as can be seen in here (screenshot taken on the Pocket Loox 720 based on Widcomm BT stack 1.5.0), here (WM5-upgraded HP iPAQ hx4700 based on Widcomm BT stack 1.7.1) and here (iPAQ 3660 + Belkin F8T020 combo based on the Widcomm BT stack 1.3.1).

(Incidentally, as the Palm OS only supports OBEX Object Push as the only service, without installing and using Blue Files, no services will be visible for Widcomm (and, for that matter, Microsoft) stack-based PDA’s as can be seen in here (Pocket Loox 720), here (hx4700) and here (Dell Axim x51v with the standard, built-in, MS BT stack).)

1.1.3 How can I initiate file sending on a Pocket PC via OBEX Object Push (that is, directly to Palm without the need for Blue Files)?

As far as built-in, operating system-level Bluetooth file sending is concerned, it all depends on whether you have the Microsoft or the Widcomm Bluetooth stack. If you have the latter, your choices to send via OBEX depend on whether you have a WM5 or a pre-WM5 device.

1.1.3.1 If you have the MS BT stack,

all you need to use is the “Beam File…†option in the built-in File Explorer. Just tap-and-hold the file you’d like to use, choose Beam File… in the context menu displayed and wait for the list of the visible BT units to be populated (it takes a while). After this, just click “Tap to send†of the device you’d like to send your stuff to. The file will be transferred; after it’s done, “Tap to send†will finally change to “Doneâ€. Note that, as with Palm OS, you can send the file to multiple BT receivers at the same time – feel free to mass-click the “Tap to send†links.

Make sure you enable the BT unit before doing this! Otherwise, Beam File… will only try to send your stuff via infrared and doesn’t enable the built-in BT unit because it thinks you haven’t enabled BT because you only want to send your file via Infrared, not BT.

Alternatively, you can (but you don’t need to – File Explorer’s Beam File is fully compliant with everything) also use the built-in Bluetooth transfer capabilities of Resco File Explorer, the best file manager tool on the Pocket PC. To do this, tap and hold the file and in the context menu, go to Send To / Bluetooth recipient and choose the device you’d like to send your file to. Then, the file will be transferred to the recipient.

1.1.3.2 If you have the Widcomm BT stack,

and you have WM5, you will need to use the built-in File Explorer. As opposed to the case with the MS BT stack, however, you won’t be able to use “Beam File…†(with WM5 (and pre-WM5) devices with the Widcomm BT stack, it only sends files over infrared, even if you enable the Bluetooth unit beforehand). All WM5 devices shipped with the Widcomm BT stack (and even the “hacked†ones like the Dell Axim x50 WM5 / x51 series) will have a “Send via Bluetooth…†menu item. You’ll need to use it. In the screen that comes up, select the device you’d like to send your file to and click OK. The device will be connected and the file sent.

If you, on the other hand, have a pre-WM5 device, you’re in trouble. The built-in File Explorer in older operating system versions doesn’t support sending files via Bluetooth. Resco File Explorer won’t be able to send anything to non-Widcomm receivers either, unlike the case with the MS BT stack, where it can send anything to any target device.

Following is a compatibility chart that shows these cases: the three major Pocket PC types. That is, one with the MS BT stack and the two Widcomm cases – the one with and the one without WM5. Again, this is only OBEX Push – NOT the standard File Transfer service, which would need Blue Files to be run on the Palm – from Windows Mobile to Palm:

Windows Mobile version and BT stack type:Widcomm, pre-WM5Widcomm, WM5MS, WM5
Sending registered types to RAM with conversion? FE/Resco?n/a / -+ (Send via Bluetooth) / - (“unable to connectâ€)+ (Beam File) / +
Sending PRC/PDB into RAM? FE/Resco?n/a / -+ (Send via Bluetooth) / - (“unable to connectâ€)+ / +

The chart, as you may have noticed, shows both the File Explorer and the Resco File Explorer cases. Again, as can be seen, Resco Explorer can only be used on devices with the MS BT stack to transfer anything to anything non-Widcomm-based. Incidentally, the case is the same when the target is a Pocket PC (you can’t use Resco on a Widcomm device to send to an MS device, only on an MS one), as depicted in the following chart (which will be useful for anyone wanting to understand why some BT stack and Resco Explorer combinations just don’t work together, while others do):

Pocket PC to Pocket PC, Resco Explorer:

From:MSWidcomm
To: MS+-
Widcomm++

Again, as can be seen in here too, you can’t send anything from a Widcomm BT device to a MS BT stack device (and, again, to a Palm) if you use Resco File Explorer’s built-in Bluetooth transfer capabilities. Only use the standard File Explorer’s “Send via Bluetooth†if you have WM5 – and, if you don’t have WM5, you will need to use other means of file transferring (for example, the “File Transfer†service with Blue Files on the Palm.)

Finally, as far as sending Contacts/Appointments records to Palm devices via OBEX is concerned, please consult the chart in Chapter 2 on how this must be initiated on the Pocket PC.

1.1.4 How can I initiate file sending on a Pocket PC via File Transfer?

Again, this is all about sending /receiving files to/from anywhere in the file system (including storage cards) without conversion from inside the built-in File Transfer client in the BT stack (if present) and should not be mistaken for the cases outlined in 1.1.3 (that is, OBEX transfer).

If you have a Widcomm BT stack, you’re all set. All versions of the Widcomm stack (even the oldest ones still in use – that is, version 1.3.x – with some external BT cards like the above-mentioned Belkin one) support the File Transfer profile.

If you have the MS BT stack, you can NOT use the File Transfer service at all. That is, even if you install Blue Files on your Palm, you won’t be able to connect to it from your MS BT stack-based PDA. Similarly, trying to connect the other way around (that is, from the Palm to the Pocket PC, using Bluetooth Commander as a File Transfer client) won’t work either, as has already been explained in section 1.1.1 (“Bluetooth Commander in actionâ€).

That is, the compatibility matrix is as follows:

Widcomm, Pre-WM5Widcomm, WM5MS, WM5
+ (built-in File Transfer client in the BT stack)+ (built-in File Transfer client in the BT stack)- (no FTP client)

1.1.4.1 Practical use of the File Transfer client on the Pocket PC to access the Palm

First, install Blue Files on the Palm and start it. When it’s active, Widcomm-based Pocket PC clients will see the Palm as a File Transfer service-capable device, unlike in the default case (see screenshots in 1.1.2).

Now, discover the “Blue Files FTP†service of the Palm device on your Pocket PC (New/Explore a Bluetooth device). Once it’s discovered, double-click its newly-created icon (or tap-and-hold it and choose “Connectâ€) to initiate the connection.

After the connection to the Palm OS PDA is established, you’ll be presented a list containing two, three or, with other kinds of built-in storage (for example, the had disk in the LifeDrive or the various flash ROM-based storage memory types in, for example, some newer Sony Palm OS devices), more elements: RAM (the Palm OS device’s RAM), ROM (read-only files) and, if present, the storage card. You can enter and freely traverse any of these directories.

If you want to receive any files, just click the file you want to receive and choose “Get File†from the menu. It’ll be transferred to your currently set local (Pocket PC) directory (which can be set in Tools/Set Local Folder to anywhere in the file system).

If you, on the other hand, want to send a local file to the currently chosen (target) directory, you’ll need to choose File/Send a File…. Then, you’ll be presented a list of the files in all the visible folders under \My Documents and on the storage card(s) (if any). If you want to have better support for file system navigation, you may want to install Mad Programmer's excellent and, for serious Pocket PC users, essential FileDialogChanger described here.

I’ve tested the current version of Blue Files and most (1.3, 1.4., 1.5, 1.7) of the major versions of the Widcomm BT stack (including the Dell Axim hack). Everything worked flawlessly when transferring files from/to the Palm. A quick remark: with the WM5 hx4700, upon trying to read the directory list of the ROM, you’ll always be presented the “The parameter is incorrect.†error dialog. This can be, however, safely ignored – file transfers (in this case, downloads only) will work. Accessing the card/the RAM won’t result in the same. I haven’t encountered similar glitches with other Widcomm-based Pocket PC’s.

2. Sending and receiving PIM records

There are some file/record types understood by Palm. For example, when you send a text (.txt) file to a Palm device, it will be stored as a separate note in the built-in Memos app. Conversely, when you send out a memo from inside Memos (using Record/Send Memo), it’ll be stored in the file system on the destination device as a file with a .txt extension. Also, you can freely transfer appointments and contacts in both directions – and a lot of other types.

The complete list of transferable types, with the built-in applications of the Palm Tungsten T3, is as follows:

From:Initiating on Palm (when transferring to PPC)Initiating on PPC (when transferring to Palm)
Palm / Pocket PC application: CalendarRecord / Send EventBeam Appointment (MS) / Send via Bluetooth (Widcomm); both in context menu
ContactsRecord / Send ContactBeam Contact… (MS) / Send via Bluetooth (Widcomm); both in context menu
Documents to Go / Office Mobile in WM5 (make sure you save your files in your Office Mobile apps as native Windows files, not in the Pocket format! This also means you can’t directly transfer anything created by pre-WM5 Pocket Office applications.)File/Send File…Send any .DOC or .XLS files from MS or WM5 Widcomm (NOT from pre-WM5 Widcomm!)
Memos / text-only stuff created in NotesRecord / Send MemoSend over any text (.txt) file (from MS or WM5 Widcomm (NOT from pre-WM5 Widcomm!)). Note that if the file is bigger than 32 kbytes, it’ll be sliced into 32 kbyte-long chunks and inserted into consequent memos.
Note Pad / graphical content created in NotesRecord / Send Note (notes will be transferred as 304*704 .PNG images)Not possible to transfer the binary .pwi files created by the Pocket PC Notes to Palm directly, only after a to-text conversion to be inserted into Memos. Well-formed PNG’s are accepted back to Note Pad on Palm – that is, with some manual hacking (see my image editor/viewer roundup for more info), you can (comparatively) easily capture your graphical notes on the PPC and upload them to Palm
Photos / (no native app to create one; HTC Camera in camera-enabled, newer, HTC-manufactured devices)Photo/Send…Send any (not very large!) .JPG or .GIF files from MS or WM5 Widcomm (NOT from pre-WM5 Widcomm!)
Voice Memo / Notes (recording to self-standing WAV files)V Memo/Send V Memo (PPC doesn’t support the audio codec!)- (Palm doesn’t support the standard (PCM/GSM) audio codecs of PPC; therefore, transferred records natively recorded PPC won’t be inserted into the Voice Memo list on Palm)

On other Palm OS devices, the list of the transferable types may be different. For example, a Palm that doesn’t have Docs to Go on it won’t be able to receive .doc and .xls files; .wav files won’t be accepted by Palm OS devices without a built-in microphone and so on.

Note that I’ve both listed how a given PIM record type can be sent from a Pocket PC device to a Palm and vice versa.

UPDATE (08/01/2006): Pocket PC Thoughts frontpage & discussion here.

UPDATE (02/15/2007): a Russian-language translation here.

Chuck, I'll try to elaborate on this in a future article - hopefully next week.

Syndicate content