ADB Tablets, a driver IS coming! HELP NEEDED

Help
2008-05-01
2013-05-30
  • Hello guys and gals.

    First, a story.

    About 8, maybe more, years ago, someone at Wacom told me that it would be impossible to develop a Linux driver for the ADB (apple desktop bus) based Wacom tablets.  The protocol was too difficult, they said.  It pushed the ADB bus too hard, they said.  It was proprietary information, and no, even though they no longer sold ADB based tablets, no, they couldn't help.

    So, my trusty A5 tablet lingered, gathering dust.

    Then Apple released OSX, and the RDF grabbed me. I switched back to "the mothership".  And Wacom announced that no, they would not be developing drivers for their older ADB tablets under OSX.  The protocol was too heavy, they said.  Most users would be using USB adapters, and the sheer weight of data would overwhelm the bus, they said.  Apple had tightened up the specs, so it would be impossible to even think about developing one, they said.  If you want tablets under OSX, you'll have to buy a new one, they said.

    And still, my trusty A5 tablet lingered, gathering dust...

    ...until a couple of weeks ago.

    I was investigating some microcontroller stuff for another project, happened across an application note describing an ADB device implemented on a PIC, did a bit more digging, read some more of Inside Macintosh:Devices, did a bit more digging, and discovered that, back in the early '90s, someone at Apple had made an ADB protocol analyser.  All I needed was a mac with a serial port, a mac with an ADB port, a couple of cables to butcher, and a few resistors.  I've got all that, and more, so I did it.

    The Wacom ADB protocol is not at all hard to grok.  In fact, it's *easy* to grok.  Easy enough that I have an OSX driver for model UD-0608-A up and running; the code has been donated to the tabletmagic project, and all my notes have been passed on to the owner of the linuxwacom project for use in developing a Linux driver.  I don't have a linux box any more, I'm afraid.

    The main problem is that I only have one model of tablet, which means that my driver is, of necessity, targetted at that model.  In fact, the main bit of the protocol I don't understand is the bit that reports tablet capabilities.

    So, here's how you can help:

    First off, if you have Linux running on older mac hardware, and an ADB tablet, and don't mind getting your hands dirty with a bit of code, I'd suggest contacting Ping at the linuxwacom project.  They need a bit of help.

    Secondly, if you have an older mac, an ADB tablet, and a copy of MacOS 9 or earlier, you can help get support for as many models of tablets as you can, as follows.

    First of all, note down the exact model number of your tablet, along with its size.  Important, that :)

    Boot your mac into "classic" MacOS.  Emulation / hosted (SheepShaver / Mol / Classic / Basilisk) probably won't work.  Install a Wacom driver (available from http://www.wacom.de\).  Install ADB Parser, which you can download from ftp://ftp.apple.com/developer/Tool_Chest/Devices_-_Hardware/Apple_Desktop_Bus/ADB_Parser_5.0.7.sit.hqx

    On firing up ADB Parser, with the Wacom drivers enabled and, of course, your tablet plugged in, you'll get a screen with a list of adb devices in the middle, some information on the right, and some other stuff on the left. Wave the stylus over the tablet, and the little apple sign to the left of the list will move to the device that's active - i.e. the tablet.  Click on a device the list, and you'll get the details of the device in the pane on the right.  Click on the tablet's device.  You should see that the "original address" is listed as 4.

    Note down what's reported for "original handler" and "current handler" for your tablet.  These will be 2 digit hex numbers.

    With the tablet device still selected, go to the left hnd bottom section of the window.  You're about to talk to your tablet.  Set the "address" field to the current address of your tablet.  Set the "register" field to "1".  Select the "talk" radiobutton, and click "send command".

    As if by magic, a 16 char hex string should appear in the "data received" box.  Note it down, exactly.

    If you have the time and the inclination, it's probably worth doing the same with the wacom driver *disabled* - i.e. from an "extensions off" boot (shift key held down at boot time).

    Then, get that all of that information you've noted down to me.  Either post it here, or send it via sourceforge, or send it to Scott, and we'll see what we can do.

    Thanks in advance to anyone who can help.

    Simon

     
    • Hi Simon,
      nice, very nice to read your post!

      i found one of my old macs and did what you said! Here the data:

      Wacom Intuos GD-0912-A *GD-0912-A00* Serial *8GJP01440* 25x31 cm

      "original handler"
      6A

      "current handler"
      6A

      Data received:
      041277105DFC0007

      Extension off:

      get the same but magically the apple logo is jumping between the current address: 3( the mouse) and 4( 6A the wacom tablet)

      bernhard from germany

       
      • Thanks for that Bernhardt.

        A couple of questions, though:

        1 : Are you sure the current and original handlers are the same?  I guess so, but it clashes slightly with what I've seen on my A5 ultrapad.
        2 : does the "register 1" value change at all between reboots?  Mine, for example, changes its second byte.

        Thanks anyway, I'll try and get support for your tablet into the next alpha release.

        Simon

         
        • Hi,
          did an ext off boot:
          the register is *3* the address *4* and the command 4*F* and data received *606A*, at register 1 it is 4D and the same as with "extensions on boot" i wrote.
          bernhard

           
          • Wicked.  Thanks.

            simon

             
    • Hello Bernhardt.  Try this and let me know how you get on : http://blog.tufty.ath.cx/admin/content/show/files/Wacom_Driver_for_OSX.dmg.gz (link may not persist for long, it's temporary until we can get the files up here)

      Simon

       
    • Wow, I'm really happy by the fact that there's something going on in programming drivers for the adb-wacoms. I also own an UD-0608-A and I'm not able to use it under OSX (Tiger on a G4).  I would like to test your driver , if you would be so kind and send it to me (solitixATyahoo.com, AT=@). The download-link posted above is not working any more
      Many thanks in advance, I'm very interested in this project.
      Best regards, Markus

       
    • Hi,
      i got this:

      echnaton:~ bere$ cd /Users/bere/Desktop/
      echnaton:~/Desktop bere$ sudo chown -R root:wheel ADBWacomDriver.kext
      echnaton:~/Desktop bere$ sudo kextload ADBWacomDriver.kext
      11IOADBDevice is not compatible with its superclass, 9IOService superclass changed?
      kextload: a link/load error occured for kernel extension ADBWacomDriver.kext
      load failed for extension ADBWacomDriver.kext
      (run kextload with -t for diagnostic output)
      echnaton:~/Desktop bere$

      i have an iMate between Mac OS X 10.4.11 and Macbook Pro intel core duo 17 and GD-0912-A
      daemon and extension on desktop

      with -t:

      echnaton:~ bere$ cd /Users/bere/Desktop/
      echnaton:~/Desktop bere$ sudo kextload -t ADBWacomDriver.kext
      kernel extension ADBWacomDriver.kext has problems:
      Missing dependencies:
      {
          "com.apple.iokit.IOADBFamily" =
              "No valid version of this dependency can be found"
      }

      echnaton:~/Desktop bere$

      thankx

       
      • Drat.

        Okay, looks like there's issues with the iMate.  I had a feeling there might be.  If you've got a couple of minutes, fancy taking this to email?  My address is in the readme, I think, or send it via sourceforge.

        First off, what I'm gonna need is some ioreg dumps.  Can you send me the output of the following command, both with the tablet plugged into the imate, and with *just* the empty iMate plugged in?

        ioreg -bflw0

        That will produce a *lot* of output, I'd suggest redirecting output to a file, and then mailing it to me.

        Cheers

        Simon

         
        • Scott Lahteine
          Scott Lahteine
          2008-05-03

          I'll have a chance to mess around with iMate tonight, and I can send you the diff between ioreg with and without iMate attached.

          Looking back through my emails from Wacom... what they had told me was that built-in ADB ports should have no problem going fast enough for tablets, and in fact it would be no trouble to write a driver for them. However, they assert, the iMate needs to be cajoled through some trickery into running at a fast enough speed. The Mac OS 9 iMate (or ADB) driver actually has hooks that make this possible, so it can drive older Wacoms in Mac OS 9. But the Mac OS X drivers don't have the necessary speed-boosting hook(s). It doesn't mean it isn't possible through one of the existing API functions, it may just be an undocumented feature.

          If you can think of any tricks that would "wake up" a sleeping ADB interface - something that would encourage it to stop waiting and send another string of bytes - that might get it into working shape.

          In the end, this may require a hardware interface after all, but let's keep our fingers crossed!

          I'll keep you posted if I am able to figure out anything in my own experiments.

           
          • Possibly.  You've got mail.

             
          • The Thrustmaster project (tmmacosx.sf.net) have managed to get the thrustmaster (another "odd" adb device) working through an iMate with no Griffin extension.  their approach seems a little brutal, but seems to work - I've dropped an email to the project lead to see if he has any further information beyond his code.

            Simon

             
        • Hi Simon,
          i can help you with my wacom and imate, how can i do the "ioreg -bflw0" you wrote?
          when are you at your computer and not cause i m in germany an d possibly live in another timezone?!
          bernhard

           
          • Hi Bernhard.

            We're in the same timezone - I'm based in France

            ioreg is a command line thing, so plug in your iMate (with nothing plugged in), fire up our friend Terminal.app, then issue the following commands:

            cd ~/Desktop
            ioreg -bflw0 > ioreg.txt.imate

            now unplug the iMate, plug the tablet into it, then replug the imate in again, and

            ioreg -bflw0 > ioreg.txt.wacom

            and then mail the two ioreg outputs to me (they'll be on your desktop).  They will be *massive*, so probably best not to post 'em here :) I'm gonna be tied up with "real life" again for most of this morning, but I should be available later in the afternoon.  my email address is simon dot stapleton at gmail dot com

            If you've got a machine with a pre 10.4 (i.e. 10.2 or 10.3) OSX and USB ports, you might be able to help even more, but it's liable to be a bit time-consuming.

            Simon

             
    • In case anyone is afraid I've lost interest, I haven't.  Current status is as follows:

      Under 10.4 / 10.5, without an actual ADB controller, the driver simply doesn't work.  It *might* be possible to hack into the adb controller on a recent Powerbook class machine, but that's unsure, and would require some serious dismantling and hardware hacking to get it working, so it's probably best avoided.  With a "real" ADB controller giving external ports (which is to say, a pre-'99 Mac), it should work, but getting 10.4 or later onto those machines is liable to be a bit of a chore.

      Under 10.2 / 10.3, and again with a builtin ADB controller, it should work fine, at least for UD-0608-A (Ultrapad A5), and potentially GD-0912-A (Intuos A4).  I would be very interested to hear of experiences with other models, I have a suspicion that it will work for all UD and GD series models.

      Under 10.2 / 10.3 with an iMate, and the Griffin iMate driver installed, it *may* work.  I would be interested to hear of results for that, too.

      I have no idea about other USB-ADB adaptors such as the Belkin model.

      Under 10.4 / 10.5, the Griffin iMate driver simply doesn't work (and, by all accounts, it breaks things to boot), which means that 10.4 / 10.5 users need not apply for the moment.  I've been in contact with Griffin, and they are simply not interested in developing their driver beyond 10.3.  As such, I've asked them about the possibility of a little unofficial (or official) tech help (although I've not heard back on that front yet), and have managed to source an iMate from an online retailer who had a few left over - it is winging its way to me at the moment, although at the mercy of French bank holidays - and have the intention of developing a driver for that, too.  I'm nothing if not persistent, I think you'll agree.

      Simon

       
      • Hi Simon,
        a
        many many thanks for your effort! Unfortunately, I can't test the driver until now because my computer is a G4 Quicksilver with no ADB-ports and I'm running OSX Tiger (10.4.10). So there's no support for the imate - until now. It would be really great if you get the imate to work under OSX 10.4.10 and my good old ADB-Wacom,too.

        Markus

         
    • Hi,
      im back. If you need help i can test with my GD-0912-A
      bernhard

       
    • Hey Bernhard.

      New iMate driver up on my blog, http://blog.tufty.ath.cx, there's a 10.5 compiled universal binary (although it may well blow ppc machines to bits, it's "untested" under ppc) and source there.

      I've been having thoughts about the wacom driver, trying to work out a way of making it better, but for the moment the latest commit to the sourceforge cvs is probably the best

      http://tabletmagic.cvs.sourceforge.net/viewvc/tabletmagic/wacom-adb/

      Give that a shot, let me know what it does.

      Probably best to take this to email, I'm simon dot stapleton at gmail dot com

      Simon