[vox-tech] Handspring Visor sync problem

Peter Jay Salzman p at dirac.org
Tue Nov 28 07:54:07 PST 2006


I've lost the ability to sync my Visor with jpilot and kpilot.  Setup is:

   * kernel 2.6.16
   * jpilot 0.99.9.2
   * Debian testing
   * Handspring Visor prism


Here's my analysis of the situation:

0. visor.o is built into the kernel.  From /proc/config.gz:

      CONFIG_USB_SERIAL_VISOR=y


1. The problem is not a kernel bug because I've been able to sync with
   this kernel in the past.  I lost the ability to sync a month or two
   ago, but I haven't updated my kernel in many months.  Note that the
   Debian jpilot package *has* been updated quite a few times in the
   past few months, including new upstream CVS releases.


2. The device file being used is /dev/ttyUSB1.  Here's how I know:

      * Initially, there's no USB tty device files:

            $ ls /dev/ttyUSB*
            ls: /dev/ttyUSB*: No such file or directory

      * Press the hotsync button on the cradle.  While the Visor is trying
        to hotsync, udev creates the device files:

            $ ls /dev/ttyUSB*
            /dev/ttyUSB0  /dev/ttyUSB1

      * During this time, reading /dev/USB0 produces no output:

            $ dd if=/dev/ttyUSB0 of=/dev/null
            0+0 records in
            0+0 records out
            0 bytes (0 B) copied, 3.62889 seconds, 0.0 kB/s

      * However, reading /dev/USB1 produces output.  Presumably, this is
        the visor trying to connect:

            $ dd if=/dev/ttyUSB1 of=/dev/null
            0+12 records in
            0+1 records out
            101 bytes (101 B) copied, 39.3244 seconds, 0.0 kB/s

      * So it's pretty clear that /dev/ttyUSB1 is the correct file.


3. Starting up jpilot, and using File | Preferences, I made sure that
   jpilot is trying to sync to /dev/ttyUSB1.


4. jpilot is connecting to the visor, but disconnecting immediately:

      * Start jpilot.
      * Press the hotsync button on the cradle.
      * Press the hotsync button on jpilot.
      * Visor plays beeps indicating a connection is made.
      * Visor immediately plays beeps indicating a connection is broken.
      * Visor displays "The connection ... was lost" message.


5. However, the app pilot-xfer can list the files on the Visor:

   $ pilot-xfer --list -p /dev/ttyUSB1

      Listening for incoming connection on /dev/ttyUSB1... connected!
      Reading list of databases in RAM...
      StripAccounts-SJLO
      CityTimeDB
      ...
      AddressTitlesDB
      VendorsDB

      List complete. 38 files found.
      Thank you for using pilot-link.


6. pilot-xfer can also backup and sync my Visor:

   $ pilot-xfer -p /dev/ttyUSB1 -b .

      Listening for incoming connection on /dev/ttyUSB1... connected!

      [+][1   ][SJLO] Backing up 'StripAccounts-SJLO', 80 bytes, 0 KiB... 
      [+][2   ][CiAa] Backing up 'CityTimeDB', 8158 bytes, 8 KiB... 
      ...
      [+][35  ][addr] Backing up 'AddressTitlesDB', 924 bytes, 464 KiB... 
      [+][36  ][exps] Backing up 'VendorsDB', 472 bytes, 464 KiB... 

      RAM backup complete. 36 files backed up, 0 skipped, 0 files failed.
      Thank you for using pilot-link.


7. The application kpilot doesn't work.  The symptoms are almost exactly the
   same as what I'm seeing with jpilot.


So here's where I am:

   0. Kernel module and udev seem to be doing the Right Thing.
   1. jpilot and kpilot are looking at the correct device file and
      are connecting, but immediately disconnecting.
   2. I can backup/sync just fine with pilot-xfer.

I've analyzed this as far as I can.  I really don't know what to do next.
Do jpilot and kpilot use the same backend for hotsyncing?

Any ideas?

Thanks,
Peter


More information about the vox-tech mailing list