test1
May 29, 2017, 07:02:27 AM *
Welcome, Guest. Please login or register.

Login with username, password and session length
News: You can attach photos hosted by the forum rather than using an external image hosting site, this means they will stay forever and not disappear after a year or two.
 
   Home   Help Search Login Register  
Pages: [1] 2 3 ... 5
  Print  
Author Topic: Converting Wacom GD-1218-R from Serial to USB  (Read 29875 times)
Dragon
Full Member
***
Posts: 121



View Profile WWW
« on: December 06, 2011, 08:53:24 AM »

So, I'd like to convert my GD-1218-R to USB.  Let me start out by quoting Bernard:

Warning: This mod will permanently disable the external serial & power connections (along with the power switch on the side of the tablet). Playing with electronics is not without risks. You can break or burn anything including your fingers.

I started with the GD-0912-R thread and read it till I understand most of it.  I compared the pictures with my board, but unfortunately there are some differences:


* IMG_20111205_195043-K499.jpg (485.77 KB. 1952x2592 - viewed 821 times.)


I then emailed Bernard the following questions:
After staring at the pictures for awhile I realized that the "TR1R\nR1R" label on my board means that the component on left is the TR1R and the component on the right is the R1R.  They seem to do that when there isn't room to put the label next to the component.

My board has a power switch and it doesn't look like the 0912 does.  Will I still be able to use the power switch?  Will having the switch change how I have to do the circuit?  Maybe I should connect 5vcc to one of the pins on the power switch instead?

Does having a power switch imply it uses more power and thus won't run off 500ma usb?  The 12V DC brick says it outputs 200ma so 500ma seems like more than enough, but I'm not sure if fewer volts means more amps required...

The post says " The pad that is "alone" is the one we care about." on the TR1R.  I don't know what that means.  Since my TR1R is in a different location and orientation, how do I know which two pads to connect?

Bernard's response:
Lots of questions Smiley

I think it would be good that you start a thread to mod your board -- take another thread as template -- this will serve as an example for the next person wanting to do exactly this.  We would then modify-back the first (or second) post to put the essential details about doing this mod.

I never saw your model, but from the 1 sec quick glance I had on your picture, I instantly recognized a lot of the familiar chips -- which is no surprise, it has been the same over the years.

If you feel lucky, you can go and follow the same pinouts. If, instead, you want to be extra careful, -- hey -- maybe the designer -- *this time around* swapped pin 10 and 11 assignations on one of the chip. The rs232 driver chip contains the same circuit replicated and thus one could pick any of the driver circuit for any signal. It just happened that I never saw a different assignation so far, (and I have seen a lot).

There are ways to check on the assignations, and for this, you need a multi-meter (continuity).    You start from the serial port well know signals (the DB9) and you build a "table" similar to what I did for the other ones.  Eventually it boils down to know which pin on the serial driver chip is assigned to what (on the TTL side).

Power switch:  Some of the serial boards have a power switch but none of the USB boards have one.  In WaxBee, you can configure how much mAmp your device wants (this is inside one of the USB descriptor). (@5V) -- yes it is max 500mA@5V -- but you better keep that configuration number low because the USB host (the PC) will actually negotiate the power with the teensy and if there is not enough mA available, it will refuse you to augment to 500mA or whatever mAmps you configured).  All USB devices are guaranteed to have 100mA. I know your board is big, but I am pretty sure this is not going to be a problem power wise, you should have enough. I have a working GD-0912-R converted to USB with power (I think) under 100mA.

If you have a multimeter, you will be able to measure the current (eventually). You have to hook the multimeter in "series" with the power line. Watch out that stuff are connected and multimeter is setup correctly before doing that test.

As you saw, the switch is not on the 5V but on the incoming external power source.  It will be disconnected unless you hack something up.  (cut all the traces going to it and make the 5V go through it).  I am not even sure that it would works fine, because the USB signals will still be connected. There is something about a resistor for the device detection. So I am not entirely sure how the detection works in this case, windows might freak out a little. (saw a device that is not responding). You could test that actually. Personnaly, I would drop the switch if I were you.  On thing: the 5V power you get from the Teensy board. So if you really want to turn off everything, you gonna have to find a spot to hook to the 5V *before* the teensy use that 5V.  The Teensy has the USB connector and feeds off the 5V directly (you might be able to bypass it on the teensy board by cutting a trace -- would have to check that).

