Jump to content

TabletMagic for TabletPCs


  • Please log in to reply
520 replies to this topic

#81
Ferret-Simpson

Ferret-Simpson

    InsanelyMac Sage

  • Members
  • PipPipPipPipPipPip
  • 441 posts
  • Gender:Male
  • Location:EXETER
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.

#82
Dainix

Dainix

    Level 12 Warmage

  • Members
  • PipPipPipPip
  • 204 posts
  • Gender:Male
  • Location:In a Toaster Oven
  • Interests:15% APR for three years. After that, it's 20%.

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.

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.

#83
Ferret-Simpson

Ferret-Simpson

    InsanelyMac Sage

  • Members
  • PipPipPipPipPipPip
  • 441 posts
  • Gender:Male
  • Location:EXETER
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.

#84
Dainix

Dainix

    Level 12 Warmage

  • Members
  • PipPipPipPip
  • 204 posts
  • Gender:Male
  • Location:In a Toaster Oven
  • Interests:15% APR for three years. After that, it's 20%.

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...

#85
Ferret-Simpson

Ferret-Simpson

    InsanelyMac Sage

  • Members
  • PipPipPipPipPipPip
  • 441 posts
  • Gender:Male
  • Location:EXETER
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.

#86
Dainix

Dainix

    Level 12 Warmage

  • Members
  • PipPipPipPip
  • 204 posts
  • Gender:Male
  • Location:In a Toaster Oven
  • Interests:15% APR for three years. After that, it's 20%.
Anything related to the protocol, from what I've briefly examined, are two variable declarations, which is defining the packet size and buffer size.

#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.

Attached Files



#87
Ferret-Simpson

Ferret-Simpson

    InsanelyMac Sage

  • Members
  • PipPipPipPipPipPip
  • 441 posts
  • Gender:Male
  • Location:EXETER
*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.

#88
Dainix

Dainix

    Level 12 Warmage

  • Members
  • PipPipPipPip
  • 204 posts
  • Gender:Male
  • Location:In a Toaster Oven
  • Interests:15% APR for three years. After that, it's 20%.
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.

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.

#89
Ferret-Simpson

Ferret-Simpson

    InsanelyMac Sage

  • Members
  • PipPipPipPipPipPip
  • 441 posts
  • Gender:Male
  • Location:EXETER
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.

#90
Dainix

Dainix

    Level 12 Warmage

  • Members
  • PipPipPipPip
  • 204 posts
  • Gender:Male
  • Location:In a Toaster Oven
  • Interests:15% APR for three years. After that, it's 20%.

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.

#91
Ferret-Simpson

Ferret-Simpson

    InsanelyMac Sage

  • Members
  • PipPipPipPipPipPip
  • 441 posts
  • Gender:Male
  • Location:EXETER
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.

#92
Dainix

Dainix

    Level 12 Warmage

  • Members
  • PipPipPipPip
  • 204 posts
  • Gender:Male
  • Location:In a Toaster Oven
  • Interests:15% APR for three years. After that, it's 20%.
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.

#93
Dainix

Dainix

    Level 12 Warmage

  • Members
  • PipPipPipPip
  • 204 posts
  • Gender:Male
  • Location:In a Toaster Oven
  • Interests:15% APR for three years. After that, it's 20%.
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.

[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.

#94
Da Pupster

Da Pupster

    InsanelyMac Protégé

  • Members
  • Pip
  • 15 posts
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...

#95
Da Pupster

Da Pupster

    InsanelyMac Protégé

  • Members
  • Pip
  • 15 posts
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?

#96
Dainix

Dainix

    Level 12 Warmage

  • Members
  • PipPipPipPip
  • 204 posts
  • Gender:Male
  • Location:In a Toaster Oven
  • Interests:15% APR for three years. After that, it's 20%.
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?

#97
Ferret-Simpson

Ferret-Simpson

    InsanelyMac Sage

  • Members
  • PipPipPipPipPipPip
  • 441 posts
  • Gender:Male
  • Location:EXETER
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.

#98
Da Pupster

Da Pupster

    InsanelyMac Protégé

  • Members
  • Pip
  • 15 posts

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...

#99
Thinkyhead

Thinkyhead

    Scott Lahteine

  • Members
  • PipPipPip
  • 110 posts
  • Gender:Male
  • Location:Seattle, WA
  • Interests:OSX, iOS, reprap, science!

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.

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.

#100
Dainix

Dainix

    Level 12 Warmage

  • Members
  • PipPipPipPip
  • 204 posts
  • Gender:Male
  • Location:In a Toaster Oven
  • Interests:15% APR for three years. After that, it's 20%.

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.





1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users

© 2014 InsanelyMac  |   News  |   Forum  |   Downloads  |   OSx86 Wiki  |   Mac Netbook  |   PHP hosting by CatN  |   Designed by Ed Gain  |   Logo by irfan  |   Privacy Policy