Help - Search - Members - Calendar
Full Version: TabletMagic for TabletPCs
InsanelyMac Forum > OSx86 Project > Hardware and Drivers > Other Peripheral Devices
Pages: 1, 2, 3, 4, 5, 6, 7, 8
Scott Lahteine
QUOTE(Sam I Am Not @ Mar 19 2007, 05:42 AM) *
The tablet has stopped being detected. I had played with it shortly in Ink and Sketchbook. I'd also tried to launch Flash. When I was testing Ink, the Finder windows started wigging out (I'd try to move them and they would vibrate between the pen and where they were resting). I turned off Ink, and everything seemed fine. Shortly after Flash crashed, TM stopped seeing my tablet. At one point, I had tested the iwi3945 driver, which created a dummy Airport adaptor (although called Ethernet by System Preferences). The Networking pane mentioned that it now saw a Serial port. It kept working after that. I deleted both 3945 and the network Serial port, and it still doesn't see it. serial0 is still a selectable (and selected) option in TM.

Hi Sam, I've read your post and had a look at your console log. I'm not sure why the tablet stopped being detected. Normally I would suggest rebooting the tablet, but I'm guessing you tried that already.

As for Flash quitting... Flash has a known bug where it will crash if it detects a tablet but doesn't find the Wacom driver. If you install Wacom's official tablet driver it should stop Flash from crashing, even though it doesn't drive your tablet.

Your tablet (on serial0) doesn't seem to be answering the "*" query, and TabletMagic is therefore assuming there's no tablet. You may have to keep the "Don't Query" checkbox turned on if yours is one of those tablets that can't be queried. Try checking that box, killing and restarting the daemon, and see if the tablet starts working. The resolution may still be off kilter. Try entering 13348 and 18968 into the text boxes provided and see if it helps.

I will continue to search for answers on my end as well.

Paringas wishes I could edit the first post of this thread -- and so do I -- but this forum doesn't allow it, so my apologies to those who must read through this whole thread to get to the latest version and instructions.

QUOTE(tanata @ Mar 18 2007, 05:15 AM) *
I'm terribly sorry if this has been discussed in some other post, but I have successfully installed OSX 10.4.8 on to a Motion Computing M1400 and was looking for a way to use the tablet functionality with TabletMagic. I installed the latest version, but the program reads "no tablet detected". Is this something worth pursuing, or is the machine too old to use your interface?

Hi Patrick, I'm not yet familiar enough with your system to give you a definitive answer, but according to various Linux forums you do have a Wacom serial digitizer. I suggest you try everything you can think of, and if your tablet still isn't recognized we can investigate further using a logging version of the driver.
stevenf
Hi everyone,

I'm in the process of trying to get the digitizer working on my HP TC1100 tablet pc.

I have 10.4.6 installed on it using (I believe) the JaS distribution. (For some reason 10.4.8 JaS just kernel panics while booting, so I went back to 10.4.6.)

The digitizer shows up in ioreg with the ID "WACF005", which I note is pretty similar to the other HP 4xxx-series tablet user who had WACF006.

Unfortunately, even after editing the kext plist as described to use this name instead of the PNP one, deleting the extension caches and rebooting, I still don't get any new serial ports in my /dev directory. And of course, TabletMagic needs a functioning serial port to work.

I'm wondering what I could possibly be overlooking, and if anyone has any ideas I could try.

For those who have it working, what is the /dev device named? Does it show up as /dev/serial? Something else?

Thanks for any advice!
stevenf
Here's a little more info on my TC1100.

Notice the entry for the digitizer in ioreg -lx:

CODE
    | +-o DIGI  <class IOACPIPlatformDevice, registered, matched, active, busy $
    | |   {
    | |     "_UID" = "1"
    | |     "name" = <"WACF005">
    | |     "_STA" = 0xd
    | |     "compatible" = <"ACPI\WACF004">
    | |   }


And I set up my kext plist like so:

CODE
        <key>ACPI 16X50 Serial Port</key>
        <dict>
            <key>CFBundleIdentifier</key>
            <string>com.apple.driver.Apple16X50ACPI</string>
            <key>IOClass</key>
            <string>com_apple_driver_16X50ACPI</string>
            <key>IOKitDebug</key>
            <integer>0</integer>
            <key>IONameMatch</key>
            <string>WACF005</string>
            <key>IOProbeScore</key>
            <string>10000</string>
            <key>IOProviderClass</key>
            <string>IOACPIPlatformDevice</string>
        </dict>


sudo rm /System/Library/Extensions.*
and restart

But no new entries in /dev after booting.

I'm stumped! Anyone?
stevenf
I'll just continue talking to myself. smile.gif

So, after fiddling with it all last night, still no luck.

What I've noticed is that the Apple16X50ACPI kext doesn't log any messages at all during boot.

On other people's boot logs, I've seen stuff like this:

Apple16X50ACPI1: Identified Serial Port on ACPI Device=UAR1

But nothing like that during my boot.

I do get this error message:

IOPCI2PCIBridge: bad bridge bus numbering, no room to fix, bailing out!

Followed by a couple of errors about link/load failures. So my theory is that a dependency that Apple16X50ACPI needs is not loading.