For the TR1R (the little device with 3 pins with the letter y on it) just orient it exactly the same way as mine and you will then know which is which.   Look at the table and try to replicate connecting one thing with another.  That TR1R is just another serial port driver (because the ADM202 didn't have enough driver circuits, Wacom decided to the "missing" one from scratch with analog parts instead of getting a bigger ADM202-like part). The transistor is the main part of that circuit.

We need to ground the TTL side.

Before touching anything, plan well.   Start with the ground and 5V power first and test that. Do the serial signals after.

--------

Ok, so, I'd like to go the "careful" route and trace things out, as long as it doesn't take hours.  I do have a multimeter and I know how to test voltage, resistance/continuity, even amps (although doing that still feels dangerous since it can blow a circuit if done wrong).

I'd like to keep the power switch because this tablet will double as a monitor and it would be nice to turn off the tablet part without turning of the monitor or unplugging the USB port (those Mini USB jacks are only rated for 10k connect/disconnects or something).  But if I have to lose the switch, I can live with that.  Bernard makes a good point that the 5V connects in to the Teensy before it hits the Wacom so it does seem very difficult to make the Wacom switch cut power to the Teensy...

Bernard says "You start from the serial port well know signals (the DB9) and you build a "table" similar to what I did for the other ones.  Eventually it boils down to know which pin on the serial driver chip is assigned to what (on the TTL side)."  So that's probably where I should start, but I have little idea what any of the things are that he's referring to.  I think he may be talking about this table:

Code:
                    | Internal connector |            | ADM202 pins
 Direction | PC DB9  | (board marking)    | CheckPoint |  RS --- TTL
-----------+---------+--------------------+------------+-------------
 <--tablet | 2 (RXD) | 7 (TXD)            | CP1        |  14 <-- 11
 -->tablet | 3 (TXD) | 8 (RXD)            | CP2        |  13 --> 12
 -->tablet | 4 (DTR) | 6 (/DSR)           | CP3        |   8 --> 9
           | 5 (GND) | 4 (GND)            |            |
 <--tablet | 6 (DSR) | 5 (/DTR)           | CP4        |   7 <-- 10
 -->tablet | 7 (RTS) | 2 (CTS)            | CP5        | R2R --> TR1R

I'll see if I can make sense of that next.

« Last Edit: December 15, 2011, 11:42:43 PM by Dragon » Logged
Dragon
Full Member
***
Posts: 121



View Profile WWW
« Reply #1 on: December 06, 2011, 07:41:15 PM »

Using the volt meter on my board and Bernard's table, CP1 is connected to pin 14 of the ADM202 like in the table.  I assume the "14 <-- 11" in the table means pin 11 of the ADM202 is connected to pin 14 of the ADM202 internally (which matches the circuit diagram of the ADM202), but I don't know why that's mentioned in the above table.  Volt meter does not show continuity between pin 11 and 14 even when positive and negative probes are switched.

To anyone wanting to check their own board, chips like the ADM202 will have a notch cut or small circle indented or some other marking in one corner of the chip indicating that's where pin 1 is.  Pins are then numbered along the closest edge to the notch that contains pins.  When you run out of pins on one side, follow the edge of the chip around the corner and when you turn a second corner and reach another pin, that's the next pin number in the sequence (pin 9 in the case of ADM202).

I found the DB9 (actually DE-9) pin numbers here.  DB9 is just another name for the end of the serial cable of the Intuos.  I later noticed there are also tiny numbers printed by each hole in the Intuos DB9 connector!  By placing one end of a straightened paper clip in hole number 2 of the DB9 female connector and touching the volt meter probe to the paper clip, I confirmed it's connected to CP1.

I think "Internal connector (board marking)" 7 refers to the white connector that CP1 is connected to, and that fits with the GD-0912 board markings (the white 1 on the left of the connector indicates pin 1, the white 10 on the right indicates pin 10).  However, my board markings appear to be reversed so CP1 is connected to pin 4 of my connector.  I'll have to build a modified table:


Code:
                    | Internal connector |            | ADM202 pins
 Direction | PC DB9  | (board marking)    | CheckPoint |  RS --- TTL
-----------+---------+--------------------+------------+-------------
 <--tablet | 2 (RXD) | 4 (TXD)            | CP1        |  14 <-- 11
 -->tablet | 3 (TXD) | 3 (RXD)            | CP2        |  13 --> 12
 -->tablet | 4 (DTR) | 5 (/DSR)           | CP3        |   8 --> 9
           | 5 (GND) | 7 (GND)            |            |
 <--tablet | 6 (DSR) | 6 (/DTR)           | CP4        |   7 <-- 10
 -->tablet | 7 (RTS) | 9 (CTS)            | CP5        | R2R --> TR1R

I updated the table above with how my board connects things and tested every point.  Only the Internal connector pin numbers are different.
DB9 pin 7 connects to the bottom side of the R2R in my picture.  The bottom left pin of TR1R is grounded.

So, here are my remaining concerns:
  • There does not seem to be any connection between any of the R2R pins and any of the TR1R pins.  Should there be?   Actually, by looking carefully at the traces I did discover that the top of R2R connects to the left of D1R and to the bottom of R3R.  The top left pin of TR1R connects to the top pins of both R3R and R4R, so there is an indirect path from R2R through R3R to TR1R but there's no direct continuity.  However, if I switch to resistance, there's 5.67kohm between the bottom pin of R2R and the top left pin of TR1R, so they are connected after all.  There's .993kohm resistance between the bottom pin of R3R and top left TR1R so I assume that R3R and similar are resistors.  R3R has 102 written on it which I assume means 1.02kohms while R2R has 472 for 4.72k ohms which together are close to the 5.67kohm resistance I read.
  • Should I be testing anything in relation to "14 <-- 11", "13 --> 12", "8 --> 9", and "7 <-- 10"?  I did check resistance from pin 11 to 14 and it was infinite.
  • Is there anything else I can check before I start soldering?
« Last Edit: December 11, 2011, 04:55:09 PM by Dragon » Logged
Dragon
Full Member
***
Posts: 121



View Profile WWW
« Reply #2 on: December 06, 2011, 08:37:52 PM »

The other half of the equation is programming the Teensy USB.  I plugged it in and used waxbee.jar on Win7 and it seemed to work fine.  It said it successfully programmed the device.  I did notice that when I first plugged in the Teensy it had a slowly flashing orange light but after programming it has no light.  Is that normal?

I guess I need to make a new configuration file for the GD-1218 since GD-1212 is the largest tablet in the existing config files.  In GD-1212-R to Intuos2 12x18.tmpl.txt, can I just change SLAVE_TABLET_X/Y_MAX to equal USB_TABLET_X/Y_MAX?

I don't see anything else I would obviously need to change other than the name of the file, NAME, and DESCRIPTION.  Am I missing anything?
Logged
bernard
Administrator
Hero Member
*****
Posts: 2584


pato mania


View Profile
« Reply #3 on: December 08, 2011, 04:18:08 AM »

WaxBee Templates:  I suggest that you use the internal Waxbee editor (Raw Config Editing...) to modify the template files instead of modifying the tmpl.txt directly (although I purposely format those template files to be easily read and modified by a "human").   BTW, after editing it, you could also save it as another template so it is kept around. And when it works, I will bundle your template it in the project.

Teensy:  It is normal that the led does not blink after programming the Teensy.  Essentially, the teensy is always shipped with a "led blink" program.  We erased that and replaced it by our own.

So pick the template "GD-1212-R to Intuos2 12x18", then go to "Raw Config Editing" and ... hum yipes!  I think the numbers inside GD-1212-R template are not good. But no worries, they are very easy to fix!

So, yes, you are right, X and Y need to be equal.  Equal because both tablets are 2540 lpi (or 0.01mm per line) and they are both 12x18 AND they both have a 1.2 cm (1200) menu strip at the top (if I remember correctly).  (which is good news btw!).  If we make the math: we have 12 inches vertical (Y) and 18 inches horizontal (X), and an additional 1200 in the Y direction.  That makes:

Y = 12 inches * 2540 lpi + 1200 =  30480 + 1200 = 31680
X = 18 inches * 2540 lpi  =  45720

Actually as I am writing this, I am modifying it, so here's the content of the template file:
(I kept the menu strip as part of the active area -- so you now have an intuos2 menu strip -- if you can enable it in the drivers of course)

New template file (name = GD-1218-R to Intuos2 12x18.tmpl.txt )

Code:
#------------------------------------------------------------------------------
# WaxBee configuration
#------------------------------------------------------------------------------
NAME = "GD-1218-R to Intuos2 12x18"
DESCRIPTION = "Converts an Intuos 12x18 (GD-1218-R) to a USB Intuos2 (XD-1218-U)"
SLAVE_TABLET_X_MAX = 45720
SLAVE_TABLET_Y_MAX = 31680
USB_TABLET_X_MAX = 45720
USB_TABLET_Y_MAX = 31680

# Valid choices for USB_PORT:
# 0: DISABLED
# 1: DIGITIZER
# 2: DEBUG

USB_PORT = 1

# Valid choices for SERIAL_PORT:
# 0: DISABLED
# 1: SLAVE_DIGITIZER
# 2: DEBUG

SERIAL_PORT = 1

# Valid choices for ADB_PORT:
# 0: DISABLED
# 1: SLAVE_DIGITIZER

ADB_PORT = 0
USB_DEVICEDESC = @[
0x12, # bLength
0x1, # bDescriptorType
0x0,0x2, # bcdUSB - the Graphire3 is set at 1.1 (0x110) -- hope that is not a problem
0x0, # bDeviceClass
0x0, # bDeviceSubClass
0x0, # bDeviceProtocol
0x8, # bMaxPacketSize0 for endpoint 0
0x6a,0x5, # vendor id - WACOM Co., Ltd.
0x45,0x0, # product id - Graphire3 6x8
0x26,0x1, # bcdDevice - "version number" of the Wacom XD-1218-U
0x1, # iManufacturer
0x2, # iProduct
0x0, # iSerialNumber
0x1 # bNumConfigurations
]

USB_CONFIGDESC = @[
0x9, # bLength - USB spec 9.6.3, page 264-266, Table 9-10
0x2, # bDescriptorType;
0x22,0x0, # wTotalLength (9+9+9+7)
0x1, # bNumInterfaces
0x1, # bConfigurationValue
0x0, # iConfiguration
0x80, # bmAttributes
0x32, # bMaxPower (mA/2)(XD-1218-U = 140mA, Teensy = ??? : Total: 100mA)
0x9, # bLength - interface descriptor, USB spec 9.6.5, page 267-269, Table 9-12
0x4, # bDescriptorType
0x0, # bInterfaceNumber
0x0, # bAlternateSetting
0x1, # bNumEndpoints
0x3, # bInterfaceClass (0x03 = HID)
0x1, # bInterfaceSubClass (0x01 = Boot)
0x1, # bInterfaceProtocol (0x02 = Mouse)
0x0, # iInterface
0x9, # bLength - HID interface descriptor, HID 1.11 spec, section 6.2.1
0x21, # bDescriptorType
0x0,0x1, # bcdHID - Intuos2 is using HID version 1.00 (instead of 1.11)
0x0, # bCountryCode
0x1, # bNumDescriptors
0x22, # bDescriptorType
0x9a,0x0, # wDescriptorLength  HIDREPORTDESC Length (Graphire3 is 0x0062)
0x7, # bLength - endpoint descriptor, USB spec 9.6.6, page 269-271, Table 9-13
0x5, # bDescriptorType
0x81, # bEndpointAddress  1 | 0x80
0x3, # bmAttributes (0x03=intr)
0xa,0x0, # wMaxPacketSize
0x5 # bInterval max number of ms between transmit packets
]

USB_HIDREPORTDESC = @[
0x5,0x1, # USAGE_PAGE (Generic Desktop)
0x9,0x2, # USAGE (Mouse)
0xa1,0x1, # COLLECTION (Application)
0x85,0x1, #   REPORT_ID (1)
0x9,0x1, #   USAGE (Pointer)
0xa1,0x0, #   COLLECTION (Physical)
0x5,0x9, #     USAGE_PAGE (Button)
0x19,0x1, #     USAGE_MINIMUM (Button 1)
0x29,0x3, #     USAGE_MAXIMUM (Button 3)
0x15,0x0, #     LOGICAL_MINIMUM (0)
0x25,0x1, #     LOGICAL_MAXIMUM (1)
0x95,0x3, #     REPORT_COUNT (3)
0x75,0x1, #     REPORT_SIZE (1)
0x81,0x2, #     INPUT (Data,Var,Abs)
0x95,0x5, #     REPORT_COUNT (5)
0x81,0x3, #     INPUT (Cnst,Var,Abs)
0x5,0x1, #     USAGE_PAGE (Generic Desktop)
0x9,0x30, #     USAGE (X)
0x9,0x31, #     USAGE (Y)
0x9,0x38, #     USAGE (Wheel)
0x15,0x81, #     LOGICAL_MINIMUM (-127)
0x25,0x7f, #     LOGICAL_MAXIMUM (127)
0x75,0x8, #     REPORT_SIZE (8)
0x95,0x3, #     REPORT_COUNT (3)
0x81,0x6, #     INPUT (Data,Var,Rel)
0xc0, #   END_COLLECTION
0xc0, # END_COLLECTION
0x5,0xd, # USAGE_PAGE (Digitizers)
0x9,0x1, # USAGE (Digitizer)
0xa1,0x1, # COLLECTION (Application)
0x85,0x2, #   REPORT_ID (2)
0x9,0x0, #   USAGE (Undefined)
0x75,0x8, #   REPORT_SIZE (8)
0x95,0x9, #   REPORT_COUNT (9)
0x15,0x0, #   LOGICAL_MINIMUM (0)
0x26,0xff,0x0, #   LOGICAL_MAXIMUM (255)
0x81,0x2, #   INPUT (Data,Var,Abs)
0x9,0x3a, #   USAGE (Program Change Keys)
0x25,0x2, #   LOGICAL_MAXIMUM (2)
0x95,0x1, #   REPORT_COUNT (1)
0xb1,0x2, #   FEATURE (Data,Var,Abs)
0x85,0x3, #   REPORT_ID (3)
0x9,0x0, #   USAGE (Undefined)
0x26,0xff,0x0, #   LOGICAL_MAXIMUM (255)
0xb1,0x2, #   FEATURE (Data,Var,Abs)
0x85,0x4, #   REPORT_ID (4)
0x9,0x3a, #   USAGE (Program Change Keys)
0x25,0x1, #   LOGICAL_MAXIMUM (1)
0xb1,0x2, #   FEATURE (Data,Var,Abs)
0x85,0x5, #   REPORT_ID (5)
0x9,0x0, #   USAGE (Undefined)
0x26,0xff,0x0, #   LOGICAL_MAXIMUM (255)
0x95,0x8, #   REPORT_COUNT (8)
0xb1,0x2, #   FEATURE (Data,Var,Abs)
0x85,0x6, #   REPORT_ID (6)
0x9,0x0, #   USAGE (Undefined)
0xb1,0x2, #   FEATURE (Data,Var,Abs)
0x85,0x7, #   REPORT_ID (7)
0x9,0x0, #   USAGE (Undefined)
0x95,0x4, #   REPORT_COUNT (4)
0xb1,0x2, #   FEATURE (Data,Var,Abs)
0x85,0x8, #   REPORT_ID (8)
0x9,0x0, #   USAGE (Undefined)
0xb1,0x2, #   FEATURE (Data,Var,Abs)
0x85,0x9, #   REPORT_ID (9)
0x9,0x0, #   USAGE (Undefined)
0x95,0x1, #   REPORT_COUNT (1)
0xb1,0x2, #   FEATURE (Data,Var,Abs)
0x85,0xa, #   REPORT_ID (10)
0x9,0x0, #   USAGE (Undefined)
0x95,0x2, #   REPORT_COUNT (2)
0xb1,0x2, #   FEATURE (Data,Var,Abs)
0x85,0xb, #   REPORT_ID (11)
0x9,0x0, #   USAGE (Undefined)
0x95,0x1, #   REPORT_COUNT (1)
0xb1,0x2, #   FEATURE (Data,Var,Abs)
0xc0 # END_COLLECTION
]

USB_HIDREPORTDESC2 = @[
]

USB_STRING1 = "WACOM"
USB_STRING2 = "XD-1218-U - WaxBee emulation"
USB_STRING3 = ""
USB_STRING4 = ""
USB_STRING5 = ""

# Valid choices for USB_PROTOCOL:
# 4: WACOM_PROTOCOL4
# 5: WACOM_PROTOCOL5
# 6: WACOM_BAMBOO_TOUCH

USB_PROTOCOL = 5
USB_ENDPOINT0SIZE = 8
USB_ENDPOINT1SIZE = 10
USB_ENDPOINT2SIZE = 0
USB_ENDPOINT3SIZE = 0
USB_X_MIN = 0
USB_Y_MIN = 0
USB_X_MAX = 45720
USB_Y_MAX = 31680
USB_X_ANCHOR_MIN = 0
USB_Y_ANCHOR_MIN = 0
USB_X_ANCHOR_MAX = 0
USB_Y_ANCHOR_MAX = 0
USB_PRESSURE_MAX = 1023

# Valid choices for USB_BUTTON_ENCODING:
# 0: NONE
# 1: WACOM_INTUOS2_1218

USB_BUTTON_ENCODING = 0

# Valid choices for SLAVE_PROTOCOL:
# 1: WACOM_ADB
# 2: WACOM_ISDV4
# 3: WACOM_PROTOCOL5
# 4: WACOM_PROTOCOL4
# 5: WACOM_ISDV4_TOUCH
# 6: TOPAZ

SLAVE_PROTOCOL = 3

# (not implemented yet) Orientation affect X,Y coordinates but should also
# affect "tilt" and "rotation" values accordingly.
# NOTE: Data is rotated before MIN/MAX/ANCHOR transformation#

# Valid choices for SLAVE_ORIENTATION:
# 0: NORMAL
# 1: ROTATED_RIGHT
# 2: UPSIDE_DOWN
# 3: ROTATED_LEFT

SLAVE_ORIENTATION = 0
SLAVE_X_MIN = 0
SLAVE_Y_MIN = 0
SLAVE_X_MAX = 45720
SLAVE_Y_MAX = 31680
SLAVE_X_ANCHOR_MIN = 0
SLAVE_Y_ANCHOR_MIN = 0
SLAVE_X_ANCHOR_MAX = 0
SLAVE_Y_ANCHOR_MAX = 0
SLAVE_PRESSURE_MAX = 1023

# Configuration of special "Active" areas on the tablet (like a button).#
SLAVE_ACTIVE_AREAS = @[
]


# 16Mhz is not recommended with 3.3v supply.#

# Valid choices for CPU_CORE_CLOCK:
# 0: F_16MHZ
# 1: F_8MHZ

CPU_CORE_CLOCK = 0

# Serial port speed at initialization time.#

# Valid choices for INITIAL_SERIAL_PORT_SPEED:
# 0: BAUD_9600
# 1: BAUD_19200
# 2: BAUD_38400

INITIAL_SERIAL_PORT_SPEED = 0

# Serial port speed during normal operation.#

# Valid choices for SERIAL_PORT_SPEED:
# 0: BAUD_9600
# 1: BAUD_19200
# 2: BAUD_38400

SERIAL_PORT_SPEED = 2

# Maximum time before packet gets repeated.
# 0 to disable; max: 1200 ms#
IDLE_TIME_LIMIT_MS = 50

# Power up setup of GPIO pins
# Syntax: comma separated list of commands. Example:
# C7^,D4-,P250,D4+,P500,D4-
# D4 : Pin D4, + drive high (VCC), - drive low (GND), ^ pull-up, ~ floating, Pn Pause for "n" ms#
GPIO_INIT = ""

# Multi-purpose internal debug data. To be left empty for normal operation.#
DEBUG_DATA = @[
]

#==============================================================================
# A note about this file and its format for the braves that wants to tweak stuff
#------------------------------------------------------------------------------
# Do not change anything here unless you think you know what you are doing. :)
#
# Note that even if it stops working (a thing that can happen quite easily),
# there are virtually no chances that you break something 'physically'.
#
# In any case, it cannot 'brick' the WaxBee, there is always a way out. At worse,
# it might crash your OS (or the USB driver) or make it install USB drivers you
# did not want. Nothing that cannot be fixed.
#
#------------------------------------------------------------------------------
# Configuration items have the format :
#
#   NAME = 123
#
# Numeric values can be expressed as base-10 (decimal) or base-16 (hexadecimal)
# The hexadecimal notation requires 0x to be prepended. Example: 0x5e
#
# Text requires double-quotes as delimiters.
#
# Text comments starts with a # and goes up to the end of the line. Empty lines
# are OK.
#
# Each entry has a multi-line comment shown before. These are fixed. They will
# will be overridden when the WaxBee Config utility writes-back this file when
# 'saving'.
#
# Each value can have a one-line comment attached which will be shown after the
# value on the same line. This comment is tied to the value and will be
# retained after a read/write of the file (unless the value changed).
#
#   USB_PORT = 2  # DEBUG
#
# About multi-byte values (e.g. @[ ... ] ):
#
# The values are separated by commas and can be expressed as base-10 (decimal)
# or base-16 (hexadecimal). The hexadecimal notation requires 0x to be
# prepended.
#
# Each value is normally shown one byte (8 bits) at a time, but two bytes (16
# bits) are supported.# Currently, only bytes in 'Little-Endian mode' is
# supported. Use the notation: LE16() (i.e. Little Endian, 16-bits).
#
# For example:
#
# LE16(0x0c17),
#
# A one-line comment can be 'attached' to a value location, that comment
# reflects all the bytes that occurred before the previous comment and should be
# shown together (on the same line).  These comments are tied to the 'values'.
# These comments will be retained when the WaxBee Config tool reads/writes a
# configuration file.
#
# Typically a configuration is always a 'copy' of an existing one which already
# contained commented values
#
#==============================================================================



One thing you might tweak is the mAmp setting.  This is in the "USB Configuration Descriptor". Look for the line

 0x32,      # bMaxPower (mA/2)

-- it is currently set at 100mAmp.  This field is defined as the number of mAmp divided by two.  100mAmp / 2 = 50.  (0x32 is 50 in hexadecimal notation). If 100mAmp is not enough you might try 150mAmp.
Logged
bernard
Administrator
Hero Member
*****
Posts: 2584


pato mania


View Profile
« Reply #4 on: December 08, 2011, 04:38:56 AM »

The ADM202 chip contains drivers and receivers -- it basically convert from/to TTL voltages (0v -5v) to/from RS-232 voltages (+12v..-12v or so).  So putting the probe on both sides of a receiver circuit will not yield continuity. The Teensy is TTL. So we need to know which Serial pin function is associated to which TTL signal to discover where we need to solder our precious wires.

Surface Mount Resistors markings:  What you need to remember is that the last digit is a power-of-10 multiplier.  so  100 is 10*100 Ohm or 10 Ohm.    102 is 10 * 102 Ohms = 1000 Ohm or 1k.

It is normal that the Transistor pad are not in continuity with the stuff around it. One of the leg is actually in continuity with the TTL pin on the Wacom chip (that's pretty far on the circuit, almost half that board), and this is the signal we are interested in.  We want to ground it essentially. This is because it is one of the serial handshake signal and if we leave it like that it will go "high" and "block" part of the serial communication.  Again, just rotate my picture (or your picture) until the part is in the same direction and you will know which pad we need to ground.

CheckPoints: (CP1, CP2..) -- these often change from one board to another.  So are those in the table you posted all accurate?  If not, we should remove (or modify) them.  I am thinking about the next person who will attempt to follow your steps. I mean, when you are about to "potentially damage" your board, it is always good to triple check everything. Anything that does not "fit" becomes a big source of stress.
Logged
Dragon
Full Member
***
Posts: 121



View Profile WWW
« Reply #5 on: December 08, 2011, 06:17:02 AM »

Thanks, Bernard.  Everything I could test in my table is accurate, including checkpoints.  The only thing that changed were the internal connector pin numbers.  The only part I couldn't (or didn't know how to) test were the right side values in the "14 <-- 11", "13 --> 12", "8 --> 9", and "7 <-- 10" column.  I did test the left side values. (14, 13, 8, and 7 are correct).
Logged
Dragon
Full Member
***
Posts: 121



View Profile WWW
« Reply #6 on: December 14, 2011, 08:47:12 AM »

Well, I went ahead and did it.  The Intuos 1 is now soldered to the Teensy.  When I plug in the USB the teensy flashes fast for about a second, then stays lit solid for a second, then goes dark.  Using the latest Wacom drivers 6.1.7-3.  The tablet has power and shows a red LED.  When the pen is pressed on it, LED turns green.  Wacom control panel seems to think an Intuos 2 is connected (although I don't see how to check to make sure it really thinks it's connected) but moving the mouse and clicking the pen has no effect.

What's the next step in troubleshooting?
Logged
bernard
Administrator
Hero Member
*****
Posts: 2584


pato mania


View Profile
« Reply #7 on: December 14, 2011, 02:18:38 PM »

You have good signs. The tablet appears to be fine and the teensy is responding to USB.  There is a "diagnostic" panel under the wacom control panel's "about" page. But you will probably won't see anything in there.

My guess is the serial connection between the teensy and the tablet, either something is not properly grounded or the TX/RX is not connected correctly (or there is a short of some sort). The next step is to flash a "debug" template for a GD-* board and run HID Listen.  For the soldering and connections, can you take a close picture of the area?
Logged
Dragon
Full Member
***
Posts: 121



View Profile WWW
« Reply #8 on: December 14, 2011, 05:58:20 PM »

Here's the wiring diagram I made before I started.  Red means cut, yellow are wires.


* IMG_20111213_203813-wiring diagram.jpg (478.25 KB. 2592x1952 - viewed 949 times.)


Finished wiring:


* IMG_20111214_083105-K484.jpg (484.36 KB. 1500x1991 - viewed 674 times.)


UPDATE: A few weeks later I noticed the lower left yellow wire in the picture above was loose where it connects to ground near the left side of the off-white serial connector on the Wacom board.  This is presumably because it's very hard to get the ground-plane hot enough to properly bond to the solder.  I had the same problem on my 0405 build.  So don't solder your ground wire to the ground plane like I did above, solder it somewhere like the ground pin of the serial connector or to the metal on either side of the serial connector.  The ground-plane is a large, irregularly shaped piece of metal in the circuit board that all ground points connect to.  You can sort of see its size and shape as a lightening in the color of the green plastic.  Its large size spreads heat away from any point you try to solder to and makes the solder unlikely to bond firmly.

Closeup of ADM202.  The bottom left five pins are cut and I verified with the sharp end of a pushpin there is no connection between top of cut leg and bottom soldered wire:


* IMG_20111214_083214-K484.jpg (483.01 KB. 2221x1672 - viewed 624 times.)


Another angle:


* IMG_20111214_083153-K484.jpg (485.29 KB. 1628x2162 - viewed 583 times.)


I also used a pushpin to verify the wires connected to ADM202 are making contact with the edges of the pads beneath them.  No wires are shorted.  I did the same for VCC and the grounds.  No soldered wires are loose and do not move with light pressure from a probe.  Solders on the Teensy side are quite solid.

Is there any other way to verify the ADM202 wires are making solid contact with the pads?

Another thing I noticed last night was the Wacom control panel showed an option to change settings for a pen, but then I disconnected the tablet and reconnected it and the pen disappeared from the control panel.  I had the pen sitting on the tablet and about 30 seconds later the control panel crashed.  That makes me think it may have been getting data from the Teensy but the data was malformed in some way and crashed it.

« Last Edit: February 04, 2012, 08:22:50 PM by Dragon » Logged
Dragon
Full Member
***
Posts: 121



View Profile WWW
« Reply #9 on: December 14, 2011, 06:43:58 PM »

Everything in "Firmware > Test Tools" and "Firmware > Program Device with Test Firmware" is greyed out so I can't run HIDListen.  I tried using the "GD-0912-R Debug" template, unplugged the USB and plugged it in again, and same effect.

I'm using WinXP 32bit and Bernard mentioned in another thread that Firmware couldn't be flashed without a 64bit OS, but maybe that's changed.  Maybe HID Listen won't run in 32 bit?

EDIT: I brought the tablet over to my Win7 64bit machine and plugged it in, waited the little bubble in the lower right of the screen to say it had installed driver software, and then brought up waxbee.jar and it also had all greyed out tools.

Also, when I said earlier that Wacom's control panel had detected a pen, I was wrong.  It was showing something else (a menu control or something) that later disappeared before it crashed.  I did the diagnostics in the About dialog and it showed the Intuos2 connected but all the fields on the pointing device side were empty whether I moved the pen close or not.
« Last Edit: December 14, 2011, 06:50:22 PM by Dragon » Logged
Dragon
Full Member
***
Posts: 121



View Profile WWW
« Reply #10 on: December 14, 2011, 07:09:13 PM »

Here's what the Wacom control panel looks like using the firmware template Bernard posted earlier.


* Wacom panel.JPG (91.54 KB. 1024x768 - viewed 731 times.)


I also found the Wacom HID dump utility on google code but it only reports what you see in the screenshot - it doesn't show anything different when I move the pen close (not sure if it's supposed to).

