A good way to catch problems in your conduit code is by using POSE. It’s possible to sync with POSE running on a different machine (in which case the cable is on the machine running your conduit) or on the same machine (in which case the cable is going out one serial port and in another). For example, this is how we debugged our handheld application that was crashing after a sync. We set a breakpoint in PilotMain and waited for it to get called at the end of the sync process; single-stepping through the code finally showed the problem. If that wasn’t enough to convince you, remember that it saves batteries and doesn’t require a cradle, either.
Some laptops have only one serial port. Consider augmenting the built-in serial card with a serial PC card (we use a Socket serial card that costs about $125—see http://www.socketcom.com).
If you’re using the Mac OS version of POSE, make sure that the POSE window is frontmost while you are syncing. This gives the emulator more CPU time during the sync. Trust us, it needs it.