$Id: pcnte.md 756 2006-03-18 13:26:06Z sakurai $
visit [http://www.pegatech.com]().
InkLink is a OEM version of PC Notes Taker and uses same technology.
Offset 0 1 2 3 4 5 6 7 8 9 10 11 12
Packet1 BD 7c 4A 2b 10 45 3d 77 49 26 47 19 53
Packet2 DD 05 09 2b 00 45 5d 01 09 27 47 38 5d
Packet3 DD 08 09 2b 00 44 5d 02 09 27 46 38 5E
Packet4 DD 06 09 2b 08 44 5d 02 0B 28 45
Packet5 DD 07 0A 2d 00 44 5d 00 0A 27 48 38 5d
Packet6 DD 05 0A 2b 01 46 5d 00 0A 27 47
Packet7 DD 09 09 2A 08 45 5d 05 09 28 44 38 5E
Packet8 DB 53 48 2c 10 45 5b 4E 4A 2A 45 37 25
Packet9 DB 54 49 2d 18 45 5b 4d 4A 27 47 37 22
Packet10 DB 55 4A 2b 08 44 5b 52 4A 28 45
Packet11 DB 50 48 2c 10 45 5b 55 49 27 44 37 18
Padding 00 00 00 00 00 00 00
Length of packet is either 11 or 13 bytes. I don't know what make the length of each packet. PCNT sends packets as long as pen is pressed. When you lift the pen, PCNT stops sending packets.
When PCNT stops sending packet, it sends extra bytes as padding to make total number of bytes to be multiple of 8.
When the most significant bit of a byte is set, the byte is the first byte of the packet. MSB of other bytes of a packet is always 0.
Following is a example of decrease of some value. Note that MSB is 0.
55 01 -> 55 00 -> 54 7f -> 54 7e
A value at the offset of 0-1 seems to be frequency of supersonic waves.
This value takes around DD 06 when you hold the pen. When you move the pen nearer to the right censor, this value takes higher value.
When you move the pen toward the right censor at about 10cm/sec, the value changes from DD 06 to DC 7C. (note that DD 06 - DC 7C = 10)
I use the equation of Doppler effect here.
f = V/(V - v) x f0 = 340 / (340 - 0.1) x f0 = 1.000294204 x f0
where
f0: frequency of ultrasonic wave pen emits.
f: frequency that the right censor receives.
V: speed of sonicwave.
v: speed of pen.
diffrence of frequency is represented as 10 above, so
f - f0 = 10 x k (k is proportional constant)
f = 10 x k + f0 = 1.000294204 x f0
10 x k = 0.00029424 x f0
f0 = 33985 x k
I guess it represents intensity of ultra sonic wave that the right sensor recieves.
This byte take logical OR of following three values.
I don't know what the value means.
This bytes take a value around 45.
This value seems to represent phase difference between two censors but not phase difference itself.
I measured this value at two points P1 and P2 at the bottom of A4 paper.
+--------+
| |PCNT| |
| +----+ |
| |
| |
| |
| P1 P2 |
+--------+
Distance between P1 and P2 is 10cm. This value takes 5A 3B and 5E 56, difference is 539.
So, resolution of side-to-side direction is
10cm / 539 = 0.01855cm = 136.9inch
Manual of PCNT says that the resolution of this device is 100dpi. 136.9 is almost the same as 100.
I guess it represents intensity of ultra sonic wave that the left sensor recieves.
This bytes take a value around 45.
This value represent difference from right sensor, but not difference itself. Nearer you move the pen, bigger the value is.
A. When you hold the pen nearest to the right sensor, the value takes 55 25. B. When you hold the pen at the right bottom corner of A4 paper, it takes 31 0A.
Distance of A and B is 29cm. 55 25 minus 31 0a equals 4635(note that MSB is always zero!). So, resolution of this direction is
29cm / 4635 = 0.006256cm = 400inch
When distance from sensor is calculated, pen must emit both infrared and ultrasonic to measure the time difference.
Assuming emitting infrared consumes more energy, pen does not want to emit infrared so often. Is this why the length of packet vary (11 and 13)?
I think driver calucate the distance from right censor using data at offset 0-1 when length of packet is 11.
This device sends 4 extra packets to PC when you lift the pen from paper. You see packet 8-11 seems different from packet 0-7 above.
I don't know what those extra packets mean.
How can windows driver know battery remaining? Does it use intensity of ultrasonic wave instead?