Before that crash I mentioned earlier the "Tool:" and "Application:" rows in the control panel had become blank so they didn't show "Functions" or "All".

Logged
bernard
Administrator
Hero Member
*****
Posts: 2584


pato mania


View Profile
« Reply #11 on: December 14, 2011, 07:26:01 PM »

I now support 64 bit Windows for flashing the Teensy.

Use Paul's HID Listen software instead of the one bundled in WaxBee (that one does not work).   Paul built a Windows, Linux and Mac OSX version.

http://www.pjrc.com/teensy/hid_listen.html

« Last Edit: December 14, 2011, 07:45:48 PM by bernard » Logged
Dragon
Full Member
***
Posts: 121



View Profile WWW
« Reply #12 on: December 14, 2011, 08:09:57 PM »

Thanks, Bernard.

I've made some progress.  I realized that the firmware reprogram wasn't working on Winxp 32.  It showed that it was starting to flash and then it crashed silently, leaving an error log instead of showing the success dialog.  I didn't realize for a while that anything was going wrong.

So I flashed it on my Win7 machine.  Still nothing.  But then I wondered if maybe I should turn the tablet's power switch on?  Doing so made the Wacom control panel recognize a pen!  But that's it - it wouldn't move the mouse and diagnostics always said the pen was out of proximity and at 0,0.