Does this sound familiar to anyone?
Scott Lahteine
QUOTE(stevenf @ Mar 20 2007, 05:21 PM) *
Followed by a couple of errors about link/load failures. So my theory is that a dependency that Apple16X50ACPI needs is not loading.
Does this sound familiar to anyone?

That could be it... these systems sometimes require a lot of tweaks to get working reliably. But I dunno, looking at the ioreg entries, I see that the "DIGI" device is only a child of "AppleACPIPlatformExpert." I don't know how that relates to dependency though. DIGI also has a "compatible" key with the value "ACPI\WACF004." Maybe you can try the string "WACF004" ... you know, just in case.

On my system there is no such plugin. I have Apple16X50PCCard.kext instead of Apple16X50ACPI.kext, but then my system is a G5 desktop.
Sam I Am Not
BTW, I tried Don't Query last night, and it works again. =)

Don't know why it doesn't respond to *.

Thanks Scott.
pegasys
Hi, just to say that I've installed Tablet Magic 2.0 beta 8 rc6 on an install of 10.4.6 Jas on my Toshiba M200 Tablet PC and the app works great.

Initially, it couldn't find a serial tablet - I'd forgotten to enable the wacom serial port in OS X - duh!

Went to

/system/library/extensions/Apple16X50Serial.kext/Contents/PlugIns/Apple16X50ACPI.kext/Contents/Info.plist

and changed the IONameMatch string from PNP0501 to WACF004 , deleted kextcaches and rebooted.

The pen was recognised immediately but the calibration was way out - the closer to the top left corner of the screen the smaller the gap between the pen tip and the cursor - the closer to the bottom right hand corner of the screen the bigger the gap between the pen tip and cursor.

Played around with the settings under the second tab of Tablet Magic - resizing screen area, resizing wacom tablet area etc - eventually gave up and just clicked the tab 'max' for the wacom settings - immediately the pen worked properly everywhere on the screen.

I've enabled the app to start at bootup and also enabled ink - inkwell doesn't seem much good for cursive (joined) writing - but works fine unjoined writing.

All in all, Mac osx seems to work really well on the m200 - thanks to other members for tips under the compatibility/portable computing section of 10.4.6.

Thanks to Scott Lahteine for the Tablet Magic app and also to Kashoggi for the info on how to edit Apple16X50Serial.kext. It would be nice to also have right-click functionality but what's working already is great.

Now, If only I could get the KEYBOARD working on my Amilo M3438g..... unsure.gif
Ferret-Simpson
Right click is fine. Just fiddle with the button settings in TabletMagic.
tamstoker
stevef and Scott,

I have also installed 10.4.6 on my HP tc1100. Its great! I've been trying to use TabletMagic to get my Wacom tablet going, but have hit the exact same problems as stevef. Specifically:

QUOTE
IOPCI2PCIBridge: bad bridge bus numbering, no room to fix, bailing out!


I've tried a few other things, and may have some info to help.

First, I changed the Info.plist to read "WACF005", deleted /System/Library/Extensions.*, and rebooted. After reboot, Apple16X50Serial.kext still is not loaded. Running

CODE
sudo kextload Apple16X50Serial.kext


yields a successful response. However, no new devices are found in /dev, nor is the tablet recognized in TabletMagic. From reading the source, it appears that an appeal is made to the Apple IOkit stuff to actually communicate with the serial device, so this leads me to believe that it is, indeed, a problem with recognition of the serial ports. I can't see any reference to the tablet at all in the boot log, or any other device listing (like ioreg). I've attached a screenshot of the device interconnections repored in the Device Manager on XP.
Ferret-Simpson
Hmm. By coincidence, do you have any other hardware not working when it should?

I'm about to test my TabletPC for this error, but there's a bug in the PCI driver meaning that it seems to skip some buses.

Working on it, if it's the same issue.
Ferret-Simpson
No, your bug is not mine.

So I have no idea. Run an lspci -t and ioreg -lx

Dump the lot to a text file and upload em. When I get back from my trip I'll have a gander.
pegasys
Yes, right click works fine - not sure why I thought it didn't when I posted earlier - probably had 'Write Anywhere' enabled or something stupid!

I'm still amazed how easy it was to get the pen working - thanks to everyone again. I remember messing around with Xandros, Lindows and Mandrake (as they were then called) on a TC1100 a few years ago and not getting anywhere very fast.

