├── .gitignore
├── Debug
├── CDC.cpp.d
├── HID.cpp.d
├── HardwareSerial.cpp.d
├── IPAddress.cpp.d
├── Print.cpp.d
├── Stream.cpp.d
├── Tone.cpp.d
├── TrackPoint.cpp.d
├── TrackPoint_INT.cpp.d
├── TrackPoint_INT.eep
├── TrackPoint_INT.elf
├── TrackPoint_INT.hex
├── USBCore.cpp.d
├── WInterrupts.c.d
├── WMath.cpp.d
├── WString.cpp.d
├── main.cpp.d
├── malloc.c.d
├── new.cpp.d
├── realloc.c.d
├── wiring.c.d
├── wiring_analog.c.d
├── wiring_digital.c.d
├── wiring_pulse.c.d
└── wiring_shift.c.d
├── LICENSE
├── README.md
├── TrackPoint.cpp
├── TrackPoint.h
├── TrackPoint_INT.atsln
├── TrackPoint_INT.atsuo
├── TrackPoint_INT.cppproj
├── TrackPoint_INT.ino
├── Visual Micro
├── .TrackPoint_INT.vsarduino.h
├── .arduino-trackpoint-extended.vsarduino.h
├── Compile.vmps.xml
├── Configuration.Debug.vmps.xml
└── Upload.vmps.xml
└── readme-photo
└── Leonardo-TrackPoint.jpg
/.gitignore:
--------------------------------------------------------------------------------
1 | # Compiled Object files
2 | *.slo
3 | *.lo
4 | *.o
5 |
6 | # Compiled Dynamic libraries
7 | *.so
8 | *.dylib
9 |
10 | # Compiled Static libraries
11 | *.lai
12 | *.la
13 | *.a
14 |
--------------------------------------------------------------------------------
/Debug/CDC.cpp.d:
--------------------------------------------------------------------------------
1 | \
2 | C:\Users\CONG\AppData\Local\VMicro\Arduino\Builds\TrackPoint_INT\micro\CDC.cpp.o: \
3 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\CDC.cpp \
4 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/Platform.h \
5 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/Arduino.h \
6 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/binary.h \
7 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/WCharacter.h \
8 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/WString.h \
9 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/HardwareSerial.h \
10 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/Stream.h \
11 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/Print.h \
12 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/Printable.h \
13 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino/new.h \
14 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/USBAPI.h \
15 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\variants\micro/pins_arduino.h \
16 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\variants\micro/../leonardo/pins_arduino.h \
17 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/USBDesc.h \
18 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/USBCore.h \
19 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/USBAPI.h
20 |
--------------------------------------------------------------------------------
/Debug/HID.cpp.d:
--------------------------------------------------------------------------------
1 | \
2 | C:\Users\CONG\AppData\Local\VMicro\Arduino\Builds\TrackPoint_INT\micro\HID.cpp.o: \
3 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\HID.cpp \
4 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/Platform.h \
5 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/Arduino.h \
6 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/binary.h \
7 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/WCharacter.h \
8 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/WString.h \
9 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/HardwareSerial.h \
10 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/Stream.h \
11 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/Print.h \
12 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/Printable.h \
13 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino/new.h \
14 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/USBAPI.h \
15 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\variants\micro/pins_arduino.h \
16 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\variants\micro/../leonardo/pins_arduino.h \
17 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/USBDesc.h \
18 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/USBCore.h \
19 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/USBAPI.h \
20 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/USBDesc.h
21 |
--------------------------------------------------------------------------------
/Debug/HardwareSerial.cpp.d:
--------------------------------------------------------------------------------
1 | \
2 | C:\Users\CONG\AppData\Local\VMicro\Arduino\Builds\TrackPoint_INT\micro\HardwareSerial.cpp.o: \
3 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\HardwareSerial.cpp \
4 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/Arduino.h \
5 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/binary.h \
6 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/WCharacter.h \
7 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/WString.h \
8 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/HardwareSerial.h \
9 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/Stream.h \
10 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/Print.h \
11 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/Printable.h \
12 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino/new.h \
13 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/USBAPI.h \
14 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\variants\micro/pins_arduino.h \
15 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\variants\micro/../leonardo/pins_arduino.h \
16 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/wiring_private.h \
17 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/Arduino.h \
18 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/HardwareSerial.h
19 |
--------------------------------------------------------------------------------
/Debug/IPAddress.cpp.d:
--------------------------------------------------------------------------------
1 | \
2 | C:\Users\CONG\AppData\Local\VMicro\Arduino\Builds\TrackPoint_INT\micro\IPAddress.cpp.o: \
3 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\IPAddress.cpp \
4 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino/Arduino.h \
5 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino/binary.h \
6 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino/WCharacter.h \
7 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino/WString.h \
8 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino/HardwareSerial.h \
9 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino/Stream.h \
10 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino/Print.h \
11 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino/Printable.h \
12 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino/new.h \
13 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino/USBAPI.h \
14 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\variants\micro/pins_arduino.h \
15 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\variants\micro/../leonardo/pins_arduino.h \
16 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino/IPAddress.h \
17 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino/Printable.h
18 |
--------------------------------------------------------------------------------
/Debug/Print.cpp.d:
--------------------------------------------------------------------------------
1 | \
2 | C:\Users\CONG\AppData\Local\VMicro\Arduino\Builds\TrackPoint_INT\micro\Print.cpp.o: \
3 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\Print.cpp \
4 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/Arduino.h \
5 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/binary.h \
6 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/WCharacter.h \
7 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/WString.h \
8 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/HardwareSerial.h \
9 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/Stream.h \
10 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/Print.h \
11 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/Printable.h \
12 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino/new.h \
13 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/USBAPI.h \
14 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\variants\micro/pins_arduino.h \
15 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\variants\micro/../leonardo/pins_arduino.h \
16 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/Print.h
17 |
--------------------------------------------------------------------------------
/Debug/Stream.cpp.d:
--------------------------------------------------------------------------------
1 | \
2 | C:\Users\CONG\AppData\Local\VMicro\Arduino\Builds\TrackPoint_INT\micro\Stream.cpp.o: \
3 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\Stream.cpp \
4 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/Arduino.h \
5 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/binary.h \
6 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/WCharacter.h \
7 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/WString.h \
8 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/HardwareSerial.h \
9 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/Stream.h \
10 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/Print.h \
11 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/Printable.h \
12 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino/new.h \
13 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/USBAPI.h \
14 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\variants\micro/pins_arduino.h \
15 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\variants\micro/../leonardo/pins_arduino.h \
16 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/Stream.h
17 |
--------------------------------------------------------------------------------
/Debug/Tone.cpp.d:
--------------------------------------------------------------------------------
1 | \
2 | C:\Users\CONG\AppData\Local\VMicro\Arduino\Builds\TrackPoint_INT\micro\Tone.cpp.o: \
3 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\Tone.cpp \
4 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/Arduino.h \
5 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/binary.h \
6 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/WCharacter.h \
7 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/WString.h \
8 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/HardwareSerial.h \
9 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/Stream.h \
10 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/Print.h \
11 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/Printable.h \
12 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino/new.h \
13 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/USBAPI.h \
14 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\variants\micro/pins_arduino.h \
15 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\variants\micro/../leonardo/pins_arduino.h
16 |
--------------------------------------------------------------------------------
/Debug/TrackPoint.cpp.d:
--------------------------------------------------------------------------------
1 | \
2 | C:\Users\CONG\AppData\Local\VMicro\Arduino\Builds\TrackPoint_INT\micro\TrackPoint.cpp.o: \
3 | C:\Users\CONG\AppData\Local\VMicro\Arduino\Builds\TrackPoint_INT\micro\TrackPoint.cpp \
4 | C:\Users\CONG\AppData\Local\VMicro\Arduino\Builds\TrackPoint_INT\micro\/TrackPoint.h \
5 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino/Arduino.h \
6 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino/binary.h \
7 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino/WCharacter.h \
8 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino/WString.h \
9 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino/HardwareSerial.h \
10 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino/Stream.h \
11 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino/Print.h \
12 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino/Printable.h \
13 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino/new.h \
14 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino/USBAPI.h \
15 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\variants\micro/pins_arduino.h \
16 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\variants\micro/../leonardo/pins_arduino.h
17 |
--------------------------------------------------------------------------------
/Debug/TrackPoint_INT.cpp.d:
--------------------------------------------------------------------------------
1 | \
2 | C:\Users\CONG\AppData\Local\VMicro\Arduino\Builds\TrackPoint_INT\micro\TrackPoint_INT.cpp.o: \
3 | C:\Users\CONG\AppData\Local\VMicro\Arduino\Builds\TrackPoint_INT\micro\TrackPoint_INT.cpp \
4 | C:\Users\CONG\AppData\Local\VMicro\Arduino\Builds\TrackPoint_INT\micro\/TrackPoint.h \
5 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino/Arduino.h \
6 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino/binary.h \
7 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino/WCharacter.h \
8 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino/WString.h \
9 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino/HardwareSerial.h \
10 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino/Stream.h \
11 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino/Print.h \
12 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino/Printable.h \
13 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino/new.h \
14 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino/USBAPI.h \
15 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\variants\micro/pins_arduino.h \
16 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\variants\micro/../leonardo/pins_arduino.h \
17 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino/arduino.h
18 |
--------------------------------------------------------------------------------
/Debug/TrackPoint_INT.eep:
--------------------------------------------------------------------------------
1 | :00000001FF
2 |
--------------------------------------------------------------------------------
/Debug/TrackPoint_INT.elf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rampadc/arduino-trackpoint-extended/e55cef0f2ce805d951d4771db788dac6ca8800c4/Debug/TrackPoint_INT.elf
--------------------------------------------------------------------------------
/Debug/TrackPoint_INT.hex:
--------------------------------------------------------------------------------
1 | :100000000C9477010C945E040C948B040C94B8044B
2 | :100010000C94E5040C949F010C949F010C94120520
3 | :100020000C949F010C949F010C94450A0C94CC0AEB
4 | :100030000C949F010C949F010C949F010C949F01C0
5 | :100040000C949F010C949F010C949F010C949F01B0
6 | :100050000C949F010C949F010C949F010C943F05FC
7 | :100060000C949F010C949F010C949F010C949F0190
8 | :100070000C949F010C949F010C949F010C949F0180
9 | :100080000C949F010C949F010C949F010C949F0170
10 | :100090000C949F010C949F010C949F010C949F0160
11 | :1000A0000C949F010C949F010C949F010000000090
12 | :1000B000240027002A002D00300000000000250049
13 | :1000C00028002B002E003100000000002300260035
14 | :1000D00029002C002F000404040404030405020278
15 | :1000E00002020403020202020606060606060404D1
16 | :1000F00002020204040802011040804010204080E7
17 | :10010000408008020401804020100201108010206D
18 | :1001100040400000000200080E0000030401000B34
19 | :1001200000000000000000000000000000000000CF
20 | :10013000070605040100080A0B0C0D090501090258
21 | :10014000A1010901A1008501050919012903150073
22 | :10015000250195037501810295017505810305014E
23 | :100160000930093109381581257F75089503810605
24 | :10017000C0C005010906A1018502050719E029E7AC
25 | :100180001500250175019508810295017508810307
26 | :100190009506750815002565050719002965810074
27 | :1001A000C00904020001030000000921010100014F
28 | :1001B00022650007058403400001000000000000E4
29 | :1001C00000002A2B280000000000000000000000B2
30 | :1001D000000000000000000000002C9EB4A0A1A2BE
31 | :1001E000A434A6A7A5AE362D3738271E1F202122FE
32 | :1001F00023242526B333B62EB7B89F8485868788F7
33 | :10020000898A8B8C8D8E8F909192939495969798E6
34 | :10021000999A9B9C9D2F3130A3AD350405060708A4
35 | :10022000090A0B0C0D0E0F101112131415161718C6
36 | :10023000191A1B1C1DAFB1B0B50004030904220339
37 | :10024000410072006400750069006E006F002000BC
38 | :100250004D006900630072006F0020002000200044
39 | :100260001803410072006400750069006E006F00A1
40 | :1002700020004C004C00430012010002000000402E
41 | :100280004123378000010102000112010002020037
42 | :1002900000404123378000010102000100C180813C
43 | :1002A000C1080B0002020201000904000001020261
44 | :1002B00000000524001001052401010104240206A8
45 | :1002C0000524060001070581031000400904010010
46 | :1002D000020A000000070502024000000705830231
47 | :1002E00040000000B3036B077F095F0CAC031124CF
48 | :1002F0001FBECFEFDAE0DEBFCDBF11E0A0E0B1E07E
49 | :10030000EAE7FAE102C005900D92AA32B107D9F7E7
50 | :1003100011E0AAE2B1E001C01D92A23BB107E1F7F2
51 | :1003200012E0CCEED2E004C02297FE010E942C0D18
52 | :10033000C43ED107C9F70E948F080C94300D0C946D
53 | :1003400000000895FC0183850895DF93CF9300D0CA
54 | :100350000F92CDB7DEB7DE011196FC01339683E034
55 | :1003600001900D928150E1F769817A818B8190E053
56 | :100370000F900F900F90CF91DF910895CF93DF935F
57 | :10038000EC011B8689810E94000720E0892B09F07F
58 | :1003900021E028878E8181508F838F81883058F4A7
59 | :1003A000898528859F8130E002C0220F331F9A95EE
60 | :1003B000E2F7822B89878E818F5F8E838E818B30CF
61 | :1003C000C1F48A85813041F0813018F0823079F4AF
62 | :1003D00009C089858B8302C089858C838A858F5F5C
63 | :1003E0008A8705C089858D831A8681E08B871E8266
64 | :1003F0001986DF91CF9108951F93162F862F61E004
65 | :100400000E944006812F60E00E94CD061F91089552
66 | :100410001F93162F862F60E00E944006812F61E017
67 | :100420000E94CD061F910895FF920F931F93CF93C3
68 | :10043000DF93EC0168810E940802CE0169810E946D
69 | :10044000080282E390E00E94E00588810E94000794
70 | :100450000197D9F385E090E00E94E00588810E9431
71 | :100460000007892BD9F3FF2400E011E088810E9466
72 | :1004700000070197D9F389810E940007019709F4C9
73 | :10048000F12A88810E940007892BD9F30F5F083079
74 | :1004900011F0110FEBCF88810E9400070197D9F36B
75 | :1004A00088810E940007892BD9F388810E94000768
76 | :1004B0000197D9F388810E940007892BD9F3CE01D7
77 | :1004C00068810E94FC018F2DDF91CF911F910F91C8
78 | :1004D000FF900895DF92EF92FF920F931F93CF93B7
79 | :1004E000DF93EC01D62E69810E940802CE0168815B
80 | :1004F0000E9408028CE291E00E94E005CE01688132
81 | :100500000E94FC018CE291E00E94E005CE0169812D
82 | :100510000E94FC018AE090E00E94E005CE01688123
83 | :100520000E94080288810E9400070197D9F3EE24F7
84 | :10053000FF24F3940D2D10E0D0FE05C0CE0169819B
85 | :100540000E94080204C0CE0169810E94FC018881DA
86 | :100550000E940007892BD9F388810E940007019728
87 | :10056000D9F381E0D822FD24E39488E0E81621F055
88 | :1005700015950795D02EDECFFF2029F0CE01698199
89 | :100580000E94080204C0CE0169810E94FC0188819A
90 | :100590000E940007892BD9F388810E9400070197E8
91 | :1005A000D9F3CE0169810E94080282E390E00E94A3
92 | :1005B000E00588810E9400070197D9F388810E9495
93 | :1005C0000007892BD9F389810E940007892BB1F399
94 | :1005D000CE0168810E94FC01DF91CF911F910F91A4
95 | :1005E000FF90EF90DF900895EF92FF920F931F938B
96 | :1005F0008C01F62EE42E62EE0E946A02C8010E946F
97 | :100600001402C80161E80E946A02C8010E94140233
98 | :10061000C8016F2D0E946A02C8010E941402C8011D
99 | :100620006E2D0E946A02C8010E9414021F910F9150
100 | :10063000FF90EF900895462F6AE40E94F402089517
101 | :100640000F931F938C016AEE0E946A02C8010E94F8
102 | :100650001402C80164EF0E946A02C8010E941402D9
103 | :10066000C801F80160810E940802C801F801618197
104 | :100670000E9408021F910F9108950F93CF93DF936B
105 | :10068000EC01688349832A83002331F01E821F8294
106 | :10069000188619861A861B86CE0168810E94080278
107 | :1006A000CE0169810E940802DF91CF910F910895D8
108 | :1006B000CF93DF93EC018A81882391F061E00E945F
109 | :1006C00040068A8161E00E94CD0660ED77E080E01F
110 | :1006D00090E00E9487058A8160E00E94CD061EC0DE
111 | :1006E000CE0168810E94FC0165E070E080E090E04E
112 | :1006F0000E94870560ED77E080E090E00E9487052A
113 | :10070000CE0168810E9408026AE070E080E090E01B
114 | :100710000E948705CE0168810E940802DF91CF9177
115 | :1007200008950F938130910561F46F5F7F4F91F4CD
116 | :100730008AE291E063E042E020E001E00E943D03B4
117 | :1007400009C0892B39F46F5F7F4F21F48AE291E071
118 | :100750000E94A1010F91089580E090E06FEF7FEF7C
119 | :100760000E949103089581E090E06FEF7FEF0E9477
120 | :10077000910308958AE291E00E94BE010895DF93FB
121 | :10078000CF9300D000D000D0CDB7DEB78AE291E0A1
122 | :100790000E94A2018823C1F08AE291E00E94A50193
123 | :1007A0006C837D838E83DE011196FE01349683E097
124 | :1007B00001900D928150E1F74B8141958AE491E0DF
125 | :1007C0006A8120E00E94600826960FB6F894DEBF8A
126 | :1007D0000FBECDBFCF91DF9108950F931F938AE491
127 | :1007E00091E00E944C070AE211E0C8010E94580300
128 | :1007F000C80160EC0E941B03C8010E94200380E036
129 | :100800006AEB73E042E050E00E9409041F910F91EF
130 | :100810000895853008F051C0E82FF0E0EE0FFF1F7B
131 | :10082000E95CFE4F71836083823009F1833030F4DC
132 | :10083000882349F0813009F040C00DC0833021F198
133 | :100840008430D9F52EC0809169008C7F842B8093F1
134 | :100850006900E89A089580916900440F551F440F7C
135 | :10086000551F837F842B80936900E99A08958091B6
136 | :10087000690034E0440F551F3A95E1F78F7C842BD3
137 | :1008800080936900EA9A08958091690026E0440FF8
138 | :10089000551F2A95E1F78F73842B80936900EB9A9B
139 | :1008A000089580916A0094E0440F551F9A95E1F7EE
140 | :1008B0008F7C842B80936A00EE9A08951F920F928A
141 | :1008C0000FB60F9211242F933F934F935F936F9323
142 | :1008D0007F938F939F93AF93BF93EF93FF938091F9
143 | :1008E000370190913801892B29F0E0913701F0917F
144 | :1008F00038010995FF91EF91BF91AF919F918F9131
145 | :100900007F916F915F914F913F912F910F900FBE0B
146 | :100910000F901F9018951F920F920FB60F921124EF
147 | :100920002F933F934F935F936F937F938F939F93F7
148 | :10093000AF93BF93EF93FF938091390190913A0168
149 | :10094000892B29F0E0913901F0913A010995FF9145
150 | :10095000EF91BF91AF919F918F917F916F915F9137
151 | :100960004F913F912F910F900FBE0F901F901895B0
152 | :100970001F920F920FB60F9211242F933F934F9314
153 | :100980005F936F937F938F939F93AF93BF93EF93F7
154 | :10099000FF9380913B0190913C01892B29F0E091DC
155 | :1009A0003B01F0913C010995FF91EF91BF91AF910F
156 | :1009B0009F918F917F916F915F914F913F912F9177
157 | :1009C0000F900FBE0F901F9018951F920F920FB6A9
158 | :1009D0000F9211242F933F934F935F936F937F93C5
159 | :1009E0008F939F93AF93BF93EF93FF9380913D01BC
160 | :1009F00090913E01892B29F0E0913D01F0913E015B
161 | :100A00000995FF91EF91BF91AF919F918F917F9148
162 | :100A10006F915F914F913F912F910F900FBE0F906B
163 | :100A20001F9018951F920F920FB60F9211242F93BB
164 | :100A30003F934F935F936F937F938F939F93AF9366
165 | :100A4000BF93EF93FF9380913F0190914001892BD9
166 | :100A500029F0E0913F01F09140010995FF91EF915C
167 | :100A6000BF91AF919F918F917F916F915F914F91C6
168 | :100A70003F912F910F900FBE0F901F9018951F92CE
169 | :100A80000F920FB60F9211242F933F938F939F9342
170 | :100A9000AF93BF938091450190914601A09147018A
171 | :100AA000B0914801309149010196A11DB11D232F3C
172 | :100AB0002D5F2D3720F02D570196A11DB11D2093DC
173 | :100AC00049018093450190934601A0934701B0935B
174 | :100AD00048018091410190914201A0914301B09160
175 | :100AE00044010196A11DB11D8093410190934201E3
176 | :100AF000A0934301B0934401BF91AF919F918F9117
177 | :100B00003F912F910F900FBE0F901F9018959B0152
178 | :100B1000AC017FB7F8948091410190914201A0917E
179 | :100B20004301B091440166B5A89B05C06F3F19F021
180 | :100B30000196A11DB11D7FBFBA2FA92F982F88271D
181 | :100B4000860F911DA11DB11D62E0880F991FAA1F7C
182 | :100B5000BB1F6A95D1F7BC012DC0FFB7F8948091F7
183 | :100B6000410190914201A0914301B0914401E6B549
184 | :100B7000A89B05C0EF3F19F00196A11DB11DFFBF55
185 | :100B8000BA2FA92F982F88278E0F911DA11DB11D57
186 | :100B9000E2E0880F991FAA1FBB1FEA95D1F7861BB9
187 | :100BA000970B885E9340C8F221503040404050403F
188 | :100BB00068517C4F211531054105510571F60895A5
189 | :100BC000019739F0880F991F880F991F0297019795
190 | :100BD000F1F70895789484B5826084BD84B581600E
191 | :100BE00084BD85B5826085BD85B5816085BDEEE635
192 | :100BF000F0E0808181608083E1E8F0E01082808114
193 | :100C000082608083808181608083E0E8F0E0808181
194 | :100C100081608083E1E9F0E080818260808380816F
195 | :100C200081608083E0E9F0E0808181608083E1EC95
196 | :100C3000F0E0808184608083808182608083808115
197 | :100C400081608083E3ECF0E0808181608083E0EC70
198 | :100C5000F0E0808182608083E2ECF0E0808181605E
199 | :100C60008083EAE7F0E08081846080838081826015
200 | :100C70008083808181608083808180688083089503
201 | :100C8000CF93DF93482F50E0CA018C509F4FFC0157
202 | :100C900034914A525F4FFA018491882369F190E0C0
203 | :100CA000880F991FFC01E455FF4FA591B491FC01F9
204 | :100CB000E654FF4FC591D491662351F42FB7F894B1
205 | :100CC0008C91932F909589238C93888189230BC0D5
206 | :100CD000623061F42FB7F8948C91932F909589230B
207 | :100CE0008C938881832B88832FBF06C09FB7F8948D
208 | :100CF0008C91832B8C939FBFDF91CF910895883087
209 | :100D000071F1893068F4823031F1833020F4813020
210 | :100D100009F042C01DC0833089F08430E9F512C06B
211 | :100D20008B3059F18C3028F48930E9F08A30A1F504
212 | :100D30001EC08C3031F18E3079F529C08091800051
213 | :100D40008F7703C0809180008F7D8093800008950D
214 | :100D500084B58F7702C084B58F7D84BD089580915E
215 | :100D600090008F7707C0809190008F7D03C08091A5
216 | :100D70009000877F8093900008958091C0008F77C6
217 | :100D800003C08091C0008F7D8093C0000895809142
218 | :100D9000C200877F8093C2000895FF920F931F9334
219 | :100DA000F62E482F50E0CA018E5E9E4FFC01249122
220 | :100DB000CA018C509F4FFC0114914A525F4FFA01B7
221 | :100DC00004910023C9F0222319F0822F0E947F068C
222 | :100DD000E02FF0E0EE0FFF1FE654FF4FA591B49116
223 | :100DE0009FB7F894FF2021F48C911095812302C0C5
224 | :100DF0008C91812B8C939FBF1F910F91FF90089531
225 | :100E00000F931F93482F50E0CA018E5E9E4FFC0146
226 | :100E10002491CA018C509F4FFC0104914A525F4FAC
227 | :100E2000FA011491112319F420E030E015C02223B7
228 | :100E300019F0822F0E947F06812F90E0880F991F62
229 | :100E400088539F4FFC01A591B4918C9120E030E034
230 | :100E5000802311F021E030E0C9011F910F91089526
231 | :100E6000FC0191818081813A31F4913089F080E0F8
232 | :100E7000933089F40DC0813269F49B3021F4828172
233 | :100E80008093000105C09A3029F48281809301018A
234 | :100E900081E0089580E008950895EF92FF920F9306
235 | :100EA0001F938C01E62EDC01ED91FC910480F5810D
236 | :100EB000E02D0995F82ED801ED91FC910680F7817F
237 | :100EC000E02DC8016E2D09958F2D90E01F910F9197
238 | :100ED000FF90EF90089510924A0110924E011092E7
239 | :100EE0004D018EE091E090934C0180934B01089569
240 | :100EF000EF92FF920F931F93DF93CF930F92CDB793
241 | :100F0000DEB789838B017A0184E0BE016F5F7F4F7A
242 | :100F100041E050E00E94A00984E4B801A7010E94CA
243 | :100F2000A0090F90CF91DF911F910F91FF90EF904B
244 | :100F3000089582E048E050E00E9478070895FC019F
245 | :100F400016821782108611861286138614823496B2
246 | :100F5000BF010E9499070895DC01683810F06858B5
247 | :100F600029C0E62FF0E067FF13C0E058F04081E0B1
248 | :100F700090E002C0880F991FEA95E2F780951496D9
249 | :100F80002C911497282314962C93149760E012C088
250 | :100F9000E654FE4F6491662319F420E030E01DC052
251 | :100FA00067FF08C014968C9114978D7F14968C93CC
252 | :100FB00014976F77FD0190E0662321F086818617F4
253 | :100FC00009F416829F5F31969630B1F7CD011496E1
254 | :100FD000BD010E94990721E030E0C9010895CF9337
255 | :100FE000DF93DC01683810F0685825C0E62FF0E088
256 | :100FF00067FF12C0E058F04081E090E002C0880F27
257 | :10100000991FEA95E2F714962C911497282B1496C1
258 | :101010002C93149760E00FC0E654FE4F6491662352
259 | :10102000D9F167FF08C014968C91149782601496CA
260 | :101030008C9314976F7716968C9116978617A9F153
261 | :1010400017968C911797861781F118968C9118979F
262 | :10105000861759F119968C911997861731F11A96BE
263 | :101060008C911A97861709F11B968C911B978617FE
264 | :10107000E1F0ED01E0E0F0E09E2F8E81882321F485
265 | :10108000EA0FFB1F668306C09F5F31962196E6300C
266 | :10109000F10591F7963049F481E090E013969C9326
267 | :1010A0008E93129720E030E007C0CD011496BD0169
268 | :1010B0000E94990721E030E0C901DF91CF910895A6
269 | :1010C000DF93CF9300D000D0CDB7DEB7FC01808195
270 | :1010D00089836A834B832C8381E0BE016F5F7F4FDE
271 | :1010E00044E050E00E9478070F900F900F900F900F
272 | :1010F000CF91DF91089580E86CE371E045E650E020
273 | :101100000E9419090895FC0180818F5F808380E827
274 | :1011100061EA71E049E150E00E9419090895CF9316
275 | :10112000DF930E94EA058FE591E00E9480090E940A
276 | :10113000ED03C0E0D0E00E94BF032097E1F30E94DE
277 | :101140000000F9CFCF92DF92EF92FF920F931F939F
278 | :10115000CF93DF937C016B018A01C0E0D0E00FC028
279 | :10116000D6016D916D01D701ED91FC910190F08157
280 | :10117000E02DC7010995C80FD91F01501040011576
281 | :10118000110571F7CE01DF91CF911F910F91FF9063
282 | :10119000EF90DF90CF900895282F809159018823F8
283 | :1011A000C1F057FF1AC015C0289A9093580180913A
284 | :1011B000F1008193E217F307B9F74115510539F0B2
285 | :1011C0008091F200882319F48BE68093E800AFBF8A
286 | :1011D00002C04FEF5FEFCA010895AFB7F8942770D0
287 | :1011E0002093E9008091F200282F30E02417350782
288 | :1011F0000CF4A901FB019B01240F311D94E6DACF09
289 | :10120000DF93CF930F92CDB7DEB7BE016F5F7F4FF5
290 | :1012100041E050E00E94CC08019719F02FEF3FEF1A
291 | :1012200003C08981282F30E0C9010F90CF91DF9151
292 | :101230000895FF920F931F93F82E142F052F4091BE
293 | :101240005C0150915D01212F302FC901DC01FB01B0
294 | :101250006EEF29C0F7FE02C0949101C090812091E9
295 | :101260005A0130915B0124173507ACF48091E800F6
296 | :101270008570E1F38091E80082FF03C02FEF3FEF1C
297 | :1012800017C09093F100C90101968F739070892B5C
298 | :1012900011F46093E8002F5F3F4F30935B01209380
299 | :1012A0005A01119731961097A9F6812F902F9C0122
300 | :1012B000C9011F910F91FF9008959C018091E80052
301 | :1012C00082FFFCCFF901260F311D03C08091F10090
302 | :1012D0008193E217F307D1F7289A84E680935801A7
303 | :1012E0008BEF8093E800CB0108958093E900809113
304 | :1012F000F200882319F08AE38093E80008950895A6
305 | :101300001092590181E08093D70080EA8093D80041
306 | :1013100082E189BD09B400FEFDCF61E070E080E0AC
307 | :1013200090E00E94870580E98093D8008CE080934C
308 | :10133000E2001092E000559A209A5D98289808954E
309 | :101340005F926F927F928F929F92AF92BF92CF9255
310 | :10135000DF92EF92FF920F931F93CF93DF93E82ECC
311 | :10136000842E752E80915901882371F18B01242FD1
312 | :10137000352FC901EC017AEFF72E67E0962E9E20FB
313 | :1013800050E4552E8E2D90E040E2A42EB12CA822E0
314 | :10139000B9223AE3632E20E4C22ED12CC822D922EE
315 | :1013A00058C09FB7F8949092E9008091E80085FDBD
316 | :1013B00002C020E004C08091F200252D281B9FBFB1
317 | :1013C000222361F4FA9419F42FEF3FEF4DC061E04E
318 | :1013D00070E080E090E00E9487053BC0822F90E0A3
319 | :1013E000C817D9070CF42C2FC21BD1094FB7F8949A
320 | :1013F0009092E900A114B10421F406C01092F1000A
321 | :1014000021502223D9F719C0E7FC03C0F801922F1D
322 | :1014100010C0C801322F06C0FC010196E491E09390
323 | :10142000F10031503323C1F706C081918093F10060
324 | :1014300091509923D1F7020F111D8091E80085FF8B
325 | :1014400005C0209729F4C114D10411F06092E8007E
326 | :101450004FBF209709F0A5CF5D9A84E6809357018E
327 | :10146000282D372DC9019C01C901DF91CF911F9112
328 | :101470000F91FF90EF90DF90CF90BF90AF909F9033
329 | :101480008F907F906F905F9008951F920F920FB68C
330 | :101490000F9211242F933F934F935F936F937F93FA
331 | :1014A0008F939F93AF93BF93EF93FF938091E1004E
332 | :1014B0001092E100982F83FF0FC01092E90081E0A5
333 | :1014C0008093EB001092EC0082E38093ED00109289
334 | :1014D000590188E08093F00092FF34C083E080934C
335 | :1014E000E9008091F200882319F08AE38093E800F4
336 | :1014F0008FB7F89492E09093E9009091F2008FBF3B
337 | :10150000992321F084EA91E00E94A20C8091570176
338 | :10151000882351F080915701815080935701809129
339 | :101520005701882309F45D9880915801882351F070
340 | :1015300080915801815080935801809158018823EF
341 | :1015400009F42898FF91EF91BF91AF919F918F91EE
342 | :101550007F916F915F914F913F912F910F900FBEAF
343 | :101560000F901F9018950F931F93DF93CF930F92B7
344 | :10157000CDB7DEB719828E010F5F1F4FC8010E94E1
345 | :10158000C80CC8010E948308898190E00F90CF9118
346 | :10159000DF911F910F9108951F920F920FB60F9236
347 | :1015A0001124EF92FF921F932F933F934F935F93DA
348 | :1015B0006F937F938F939F93AF93BF93EF93FF931B
349 | :1015C000DF93CF93CDB7DEB76197DEBFCDBF10926B
350 | :1015D000E9008091E80083FF0FC1FE0131969E0172
351 | :1015E000275F3F4F03C08091F1008193E217F3071B
352 | :1015F000D1F7289A84E68093580182EF8093E8001F
353 | :10160000998197FF05C08091E80080FFFCCF03C05F
354 | :101610008EEF8093E800292F30E0C901807690702A
355 | :10162000892B09F0C2C08A81882329F41092F10025
356 | :101630001092F100D6C0813009F4D3C0833009F490
357 | :10164000D0C0853049F48091E80080FFFCCF8B81C9
358 | :1016500080688093E300C5C0863009F07CC01C819F
359 | :10166000EF80F8841230C1F51092E90010925B010E
360 | :1016700010925A0110925D0110925C010E94B30A0F
361 | :1016800099E0FE013996DF01292F1D922A95E9F78D
362 | :1016900099871A8791E09E8790E8988B9AEF998BAB
363 | :1016A00020915A0130915B01275F3F4F3C872B8788
364 | :1016B0008D871092E90010925B0110925A01F0920E
365 | :1016C0005D01E0925C0180E0BF0149E050E00E94D2
366 | :1016D00019090E94B30A85C01092E90010925B01BB
367 | :1016E00010925A01F0925D01E0925C01123241F4D5
368 | :1016F00082E290E00E947B08892B09F476C071C0D9
369 | :10170000113079F488E0E816F10419F481E080934F
370 | :101710005E0180915E01882309F06BC0E8E7F2E08A
371 | :1017200013C0133009F061C08B81882319F4EAE3F8
372 | :10173000F2E00AC0823019F4EEE3F2E005C0813035
373 | :1017400009F053C0E0E6F2E0449180E8BF0150E0C8
374 | :101750000E94190946C0873009F447C0883021F437
375 | :1017600081E08093F1003DC08930D9F5237030705D
376 | :10177000232BD9F5EDE9F2E091E031E026E39093F7
377 | :10178000E9003093EB0084918093EC002093ED000E
378 | :101790009F5F3196953099F78EE78093EA0010921B
379 | :1017A000EA008B81809359011CC08F81988510922B
380 | :1017B000E90010925B0110925A0190935D018093B1
381 | :1017C0005C018D81882329F4CE0101960E94D40CFE
382 | :1017D00006C0823051F4CE0101960E943007882362
383 | :1017E00021F08EEF8093E80007C081E28093EB0048
384 | :1017F00003C0EAE8F2E0A8CF6196DEBFCDBFCF918B
385 | :10180000DF91FF91EF91BF91AF919F918F917F9168
386 | :101810006F915F914F913F912F911F91FF90EF90AA
387 | :101820000F900FBE0F901F9018952091A00130913E
388 | :10183000A1018091A2019091A301281B390B2F7364
389 | :101840003070C90108952091A0013091A1018091CB
390 | :10185000A2019091A3012817390719F42FEF3FEF48
391 | :1018600009C0E091A201F091A301E05AFE4F8081EE
392 | :10187000282F30E0C90108952091A0013091A101E5
393 | :101880008091A2019091A3012817390719F42FEF35
394 | :101890003FEF13C0E091A201F091A301E05AFE4F87
395 | :1018A00020818091A2019091A30101968F73907085
396 | :1018B0009093A3018093A20130E0C9010895109292
397 | :1018C000A7011092A60188EE93E0A0E0B0E080931B
398 | :1018D000A8019093A901A093AA01B093AB018CE158
399 | :1018E00091E09093A5018093A40108950F931F9315
400 | :1018F000DF93CF930F92CDB7DEB78C0169838091D0
401 | :101900000901882369F083E0BE016F5F7F4F41E0EA
402 | :1019100050E00E94A0091816190614F49C0107C093
403 | :1019200081E090E0F8019383828320E030E0C901F8
404 | :101930000F90CF91DF911F910F91089583E00E9446
405 | :1019400075090895CF93DF9312C082E00E940009C9
406 | :101950002FEF8F3F9207C9F0E091A001F091A10114
407 | :10196000E05AFE4F8083D093A101C093A001C091A3
408 | :10197000A001D091A1012196CF73D0708091A201D6
409 | :101980009091A301C817D90701F7DF91CF9108956E
410 | :10199000FC0180818E5F808380E861EA72E042E42E
411 | :1019A00050E00E9419090895FC0181819081913ACB
412 | :1019B00059F4813209F04CC080E062E071E047E008
413 | :1019C00050E00E94190942C0913209F041C08032B2
414 | :1019D00039F482E091E067E070E00E945D0936C072
415 | :1019E000823209F035C08281809309018091020121
416 | :1019F00090910301A0910401B0910501805B944096
417 | :101A0000A040B04019F58091090180FD12C087E720
418 | :101A100097E790930108809300082BE088E190E01D
419 | :101A20000FB6F894A895809360000FBE20936000D5
420 | :101A30000DC088E10FB6F8948093600010926000AA
421 | :101A40000FBEA895109201081092000881E0089539
422 | :101A500080E00895EE0FFF1F0590F491E02D0994AA
423 | :101A600012E0CCEED2E004C0FE010E942C0D2296C2
424 | :0A1A7000CE3ED107C9F7F894FFCF6E
425 | :101A7A00010100E1000000000000000000004D0725
426 | :101A8A00A208EF07AC079F0700000000760CA20827
427 | :0A1A9A00150C3C0C230C9E0CA20C52
428 | :00000001FF
429 |
--------------------------------------------------------------------------------
/Debug/USBCore.cpp.d:
--------------------------------------------------------------------------------
1 | \
2 | C:\Users\CONG\AppData\Local\VMicro\Arduino\Builds\TrackPoint_INT\micro\USBCore.cpp.o: \
3 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\USBCore.cpp \
4 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/Platform.h \
5 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/Arduino.h \
6 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/binary.h \
7 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/WCharacter.h \
8 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/WString.h \
9 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/HardwareSerial.h \
10 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/Stream.h \
11 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/Print.h \
12 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/Printable.h \
13 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino/new.h \
14 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/USBAPI.h \
15 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\variants\micro/pins_arduino.h \
16 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\variants\micro/../leonardo/pins_arduino.h \
17 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/USBDesc.h \
18 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/USBCore.h \
19 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/USBAPI.h \
20 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/USBDesc.h
21 |
--------------------------------------------------------------------------------
/Debug/WInterrupts.c.d:
--------------------------------------------------------------------------------
1 | \
2 | C:\Users\CONG\AppData\Local\VMicro\Arduino\Builds\TrackPoint_INT\micro\WInterrupts.c.o: \
3 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\WInterrupts.c \
4 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/wiring_private.h \
5 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/Arduino.h \
6 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/binary.h \
7 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\variants\micro/pins_arduino.h \
8 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\variants\micro/../leonardo/pins_arduino.h
9 |
--------------------------------------------------------------------------------
/Debug/WMath.cpp.d:
--------------------------------------------------------------------------------
1 | \
2 | C:\Users\CONG\AppData\Local\VMicro\Arduino\Builds\TrackPoint_INT\micro\WMath.cpp.o: \
3 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\WMath.cpp
4 |
--------------------------------------------------------------------------------
/Debug/WString.cpp.d:
--------------------------------------------------------------------------------
1 | \
2 | C:\Users\CONG\AppData\Local\VMicro\Arduino\Builds\TrackPoint_INT\micro\WString.cpp.o: \
3 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\WString.cpp \
4 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/WString.h
5 |
--------------------------------------------------------------------------------
/Debug/main.cpp.d:
--------------------------------------------------------------------------------
1 | \
2 | C:\Users\CONG\AppData\Local\VMicro\Arduino\Builds\TrackPoint_INT\micro\main.cpp.o: \
3 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\main.cpp \
4 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino/Arduino.h \
5 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino/binary.h \
6 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino/WCharacter.h \
7 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino/WString.h \
8 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino/HardwareSerial.h \
9 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino/Stream.h \
10 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino/Print.h \
11 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino/Printable.h \
12 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino/new.h \
13 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino/USBAPI.h \
14 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\variants\micro/pins_arduino.h \
15 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\variants\micro/../leonardo/pins_arduino.h
16 |
--------------------------------------------------------------------------------
/Debug/malloc.c.d:
--------------------------------------------------------------------------------
1 | \
2 | C:\Users\CONG\AppData\Local\VMicro\Arduino\Builds\TrackPoint_INT\micro\malloc.c.o: \
3 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\avr-libc\malloc.c \
4 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\avr-libc\/sectionname.h \
5 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\avr-libc\/stdlib_private.h
6 |
--------------------------------------------------------------------------------
/Debug/new.cpp.d:
--------------------------------------------------------------------------------
1 | \
2 | C:\Users\CONG\AppData\Local\VMicro\Arduino\Builds\TrackPoint_INT\micro\new.cpp.o: \
3 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\new.cpp \
4 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino/new.h
5 |
--------------------------------------------------------------------------------
/Debug/realloc.c.d:
--------------------------------------------------------------------------------
1 | \
2 | C:\Users\CONG\AppData\Local\VMicro\Arduino\Builds\TrackPoint_INT\micro\realloc.c.o: \
3 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\avr-libc\realloc.c \
4 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\avr-libc\/sectionname.h \
5 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\avr-libc\/stdlib_private.h
6 |
--------------------------------------------------------------------------------
/Debug/wiring.c.d:
--------------------------------------------------------------------------------
1 | \
2 | C:\Users\CONG\AppData\Local\VMicro\Arduino\Builds\TrackPoint_INT\micro\wiring.c.o: \
3 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\wiring.c \
4 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/wiring_private.h \
5 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/Arduino.h \
6 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/binary.h \
7 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\variants\micro/pins_arduino.h \
8 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\variants\micro/../leonardo/pins_arduino.h
9 |
--------------------------------------------------------------------------------
/Debug/wiring_analog.c.d:
--------------------------------------------------------------------------------
1 | \
2 | C:\Users\CONG\AppData\Local\VMicro\Arduino\Builds\TrackPoint_INT\micro\wiring_analog.c.o: \
3 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\wiring_analog.c \
4 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/wiring_private.h \
5 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/Arduino.h \
6 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/binary.h \
7 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\variants\micro/pins_arduino.h \
8 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\variants\micro/../leonardo/pins_arduino.h
9 |
--------------------------------------------------------------------------------
/Debug/wiring_digital.c.d:
--------------------------------------------------------------------------------
1 | \
2 | C:\Users\CONG\AppData\Local\VMicro\Arduino\Builds\TrackPoint_INT\micro\wiring_digital.c.o: \
3 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\wiring_digital.c \
4 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/wiring_private.h \
5 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/Arduino.h \
6 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/binary.h \
7 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\variants\micro/pins_arduino.h \
8 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\variants\micro/../leonardo/pins_arduino.h
9 |
--------------------------------------------------------------------------------
/Debug/wiring_pulse.c.d:
--------------------------------------------------------------------------------
1 | \
2 | C:\Users\CONG\AppData\Local\VMicro\Arduino\Builds\TrackPoint_INT\micro\wiring_pulse.c.o: \
3 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\wiring_pulse.c \
4 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/wiring_private.h \
5 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/Arduino.h \
6 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/binary.h \
7 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\variants\micro/pins_arduino.h \
8 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\variants\micro/../leonardo/pins_arduino.h
9 |
--------------------------------------------------------------------------------
/Debug/wiring_shift.c.d:
--------------------------------------------------------------------------------
1 | \
2 | C:\Users\CONG\AppData\Local\VMicro\Arduino\Builds\TrackPoint_INT\micro\wiring_shift.c.o: \
3 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\wiring_shift.c \
4 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/wiring_private.h \
5 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/Arduino.h \
6 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\cores\arduino\/binary.h \
7 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\variants\micro/pins_arduino.h \
8 | C:\Program\ Files\ (x86)\Arduino\hardware\arduino\variants\micro/../leonardo/pins_arduino.h
9 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2014 rampadc
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Introduction
2 | This TrackPoint library is used to interface with a TrackPoint module
3 | that is available on most ThinkPad keyboards. It can also be used as a
4 | general purpose PS/2 mouse library.
5 |
6 | Library supports stream mode using interrupt.
7 |
8 | Tested with an Arduino Leopard. Solution compiled in Visual Micro, but
9 | can also be opened with Arduino IDE.
10 |
11 | Circuit: a ThinkPad T60 TrackPoint module (ripped from broken keyboard)
12 | connected to an Arduino Leopard. See comments in .ino for more connection
13 | information.
14 |
15 | 
16 |
17 | For schematic and explanation of the RC circuit, visit: http://flashandrc.wordpress.com/2014/10/03/saving-a-pin-with-an-inverter-buffer-and-a-rc-circuit/
18 |
19 | # Files
20 |
21 | Library: TrackPoint.cpp, TrackPoint.h
22 |
23 | Example: TrackPoint_INT.ino
24 |
25 | # License
26 | Copyright (c) 2014 Cong Nguyen
27 |
28 | Permission is hereby granted, free of charge, to any person obtaining a copy
29 | of this software and associated documentation files (the "Software"), to deal
30 | in the Software without restriction, including without limitation the rights
31 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
32 | copies of the Software, and to permit persons to whom the Software is
33 | furnished to do so, subject to the following conditions:
34 |
35 | The above copyright notice and this permission notice shall be included in
36 | all copies or substantial portions of the Software.
37 |
38 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
39 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
40 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
41 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
42 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
43 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
44 | THE SOFTWARE.
45 |
46 |
--------------------------------------------------------------------------------
/TrackPoint.cpp:
--------------------------------------------------------------------------------
1 | /*
2 | * TrackPoint.cpp
3 | *
4 | * Created: 14/03/2014 12:50:47 AM
5 | * Author: CONG NGUYEN
6 | *
7 | * Expanding on Felix Kee's TrackPoint class: https://github.com/feklee/arduino-trackpoint
8 | * Removed onesCounter and incomingParity
9 | */
10 |
11 |
12 | #include "TrackPoint.h"
13 |
14 | // default constructor
15 | TrackPoint::TrackPoint(uint8_t clockPin, uint8_t dataPin, uint8_t resetPin, uint8_t streamMode) : _clkPin(clockPin), _dataPin(dataPin), _resetPin(resetPin)
16 | {
17 | if(streamMode) {
18 | bitcount = 0;
19 | n = 0;
20 | val = 0;
21 | incoming = 0;
22 | counter = 0;
23 | dataAvailable = 0;
24 | }
25 |
26 | gohi(_clkPin);
27 | gohi(_dataPin);
28 | } //TrackPoint
29 |
30 | // default destructor
31 | TrackPoint::~TrackPoint()
32 | {
33 | } //~TrackPoint
34 |
35 | uint8_t TrackPoint::reportAvailable(void) {
36 | return dataAvailable;
37 | }
38 |
39 | TrackPoint::DataReport TrackPoint::getStreamReport(void) {
40 | return data;
41 | }
42 |
43 | void TrackPoint::getDataBit(void) {
44 | dataAvailable = 0;
45 |
46 | val = (digitalRead(_dataPin) ? 1 : 0);
47 | n = bitcount-1;
48 | if(n <= 7) {
49 | incoming |= (val << n);
50 | }
51 | bitcount++;
52 |
53 | if(bitcount == 11) {
54 | switch(counter) {
55 | case 0:
56 | data.state = incoming;
57 | counter++;
58 | break;
59 |
60 | case 1:
61 | data.x = incoming;
62 | counter++;
63 | break;
64 |
65 | case 2:
66 | data.y = incoming;
67 | counter = 0;
68 | dataAvailable = 1;
69 | break;
70 | }
71 | bitcount = 0;
72 | incoming = 0;
73 | }
74 | }
75 |
76 | // errors are ignored
77 | void TrackPoint::writeToRamLocation(uint8_t location, uint8_t value) {
78 | write(0xe2);
79 | read(); // ACK
80 | write(0x81);
81 | read(); // ACK
82 | write(location);
83 | read(); // ACK
84 | write(value);
85 | read(); // ACK
86 | }
87 |
88 | // undefined in case of error
89 | uint8_t TrackPoint::readFromRamLocation(uint8_t location) {
90 | write(0xe2);
91 | read(); // ACK
92 | write(0x80);
93 | read(); // ACK
94 | write(location);
95 | read(); // ACK
96 | return read();
97 | }
98 |
99 | void TrackPoint::setSensitivityFactor(uint8_t sensitivityFactor) {
100 | writeToRamLocation(0x4a, sensitivityFactor);
101 | }
102 |
103 | uint8_t TrackPoint::sensitivityFactor() {
104 | return readFromRamLocation(0x4a);
105 | }
106 |
107 | void TrackPoint::setRemoteMode() {
108 | write(0xf0);
109 | read();
110 | }
111 |
112 | void TrackPoint::setStreamMode() {
113 | write(0xea);
114 | read();
115 | write(0xf4); //enable report
116 | read();
117 |
118 | //put mouse into idle mode, ready to send
119 | gohi(_clkPin);
120 | gohi(_dataPin);
121 | }
122 |
123 | void TrackPoint::reset() {
124 | if(_resetPin != 0) {
125 | //Arduino doesn't have a pin 0, user is using a separate pin for the RESET line
126 | pinMode(_resetPin, OUTPUT);
127 | digitalWrite(_resetPin, HIGH);
128 | delay(2000); // empirical value
129 | digitalWrite(_resetPin, LOW);
130 | } else {
131 | /*
132 | an inverter RC circuit is being used, pull CLOCK low for
133 | 5ms to charge RESET line, then leave it there for 2s,
134 | then pull CLOCK high for 5ms to discharge the RC circuit
135 | to pull RESET line LOW.
136 | */
137 | golo(_clkPin);
138 | delay(5);
139 | delay(2000);
140 | gohi(_clkPin);
141 | delay(10);
142 |
143 | gohi(_clkPin);
144 | }
145 | }
146 |
147 | TrackPoint::DataReport TrackPoint::readData() {
148 | DataReport d;
149 |
150 | write(0xeb);
151 | read(); // ACK
152 | d.state = read();
153 | d.x = read();
154 | d.y = read();
155 |
156 | return d;
157 | }
158 |
159 | // Comments and code below mostly unchanged from `ps2.h`.
160 |
161 | /*
162 | * according to some code I saw, these functions will
163 | * correctly set the clock and data pins for
164 | * various conditions. It's done this way so you don't need
165 | * pullup resistors.
166 | */
167 | void TrackPoint::gohi(uint8_t pin) {
168 | pinMode(pin, INPUT);
169 | digitalWrite(pin, HIGH);
170 | }
171 |
172 | void TrackPoint::golo(uint8_t pin) {
173 | pinMode(pin, OUTPUT);
174 | digitalWrite(pin, LOW);
175 | }
176 |
177 | /* write a uint8_t to the PS2 device */
178 | void TrackPoint::write(uint8_t data) {
179 | uint8_t i;
180 | uint8_t parity = 1;
181 |
182 | gohi(_dataPin);
183 | gohi(_clkPin);
184 | delayMicroseconds(300);
185 | golo(_clkPin);
186 | delayMicroseconds(300);
187 | golo(_dataPin);
188 | delayMicroseconds(10);
189 | gohi(_clkPin); // start bit
190 | /* wait for device to take control of clock */
191 | while (digitalRead(_clkPin) == HIGH)
192 | ; // this loop intentionally left blank
193 | // clear to send data
194 | for (i=0; i < 8; i++)
195 | {
196 | if (data & 0x01)
197 | {
198 | gohi(_dataPin);
199 | } else {
200 | golo(_dataPin);
201 | }
202 | // wait for clock
203 | while (digitalRead(_clkPin) == LOW)
204 | ;
205 | while (digitalRead(_clkPin) == HIGH)
206 | ;
207 | parity = parity ^ (data & 0x01);
208 | data = data >> 1;
209 | }
210 | // parity bit
211 | if (parity)
212 | {
213 | gohi(_dataPin);
214 | } else {
215 | golo(_dataPin);
216 | }
217 | // clock cycle - like ack.
218 | while (digitalRead(_clkPin) == LOW)
219 | ;
220 | while (digitalRead(_clkPin) == HIGH)
221 | ;
222 | // stop bit
223 | gohi(_dataPin);
224 | delayMicroseconds(50);
225 | while (digitalRead(_clkPin) == HIGH)
226 | ;
227 | // mode switch
228 | while ((digitalRead(_clkPin) == LOW) || (digitalRead(_dataPin) == LOW))
229 | ;
230 | // hold up incoming data
231 | golo(_clkPin);
232 | }
233 |
234 |
235 | /*
236 | * read a uint8_t of data from the ps2 device. Ignores parity.
237 | */
238 | uint8_t TrackPoint::read(void) {
239 | uint8_t data = 0x00;
240 | uint8_t i;
241 | uint8_t bit = 0x01;
242 |
243 | // start clock
244 | gohi(_clkPin);
245 | gohi(_dataPin);
246 | delayMicroseconds(50);
247 | while (digitalRead(_clkPin) == HIGH)
248 | ;
249 | delayMicroseconds(5); // not sure why.
250 | while (digitalRead(_clkPin) == LOW)
251 | ; // eat start bit
252 | for (i=0; i < 8; i++)
253 | {
254 | while (digitalRead(_clkPin) == HIGH)
255 | ;
256 | if (digitalRead(_dataPin) == HIGH)
257 | {
258 | data = data | bit;
259 | }
260 | while (digitalRead(_clkPin) == LOW)
261 | ;
262 | bit = bit << 1;
263 | }
264 | // eat parity bit, ignore it.
265 | while (digitalRead(_clkPin) == HIGH)
266 | ;
267 | while (digitalRead(_clkPin) == LOW)
268 | ;
269 | // eat stop bit
270 | while (digitalRead(_clkPin) == HIGH)
271 | ;
272 | while (digitalRead(_clkPin) == LOW)
273 | ;
274 | golo(_clkPin); // hold incoming data
275 |
276 | return data;
277 | }
--------------------------------------------------------------------------------
/TrackPoint.h:
--------------------------------------------------------------------------------
1 | /*
2 | * TrackPoint.h
3 | *
4 | * Created: 14/03/2014 12:50:48 AM
5 | * Author: CONG NGUYEN
6 | *
7 | * Expanding on Felix Kee's TrackPoint class: https://github.com/feklee/arduino-trackpoint
8 | *
9 | * Interface with a TrackPoint, supports stream mode using interrupt
10 | * Parity checks slow down move movements thus are removed
11 | */
12 |
13 |
14 | #ifndef __TRACKPOINT_H__
15 | #define __TRACKPOINT_H__
16 |
17 | #include "Arduino.h"
18 |
19 | class TrackPoint
20 | {
21 | public:
22 | struct DataReport {
23 | uint8_t state;
24 | int8_t x;
25 | int8_t y;
26 | };
27 |
28 | void write(uint8_t data);
29 | uint8_t read(void);
30 | uint8_t readFromRamLocation(uint8_t);
31 | void writeToRamLocation(uint8_t, uint8_t);
32 | void setSensitivityFactor(uint8_t);
33 | uint8_t sensitivityFactor();
34 | void setRemoteMode();
35 | void reset();
36 | DataReport readData();
37 |
38 | TrackPoint(uint8_t, uint8_t, uint8_t, uint8_t);
39 | ~TrackPoint();
40 |
41 | void getDataBit(void);
42 | uint8_t reportAvailable(void);
43 | void setStreamMode(void);
44 | DataReport getStreamReport(void);
45 |
46 | void gohi(uint8_t pin);
47 | void golo(uint8_t pin);
48 |
49 | protected:
50 |
51 | private:
52 | TrackPoint( const TrackPoint &c );
53 | TrackPoint& operator=( const TrackPoint &c );
54 |
55 |
56 | //TrackPoint pins
57 | uint8_t _clkPin;
58 | uint8_t _dataPin;
59 | uint8_t _resetPin;
60 |
61 | //PS2 data
62 | DataReport data;
63 |
64 | //getDataBit() variables
65 | volatile uint8_t bitcount;
66 | volatile uint8_t n;
67 | volatile uint8_t val;
68 | volatile uint8_t incoming;
69 | volatile uint8_t counter;
70 | volatile uint8_t dataAvailable;
71 | uint8_t usingSeparateResetPin;
72 |
73 | }; //TrackPoint
74 |
75 | #endif //__TRACKPOINT_H__
76 |
--------------------------------------------------------------------------------
/TrackPoint_INT.atsln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 11.00
3 | # Atmel Studio Solution File, Format Version 11.00
4 | Project("{E66E83B9-2572-4076-B26E-6BE79FF3018A}") = "TrackPoint_INT", "TrackPoint_INT.cppproj", "{07B459B4-8D76-4638-BC6D-A459BA2D616B}"
5 | EndProject
6 | Global
7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
8 | Debug|AVR = Debug|AVR
9 | Release|AVR = Release|AVR
10 | EndGlobalSection
11 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
12 | {07B459B4-8D76-4638-BC6D-A459BA2D616B}.Debug|AVR.ActiveCfg = Debug|AVR
13 | {07B459B4-8D76-4638-BC6D-A459BA2D616B}.Debug|AVR.Build.0 = Debug|AVR
14 | {07B459B4-8D76-4638-BC6D-A459BA2D616B}.Release|AVR.ActiveCfg = Release|AVR
15 | {07B459B4-8D76-4638-BC6D-A459BA2D616B}.Release|AVR.Build.0 = Release|AVR
16 | EndGlobalSection
17 | GlobalSection(SolutionProperties) = preSolution
18 | HideSolutionNode = FALSE
19 | EndGlobalSection
20 | EndGlobal
21 |
--------------------------------------------------------------------------------
/TrackPoint_INT.atsuo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rampadc/arduino-trackpoint-extended/e55cef0f2ce805d951d4771db788dac6ca8800c4/TrackPoint_INT.atsuo
--------------------------------------------------------------------------------
/TrackPoint_INT.cppproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 2.0
5 | 6.1
6 | com.Atmel.AVRGCC8.CPP
7 | {07b459b4-8d76-4638-bc6d-a459ba2d616b}
8 | atmega32u4
9 | none
10 | Executable
11 | CPP
12 | $(MSBuildProjectName)
13 | .elf
14 | $(MSBuildProjectDirectory)\$(Configuration)
15 | TrackPoint_INT
16 | TrackPoint_INT
17 | TrackPoint_INT
18 | Native
19 | true
20 | false
21 |
22 |
23 | 0
24 | true
25 | 0x20000000
26 | true
27 |
28 | 0
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 | True
46 | True
47 | True
48 | True
49 | True
50 | True
51 |
52 |
53 | __AVR_ATmega32u4__
54 | __AVR_ATmega32U4__
55 | ARDUINO=101
56 | ARDUINO_MAIN
57 | F_CPU=16000000L
58 | __AVR__
59 | __cplusplus
60 |
61 |
62 |
63 |
64 | C:\Program Files (x86)\Arduino\hardware\arduino\cores\arduino
65 | C:\Program Files (x86)\Arduino\hardware\arduino\variants\micro
66 | C:\Program Files (x86)\Arduino\libraries
67 | C:\Program Files (x86)\Arduino\hardware\arduino\libraries
68 | C:\Program Files (x86)\Visual Micro\Visual Micro for Arduino\Micro Platforms\default\debuggers
69 | D:\Arduino_workspace\arduino-thinkpad\libraries
70 | c:\program files (x86)\arduino\hardware\tools\avr\avr\include\
71 | c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\
72 | c:\program files (x86)\arduino\hardware\tools\avr\avr\
73 | c:\program files (x86)\arduino\hardware\tools\avr\lib\gcc\avr\4.3.2\include\
74 |
75 |
76 | Optimize (-O1)
77 | True
78 | True
79 | Default (-g2)
80 | True
81 | -std=gnu99 -include=arduino.h
82 | True
83 | True
84 |
85 |
86 | __AVR_ATmega32u4__
87 | __AVR_ATmega32U4__
88 | ARDUINO=101
89 | ARDUINO_MAIN
90 | F_CPU=16000000L
91 | __AVR__
92 | __cplusplus
93 |
94 |
95 |
96 |
97 | C:\Program Files (x86)\Arduino\hardware\arduino\cores\arduino
98 | C:\Program Files (x86)\Arduino\hardware\arduino\variants\micro
99 | C:\Program Files (x86)\Arduino\libraries
100 | C:\Program Files (x86)\Arduino\hardware\arduino\libraries
101 | C:\Program Files (x86)\Visual Micro\Visual Micro for Arduino\Micro Platforms\default\debuggers
102 | D:\Arduino_workspace\arduino-thinkpad\libraries
103 | c:\program files (x86)\arduino\hardware\tools\avr\avr\include\
104 | c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\
105 | c:\program files (x86)\arduino\hardware\tools\avr\avr\
106 | c:\program files (x86)\arduino\hardware\tools\avr\lib\gcc\avr\4.3.2\include\
107 |
108 |
109 |
110 |
111 | Optimize (-O1)
112 | True
113 | True
114 | Default (-g2)
115 | True
116 | -include=arduino.h
117 | <segmentname>=<address>, for example .boot=0xff
118 | Default (-Wa,-g)
119 |
120 |
121 |
122 |
123 | micro
124 | Arduino Micro
125 | name=Arduino Micro
126 | upload.protocol=avr109
127 | upload.maximum_size=28672
128 | upload.speed=57600
129 | upload.disable_flushing=true
130 | bootloader.low_fuses=0xff
131 | bootloader.high_fuses=0xd8
132 | bootloader.extended_fuses=0xcb
133 | bootloader.path=caterina
134 | bootloader.file=Caterina-Micro.hex
135 | bootloader.unlock_bits=0x3F
136 | bootloader.lock_bits=0x2F
137 | build.mcu=atmega32u4
138 | build.f_cpu=16000000L
139 | build.vid=0x2341
140 | build.pid=0x8037
141 | build.core=arduino
142 | build.variant=micro
143 | runtime.ide.path=C:\Program Files (x86)\Arduino
144 | build.system.path=C:\Program Files (x86)\Arduino\hardware\arduino\system
145 | runtime.ide.version=105
146 | originalid=micro
147 | vm.platform.root.path=C:\Program Files (x86)\Visual Micro\Visual Micro for Arduino\Micro Platforms\arduino10x
148 | ide.hint=Arduino 0023 and 1.0.x Ide
149 | ide.location.key=Arduino
150 | ide.location.ide.winreg=Arduino 1.0.x Application
151 | ide.location.sketchbook.winreg=Arduino 1.0.x Sketchbook
152 | ide.location.sketchbook.preferences=sketchbook.path
153 | ide.location.sketchbook.default=%MYDOCUMENTS%\arduino
154 | ide.location.preferences=%VM_APPDATA_ROAMING%\arduino\preferences.txt
155 | ide.default.package=arduino
156 | ide.default.platform=avr
157 | ide.multiplatform=true
158 | ide.includes=arduino.h
159 | ide.platformswithoutpackage=true
160 | ide.includes.fallback=wprogram.h
161 | ide.extension=ino
162 | ide.extension.fallback=pde
163 | ide.versionLTEQ=149
164 | ide.exe=arduino.exe
165 | ide.hosts=atmel
166 | ide.url=http://arduino.cc/en/Main/Software
167 | vm.debug=true
168 | software=ARDUINO
169 | ide.appid=arduino10x
170 | location.sketchbook=D:\Arduino_workspace\arduino-thinkpad
171 | vm.core.include=arduino.h
172 | build.board=AVR_MICRO
173 | vm.boardsource.path=C:\Program Files (x86)\Arduino\hardware\arduino
174 | runtime.platform.path=C:\Program Files (x86)\Arduino\hardware\arduino
175 | vm.platformname.name=avr
176 | build.arch=AVR
177 | vm.runtime.compiler.showwarnings=false
178 | compiler.path=C:\Program Files (x86)\Arduino\hardware\tools\avr\bin\
179 | includes= -I"C:\Program Files (x86)\Arduino\hardware\arduino\cores\arduino" -I"C:\Program Files (x86)\Arduino\hardware\arduino\variants\micro"
180 | build.path=C:\Users\CONG\AppData\Local\VMicro\Arduino\Builds\TrackPoint_INT\micro
181 | build.project_name=TrackPoint_INT
182 | build.variant.path=C:\Program Files (x86)\Arduino\hardware\arduino\variants\micro
183 | archive_file=core.a
184 | object_file=C:\Users\CONG\AppData\Local\VMicro\Arduino\Builds\TrackPoint_INT\micro\TrackPoint_INT.cpp.o
185 | source_file=C:\Users\CONG\AppData\Local\VMicro\Arduino\Builds\TrackPoint_INT\micro\TrackPoint_INT.cpp
186 | build.architecture=avr
187 | vmresolved.compiler.path=C:\Program Files (x86)\Arduino\hardware\tools\avr\bin\
188 | vmresolved.tools.path=C:\Program Files (x86)\Arduino\hardware\tools\avr
189 | object_files="C:\Users\CONG\AppData\Local\VMicro\Arduino\Builds\TrackPoint_INT\micro\TrackPoint.cpp.o" "C:\Users\CONG\AppData\Local\VMicro\Arduino\Builds\TrackPoint_INT\micro\TrackPoint_INT.cpp.o"
190 |
191 | atmega32u4
192 | 16000000L
193 | arduino
194 | avr109
195 | 57600
196 | 28672
197 | arduino10x
198 | arduino
199 | avr
200 | COM18
201 |
202 |
203 |
204 |
205 |
206 |
207 | True
208 | True
209 | True
210 | True
211 | True
212 | True
213 |
214 |
215 | __AVR_ATmega32u4__
216 | __AVR_ATmega32U4__
217 | ARDUINO=101
218 | ARDUINO_MAIN
219 | F_CPU=16000000L
220 | __AVR__
221 | __cplusplus
222 |
223 |
224 |
225 |
226 | C:\Program Files (x86)\Arduino\hardware\arduino\cores\arduino
227 | C:\Program Files (x86)\Arduino\hardware\arduino\variants\micro
228 | C:\Program Files (x86)\Arduino\libraries
229 | C:\Program Files (x86)\Arduino\hardware\arduino\libraries
230 | C:\Program Files (x86)\Visual Micro\Visual Micro for Arduino\Micro Platforms\default\debuggers
231 | D:\Arduino_workspace\arduino-thinkpad\libraries
232 | c:\program files (x86)\arduino\hardware\tools\avr\avr\include\
233 | c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\
234 | c:\program files (x86)\arduino\hardware\tools\avr\avr\
235 | c:\program files (x86)\arduino\hardware\tools\avr\lib\gcc\avr\4.3.2\include\
236 |
237 |
238 | Optimize (-O1)
239 | True
240 | True
241 | Default (-g2)
242 | True
243 | -std=gnu99 -include=arduino.h
244 | True
245 | True
246 |
247 |
248 | __AVR_ATmega32u4__
249 | __AVR_ATmega32U4__
250 | ARDUINO=101
251 | ARDUINO_MAIN
252 | F_CPU=16000000L
253 | __AVR__
254 | __cplusplus
255 |
256 |
257 |
258 |
259 | C:\Program Files (x86)\Arduino\hardware\arduino\cores\arduino
260 | C:\Program Files (x86)\Arduino\hardware\arduino\variants\micro
261 | C:\Program Files (x86)\Arduino\libraries
262 | C:\Program Files (x86)\Arduino\hardware\arduino\libraries
263 | C:\Program Files (x86)\Visual Micro\Visual Micro for Arduino\Micro Platforms\default\debuggers
264 | D:\Arduino_workspace\arduino-thinkpad\libraries
265 | c:\program files (x86)\arduino\hardware\tools\avr\avr\include\
266 | c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\
267 | c:\program files (x86)\arduino\hardware\tools\avr\avr\
268 | c:\program files (x86)\arduino\hardware\tools\avr\lib\gcc\avr\4.3.2\include\
269 |
270 |
271 |
272 |
273 | Optimize (-O1)
274 | True
275 | True
276 | Default (-g2)
277 | True
278 | -include=arduino.h
279 | <segmentname>=<address>, for example .boot=0xff
280 | Default (-Wa,-g)
281 |
282 |
283 |
284 |
285 | micro
286 | Arduino Micro
287 | name=Arduino Micro
288 | upload.protocol=avr109
289 | upload.maximum_size=28672
290 | upload.speed=57600
291 | upload.disable_flushing=true
292 | bootloader.low_fuses=0xff
293 | bootloader.high_fuses=0xd8
294 | bootloader.extended_fuses=0xcb
295 | bootloader.path=caterina
296 | bootloader.file=Caterina-Micro.hex
297 | bootloader.unlock_bits=0x3F
298 | bootloader.lock_bits=0x2F
299 | build.mcu=atmega32u4
300 | build.f_cpu=16000000L
301 | build.vid=0x2341
302 | build.pid=0x8037
303 | build.core=arduino
304 | build.variant=micro
305 | runtime.ide.path=C:\Program Files (x86)\Arduino
306 | build.system.path=C:\Program Files (x86)\Arduino\hardware\arduino\system
307 | runtime.ide.version=105
308 | originalid=micro
309 | vm.platform.root.path=C:\Program Files (x86)\Visual Micro\Visual Micro for Arduino\Micro Platforms\arduino10x
310 | ide.hint=Arduino 0023 and 1.0.x Ide
311 | ide.location.key=Arduino
312 | ide.location.ide.winreg=Arduino 1.0.x Application
313 | ide.location.sketchbook.winreg=Arduino 1.0.x Sketchbook
314 | ide.location.sketchbook.preferences=sketchbook.path
315 | ide.location.sketchbook.default=%MYDOCUMENTS%\arduino
316 | ide.location.preferences=%VM_APPDATA_ROAMING%\arduino\preferences.txt
317 | ide.default.package=arduino
318 | ide.default.platform=avr
319 | ide.multiplatform=true
320 | ide.includes=arduino.h
321 | ide.platformswithoutpackage=true
322 | ide.includes.fallback=wprogram.h
323 | ide.extension=ino
324 | ide.extension.fallback=pde
325 | ide.versionLTEQ=149
326 | ide.exe=arduino.exe
327 | ide.hosts=atmel
328 | ide.url=http://arduino.cc/en/Main/Software
329 | vm.debug=true
330 | software=ARDUINO
331 | ide.appid=arduino10x
332 | location.sketchbook=D:\Arduino_workspace\arduino-thinkpad
333 | vm.core.include=arduino.h
334 | build.board=AVR_MICRO
335 | vm.boardsource.path=C:\Program Files (x86)\Arduino\hardware\arduino
336 | runtime.platform.path=C:\Program Files (x86)\Arduino\hardware\arduino
337 | vm.platformname.name=avr
338 | build.arch=AVR
339 | vm.runtime.compiler.showwarnings=false
340 | compiler.path=C:\Program Files (x86)\Arduino\hardware\tools\avr\bin\
341 | includes= -I"C:\Program Files (x86)\Arduino\hardware\arduino\cores\arduino" -I"C:\Program Files (x86)\Arduino\hardware\arduino\variants\micro"
342 | build.path=C:\Users\CONG\AppData\Local\VMicro\Arduino\Builds\TrackPoint_INT\micro
343 | build.project_name=TrackPoint_INT
344 | build.variant.path=C:\Program Files (x86)\Arduino\hardware\arduino\variants\micro
345 | archive_file=core.a
346 | object_file=C:\Users\CONG\AppData\Local\VMicro\Arduino\Builds\TrackPoint_INT\micro\TrackPoint_INT.cpp.o
347 | source_file=C:\Users\CONG\AppData\Local\VMicro\Arduino\Builds\TrackPoint_INT\micro\TrackPoint_INT.cpp
348 | build.architecture=avr
349 | vmresolved.compiler.path=C:\Program Files (x86)\Arduino\hardware\tools\avr\bin\
350 | vmresolved.tools.path=C:\Program Files (x86)\Arduino\hardware\tools\avr
351 | object_files="C:\Users\CONG\AppData\Local\VMicro\Arduino\Builds\TrackPoint_INT\micro\TrackPoint.cpp.o" "C:\Users\CONG\AppData\Local\VMicro\Arduino\Builds\TrackPoint_INT\micro\TrackPoint_INT.cpp.o"
352 |
353 | atmega32u4
354 | 16000000L
355 | arduino
356 | avr109
357 | 57600
358 | 28672
359 | arduino10x
360 | arduino
361 | avr
362 | COM18
363 |
364 |
365 |
366 |
367 |
368 | compile
369 |
370 |
371 |
372 |
373 |
374 |
375 |
376 | compile
377 |
378 |
379 | compile
380 |
381 |
382 | compile
383 |
384 |
385 | compile
386 |
387 |
388 |
389 |
--------------------------------------------------------------------------------
/TrackPoint_INT.ino:
--------------------------------------------------------------------------------
1 | /*
2 | * Created on 14/03/2014
3 | * Author: Cong Nguyen
4 | *
5 | * Using an Arduino Leonardo to interface with a TrackPoint
6 | * Pin 3 (int.0) : CLOCK
7 | * Pin 2 : DATA
8 | * Pin 4 : RESET
9 | */
10 | #include "TrackPoint.h"
11 |
12 | #define CLOCK 3
13 | #define DATA 2
14 | #define RESET 0
15 | #define CLOCK_INT 0
16 |
17 | TrackPoint trackpoint(CLOCK, DATA, RESET, true);
18 |
19 | void setup()
20 | {
21 | Mouse.begin();
22 |
23 | trackpoint.reset();
24 | trackpoint.setSensitivityFactor(0xC0);
25 | trackpoint.setStreamMode();
26 |
27 | attachInterrupt(CLOCK_INT, clockInterrupt, FALLING);
28 | }
29 |
30 | void loop()
31 | {
32 | if(trackpoint.reportAvailable()) {
33 | TrackPoint::DataReport d = trackpoint.getStreamReport();
34 | Mouse.move(d.x, -d.y, 0);
35 | }
36 |
37 | }
38 |
39 | void clockInterrupt(void) {
40 | trackpoint.getDataBit();
41 | }
--------------------------------------------------------------------------------
/Visual Micro/.TrackPoint_INT.vsarduino.h:
--------------------------------------------------------------------------------
1 | /*
2 | Editor: http://www.visualmicro.com
3 | arduino debugger, visual micro +, free forum and wiki
4 |
5 | Hardware: Arduino Leonardo, Platform=avr, Package=arduino
6 | */
7 |
8 | #define __AVR_ATmega32u4__
9 | #define __AVR_ATmega32U4__
10 | #define ARDUINO 101
11 | #define ARDUINO_MAIN
12 | #define F_CPU 16000000L
13 | #define __AVR__
14 | #define __cplusplus
15 | extern "C" void __cxa_pure_virtual() {;}
16 |
17 | //
18 | //
19 | void clockInterrupt(void);
20 |
21 | #include "C:\Program Files (x86)\Arduino\hardware\arduino\variants\leonardo\pins_arduino.h"
22 | #include "C:\Program Files (x86)\Arduino\hardware\arduino\cores\arduino\arduino.h"
23 | #include "D:\SVNs\arduino-thinkpad\TrackPoint_INT\TrackPoint_INT.ino"
24 | #include "D:\SVNs\arduino-thinkpad\TrackPoint_INT\TrackPoint.cpp"
25 | #include "D:\SVNs\arduino-thinkpad\TrackPoint_INT\TrackPoint.h"
26 |
--------------------------------------------------------------------------------
/Visual Micro/.arduino-trackpoint-extended.vsarduino.h:
--------------------------------------------------------------------------------
1 | /*
2 | Editor: http://www.visualmicro.com
3 | visual micro and the arduino ide ignore this code during compilation. this code is automatically maintained by visualmicro, manual changes to this file will be overwritten
4 | the contents of the Visual Micro sketch sub folder can be deleted prior to publishing a project
5 | all non-arduino files created by visual micro and all visual studio project or solution files can be freely deleted and are not required to compile a sketch (do not delete your own code!).
6 | note: debugger breakpoints are stored in '.sln' or '.asln' files, knowledge of last uploaded breakpoints is stored in the upload.vmps.xml file. Both files are required to continue a previous debug session without needing to compile and upload again
7 |
8 | Hardware: Arduino Micro, Platform=avr, Package=arduino
9 | */
10 |
11 | #define __AVR_ATmega32u4__
12 | #define __AVR_ATmega32U4__
13 | #define ARDUINO 101
14 | #define ARDUINO_MAIN
15 | #define F_CPU 16000000L
16 | #define __AVR__
17 | #define __cplusplus
18 | extern "C" void __cxa_pure_virtual() {;}
19 |
20 | //
21 | //
22 | void clockInterrupt(void);
23 |
24 | #include "C:\Program Files (x86)\Arduino\hardware\arduino\variants\micro\pins_arduino.h"
25 | #include "C:\Program Files (x86)\Arduino\hardware\arduino\cores\arduino\arduino.h"
26 | #include "D:\CONG\Documents\GitHub\arduino-trackpoint-extended\TrackPoint_INT.ino"
27 | #include "D:\CONG\Documents\GitHub\arduino-trackpoint-extended\TrackPoint.cpp"
28 | #include "D:\CONG\Documents\GitHub\arduino-trackpoint-extended\TrackPoint.h"
29 |
--------------------------------------------------------------------------------
/Visual Micro/Compile.vmps.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/Visual Micro/Configuration.Debug.vmps.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Visual Micro/Upload.vmps.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/readme-photo/Leonardo-TrackPoint.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rampadc/arduino-trackpoint-extended/e55cef0f2ce805d951d4771db788dac6ca8800c4/readme-photo/Leonardo-TrackPoint.jpg
--------------------------------------------------------------------------------