So apparently the power light and the green LED when pen is clicked didn't mean all the internals of the tablet were turned on.  The power switch still needed to be turned on.

EDIT: After I fixed the root of the problem (discussed later) that was sending bad data to the Teensy, I can now turn the power switch off and it still works fine, so apparently my turning on the power switch hadn't really done anything (or maybe it altered voltages/resistances enough to get some data through?  Who knows.)

I tried Paul's HID Listen and it just said listening for device endlessly.  So I flashed the GD-1212-R Debug firmware and now HIDListen shows lots of stuff when the pen is put in proximity and moved.  My command prompt scroll buffer overflowed, but here's the end of the data (the last thing I did was press the pen tip hard in the lower left corner):

*(?!)F8x78Ç
*(?!)80Ç
*(?!)80x78Ç
*(?!)80x78Ç
*(?!)80x78Ç
*(?!)80°
*(?!)F8x78x78Ç
*(?!)800000°
*(?!)F8Ç
*(?!)80°
*(?!)F8°
*(?!)F8x78Ç
*(?!)80Ç
*(?!)80x78Ç
*(?!)80x78x78°
*(?!)F8x78x78Ç
*(?!)80000000x7800Ç
*(?!)80Ç
*(?!)80Ç
*(?!)80Ç
*(?!)80°
*(?!)F8x7800Ç
*(?!)80°
*(?!)F8x78x78Ç
*(?!)800000x78x78x78°
*(?!)F8Ç
*(?!)80Ç
*(?!)80Ç
*(?!)800000Ç
*(?!)80Ç
*(?!)80°
*(?!)F8x78x78Ç
*(?!)800000x78x78Ç
*(?!)80x78Ç
*(?!)80Ç
*(?!)80Ç
*(?!)80x78x78Ç
*(?!)80x78°
*(?!)F8x78x78Ç
*(?!)800000Ç
*(?!)8000x78Ç
*(?!)80x78Ç
*(?!)80Ç
*(?!)80Ç
*(?!)80Ç
*(?!)80x78x78°
*(?!)F8x78x78Ç
*(?!)80000000x7800°
*(?!)F8Ç
*(?!)80Ç
*(?!)80Ç
*(?!)8000Ç
*(?!)80Ç
*(?!)80x78°
*(?!)F8x78x78Ç
*(?!)800000x78x78x78Ç
*(?!)80Ç
*(?!)80Ç
*(?!)80°
*(?!)F8°
*(?!)F8x7800Ç
*(?!)80°
*(?!)F8x78x78Ç
*(?!)800000x78x7800Ç
*(?!)80Ç
*(?!)80Ç
*(?!)80°
*(?!)F8°
*(?!)F8x78x7800Ç
*(?!)80°
*(?!)F8x78Ç
*(?!)80Ç
*(?!)80000000x78Ç
*(?!)80x78Ç
*(?!)80Ç
*(?!)80°
*(?!)F800x78Ç
*(?!)80Ç
*(?!)80Ç
*(?!)80°
*(?!)F8x78Ç
*(?!)80Ç
*(?!)80000000x78x78Ç
*(?!)80Ç
*(?!)80Ç
*(?!)80°
*(?!)F8x78x78Ç
*(?!)80Ç
*(?!)80x78°
*(?!)F8x78Ç
*(?!)80Ç
*(?!)800000x78x78°
*(?!)F8x78Ç
*(?!)80Ç
*(?!)80°
*(?!)F800Ç
*(?!)80Ç
*(?!)80x78x78x78Ç
*(?!)80Ç
*(?!)800000x78x78x78Ç
*(?!)80Ç
*(?!)80Ç
*(?!)80°
*(?!)F8x78Ç
*(?!)80x78x78x78Ç
*(?!)80Ç
*(?!)800000°
*(?!)F8Ç
*(?!)80°
*(?!)F8°
*(?!)F8x78Ç
*(?!)80Ç
*(?!)80°
*(?!)F8x78x78x78x78x78x78Ç
*(?!)80000000x78x78Ç
*(?!)80Ç
*(?!)80Ç
*(?!)80°
*(?!)F8x78x78x78x78x78Ç
*(?!)800000x78x78Ç
*(?!)80x78Ç
*(?!)80Ç
*(?!)80°
*(?!)F8x78x78x78x78x78Ç
*(?!)800000°
*(?!)F8Ç
*(?!)80°
*(?!)F8°
*(?!)F8x78Ç
*(?!)80Ç
*(?!)80°
*(?!)F8°
*(?!)F8x78x78x78x78x78Ç
*(?!)800000x78x78x78Ç
*(?!)80Ç
*(?!)80Ç
*(?!)80°
*(?!)F8x78x78x78x78x78x78Ç
*(?!)80000000x7800°
*(?!)F8Ç
*(?!)80Ç
*(?!)80°
*(?!)F800°
*(?!)F8x78x78x78Ç
*(?!)80Ç
*(?!)800000x78x78x78°
*(?!)F8Ç
*(?!)80Ç
*(?!)80°
*(?!)F800°
*(?!)F8x78x78x78Ç
*(?!)80Ç
*(?!)80000000x78Ç
*(?!)80x78Ç
*(?!)80Ç
*(?!)80°
*(?!)F8Ç
*(?!)80x78x78x78x78Ç
*(?!)80Ç
*(?!)800000x78x7800Ç
*(?!)80Ç
*(?!)80Ç
*(?!)80°
*(?!)F8x78°
*(?!)F8x78x78x78Ç
*(?!)80Ç
*(?!)800000Ç
*(?!)8000x78x78Ç
*(?!)80Ç
*(?!)80Ç
*(?!)80°
*(?!)F8Ç
*(?!)80x78x78x78x78Ç
*(?!)80Ç
*(?!)800000x78x78x78Ç
*(?!)80Ç
*(?!)80Ç
*(?!)80°
*(?!)F8°
*(?!)F8x78x78x78x78Ç
*(?!)80Ç
*(?!)800000x78x78x78°
*(?!)F8Ç
*(?!)80Ç
*(?!)80°
*(?!)F800°
*(?!)F8x78x78x78Ç
*(?!)80Ç
*(?!)800000x78x78Ç
*(?!)80x78Ç
*(?!)80Ç
*(?!)80°
*(?!)F8°
*(?!)F8x78x78x78x78Ç
*(?!)80Ç
*(?!)800000Ç
*(?!)8000x78x78Ç
*(?!)80Ç
*(?!)80Ç
*(?!)80°
*(?!)F8Ç
*(?!)80x78x78x78x7800Ç
*(?!)800000x78x78x78Ç
*(?!)80Ç
*(?!)80Ç
*(?!)80°
*(?!)F8x78x78x78x78Ç
*(?!)80Ç
*(?!)800000°
*(?!)F800x78x78Ç
*(?!)80Ç
*(?!)80Ç
*(?!)80°
*(?!)F8x78x78x78x78Ç
*(?!)80Ç
*(?!)80000000x78Ç
*(?!)80x78Ç
*(?!)80Ç
*(?!)80°
*(?!)F8°
*(?!)F8x78x78x78x78Ç
*(?!)80Ç
*(?!)80000000x78Ç
*(?!)80x78Ç
*(?!)80Ç
*(?!)80°
*(?!)F8Ç
*(?!)80x78x78x78x78Ç
*(?!)80Ç
*(?!)80000000x78Ç
*(?!)80x78Ç
*(?!)80Ç
*(?!)80°
*(?!)F8Ç
*(?!)80x78x78°
*(?!)F8x78Ç
*(?!)80Ç
*(?!)80000000x78°
*(?!)F8x78Ç
*(?!)80Ç
*(?!)80°
*(?!)F8Ç
*(?!)80x78x78°
*(?!)F8x78Ç
*(?!)80Ç
*(?!)80000000x78x78Ç
*(?!)80Ç
*(?!)80Ç
*(?!)80°
*(?!)F8x78x78x78°
*(?!)F8x78Ç
*(?!)80Ç
*(?!)800000°
*(?!)F8Ç
*(?!)80°
*(?!)F800Ç
*(?!)80Ç
*(?!)80Ç
*(?!)80°
*(?!)F8Ç
*(?!)80Ç
*(?!)80°
*(?!)F8x78°
*(?!)F8x78Ç
*(?!)80Ç
*(?!)800000x78Ç
*(?!)80°
*(?!)F8°
*(?!)F8x78°
*(?!)F8x78°
*(?!)F8x78°
*(?!)F8x7800°
*(?!)F8x78Ç
*(?!)80Ç
*(?!)800000°
*(?!)F8°
*(?!)F8Ç
*(?!)80°
*(?!)F8x78Ç
*(?!)80Ç
*(?!)80Ç
*(?!)80°
*(?!)F8°
*(?!)F8Ç
*(?!)80°
*(?!)F8Ç
*(?!)80x78°
*(?!)F8x78Ç
*(?!)80Ç
*(?!)800000Ç
*(?!)80Ç
*(?!)80°
*(?!)F8Ç
*(?!)80x7800Ç
*(?!)800000000000°
*(?!)F8x78x78Ç
*(?!)800000000000000000

