Missing Sync – Bluetooth troubles

About a week ago, I got myself a new toy running Windows Mobile 2003. Since Microsoft decided the current standards in PIM synchronisation weren’t good enough for them, and came up with the ActiveSync protocol stack which, of course, is only available for Microsoft Windows, I had to go out and buy a software product to get this done on my Mac. I chose Markspace’s Missing Sync.
I had a lot of trouble getting bluetooth synchronisation to work. I paired my phone with my Mac, and hit “connect via Bluetooth” in the PDA’s ActiveSync utility, but then it would just say “Opening Port” and hang there forever. On my Mac, I could see the device get connected, but that was just about it. Catting and echoing to the device (/dev/cu.Bluetooth-PDA-Sync or /dev/tty.Bluetooth-PDA-Sync by default) gave me all sorts of unexpected results, but it certainly made clear the Bluetooth Serial connection was working as it should, and the problem was with Missing Sync not being able to open the serial device.
Luckily, one of the great things about paying for your software, is being eligible to technical support, which is exactly what I did: mail them! Thanks to Pete from Markspace, I now have working bluetooth synchronisation with my PocketPC, and I’m going to tell you exactly how I did it.
Add a Bluetooth Bond on your PDA
First of all, make sure you have paired your PDA or phone with your mac. In my experience, it is a good idea to have your phone initiate the pairing (or “bonding” as Microsoft calls it), not the Mac. To do this, go to the “settings” panel on your PDA, and select the “Connections” tab, which will contain an item named ” Bluetooth”. This Bluetooth utility will allow you to turn on Bluetooth (which is proably a good idea, if you are planning to use it), and search for new devices. To do this, click “New…” in the “Devices” tab, and select your Mac from the list of devices it shows after scanning. Be sure to answer “yes” to any questions about serial ports. Of course you should have Bluetooth enabled and set to Discoverable on your Mac, in order for this to work.
I like testing the Bluetooth connection by sending so called OBEX push transfers, since they don’t require Active Sync, Missing Sync or any other third party program to work on either the phone or the Mac. Microsoft calls this “beaming” a file over Bluetooth, and you can do it from any file context menu in the “file explorer” (tap and hold to have it pop up). If this works, the Bluetooth connection is OK, and you should be able to move on to the next part: getting Active Sync to work.
This should be really easy, but in my case it was not. As I said, opening ActiveSync and clicking “connect via Bluetooth” just left me with a stranded sync, so that didn’t get me anywhere. Apparently, Bluetooth synchronisation in Missing Sync 2.0 is a bit broken, and they fixed a lot of the bugs in their latest internal builds, which are not available for the public yet. If you experience these problems, don’t spend hours and hours trying to get it to work without first mailing Markspace’s support requesting a beta!Active Sync after it\'s connected successfully. Not to a Windows PC as it says though ;)
Next thing you want to do, is turn off any Bluetooth serial ports that can (and will) confuse Missing Sync. Go to the Mac OS X Bluetooth System Preferences window, and make sure “Bluetotooth-PDA-sync” is the only Bluetooth Serial port, and it is set to RS-232. To be sure, you can temporarily disable the other two services as well. In my experience, it is a good idea to reboot after doing this, to ensure there is no stuck process still locking your serial device, causing all kinds of trouble.
After rebooting, open Missing Sync, and turn on its log window from the Window->log menu. Make sure you enable the “Show more details in log” option in its preferences window, since it allows to spot problems a lot easier. Open a Bluetooth Preferences window as well, and look at the “Devices” tab.
Mac OS X Bluetooth Ports Dialog
With all set, open ActiveSync on your PDA, and click the “tools->Connect via bluetooth” option. You should see your PDA get connected in the Mac OS X Bluetooth window, as the device name gets bold. If all is well, you should now begin to see Missing Sync get connected to your phone. A successfull log looks somewhat like this:

