├── .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 | ![](/readme-photo/Leonardo-TrackPoint.jpg) 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 --------------------------------------------------------------------------------