(*!)
« Last Edit: December 30, 2011, 04:03:33 AM by Dragon » Logged
Dragon
Full Member
***
Posts: 121



View Profile WWW
« Reply #13 on: December 14, 2011, 08:16:02 PM »

Here's a full log (attached).  I placed the pen in the center of the tablet and lightly dragged it to lower left corner (I tried not to click but it detected some pressure cause the LED turned green), lifted it, then pressed it hard, then removed it.

* hid.txt (40.98 KB - downloaded 228 times.)
Logged
bernard
Administrator
Hero Member
*****
Posts: 2584


pato mania


View Profile
« Reply #14 on: December 14, 2011, 08:47:52 PM »

Do not panic or worry -- I am pretty sure we will find the culprit. (unless you need that tablet working today?)

I will analyse the output.

In the meantime, you can also try to setup the serial port driver by following the instructions here: http://www.pjrc.com/teensy/usb_serial.html  but use the version on the waxbee site: http://code.google.com/p/waxbee/downloads/list   then you need to grab a term software (can't remember the name of mine) and connect to the COM port that the virtual driver created.    None-8 bit-1 stop bit Speed is either 9600 or 38400 (tablet has 2 modes, starts at 9600 and you then tell it to go at 38400 speed).

Try the command  ~#<enter>
also try:
~C<enter>

I think that command worked because I saw it in the hid.txt output.

Check out the following to see the commands that are being used to talk to the tablet. Try them manually.
http://code.google.com/p/waxbee/source/browse/WaxB_Adb2Usb/protocol5_serial.cpp

I have little time, but I will assists you as much as I can.
« Last Edit: December 14, 2011, 08:50:20 PM by bernard » Logged
Pages: [1] 2 3 ... 5
  Print  
 
Jump to:  


Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2015, Simple Machines Valid XHTML 1.0! Valid CSS!