8/5/05 23:14:07  Monitor:  Starting Monitor 2.0.1b1 (98) on Mac OS X 10.4.2
8/5/05 23:14:08  Monitor:  bt: Starting
8/5/05 23:14:08  Monitor:  bt: BSD path: /dev/cu.Bluetooth-PDA-Sync
8/5/05 23:14:08  Monitor:  bt: MyOpenSerialPort succeeded :9
8/5/05 23:14:09  Monitor:  Timer called to setup asyncdProxy
8/5/05 23:14:09  Monitor:  We have a root asyncdProxy
8/5/05 23:14:09  Monitor:  ascynd server is running
8/5/05 23:14:09  Monitor:  Communicating with ascynd
8/5/05 23:14:09  Monitor:  Serving Monitor for UI
8/5/05 23:14:09  Monitor:  Serving Monitor
8/5/05 23:14:11  Monitor:  USBToTTY starting
8/5/05 23:14:48  MSUI:  Found plugin: /Library/Application Support/...
8/5/05 23:14:48  MSUI:  Found plugin: /Library/Application Support/...
8/5/05 23:14:48  MSUI:  Found plugin: /Library/Application Support/...
8/5/05 23:14:48  MSUI:  Found plugin: /Library/Application Support/...
8/5/05 23:14:48  MSUI:  setMonCallback
8/5/05 23:15:36  Monitor:  bt: data: CLIENT
8/5/05 23:15:36  Monitor:  Connection status from 0 to 150
8/5/05 23:15:36  Monitor:  bt: Device initialized successfully.
8/5/05 23:15:36  Monitor:  bt: About to make connection
8/5/05 23:15:36  Monitor:  Connection status from 150 to 175
8/5/05 23:15:36  Monitor:  bt: forked pppd with pid: 231
8/5/05 23:15:36  Monitor:  bt: activate check for sharing
8/5/05 23:15:37  Monitor:  Firewall setup: 5
8/5/05 23:15:37  Monitor:  Connection status from 175 to 200
8/5/05 23:15:37  Monitor:  bt: Thread creation succeeded
8/5/05 23:15:37  Monitor:  bt: Thread creation succeeded
8/5/05 23:15:41  Monitor:  Connection status from 200 to 300
8/5/05 23:15:46  Monitor:  PPP connection expiration in 10 seconds
8/5/05 23:15:46  Monitor:  PPP connecton from 192.168.206.206: enabled
8/5/05 23:15:46  Monitor:  Connection status from 300 to 400
8/5/05 23:15:46  Listener:  Socket connecting
8/5/05 23:15:46  Monitor:  forgetDevice  rraServer:0
8/5/05 23:15:46  Monitor:  setAsyncCallback
8/5/05 23:15:46  Listener:  asyncdserver setConnectedMonitor
8/5/05 23:15:46  Listener:  Socket successfully connected from 192.168.206.206 1025.
8/5/05 23:15:46  Listener:  Received challenge
8/5/05 23:15:46  Monitor:  needPassword
8/5/05 23:15:46  MSUI:  Found password in keychain
8/5/05 23:15:46  Listener:  reading header
8/5/05 23:15:46  Listener:  reading deviceName
8/5/05 23:15:46  Listener:  reading deviceClass
8/5/05 23:15:46  Listener:  reading deviceHardware
8/5/05 23:15:46  Listener:  waiting for device to provide password
8/5/05 23:15:51  Listener:  Password was correct!
8/5/05 23:15:52  Listener:  Device Connecting: name "dawuss" class "PocketPC" hw "PM10A"
8/5/05 23:15:52  Listener:  owner "Michel Jansen" ip "192.168.206.206"
8/5/05 23:15:52  Monitor:  Connection status from 400 to 500
8/5/05 23:15:52  MSUI:  deviceName: dawuss device: PM10A ipAddress 192.168.206.206 vid:0x0000 pid:0x0000
8/5/05 23:15:52  Listener:  Connection state 0...1
8/5/05 23:15:52  Listener:  Connection state 1...2
8/5/05 23:15:52  Listener:  Connection state 2...3
8/5/05 23:15:55  Listener:  Connection state 3...4
8/5/05 23:15:59  Listener:  Connection state 4...5
8/5/05 23:16:03  Listener:  Connection state 5...6
8/5/05 23:16:03  MSUI:  connect
8/5/05 23:16:04  MSUI:  DLL found on device, testing it
8/5/05 23:16:04  MSUI:  Found version 1.28 on device
8/5/05 23:16:06  MSUI:  Send ConnectedMessageToPlugins
8/5/05 23:16:07  Monitor:  Waiting for connections on port 5678.
8/5/05 23:16:07  MSUI:  setting title
8/5/05 23:16:07  MSUI:  Address Book: initialize
8/5/05 23:16:07  MSUI:  iCal: initialize
8/5/05 23:16:07  MSUI:  TimeSync: initialize
8/5/05 23:16:08  MSUI:  asking for card info
8/5/05 23:16:09  MSUI:  CardInfo: {
    cards = (
        {free = 513015808; name = "\Storage Card"; total = 24; }, 
        {free = 7967744; name = "\Storage"; total = 24; }
    ); 
    name = dawuss; 
}
8/5/05 23:16:09  MSUI:  About to launch webdav
8/5/05 23:16:09  webdav:  listening on 49176
8/5/05 23:16:10  MSUI:  TimeSync: setStatusString string=idle
8/5/05 23:16:11  MSUI:  newURL = http://localhost:49176/dawuss
8/5/05 23:16:11  MSUI:  escapedString = http://localhost:49176/dawuss
8/5/05 23:16:14  MSUI:  Volume mounted
8/5/05 23:16:14  MSUI:  End of mount