I'd love to get this working on my Fujitsu ST4021 (pure slate) - but it only has a P3 processor (no SSE2 for the OSX GUI). Has anyone had OSX running on the Fujitsu ST50xx series?
Ferret-Simpson
Yeah, someone mentioned it in the old thread. However without the button panel driver (I'm not DONE yet!) or a security program for the inbuilt fingerprint reader, slate's arent as useful.

If I can get the button panel up (Mac, Alt, Rotate, User1, User2) and find a biometric control program (The integrated fingerprint readers work but need support software) we'll all be laughing.
rintintin
QUOTE(pegasys @ Mar 25 2007, 08:35 AM) *
Hi, just to say that I've installed Tablet Magic 2.0 beta 8 rc6 on an install of 10.4.6 Jas on my Toshiba M200 Tablet PC and the app works great.

Initially, it couldn't find a serial tablet - I'd forgotten to enable the wacom serial port in OS X - duh!

Went to

/system/library/extensions/Apple16X50Serial.kext/Contents/PlugIns/Apple16X50ACPI.kext/Contents/Info.plist

and changed the IONameMatch string from PNP0501 to WACF004 , deleted kextcaches and rebooted.


Pegasys,
I'm really excited to find out that you got this working on an M200. I've been trying but somehow something is wrong. I'm using the 10.4.7 Jas on my M200, but when I change the string to WACF004, delete the kextcaches and reboot, I get an error saying, "System extension cannot be used. ... Apple16X50ACPI.kext was installed improperly and cannot be used...." Maybe this sounds like a silly question, but what is the right way to change this string? When I try to save the Info.plist file, it won't do it. So then I save it to the desktop and then drag it back into the Contents window. At this point it asks me to authenticate, I do, and it overwrites the old file. Is this the right way to do this?

Any help would be appreciated!
Scott Lahteine
QUOTE(rintintin @ Mar 30 2007, 11:53 PM) *
Maybe this sounds like a silly question, but what is the right way to change this string? When I try to save the Info.plist file, it won't do it. So then I save it to the desktop and then drag it back into the Contents window. At this point it asks me to authenticate, I do, and it overwrites the old file. Is this the right way to do this?


You likely need to fix the permissions on the plist file.

Try this in Terminal:

cd /System/Library/Extensions/Apple16X50Serial.kext/Contents/PlugIns/Apple16X50ACPI.kext/Contents/
sudo chown root:wheel Info.plist
sudo chmod 644 Info.plist


That should do the trick.

In future, just use a smarter editor that allows you to save files you don't own by authenticating. BBEdit or TextMate does a fine job.
rintintin
Thank you Scott! I did as you suggested, and I now have myself a Tablet Mac! Beautiful! Now I just need to find an app like One Note for the Mac and I can kiss Windows goodbye (again). I'm very happy with all the work you've put into this. Thanks.

Just for the record, I'm using this on an M200 with the 10.4.7 Jas install and the Tablet Magic 2b8rc7.
tamstoker
QUOTE(Ferret-Simpson @ Mar 30 2007, 09:16 AM) *
No, your bug is not mine.

So I have no idea. Run an lspci -t and ioreg -lx

Dump the lot to a text file and upload em. When I get back from my trip I'll have a gander.


Ah, the system IS recognizing the hardware. I didnt realize that ioreg didn't show full information when run with no options. My ioreg entry is the same as stevef's

CODE
    | +-o DIGI  <class IOACPIPlatformDevice, registered, matched, active, busy 0, retain count 6>
     | |   {
     | |     "_UID" = "1"
     | |     "name" = <"WACF005">
     | |     "_STA" = 0xd
     | |     "compatible" = <"ACPI\WACF004">
     | |   }
     | |


I tried copying this string exactly into Apple16X50ACPI.kext, deleting Extensions.*, and rebooting, but still no recognition by TabletMagic. I did notice, however, if WACF005 is in the file, Apple16X50ACPI.kext is loaded, but if a bogus string is in there, Apple16X50ACPI.kext doesn't load at boot time. Where is the logging for kernal extentions done?

I'll attach the full contents. FYI, lspci doesn't seem to come with a default 10.4.6 install, but I'm going to try to build it from source.
Just tried, it says darwin isnt supported. Does anyone know where there is a darwin version of it? I'll check the sources I have. For now, here is the ioreg output.

Oops, forgot to attach.

Here we go
tamstoker
I still don't have any devices in /dev. Do most people have a /dev/serial0? Is there a thread better for discussing general serial port issues?
Ferret-Simpson
Don't look for it in /dev - just go into tablet magic - if you see a serial port it's working.

You're repairing permissions etc?

ALSO:

Will everyone PLEASE update your OS? Pain in the ass trying to problemsolve 5 versions of MacOS.

10.4.9 is stable and easy under SSE3 Intel. Sleep works on most systems if you disable hibernation.
hardboiledwonderland
M200 owners: what graphics drivers are you using for the FX Go 5200? I don't have Mac installed right now but I remember having trouble with that. Which driver should I use under 10.4.9 on an M200?
Nixwiz
Added Tabletmagic rc8 on my Toshiba M4, fresh OSX Install, but no Tablet discovered

NB is running with Vesa driver, and Kernel 1.4.8

Is there a chance getting this to work on my hardware?

greets
n.
cw2k
The TC1100 caused problems with linux as well. By default the digitizer is not mapped to any serial port. The solution was to run an executable to enable the serial port than the digitizer could be used.

see the code at the bottom of this page: http://linuxwacom.sourceforge.net/index.php/howto/tabletpc

Could this method be adapted for OS X ?
Scott Lahteine
QUOTE(cw2k @ Apr 2 2007, 07:13 PM) *
The TC1100 caused problems with linux as well. By default the digitizer is not mapped to any serial port. The solution was to run an executable to enable the serial port then the digitizer could be used.

I don't think this is adaptable to Mac OS X. For one thing, Mac OS X doesn't have the setserial command - and neither do Fink or Darwin-ports - and I don't know if Mac OS X uses the same system of IRQ numbers that Linux and Windows use - though theoretically it should. Have a look at the darwin source code for more information on that.

From what I understand, to get non-standard serial ports to be recognized on non-Apple hardware you need to write a kernel extension, or if it's a standard variety of serial port, use the instructions referred-to earlier in this thread to modify the Info.plist file in the appropriate kext file.
cartoonmonkey
Hey all, -I'm fairly new to all this, done all my searching, and now.. my cry for help:

I'm running 10.4.5 on a Motion Computing M1400 as a dual boot. (10.4.8 etc all reboot at the beginning of the install DVD)

Is there a way to upgrade OSX manually while osx itself is running? That is, without booting from the dvd?

I'd like to get a copy of the logging version of tabletmagic to try and get my digitzer working.
Can someone instruct me on getting things working with the pen, if possible?

The latest tabletmagic I have installed, only sees my USB bluetooth dongle in the list that says "automatic" -I get a tablet not found message.

Thanks in advance to anyone who can help sort things out!
C
Ferret-Simpson
ioreg -lx

that command can be used to find the device name of your Tablet.

Follow the instructions given REPEATEDLY in this thread on modifying your kext.

OS 10.4.9 can be done on the fly.

Download the 10.4.9 intel COMBO update NOT the single, even if you have 10.4.8.
Use an IRC client to get the 10.4.9 kernel from irc.osx86.hu #1049

copy your /System/Library/Extensions foler do a safe place.
Run the combo update,

DO NOT LET IT RESTART WHEN IT IS FINISHED.

Replace smbios kext with the old one, and go into the terminal.

sudo rm -r /mach_kernel
mv /Users/Noob/Desktop/name_of_kernel_file /mach_kernel
diskutil repairpermissions /

Then reboot.
JSn1™
No news for the FinePoint tablet???
Ferret-Simpson
Not yet. Follow the instructions I gave in your other thread (in ../) to find the Serial Port ioname

Also, you really need to do two things: TO enable wifi, spend $20 to $30 on a supported Mini PCI(-E) Atheros or Broadcom wifi card - Your intel chipset will almost certainly never be supported and it is easier to just replace it.

Second, since your Mac works, Update it to 10.4.9! No point in lagging behind when 10.4.9 is so full of Stability, Security and productivity fixes!
Dainix
I was able to get TabletMagic to identify that my Finepoint tablet existed, but it doesn't work. Replacing the PNP number with FPI2004 did the trick for finding it. If you need a tester on Finepoint tablets, I can do so.

This is the ioreg log:
CODE
    | | +-o Apple16X50ACPI0  <class com_apple_driver_16X50ACPI, !registered, !m$
     | |   | {
     | |   |   "CFBundleIdentifier" = "com.apple.driver.Apple16X50ACPI"
     | |   |   "IOClass" = "com_apple_driver_16X50ACPI"
     | |   |   "IONameMatched" = "FPI2004"
     | |   |   "IOTTYBaseName" = "serial"
     | |   |   "IOKitDebug" = 0x0
     | |   |   "IOProbeScore" = 0x0
     | |   |   "IOMatchCategory" = "IODefaultMatchCategory"
     | |   |   "IONameMatch" = "FPI2004"
     | |   |   "Location" = "ACPI Device=COMA"
     | |   |   "IOProviderClass" = "IOACPIPlatformDevice"
     | |   | }
     | |   |
     | |   +-o Apple16X50UARTSync0  <class com_apple_driver_16X50UARTSync, regis$
     | |     | {
     | |     |   "Product Name" = "Built-in Serial Port (0)"
     | |     |   "UART Type" = "16550AF/C/CF FIFO=16 MaxBaud=115200"
     | |     |   "IOTTYBaseName" = "serial"
     | |     |   "CFBundleIdentifier" = "com.apple.driver.Apple16X50ACPI"
     | |     |   "IOTTYSuffix" = "0"
     | |     |   "Location" = "ACPI Device=COMA Base=0x6a8"
     | |     | }
     | |     |
     | |     +-o IOSerialBSDClient  <class IOSerialBSDClient, registered, matche$
     | |         {
     | |           "IOTTYSuffix" = "0"
     | |           "CFBundleIdentifier" = "com.apple.iokit.IOSerialFamily"
     | |           "IOClass" = "IOSerialBSDClient"
     | |           "Product Name" = "Built-in Serial Port (0)"
     | |           "IOTTYBaseName" = "serial"
     | |           "IOSerialBSDClientType" = "IORS232SerialStream"
     | |           "IOProbeScore" = 0x3e8
     | |           "IOResourceMatch" = "IOBSD"
     | |           "IOMatchCategory" = "IODefaultMatchCategory"
     | |           "IOTTYDevice" = "serial0"
     | |           "IOCalloutDevice" = "/dev/cu.serial0"
     | |           "IODialinDevice" = "/dev/tty.serial0"
     | |           "IOProviderClass" = "IOSerialStreamSync"
     | |         }


This is what appears in the console log for TabletMagic:
CODE
TabletMagicDaemon v2.0b9
   (c) 2007 Thinkyhead Software <www.thinkyhead.com>
  
   [INIT] renice -20 338 : Succeeded
  
   [INIT] Machine Type: ADP2,1 (Hackintosh?)
   [PROC] Tablet Bounds: (0, 0) - (24568, 18428)
   [PROC] Screen Bounds: (0, 0) - (1023, 767)
  
   [PORT] serial0: OPENED
   [PORT] Setting speed to 19200
   [PROC] "~#ISD V4"
   [INFO] ISD V4.00 (TabletPC)
   [INIT] TabletPC Detected
  
   Tablet Settings (imposed):
   command set ..... Tablet PC
   output format ... BINARY
   terminator ...... CRLF
   packet size ..... 9
   baud rate ....... 19200
   data bits ....... 8
   parity .......... N
   stop bits ....... 1
   cts ............. OFF
   dsr ............. OFF
   transfer mode ... suppressed
   coord sys ....... ABS
   transfer rate ... 200
   resolution ...... 1270 lpi
   origin .......... UL
   oor data ........ OFF
   pnp ............. ON
   sensitivity ..... firm
   read height ..... 8mm+
   mdm ............. OFF
   tilt ............ ON
   mm command set .. MM1201
   orientation ..... landscape
   cursor data ..... 1234
   remote mode ..... OFF
   increment ....... 2
   interval ........ 2
   xrez ............ 1270
   yrez ............ 1270
   tablet width .... 24570
   tablet height ... 18430
  
  
   Tablet initialized.
  
   2007-04-13 11:08:10.883 System Preferences[335] Received [hello]
   2007-04-13 11:08:10.883 System Preferences[335] Received [port] serial0
   2007-04-13 11:08:11.092 System Preferences[335] Received [ready]
   2007-04-13 11:08:11.092 System Preferences[335] Received [model] ISD V4.0 (TabletPC)
   2007-04-13 11:08:11.094 System Preferences[335] Received [info] 0 7200C910,002,02,1270,1270 active
   2007-04-13 11:08:11.130 System Preferences[335] Received [geom] 0 0 24568 18428 : 0 0 1023 767 : 1 1 2 6 : 0 1.0000
   2007-04-13 11:08:11.140 System Preferences[335] Received [scale] 24570 18430


Everything seems to initialize correctly, but the screen still doesn't respond.
Ferret-Simpson
TabletMagic identifies the TabletPC by the fact that it isn't a mac, not by deducing anything about it. It's a better idea to do it this way anyway. And it won't work, because it doesn't understand the finepoint protocol.

Good to know you're a free tester though. wink.gif
Dainix
Would skimming through the fpit source code give us a better idea as to how it works?

If only OSX could take in X Window Server config files...This wouldn't be such a hassle.
Ferret-Simpson
But it would also need the X windows driver. So then it would have to be using X windows.

Which would suck.

VAV the TC1100, the Fujitsu isn't autodetected on linux, either. DO the plst hack, and see what happens. If it's not a 16X50, tough luck for now.
Dainix
QUOTE(Ferret-Simpson @ Apr 19 2007, 04:03 AM) *
But it would also need the X windows driver. So then it would have to be using X windows.

Yeah, I don't think everyone would want X and Aqua running side by side just to get a tablet driver to work. Some would, like myself.

QUOTE
VAV the TC1100, the Fujitsu isn't autodetected on linux, either. DO the plst hack, and see what happens. If it's not a 16X50, tough luck for now.


I'll see what I can do.
Ferret-Simpson
Well, you wouldn't be running it side by side, you'd replaceAqua with AIGLX or omething similar. And AIGLXis nota very reliable piece of software, so the number of peopl who could successfully get a working hackintosh would be very small.

Which would suck.

Sorry, my last reply was a bit irritable. But that 12 year old with the USB dongle he refuses to consider replacing was pissing me off. Again, my apologies.
Dainix
QUOTE(Ferret-Simpson @ Apr 21 2007, 05:47 AM) *
Sorry, my last reply was a bit irritable. But that 12 year old with the USB dongle he refuses to consider replacing was pissing me off. Again, my apologies.


That's fine. Doesn't bother me.

Looking in the fpit source code, /dev/ttyS3 is used (in which the current device being used is /dev/tty), along with IRQ 15. Not sure if this would associate with anything that OSX does or if these values can be changed manually within the system. If only I could actually design a kernel extension...
Ferret-Simpson
No this has NOTHING to do with the problem. Nice try though.

The issue here is not detecting the serial port - that has already been done. Without an OS X finepoint driver, even X11 would be useless.

The missing link here is the PROTOCOL. If there is source code for the X11 finepoint driver, maybe sending a copy to Scott would be good? If not, it's a case of figuring it out the old fashioned way.
Dainix
Anything related to the protocol, from what I've briefly examined, are two variable declarations, which is defining the packet size and buffer size.

CODE
#define FPIT_LINK_SPEED        B19200    /* 19200 Baud                           */
#define FPIT_PORT        "/dev/ttyS3"

#define FPIT_MAX_X        4100
#define FPIT_MIN_X        0
#define FPIT_MAX_Y        4100
#define FPIT_MIN_Y        0

#define PHASING_BIT    0x80
#define PROXIMITY_BIT    0x20 /* DMC: This was 0x40 but the chart says its bit 5 which is 0x20 */
/*#define TABID_BIT    0x20  */
#define XSIGN_BIT    0x10
#define YSIGN_BIT    0x08
#define BUTTON_BITS    0x07
#define COORD_BITS    0x7f

/* DMC: Added these */
#define SW1    0x01
#define SW2    0x02
#define SW3    0x04


/*
***************************************************************************
*
* Protocol constants.
*
***************************************************************************
*/
#define FPIT_PACKET_SIZE        5
#define BUFFER_SIZE               (FPIT_PACKET_SIZE*20)


I'm probably looking at the wrong things, so I uploaded the fpit source for you guys to examine.
Ferret-Simpson
*grins*

A positive step inthe right direction.

I'll have a poke too, just out of curiosity. I learn something new about coding every time I se a new bit of source.
Dainix
I looked through some of the header files in a default XCode project for kernel extensions, and I found "IOHIPointing.h" in the midst of things.

CODE
virtual void dispatchAbsolutePointerEvent(Point *    newLoc,
                                            Bounds *    bounds,
                                            UInt32    buttonState,
                                            bool    proximity,
                                            int        pressure,
                                            int        pressureMin,
                                            int        pressureMax,
                                            int        stylusAngle,
                                            AbsoluteTime    ts);


This is only a snippet of code from it. I'll look into the fpit source code some more and compare a few things. Perhaps making a kext will be easier than I thought. If you can get the extension to communicate with the serial port the 16X50 extension creates, it'd be easy as hell to port over the commands from fpit.
Ferret-Simpson
The last thing you want to do is create another kernel extension. Homebrew kexts are for the most part unreliable at best.

Get the tabletmagic source code - That's where you want to add a finepoint driver.
Dainix
QUOTE(Ferret-Simpson @ Apr 23 2007, 05:44 PM) *
The last thing you want to do is create another kernel extension. Homebrew kexts are for the most part unreliable at best.

Get the tabletmagic source code - That's where you want to add a finepoint driver.

The reliability of an extension, of course, depends on the programmer, but I see your point.

I'll check the tabletmagic source. Probably a better idea to see how it functions and works with Wacom tablets. Should be some similarities.
Ferret-Simpson
One can hope! I've discovered what I think is another laptop with the odd PCI bus problems, won't know for sure till I hook the guy up with xcode and prod his Registry Explorer.

Damn PCI driver.
Dainix
What exactly do I need to download from the CVS for TabletMagic if I want to compile this myself? Also, do you happen to know where I could find that TabletPC only version that was posted a few pages ago? That link is dead.
Dainix
Double Post time.

I searched the old Tablet PC driver thread that supplied the Khashoggi driver, and found the 7th beta of TabletMagic that included a logging feature. Downloading and running that, my configuration came out differently. Instead of 19200bps, it was 9600bps. Either way, it identified my tablet.

CODE
[INFO] SD-Fallback (SD Series) Version 1.20
[INIT] SD-Series Detected

Tablet Settings (imposed):
command set ..... WACOM II-S
packet size ..... 7
baud rate ....... 9600
parity .......... N
data bits ....... 8
stop bits ....... 1
cts ............. OFF
dsr ............. OFF
transfer mode ... point
output format ... ASCII
coord sys ....... ABS
transfer rate ... MAX
resolution ...... 1270 lpi
origin .......... UL
oor data ........ OFF
terminator ...... CRLF
pnp ............. OFF
sensitivity ..... firm
read height ..... 8mm+
mdm ............. OFF
tilt ............ OFF
mm command set .. MM1201
orientation ..... landscape
cursor data ..... 1234
remote mode ..... OFF
increment ....... 0
interval ........ 0
xrez ............ 1270
yrez ............ 1270
tablet width .... 15240
tablet height ... 15240

[SENT] "SC15240,15240\r"
[SENT] "ST\r"
[PROC] Tablet Bounds: (0, 1906) - (15239, 13332)
[PROC] Screen Bounds: (0, 0) - (1023, 767)

Tablet initialized.

[NICE] PRI=-20 PID=430 : Succeeded

70 E0 >R
(p)
70 E0 70 C4 70 FC E0 4F E0 4F C4 4F F0 C4 70 E0 70 E0 89 70 C4 70 E0 88 70 FC E0 70 C4 88 70 C4 89 78 E0 70 E2 E0 C4 C4 E0 C4 E0 78 F0 E0 FC E2 C4 E0 E0 E0 E0 E0 E0 C4 E0 E0 E0 E0 F8 E0 E0 E0 E0 F0 C4 E0 E0 E2 E0 E0 FC E0 E0 C4 E0 E0 E0 F1 E0 E0 E0 E2 E0 E0 E0 E0 C4 E0 E0 E0 E0 C4 E0 E0 FF 88 E2 C4 F0 F8 4B E0 47 E2 F0 47 E0 47 E0 E2 47 C4 CC E2 47 FC 43 C4 47 FC 43 35 E2 E2 43 FC 43 E2 43 75 E2 47 E2 C8 E2 43 E2 E0 E0 E0 C4 C4 88 C4 E0 88 C4 E0 FC FC FC FC E0 FC E0 E0 E0 E0 E0 E0 E0 E0 E0 C4 C4 E0 E0 E0 88 E2 F0 FC 43 F0 47 C4 89 E0 4B C4 4F C4 4F E2 47 C4 4B C4 83 C4 87 E2 8B C4 83 C4 F0 E0 87 F0 54 E2 83 54 E2 87 E2 8B E2 87 C4 E0 C8 E0 E0 E0 FC FC E0 E0 E0 F8 E0 E0 C0 C0 C0 C0 E0 C0 E0 C0 E0 C0 88 88 88 E0 88 88 88 E0 C0 C0 FC 19 E0 C0 FC E0 E0 C0 C0 E0 C4 F0 C4 88 E0 F1 C0 F0 C0 C0 C0 88 E0 0A E0 0A E0 C0 E0 88 C0 C0 C0 C4 E0 C0 88 C0 88 88 E0 C4 E0 E0 E0 E0 E0 C4 F0 E0 F0 E0 E0 E0 E0 E0 FE E0 E0 C4 E0 FE FE E0 E0 E0 C4 E0 FE FE E0 E0 E0 F0 E0 E0 E0 E0 FE FE E0 FE E0 E0 E0 E0 E2 E0 E0 E0 E0 C4 E0 85 E0 85 E0 85 E0 45 E0 85 E0 C5 C4 45 E2 19 E2 79 E2 59 E2 79 E2 79 E2 19 E2 19 E2 19 E2 39 E2 39 E2 19 E2 79 E2 45 E2 05 E2 45 E2 E0 45 E0 AA FE E0 C4 E0 E0 E0 E0 E0 F8 E0 E0 C4 C4 E0 E0 E0 F8 E0 E0 C4 F8 F8 E0 F8 F8 F8 E0 E0 C4 C4 C4 E0 E0 E0 C4 F8 E0 E0 C0 F8 F8 4F E0 80 E0 C0 C4 00 E2 40 E2 E0 00 E2 F1 F1 F1 C1 E2 C1 E2 F0 C0 E2 F0 F0 F0 F0 E2 F0 F0 40 E2 00 E2 C0 E0 00 E0 AA E0 E0 E0 C4 C4 E0 F1 E0 E0 E0 E0 E0 E0 E0 E0 C4 E0 C4 E2 C4 C4 C0 88 C0 E0 E0 88 E0


The hex values on the bottom are sent from the tablet itself, so the connection is fine. Like you said before, the protocol for a Finepoint tablet needs to be deciphered. If only Windows had software that could log like this...

I know that the fpit drivers declares that stop bits equals 0, while TabletMagic has only 1 & 2.
Da Pupster
ummm...basic question, but after i get the driver and tabletmagic installed, what's supposed to happen? should i just be able to move my pointer around by using the pen? cuz...nothing's happening and i have both installed...and it says that it sees an ISD V4.0 (TabletPC) tablet...
Da Pupster
blah...i uninstalled khaggi's daemon and kept the plist edited to WACF008...

also have the latest build of tabletmagic installed

here's what IOreg -kx gives:

| +-o DTR <class IOACPIPlatformDevice, registered, matched, active, busy 0$
| | | {
| | | "Power Management protected data" = "{ theNumberOfPowerStates = 3, $
| | | "IODeviceMemory" = (({"address"=0x200,"length"=0x8}))
| | | "IOInterruptControllers" = ("io-apic-0")
| | | "acpi-dstate-mask" = 0x9
| | | "Power Management private data" = "{ this object = 02fa9580, intere$
| | | "IOInterruptSpecifiers" = (<0500000000000000>)
| | | "_STA" = 0xf
| | | "name" = <"WACF008">
| | | "acpi-dstate" = 0x0
| | | }
| | |
| | +-o Apple16X50ACPI0 <class com_apple_driver_16X50ACPI, !registered, !m$
| | | {
| | | "CFBundleIdentifier" = "com.apple.driver.Apple16X50ACPI"
| | | "IOClass" = "com_apple_driver_16X50ACPI"
| | | "IONameMatched" = "WACF008"
| | | "IOTTYBaseName" = "serial"
| | | "IOKitDebug" = 0x0
| | | "IOProbeScore" = 0x0
| | | "IOMatchCategory" = "IODefaultMatchCategory"
| | | "IONameMatch" = "WACF008"
| | | "Location" = "ACPI Device=DTR"
| | | "IOProviderClass" = "IOACPIPlatformDevice"
| | | }
| | |
| | +-o Apple16X50UARTSync0 <class com_apple_driver_16X50UARTSync, regis$
| | | {
| | | "Product Name" = "Built-in Serial Port (0)"
| | | "UART Type" = "16550AF/C/CF FIFO=16 MaxBaud=115200"
| | | "Power Management protected data" = "{ theNumberOfPowerStates =$
| | | "Power Management private data" = "{ this object = 0303da00, in$
| | | "IOTTYBaseName" = "serial"
| | | "CFBundleIdentifier" = "com.apple.driver.Apple16X50ACPI"
| | | "IOTTYSuffix" = "0"
| | | "Location" = "ACPI Device=DTR Base=0x200"
| | | }
| | |
| | +-o IOSerialBSDClient <class IOSerialBSDClient, registered, matche$
| | {
| | "IOTTYSuffix" = "0"
| | "CFBundleIdentifier" = "com.apple.iokit.IOSerialFamily"
| | "IOClass" = "IOSerialBSDClient"
| | "Product Name" = "Built-in Serial Port (0)"
| | "IOTTYBaseName" = "serial"
| | "IOSerialBSDClientType" = "IORS232SerialStream"
| | "IOProbeScore" = 0x3e8
| | "IOResourceMatch" = "IOBSD"
| | "IOMatchCategory" = "IODefaultMatchCategory"
| | "IOTTYDevice" = "serial0"
| | "IOCalloutDevice" = "/dev/cu.serial0"
| | "IODialinDevice" = "/dev/tty.serial0"
| | "IOProviderClass" = "IOSerialStreamSync"
| | }


When I run the command to run the daemon manually (i.e. sudo /Library/PreferencePanes/TabletMagic.prefPane/Contents/Resources/TabletMagicDaemon -d), I get this:

[INIT] Machine Type: ADP2,1 (Hackintosh?)
[PROC] Tablet Bounds: (0, 0) - (15239, 15239)
[PROC] Screen Bounds: (0, 0) - (1023, 767)

[PORT] serial0: OPENED
[PORT] Setting speed to 19200
[SENT] "0"
[SENT] "*"
[RCVD]
[PORT] Setting speed to 9600
[SENT] "0"
[SENT] "*"
[RCVD]
[PORT] Setting speed to 9600
[SENT] "SP\r"
[SENT] "~#\r"
[SENT] "~#\r"
[SENT] "~#\r"
[PORT] Setting speed to 19200
[SENT] "SP\r"
[SENT] "~#\r"
[SENT] "~#\r"
[SENT] "~#\r"

[PORT] Bluetooth-PDA-Sync: OPENED
[PORT] Setting speed to 19200
[SENT] "0"
[SENT] "*"
[RCVD]
[PORT] Setting speed to 9600
[SENT] "0"
[SENT] "*"
[RCVD]
[PORT] Setting speed to 9600
[SENT] "SP\r"
[SENT] "~#\r"
[SENT] "~#\r"
[SENT] "~#\r"
[PORT] Setting speed to 19200
[SENT] "SP\r"
[SENT] "~#\r"
[SENT] "~#\r"
[SENT] "~#\r"
Error opening serial port /dev/cu.Bluetooth-Modem - Resource busy(16).

[PORT] Bluetooth-Modem: OPEN ERROR

Could not initialize tablet.

[ERR ] Fatal Error: No Wacom Tablet Found!

Anyone know what this all means in layman's terms?
Dainix
ioreg gave you information about the port you're using. The daemon is trying to send a command to your tablet through the serial port. It's not receiving a signal back, so it can't find your tablet.

What exactly are you using?
Ferret-Simpson
With Khashoggi uninstalled, use the PREFERENCE PANE (It's what it wasdesigned for) to select the serial port manually, and tell it not to query the tablet.
Da Pupster
QUOTE(.L. @ May 4 2007, 09:47 AM) *
ioreg gave you information about the port you're using. The daemon is trying to send a command to your tablet through the serial port. It's not receiving a signal back, so it can't find your tablet.

What exactly are you using?


I'm using a Lenovo X60 Tablet...
Scott Lahteine
QUOTE(X Octavius @ Apr 13 2007, 04:10 PM) *
I was able to get TabletMagic to identify that my Finepoint tablet existed, but it doesn't work. Replacing the PNP number with FPI2004 did the trick for finding it. If you need a tester on Finepoint tablets, I can do so.


Hi, good going! It's true - as FS posted - that TabletMagic doesn't try to talk to TabletPC digitizers (by default) so if you selected the serial port of your Finepoint digitizer when you started the driver the only thing that's happened so far is that the serial port has been opened and communication has been established.

It looks like Finepoints may communicate at 9600 baud, so I'll have to add some override options for TabletPCs, which currently assume 19200. I'll try to find out more about the Finepoint protocol, and when I have something to test I'll post it here.

QUOTE(Da Pupster @ May 4 2007, 05:23 PM) *
I'm using a Lenovo X60 Tablet...


In the Preference Pane try turning on "Don't Query" in the Extras tab, then kill and restart the daemon.
Dainix
QUOTE(Scott Lahteine @ May 5 2007, 02:54 PM) *
It looks like Finepoints may communicate at 9600 baud, so I'll have to add some override options for TabletPCs, which currently assume 19200. I'll try to find out more about the Finepoint protocol, and when I have something to test I'll post it here.



Indeed it does, I was able to get some information previously posted from the tablet at 9600 baud.

If anything, you could look at the fpit source. It looked like some variables that were declared could be deemed important.

Perhaps you could have the ability to manually select the protocol to use? Since I was able to get some information from the old version of Tablet Magic (before the TabletPC support) where the options were different, that could help. Could be risky, but even so, it gives the user the capability to select the precise parameters that their tablet follows in order for it to work.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.