Jump to content
InsanelyMac Forum
Thinkyhead

TabletMagic for TabletPCs

Recommended Posts

This is a dedicated topic for TabletMagic, an open source driver for Wacom serial devices that has been adapted to communicate with Tablet PC ISD-V4 digitizers.

 

So to start things off, welcome! Here's where the project stands as of today, April 19, 2013:

  • The official project page is https://github.com/t...ead/TabletMagic
  • The current release version is TabletMagic 2.0b20
  • Builds b14 - b15 consider all non-Apple Machine Type strings to be hackintosh systems
  • Build b16 and later consider any system with a digitizer in the I/O Registry to be a TabletPC
  • Build b18 adds 64-bit support and software Mouse Mode
  • The driver has been tested on several TabletPC systems and now works with most.

Getting Mac OS X To See Your Digitizer

Before Mac OS X will recognize your TabletPC's digitizer hardware your digitizer's ID string must be inserted in the proper kernel extension file. TabletMagic now includes an Enable Digitizer button to automate this process. Give it a try!

 

Lenovo ThinkPad X61t

If you have a Lenovo ThinkPad X61t you will also need an enabler to actually turn on the digitizer hardware. All the information you need is in its own dedicated topic. (and here's the relevant post!)

 

Still Nothing? Try "Don't Query"

Many - indeed most - TabletPC digitizers seem to ignore the "*" (TabletID) command, which asks the tablet to identify itself. If TabletMagic finds no tablet, or claims to see an ISD-V4 tablet, but the tablet doesn't function there are two things to check. First, under the TabletPC tab make sure the Don't Query checkbox is selected. Second, make sure the actual serial port is selected instead of "Automatic." (When Don't Query is enabled the "Automatic" setting only checks the first serial port, which is sometimes not what you want.)

 

Diagnostic Messages

For basic troubleshooting you can open the Console application before starting TabletMagic. There you will be able to observe its diagnostic output, including your Machine Type string. Press Console's "Clear" button between attempts for the cleanest output.

 

Killing TabletMagic

You can kill the driver most easily using the "Kill Daemon" button in the "Extras" tab of the TabletMagic Preference Pane. If you have any other tablet driver installed on your system, remove it and reboot before trying to start TabletMagic.

 

TabletPC tab

Under the TabletPC tab of the TabletMagic preference pane you'll find the aforementioned Enable Digitizer and Don't Query options, plus a pair of edit boxes where you can modify the digitizer range values. If the pointer doesn't correctly follow the stylus or seems to drift near the edges of the screen you should modify these values. With the Get From Stylus checkbox enabled you can obtain the digitizer range by moving the pen all the way to the bottom right corner of the screen.

 

Source Code To get the latest source code first you'll need 'git.' The 'git' binary is included with Snow Leopard (/usr/bin/git) or you can get it through MacPorts. Or download the GitHub application. Using the Terminal you can instantly fetch TabletMagic with the following command:

 

git clone git@github.com:thinkyhead/TabletMagic.git

(Older versions of the TabletMagic source code will remain archived on SourceForge at http://sourceforge.n...ts/tabletmagic/ ).

 

For More Help

If you've read this thread thoroughly and all your posts for help have led to a dead end, contact me at my TabletMagic for TabletPC email address. A logging version of TabletMagic is available (upon request) to help figure out unsupported protocols. If you have a serial tablet or built-in digitizer that TabletMagic can see but can't interpret, the logging version will help me to add support for your device.

Share this post


Link to post
Share on other sites
Advertisement

rc3 didn't work either in my M275

 

Here's the output from console:

===== Thursday, March 1, 2007 7:50:12 PM US/Central =====
TabletMagicDaemon v2.0b8rc3
(c) 2007 Thinkyhead Software <www.thinkyhead.com>

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

[PORT] serial1 (19200 baud): Open Succeeded...
[SENT] "0"
[SENT] "*"
[RCVD] 

[PORT] serial1 (9600 baud): Open Succeeded...
[SENT] "SP\r"
[SENT] "~#\r"
[SENT] "~#\r"
[SENT] "~#\r"

[PORT] serial1 (19200 baud): Open Succeeded...
[SENT] "SP\r"
[SENT] "~#\r"
[SENT] "~#\r"
[SENT] "~#\r"

Could not initialize tablet.

No tablet found
[NICE] PRI=-20 PID=299 : Succeeded

Share this post


Link to post
Share on other sites

Ok, let's see... Here're the two outputs of two different daemons, top one from rc3 of tabletmagic and bottom - from ...shoggi's driver:

 

© 2007 Thinkyhead Software <www.thinkyhead.com>

 

Paringas:~ Paringas$ [iNIT] Machine Type: ADP2,1 (Hackintosh?)

[PROC] Screen Bounds: (0, 0) - (1823, 767)

 

[PORT] builtin-serial0 (19200 baud): Open Succeeded...

[sENT] "0"

[sENT] "*"

[RCVD]

 

[PORT] builtin-serial0 (9600 baud): Open Succeeded...

[sENT] "SP\r"

[sENT] "~#\r"

[sENT] "~#\r"

[sENT] "~#\r"

 

[PORT] builtin-serial0 (19200 baud): Open Succeeded...

[sENT] "SP\r"

[sENT] "~#\r"

[sENT] "~#\r"

[sENT] "~#\r"

 

Could not initialize tablet.

[ERR ] Fatal Error: No Wacom Tablet Found!

 

_____________________________________________________________

 

TabletMagicDaemon $Revision: 1.16 $

© 2004 Scott Lahteine

 

Screen Bounds: (0, 0) - (1023, 767)

 

[PORT] builtin-serial0

[sENT] "0\r"

[sENT] "*\r"

[GOOD] "\FFF03$1\7F"

[RCVD] "\FFF03$1\7F"

Tablet Bounds: (0, 0) - (24779, 18629)

[sENT] "1\r"

 

Tablet initialized.

 

 

Clearly, tabletmagic's not sending the right initialization string.

As for the tablets that worked - they were either happy with any string or that particular one of tabletmagic's rc3/rc2.

 

Hope this will get the ball rolling further, although i'm still to see my artrage2 and corel painter essentials working usably/without lagging and so forth.

Edited by paringas

Share this post


Link to post
Share on other sites

I've just posted a new build:

This version tries "*\r" in place of "*" in an attempt to get tablets to reply. If this string doesn't do the trick, it also tries connecting at 9600 baud. And if that doesn't work, well we'll see what happens...

 

I don't know what would be causing a kernel panic. There's very little - if any - low-level hackery going on. It may be useful to know at about what point the system panics. You might try something like this in Terminal (and place terminal low on the screen so it won't get hidden by the panic alert)...

 

sudo /Library/PreferencePanes/TabletMagic.prefPane/Contents/Resources/TabletMagicDaemon -d

 

This will start the daemon and try to connect to whatever tablet it can find. If it can't find a tablet it will quit. If there's a kernel panic, it'll probably be when the daemon tries to initialize the serial port.

 

I hope the results are more positive this time around. The preference pane and daemon should communicate a little better now, at least.

Share this post


Link to post
Share on other sites

WOW!!!!

THANKS SO MUCH FOR THIS!!!

 

Question: What exactly do I need to set in the settings to get the this working with a toshiba tecra m7 tablet pc? It should be the same as the m400.. I gathered that baud rate should be 19200... but what about the others? when i click enable I just get "no tablet found" in beta 7. now in beta 8 rc4 its the same.. but if I enable on startup i get a kernel panic and have to manually turn off the startup in the plist.

Is there something I am blatenly overlooking? Could you post the steps used to get the m400 working? I may just buy one if the m7 wont work.

 

I will send money to get this working. I want a mac tablet hybrid.

 

you are awesome.

thanks,

ryan.

Share this post


Link to post
Share on other sites

TabletMagicDaemon v2.0b8rc4

© 2007 Thinkyhead Software <www.thinkyhead.com>

 

[iNIT] Machine Type: ADP2,1 (Hackintosh?)

[PROC] Tablet Bounds: (0, 0) - (15239, 15239)

[PROC] Screen Bounds: (0, 0) - (1823, 767)

 

[PORT] builtin-serial0: OPENED

[PORT] Setting speed to 19200

[sENT] "0\r"

[sENT] "*\r"

[RCVD]

[PORT] Setting speed to 9600

[sENT] "0\r"

[sENT] "*\r"

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

 

Could not initialize tablet.

 

[ERR ] Fatal Error: No Wacom Tablet Found!

_________________________________________________

 

It's receiving blanks... Also tried starting the daemon with pen moving around the screen/button pressed.

 

Sorry, Scott, man, wish i could send you a tabletpc for testing but i'm in another country.

...shoggi's source could save some time, though.

 

Veggieryan,

For now, get the driver/daemon from this thread:

http://forum.insanelymac.com/index.php?showtopic=41054 (4th post)

and follow instructions from the 3rd post (for inkwell look in 5th post)...

Edited by paringas

Share this post


Link to post
Share on other sites

There's something odd for me - Kashoggi's driver works fine, but as soon as TabletMagic (Any version I've tried) starts to query the port, the system locks up.

 

All I need for the moment is a working pen with presure sensitivity and Kashoggi's driver provides that much. I'm ok for now.

Share this post


Link to post
Share on other sites

I was one of the two M400 users...

I confirm that it works all also in the rc4 (even better)

 

I used before the khashoggi daemon, but about sensitivity, there was some problem that in my case tabletplanner solved.

I have a pen wholly functional and it works well with inkwell too...

 

thanks scott

Share this post


Link to post
Share on other sites

After sending the first "*/r" on 19200 baud the system freezes. It's not the system's hardware, it just had a new motherboard and Khashoggi's daemon manages fine. . .

Share this post


Link to post
Share on other sites

In the interest of full testing I've posted a special version just for the TabletPC owners to test out. It is a logging version, so it creates a file /Users/Shared/tabletmagic.log with all daemon output. Since on the M275 doesn't reply and the T421X kernel-panics, I've altered this build to simply not send anything to either tablet, but just to start reading at 19200 and see what happens.

 

Maybe this won't work either, but here it is:

 

http://thinkyhead.com/pub/TabletMagic2b8rc5-tpc.dmg

 

Check the tabletmagic.log file to see if there's any activity at all.

Share this post


Link to post
Share on other sites

Well, this one works on my tc4200 and i assume will work on all the others including m400s.

IDs as "ISD V4.0 (TabletPC)"

 

positives:

1. works

2. less to no lagging in painting/sketching apps.

 

negatives:

1. very laggy input in the "testing" tab of tabletmagic. it's that laggy that it becomes dotted.

2. calibration is totally out (you can help it a little by playing with mapping, but it's still far from good)

3. tilt data's not working.

4. mapping is sort of irrelevant to tablet pcs(can't get to the very top couple of lines of the screen - couldn't fix with mapping).

 

for future:

1. mouse mode would be pretty cool to have.

2. would be nice to see "press and hold" functionality of both the tip and the side switch.

Share this post


Link to post
Share on other sites

Ryan, I wonder what the Toshiba M7 issue could be. Does the build linked in the previous posting work at all on your system? Does your serial port show up in the Preference Pane? And did you edit the appropriate plist file as paringas describes in this post?

___________________

 

Paringas, that's some good news. Is this the first version of TabletMagic that has worked on your system? I remember you sent me log files back in the beginning of February when I didn't have a clue.

 

On the surface it looks like some tablets don't answer "*" and maybe some tablets don't like to be talked to at all. That would be very annoying. But I have a feeling there's some way I could tweak the serial port settings or my initialization code to get it working.

 

The mapping problem is going to be more tricky to automate, but there may ultimately be a way to query for that information. Further research is definitely needed. Meanwhile, what are the tablet values you set in the Mapping pane to get the nearest match? And what is the resolution of your screen?

 

The slow drawing in the Testing pane might be caused by the constant logging to a file that this build does, plus all the other items in the window being updated 10 times per second. I think it'll be better once logging is off. I'll have a non-logging version of the pane available soon, and you can compare the performance.

 

And tilt... well I didn't know tilt was supported. Could you send me your log file? Id like to see if there's any tilt data I can decipher.

 

I'm anxious to hear from Ferret-Simpson whether it still crashes his system, but I suspect it won't. The fact that the system is kernel panicking makes me think it's got to be a low-level serial issue. There are still some things that I could try to help narrow down the cause.

 

And well, I did recently change the way the serial ports are scanned and configured when the daemon tries to locate a tablet. The old way was a bit lame, testing each port at one speed, then going back and trying each port at the next speed. Now it works the way it should, trying each serial port at both speeds before going on to the next port. As part of this rewrite, each serial port is only opened once, and it's kept open. So the serial speed is being changed while the port is open, which some kinds of serial hardware may dislike.

 

On the other hand, maybe the crash and the failure to answer is being caused by my addition of a call to Flush() just before "*" is sent to the tablet. One or two more test versions should be enough to discover some patterns. Or if you'd like to help get this thing working - Paringas and F-S - we could do a few email exchanges at your own pace instead of clogging up the forum.

Edited by Scott Lahteine

Share this post


Link to post
Share on other sites

Nice job Scott Lahteine.

I wonder if you could make a generic wacom usb driver for Volito and penpartner?

thx

Share this post


Link to post
Share on other sites

Adding to the "for the future" comment:

 

1. I have to press pretty hard to get to 3/4 of max pressure(displayed in testing tab)...

so it would be nice to have some sort of a scaling bar for setting the sensitivity.

 

2. The ability to set the side switch to middle click or mouse wheel click (that's how i open pages in background tabs and can't live without it).

 

_________________________________________

 

Yes it was the first version that "worked" for HP TC4200 (naming for searching purposes).

My resolution is XGA and mapping settings will follow shortly.

Share this post


Link to post
Share on other sites
2. The ability to set the side switch to middle click or mouse wheel click (that's how i open pages in background tabs and can't live without it).

In my case it suffices to work with the button remapping already present... did you try that?

I set side switch to Button 2 and it works...

Share this post


Link to post
Share on other sites
In my case it suffices to work with the button remapping already present... did you try that?

I set side switch to Button 2 and it works...

 

Button 2 works as right click

Need Button 3 for middle click

 

would be nice to find out how to configure osx to display that "scroll cross" on middle click in any app with scroll bars.

Share this post


Link to post
Share on other sites

Psygoo - It's a serial WACOM driver. SERIAL.

 

WACOM still produce MAC OS X drivers for their Wacom tablets, go on www.wacom.com and download the thing.

 

Scott - Just finishing a download, will test it in about half an hour.

 

Works perfectly! Now, about that multitablet support. . . . :thumbsup_anim:

Share this post


Link to post
Share on other sites
Psygoo - It's a serial WACOM driver. SERIAL.

 

WACOM still produce MAC OS X drivers for their Wacom tablets, go on www.wacom.com and download the thing.

 

Scott - Just finishing a download, will test it in about half an hour.

 

Works perfectly! Now, about that multitablet support. . . . :gun:

 

I know that, but Wacom dont have OSX

driver for Volito 1&2 and PenPartner 1&2

 

I just wish to have Absolute motion on my pen...

Share this post


Link to post
Share on other sites
If they're USB, you'll probably have to live with it. The TabletMagic program only supports serial protocols.

 

It is unfortunate that Wacom doesn't even support some of their older USB tablets. Someone may eventually create a Mac driver for these discontinued models, but it won't be me. USB drivers are quite different from a driver like TabletMagic due to their dependence on Apple's HID framework. As I understand it, the part of an HID driver that Mac OS X hooks into has to be written as a kernel extension. Alas, even if I started on such a project, it would be at least a year before I had anything publishable - especially given my obligations to other projects.

Share this post


Link to post
Share on other sites
After sending the first "*/r" on 19200 baud the system freezes. It's not the system's hardware, it just had a new motherboard and Khashoggi's daemon manages fine...

 

Hi Ferret-Simpson...

 

I wonder if you would do me a favor and try starting the TabletKhashDaemon (kkTabletDaemon?) in Terminal and tell me what it prints. This will tell me whether or not Kashoggi's custom-build is attempting to send "*" to the tablet or not, and give me some guidance as to whether I should continue to pursue the idea that some tablets don't like to be queried.

 

Also, did you try the TabletPC custom-build of TabletMagic that I posted a few days ago? It doesn't send any kind of query to the tablet, so if that's what's causing your system to kernel-panic, this one should hold up.

 

I'm going to post a new version soon that includes an extra set of controls (in the Extras pane) only on Hackintosh systems. These controls can be used to turn off tablet-querying and to set custom tablet scale values for experimentation. These scale values are saved to preferences and will be applied when a TabletPC digitizer is detected.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.



×