If nothing happens in Missing Syncs log window at all, it probably can’t open your bluetooth serial device. Try opening it with a Terminal application such as ZTerm or minicom, or try catting your Bluetooth serial device. In ZTerm it will be called “Bluetooth-PDA-Sync”, and its device will look something like /dev/cu.Bluetooth-PDA-Sync. If that works, the port was probably blocked, and a reboot might help. In any case, it’s a good idea to contact Markspace about this, because it just shouldn’t happen.

If you forgot to delete any stray Bluetooth serial devices, you might see something like this:

8/5/05 22:43:41  Monitor:  Starting Monitor 2.0.1b1 (98) on Mac OS X 10.4.2
8/5/05 22:43:42  Monitor:  bt: Starting
8/5/05 22:43:43  Monitor:  bt: BSD path: /dev/cu.Bluetooth-Serial
8/5/05 22:43:43  Monitor:  bt: Error opening serial port /dev/cu.Bluetooth-Serial - Resource busy(16).
8/5/05 22:43:43  Monitor:  Timer called to setup asyncdProxy
8/5/05 22:43:43  Monitor:  We have a root asyncdProxy
8/5/05 22:43:43  Monitor:  ascynd server is running
8/5/05 22:43:43  Monitor:  Communicating with ascynd
8/5/05 22:43:43  Monitor:  Serving Monitor for UI
8/5/05 22:43:43  Monitor:  Serving Monitor
8/5/05 22:43:44  Monitor:  bt: BSD path: /dev/cu.Bluetooth-Serial
8/5/05 22:43:44  Monitor:  bt: Error opening serial port /dev/cu.Bluetooth-Serial - Resource busy(16).
8/5/05 22:43:45  Monitor:  bt: BSD path: /dev/cu.Bluetooth-Serial
8/5/05 22:43:45  Monitor:  bt: Error opening serial port /dev/cu.Bluetooth-Serial - Resource busy(16).
8/5/05 22:43:45  Monitor:  USBToTTY starting
8/5/05 22:43:46  Monitor:  bt: BSD path: /dev/cu.Bluetooth-Serial
8/5/05 22:43:46  Monitor:  bt: Error opening serial port /dev/cu.Bluetooth-Serial - Resource busy(16).

Delete the device from the Bluetooth Sharing tab, and try again.

If you get repeating “too many missed pings” errors like this:

8/6/05 00:25:44  Monitor:  PPP connection expiration in 9 seconds
8/6/05 00:25:44  Monitor:  PPP connecton from 192.168.206.206: enabled
8/6/05 00:25:44  Monitor:  Connection status from 300 to 400
8/6/05 00:25:44  Listener:  Socket connecting
8/6/05 00:25:44  Monitor:  forgetDevice  rraServer:0
8/6/05 00:25:44  Monitor:  setAsyncCallback
8/6/05 00:25:44  Listener:  asyncdserver setConnectedMonitor
8/6/05 00:25:44  Listener:  Socket successfully connected from 192.168.206.206 1039.
8/6/05 00:25:44  Listener:  missed too many pings
8/6/05 00:25:44  Listener:  In cancel
8/6/05 00:25:44  Monitor:  forgetDevice  rraServer:0
8/6/05 00:25:44  MSUI:  disconnect
8/6/05 00:25:44  Listener:  asyncdserver setConnectedMonitor clear
8/6/05 00:25:45  Monitor:  asyncd sent allowConnections: 1
8/6/05 00:25:45  Listener:  Reset
8/6/05 00:25:45  Monitor:  bt: finished relaying 0
8/6/05 00:25:45  Monitor:  Reseting firewall: 5 (0x00000005)
8/6/05 00:25:45  Monitor:  bt: deactivate check for sharing
8/6/05 00:25:45  Monitor:  bt: killing pppd: pid 426
8/6/05 00:25:48  Monitor:  bt: MyCloseSerialPort succeeded :9
8/6/05 00:25:48  Monitor:  bt: BSD path: /dev/cu.Bluetooth-PDA-Sync
8/6/05 00:25:49  Listener:  missed too many pings
8/6/05 00:25:49  Listener:  In cancel
8/6/05 00:25:49  Listener:  asyncdserver setConnectedMonitor clear

the daemon Missing Sync uses to connect to the PDA might be broken. To restart it, issue the following commands from the command line (using Terminal, iTerm or some other app).

ps -aux | grep Sync

Will print a list of processes used for synchronisation. Kill them all by entering

kill X

where X is replaced by the app’s process ID (the first number from the left).
Upon relaunching Missing Sync, it will restart the nessecary daemons automatically. Wait a few minutes before doing so though: any broken processes still keeping the serial device occupied will time out and stop causing problems.

If none of this works: contact Markspace’s tech support. Maybe they have found any new solutions I haven’t come up with yet. Please let me know if you find one yourself!

8 Responses to “Missing Sync – Bluetooth troubles”

  1. We have just found that your solution also works under 10.3 but the changes to the serial port must be done via a selarate application called Bluetooth Serial Utility. It doesn’t look like Missing Sync have integrated your suggestions into any of their documentation, so I have emailed them myself as part of an ongoing discussion regarding Bluetooth problems.

  2. Pieter says:

    I tried al the steps in your blog, without success. Same phone (Qtek S100) with Windows Mobile 2003 second edition, but it just doesn’t work on my iBook… I took your advice and emailed the guys at Markspace. Thanks for the info.

  3. andy says:

    works for me using Cingular 3125 (= Qtek 8500, Dopod S300, HTC Str Trk) running Windows Mobile 5 and Powerbook G4 12″ on Mac OS X 10.4.7

  4. Pingback: Michel’s Exhaust » P1i

  5. Someone says:

    worked for me with 10.4.7 and a Centro. THANKS!!

  6. camo says:

    Thank you so much. I’ve been using Missing Sync for nearly a year, yet every single time I have tried to sync I have fiddled with so many settings, sometimes achieving a connection and other times being driven bonkers with failed attempts not really understanding the combination of settings that make it work consistently. This is the first time in all the searches I’ve ever done on the subject that it was clear what was required. I am so grateful to you. It’s very cool that your post from 2005 is still helping us see the light in 2009! THANKS THANKS THANKS!!

  7. camo says:

    FYI my setup:
    MacBook
    Mac OS X 10.5.8
    Missing Sync 4.0.4
    Samsung i900 Omnia
    WinMo 6.1 Pro

  8. Hello there on that point there,splendid write-up. Data became helpfull then helps you to save my lifestyle a particular negative excellent period of time that i is likely to make investment funds for a factor more when region involving searching

Leave a Reply

Your email address will not be published. Required fields are marked *