grip2hid: tweak HID report to match PS3 controller layout

The grip2hid is now better usable on hte PS3 console!
diff --git a/grip2hid/Descriptors.c b/grip2hid/Descriptors.c
index 14bc0d5..8f15eb7 100644
--- a/grip2hid/Descriptors.c
+++ b/grip2hid/Descriptors.c
@@ -37,6 +37,24 @@
 
 #include "Descriptors.h"
 
+#define BLOCK1 \
+				HID_RI_USAGE(8, 9), \
+				HID_RI_USAGE(8, 10), \
+				HID_RI_USAGE(8, 8), \
+				HID_RI_USAGE(8, 4), \
+				HID_RI_REPORT_SIZE(8, 0x01), \
+				HID_RI_REPORT_COUNT(8, 4), \
+				HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE),
+
+#define BLOCK2 \
+				HID_RI_USAGE(8, 7), \
+				HID_RI_USAGE(8, 3), \
+				HID_RI_USAGE(8, 2), \
+				HID_RI_USAGE(8, 1), \
+				HID_RI_REPORT_SIZE(8, 0x01), \
+				HID_RI_REPORT_COUNT(8, 4), \
+				HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE),
+
 /** HID class report descriptor. This is a special descriptor constructed with values from the
  *  USBIF HID class specification to describe the reports and capabilities of the HID device. This
  *  descriptor is parsed by the host and its contents used to determine what data (and in what encoding)
@@ -51,37 +69,34 @@
 
 				0x85, 0x01, // Report ID 1
 
-				// 15 constant bytes
+				// 15 unused bits (the report is 32 bits to simplify/optimize some things, with
+				// extra padding at the start (8 bits), followed by the sync sequence 0111110
+				// (7 bits)
 				HID_RI_REPORT_SIZE(8, 15),
 				HID_RI_REPORT_COUNT(8, 0x01),
 				HID_RI_INPUT(8, HID_IOF_CONSTANT),
 
+				// Let's define some buttons
 				HID_RI_USAGE_PAGE(8, 0x09),
 				HID_RI_LOGICAL_MINIMUM(8, 0x00),
 				HID_RI_LOGICAL_MAXIMUM(8, 0x01),
 
-				HID_RI_USAGE_MINIMUM(8, 7),
-				HID_RI_USAGE_MAXIMUM(8, 9),
-				HID_RI_USAGE(8, 4),
-				HID_RI_REPORT_SIZE(8, 0x01),
-				HID_RI_REPORT_COUNT(8, 4),
-				HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE),
+				// 9, 10, 8, 4 (Select, Start, R2, Blue)
+				BLOCK1
+
+				// One unused bit (always 0)
+				HID_RI_REPORT_SIZE(8, 1),
+				HID_RI_REPORT_COUNT(8, 0x01),
+				HID_RI_INPUT(8, HID_IOF_CONSTANT),
+
+				// 7, 3, 2, 1 (L2, Green, Yellow, Red)
+				BLOCK2
 
 				HID_RI_REPORT_SIZE(8, 1),
 				HID_RI_REPORT_COUNT(8, 0x01),
 				HID_RI_INPUT(8, HID_IOF_CONSTANT),
 
-				HID_RI_USAGE(8, 10),
-				HID_RI_USAGE_MINIMUM(8, 1),
-				HID_RI_USAGE_MAXIMUM(8, 3),
-				HID_RI_REPORT_SIZE(8, 0x01),
-				HID_RI_REPORT_COUNT(8, 4),
-				HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE),
-
-				HID_RI_REPORT_SIZE(8, 1),
-				HID_RI_REPORT_COUNT(8, 0x01),
-				HID_RI_INPUT(8, HID_IOF_CONSTANT),
-
+				// 5, 6 (L1, R1)
 				HID_RI_USAGE_MINIMUM(8, 5),
 				HID_RI_USAGE_MAXIMUM(8, 6),
 				HID_RI_REPORT_SIZE(8, 0x01),
@@ -127,23 +142,13 @@
 				HID_RI_LOGICAL_MINIMUM(8, 0x00),
 				HID_RI_LOGICAL_MAXIMUM(8, 0x01),
 
-				HID_RI_USAGE_MINIMUM(8, 7),
-				HID_RI_USAGE_MAXIMUM(8, 9),
-				HID_RI_USAGE(8, 4),
-				HID_RI_REPORT_SIZE(8, 0x01),
-				HID_RI_REPORT_COUNT(8, 4),
-				HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE),
+				BLOCK1
 
 				HID_RI_REPORT_SIZE(8, 1),
 				HID_RI_REPORT_COUNT(8, 0x01),
 				HID_RI_INPUT(8, HID_IOF_CONSTANT),
 
-				HID_RI_USAGE(8, 10),
-				HID_RI_USAGE_MINIMUM(8, 1),
-				HID_RI_USAGE_MAXIMUM(8, 3),
-				HID_RI_REPORT_SIZE(8, 0x01),
-				HID_RI_REPORT_COUNT(8, 4),
-				HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE),
+				BLOCK2
 
 				HID_RI_REPORT_SIZE(8, 1),
 				HID_RI_REPORT_COUNT(8, 0x01),
@@ -194,23 +199,13 @@
 				HID_RI_LOGICAL_MINIMUM(8, 0x00),
 				HID_RI_LOGICAL_MAXIMUM(8, 0x01),
 
-				HID_RI_USAGE_MINIMUM(8, 7),
-				HID_RI_USAGE_MAXIMUM(8, 9),
-				HID_RI_USAGE(8, 4),
-				HID_RI_REPORT_SIZE(8, 0x01),
-				HID_RI_REPORT_COUNT(8, 4),
-				HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE),
+				BLOCK1
 
 				HID_RI_REPORT_SIZE(8, 1),
 				HID_RI_REPORT_COUNT(8, 0x01),
 				HID_RI_INPUT(8, HID_IOF_CONSTANT),
 
-				HID_RI_USAGE(8, 10),
-				HID_RI_USAGE_MINIMUM(8, 1),
-				HID_RI_USAGE_MAXIMUM(8, 3),
-				HID_RI_REPORT_SIZE(8, 0x01),
-				HID_RI_REPORT_COUNT(8, 4),
-				HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE),
+				BLOCK2
 
 				HID_RI_REPORT_SIZE(8, 1),
 				HID_RI_REPORT_COUNT(8, 0x01),
@@ -261,23 +256,13 @@
 				HID_RI_LOGICAL_MINIMUM(8, 0x00),
 				HID_RI_LOGICAL_MAXIMUM(8, 0x01),
 
-				HID_RI_USAGE_MINIMUM(8, 7),
-				HID_RI_USAGE_MAXIMUM(8, 9),
-				HID_RI_USAGE(8, 4),
-				HID_RI_REPORT_SIZE(8, 0x01),
-				HID_RI_REPORT_COUNT(8, 4),
-				HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE),
+				BLOCK1
 
 				HID_RI_REPORT_SIZE(8, 1),
 				HID_RI_REPORT_COUNT(8, 0x01),
 				HID_RI_INPUT(8, HID_IOF_CONSTANT),
 
-				HID_RI_USAGE(8, 10),
-				HID_RI_USAGE_MINIMUM(8, 1),
-				HID_RI_USAGE_MAXIMUM(8, 3),
-				HID_RI_REPORT_SIZE(8, 0x01),
-				HID_RI_REPORT_COUNT(8, 4),
-				HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE),
+				BLOCK2
 
 				HID_RI_REPORT_SIZE(8, 1),
 				HID_RI_REPORT_COUNT(8, 0x01),
diff --git a/grip2hid/Joystick.hex b/grip2hid/Joystick.hex
index 53ce265..08f61a7 100644
--- a/grip2hid/Joystick.hex
+++ b/grip2hid/Joystick.hex
@@ -1,305 +1,308 @@
-:1000000049C1000063C1000061C100005FC1000080

-:100010005DC100005BC1000059C1000057C1000074

-:1000200055C1000053C1000051C1000028C50000A7

-:100030004DC100004BC1000049C1000047C1000094

-:1000400045C1000043C1000041C100003FC10000A4

-:100050003DC100003BC1000039C1000037C10000B4

-:1000600035C1000033C1000031C100002FC10000C4

-:100070002DC100002A03470072006100760069006C

+:1000000051C100006BC1000069C1000067C1000060

+:1000100065C1000063C1000061C100005FC1000054

+:100020005DC100005BC1000059C1000032C5000085

+:1000300055C1000053C1000051C100004FC1000074

+:100040004DC100004BC1000049C1000047C1000084

+:1000500045C1000043C1000041C100003FC1000094

+:100060003DC100003BC1000039C1000037C10000A4

+:1000700035C100002A034700720061007600690064

 :100080007300200047007200490050002000670004

 :1000900061006D0065007000610064007300000085

 :1000A0001A03500075006C006B006F005400720062

 :1000B0006F006E0069006300730000000403090410

 :1000C00009022200010100C03209040000010300FE

-:1000D000000009211101000122A001070581030888

+:1000D000000009211101000122B001070581030878

 :1000E00000051201100100000008C016DC27010005

 :1000F0000102000105010904A1018501750F9501A7

-:10010000810105091500250119072909090475014F

-:1001100095048102750195018101090A19012903DC

-:100120007501950481027501950181011905290662

-:1001300075019502810205010901A100093115FE31

-:100140002501950175028102750195018101093032

-:1001500015FE2501950175028102C0C00501090443

-:10016000A1018502750F9501810105091500250181

-:100170001907290909047501950481027501950182

-:100180008101090A1901290375019504810275018C

-:100190009501810119052906750195028102050164

-:1001A0000901A100093115FE2501950175028102A1

-:1001B000750195018101093015FE25019501750232

-:1001C0008102C0C005010904A1018503750F9501D5

-:1001D000810105091500250119072909090475017F

-:1001E00095048102750195018101090A190129030C

-:1001F0007501950481027501950181011905290692

-:1002000075019502810205010901A100093115FE60

-:100210002501950175028102750195018101093061

-:1002200015FE2501950175028102C0C00501090472

-:10023000A1018504750F95018101050915002501AE

-:1002400019072909090475019504810275019501B1

-:100250008101090A190129037501950481027501BB

-:100260009501810119052906750195028102050193

-:100270000901A100093115FE2501950175028102D0

-:10028000750195018101093015FE25019501750261

-:100290008102C0C011241FBECFEFD2E0DEBFCDBFB0

-:1002A00011E0A0E0B1E0E8EEF2E102C005900D92AD

-:1002B000A031B107D9F721E0A0E1B1E001C01D9262

-:1002C000A232B207E1F71CD00C94720999CE84B720

-:1002D000877F84BF0FB6F894A895809160008861ED

-:1002E00080936000109260000FBE80E890E00FB62F

-:1002F000F89480936100909361000FBEC4D0B0C3A6

-:10030000E6DF789480E091E018D7B9D5FBCF089567

-:10031000089580E091E0FED6E2EEF0E08081846016

-:100320008083089580E091E0C4C580910E01909192

-:100330000F01009729F0019790930F0180930E0110

-:100340000895EF92FF920F931F93CF93DF937B015A

-:10035000E901FB016081C9019AD08F5FF7018083B9

-:100360009B81892F8870880F292F26952870822BD2

-:10037000977E89278B8384E090E0F80191838083C6

-:1003800081E0DF91CF911F910F91FF90EF90089541

-:100390000895292F332723303105D1F070F421300F

-:1003A000310551F12230310561F190E080E030E01B

-:1003B00020E0FA013183208308952132310531F1A3

-:1003C0002232310591F780EA91E024EF30E0F1CF5D

-:1003D00099278130910569F0009729F0029729F754

-:1003E000E4E7F0E002C0ECEBF0E0849190E09F01E4

-:1003F000E0CFE0EAF0E0F9CF82E190E022EE30E0F9

-:10040000D8CF82E290E020EC30E0D3CF89E090E0DA

-:1004100022ED30E0CECFFC0180819181A281B381B9

-:10042000B695A795979587957727469577956627EB

-:1004300055274427842B952BA62BB72B808391839C

-:10044000A283B383248131E0320F348325812223B8

-:1004500021F0213091F080E00895AC01BD014427E6

-:10046000552766277E7F4115510561057C4799F721

-:1004700087E0848381E08583EECF383161F7158290

-:10048000148281E008958FEF8BB91AB80895CF9246

-:10049000DF92EF92FF920F931F93CF93DF9300D0E1

-:1004A00000D000D0CDB7DEB77C0189B1662351F111

-:1004B00061506093140119821A821B821C821D8272

-:1004C0001E821091140111113DC0C12C48E0D42EA0

-:1004D00009B100FD22C080FF20C001FB442740F984

-:1004E00050E070E060E0CE01019695DF8823A9F02E

-:1004F00089819A81AB81BC81F70180839183A2833A

-:10050000B38310C0909114019F5F943018F49093BE

-:100510001401D1CF10921401CECFF1E0CF1AD1083F

-:10052000802FB1F6812F26960FB6F894DEBF0FBE4E

-:10053000CDBFDF91CF911F910F91FF90EF90DF9092

-:10054000CF9008951130C9F4C12C38E0D32E09B1F1

-:1005500002FD0DC082FF0BC003FB442740F950E0B1

-:1005600070E060E0CE01019656DF8111C1CFF1E06D

-:10057000CF1AD108802F59F7D5CF1230C9F4C12C2A

-:1005800028E0D22E09B104FD0DC084FF0BC005FB8D

-:10059000442740F950E070E060E0CE0101963BDF77

-:1005A0008111A6CFF1E0CF1AD108802F59F7BACF29

-:1005B000133009F0B7CFC12C98E0D92E09B106FD50

-:1005C00013C086FF11C0402F002E000C550B660B88

-:1005D000770B442777FD4395552766277727CE016C

-:1005E000019619DF811184CFF1E0CF1AD108802F55

-:1005F00029F798CFAF92BF92CF92DF92FF920F93DD

-:100600001F93CF93DF936C01EB018A01C0D1F82EC9

-:10061000811124C00115110539F0F8018081918103

-:10062000C81BD90BC80ED91EB12CA12C2097B1F034

-:100630008091E80085FD22C08091E8008E7780934C

-:10064000E8001DD401151105A1F0F8018081918108

-:10065000A80EB91EB182A08285E0F82E8F2DDF9101

-:10066000CF911F910F91FF90DF90CF90BF90AF90EF

-:1006700008958DD18823D1F2F82EF0CFF601819123

-:100680006F018093F1002197FFEFAF1ABF0ACECF21

-:10069000FC01809120019091210186179707A0F01D

-:1006A0006115710529F49091E8009E779093E80018

-:1006B00090E06115710551F4911108C08091E80036

-:1006C00082FF32C080E00895BC01F2CF8091190111

-:1006D0008823B1F18530B1F18091E80083FD2EC00F

-:1006E0008091E80082FDEACF8091E80080FFE1CFB1

-:1006F0002091F20030E06115710519F028303105C4

-:1007000058F091E02830310509F090E02091E800A0

-:100710002E772093E800CDCF81918093F100615036

-:1007200071092F5F3F4FE7CF80911901882341F076

-:10073000853041F08091E80083FFC0CF81E00895CB

-:1007400082E0089583E00895FC016115710529F4A4

-:100750009091E8009B779093E8006115710531F462

-:100760008091E80080FF1BC080E00895809119010E

-:100770008823F9F08530C9F08091E80083FD17C027

-:100780008091E80082FFE9CF8091F200882301F395

-:100790008091F100819361507109B1F7D9CF8091B7

-:1007A0001901882331F08530D9F683E0089581E07E

-:1007B000089582E00895FC0180912001909121012B

-:1007C00086179707A0F06115710529F48091E8005C

-:1007D0008E778093E80090E06115710551F49111D6

-:1007E00008C08091E80082FF33C080E00895BC011A

-:1007F000F2CF809119018823B9F18530B9F1809148

-:10080000E80083FD2FC08091E80082FDEACF80914F

-:10081000E80080FFE1CF2091F20030E06115710522

-:1008200019F02830310558F091E02830310509F0F1

-:1008300090E08091E8008E778093E800CDCF84919E

-:100840008093F1003196615071092F5F3F4FE6CFE1

-:1008500080911901882341F0853041F08091E800B2

-:1008600083FFBFCF81E0089582E0089583E008957B

-:10087000982F953028F08F708093E90081E00895DB

-:100880009093E900242F762F50E0981731F0709163

-:10089000EC002091ED005091F00021FD02C09F5F1F

-:1008A000E8CF3091EB003E7F3093EB003091ED00CC

-:1008B0003D7F3093ED003091EB0031603093EB00E1

-:1008C0007093EC002093ED005093F0002091EE0027

-:1008D00027FDE5CF80E008950F931F93CF93DF931B

-:1008E000062FEC0110E0101302C081E00BC028813C

-:1008F000211103C01F5F2596F6CF822F8F708530A0

-:1009000030F080E0DF91CF911F910F9108959C818D

-:1009100042E0923008F046E0E981FA8168E070E058

-:1009200090E06E177F0780F09295907F492B6B8146

-:100930006295660F660F607C221F2227221F622BA2

-:1009400097DF8111D7CFDDCF9F5F660F771FE9CF8C

-:1009500080911A0187FF13C08091E80082FF06C0D2

-:100960008091E8008B778093E80004C080911901A2

-:100970008111F2CF0895809119018823D9F38091D4

-:10098000E80080FFF8CF8091E8008E77ECCF2091CF

-:10099000E4003091E50095E6A9012091EC00822F5A

-:1009A000817020FF06C08091E80080FF06C080E0D3

-:1009B00008952091E80022FD1AC080911901882332

-:1009C00089F0853089F08091EB0085FD0FC0209182

-:1009D000E4003091E50042175307F9F29150E1F637

-:1009E00084E0089582E0089583E0089581E0089509

-:1009F00040D042D08091D8008F778093D8008091EA

-:100A0000D80080688093D8008091D8008F7D809333

-:100A1000D80019BC82E089BD09B400FEFDCF109258

-:100A2000190110921501109217011092160142E05F

-:100A300060E080E01DDF8091E1008E7F8093E10027

-:100A40008091E20081608093E2008091E200886002

-:100A50008093E2008091E0008E7F8093E000089513

-:100A6000E3E6F0E080818E7F808381E0809318014F

-:100A7000BFCF1092E20008951092E10008951F92F6

-:100A80000F920FB60F9211242F933F934F935F93C2

-:100A90006F937F938F939F93AF93BF93EF93FF9346

-:100AA0008091E10082FF0AC08091E20082FF06C0CF

-:100AB0008091E1008B7F8093E10037DC8091E10041

-:100AC00080FF17C08091E20080FF13C08091E20098

-:100AD0008E7F8093E2008091E20080618093E2004B

-:100AE0008091D80080628093D80019BC10921901BF

-:100AF0000FDC8091E10084FF28C08091E20084FF38

-:100B000024C019BC82E089BD89B5982F917080FFFF

-:100B1000FBCF8091D8008F7D8093D8008091E10039

-:100B20008F7E8093E1008091E2008F7E8093E200CF

-:100B30008091E20081608093E2008091150188231A

-:100B4000D9F184E080931901E2DB8091E10083FF19

-:100B500022C08091E20083FF1EC08091E100877F68

-:100B60008093E10082E08093190110921501809139

-:100B7000E1008E7F8093E1008091E2008E7F809380

-:100B8000E2008091E20080618093E20042E060E058

-:100B900080E06EDE73D1FF91EF91BF91AF919F9195

-:100BA0008F917F916F915F914F913F912F910F9016

-:100BB0000FBE0F901F9018958091E30087FD93E082

-:100BC00090931901C1CF1F93CF93DF93CDB7DEB7B9

-:100BD000AA970FB6F894DEBF0FBECDBF8AE191E0B1

-:100BE0002091F100FC012193CF01F1E082329F07B7

-:100BF000B9F798DB8091E80083FF11C090911A014A

-:100C000080911B01853009F4C3C008F5813009F4D7

-:100C10008CC0882309F461C0833009F486C08091B8

-:100C2000E80083FF0AC08091E800877F8093E80096

-:100C30008091EB0080628093EB00AA960FB6F89447

-:100C4000DEBF0FBECDBFDF91CF911F9108958830D9

-:100C500009F4D5C0893009F4DFC0863001F7905817

-:100C60009230E8F680911C0190911D018C3D23E0AB

-:100C7000920709F0AFC083E08A838AE289834FB785

-:100C8000F894DE01139620E03EE051E2E32FF0E01D

-:100C900050935700E49120FF03C0E295EF703F5F4F

-:100CA000EF708E2F90E0EA3008F492C0C7968D93D3

-:100CB0009D932F5F243151F74FBF8091E800877FCC

-:100CC0008093E8006AE270E0CE010196E1DC809159

-:100CD000E8008B778093E800A2CF903899F09238A3

-:100CE00009F09DCF80911E018F70853008F097CF5D

-:100CF0008093E9008091EB0085FB882780F91092B2

-:100D0000E90006C08091160190911701911182604F

-:100D10009091E800977F9093E8008093F100109203

-:100D2000F1008091E8008E77A5C0992309F492C064

-:100D3000923009F074CF90911C01911196C090915E

-:100D40001E019F702FEF290F243008F068CF909379

-:100D5000E9002091EB0020FF88C0833031F48091BE

-:100D6000EB0080628093EB0080C08091EB0080619B

-:100D70008093EB0021E030E001C0220F9A95EAF762

-:100D80002093EA001092EA008091EB008860EACF9D

-:100D9000911145CF10911C011F778091E30080785D

-:100DA000812B8093E3008091E800877F8093E800A7

-:100DB000CFDD8091E80080FFFCCF8091E300806868

-:100DC0008093E30082E0111183E08093190127CF23

-:100DD000C0966DCF60911E0170911F01AE014F5FF3

-:100DE0005F4FD7DABC01892B09F419CF9091E80045

-:100DF000977F9093E80089819A81DDDC68CF9038F5

-:100E000009F00DCF8091E800877F8093E800809102

-:100E100015018093F10085CF911101CF90911C01B4

-:100E2000923008F0FCCE8091E800877F8093E80044

-:100E3000909315018DDD80911501882311F084E0D8

-:100E400005C08091E30087FDFACF81E0809319010E

-:100E500060DAE5CE90911C01913009F0E0CE91E08E

-:100E6000833009F090E0909317011092E90080918F

-:100E7000E800877F8093E8006BDDD1CE0895CF93A3

-:100E800080911901882399F0C091E900CF70909169

-:100E9000EC00892F817090FD80E8C82B1092E9004A

-:100EA0008091E80083FD8FDECF70C093E900CF9181

-:100EB00008956F927F928F929F92AF92BF92CF923E

-:100EC000DF92EF92FF920F931F93CF93DF9300D0A7

-:100ED0000F92CDB7DEB77C01CDB6DEB68091E800CB

-:100EE00083FF15C0F701208180911E0190911F01A1

-:100EF0002817190661F480911B01833009F4ADC0F5

-:100F0000E8F4813009F459C0823009F4EDC00FB61D

-:100F1000F894DEBE0FBECDBE0F900F900F90DF9104

-:100F2000CF911F910F91FF90EF90DF90CF90BF90E6

-:100F3000AF909F908F907F906F9008958A3009F4C2

-:100F4000B9C08B3009F4A2C0893009F780911A0129

-:100F50008132E9F68DB69EB60091200110912101F3

-:100F600070901C0160901D018DB79EB7801B910B86

-:100F70000FB6F8949EBF0FBE8DBFEDB7FEB731968A

-:100F80005F018091E800877F8093E800B801CF017E

-:100F9000DBDB8091E8008E778093E80021E0711020

-:100FA00001C020E030E0021B130B2A0D3B1D4FEF68

-:100FB000460D672DC701ECD94AC080911A01813ACC

-:100FC00009F0A5CF8DB69EB61A82198280911C01B8

-:100FD00010911D018B838085482F50E08DB79EB7FF

-:100FE000841B950B0FB6F8949EBF0FBE8DBFEDB757

-:100FF000FEB731965F0170E060E0CF016CD14FEF3A

-:10100000410F8E010F5F1F4F9501BE016D5F7F4F36

-:10101000C70197D9F70186819781009721F0408514

-:1010200050E0B5014FD11092E9008091E800877F30

-:101030008093E8008B8181118093F10069817A812E

-:10104000C50126DB8091E8008B778093E8000FB61E

-:10105000F8949EBE0FBE8DBE5ACF80911A01813A80

-:1010600009F055CF8091E800877F8093E800809158

-:10107000E80080FFFCCFF70181858093F10080912B

-:10108000E8008E778093E80063DC41CF80911A01FD

-:10109000813209F03CCF8091E800877F8093E8009F

-:1010A00057DC90911C0181E0911101C080E0F701B3

-:1010B00081872DCF80911A01813209F028CF80914C

-:1010C000E800877F8093E80043DC80911C019091C9

-:1010D0001D0136E0969587953A95E1F78C7F9370E0

-:1010E000F7019587848713CF80911A01813A09F01F

-:1010F0000ECF8091E800877F8093E8008091E80020

-:1011000080FFFCCFF7018485958596958795969508

-:101110008795B3CFFC01399627E0DF011D922A9510

-:10112000E9F721E0FC01218724EF31E035872487AE

-:1011300023E0248361E00196CFCB5F926F927F9290

-:101140008F929F92AF92BF92CF92DF92EF92FF92D7

-:101150000F931F93CF93DF9300D00F92CDB7DEB7DD

-:101160007C01ADB6BEB680911901843009F085C00E

-:101170008091E4009091E500F701228533852817DE

-:10118000390709F47AC081818F708093E9008091DA

-:10119000E80085FF72C08DB69EB6408550E08DB7E1

-:1011A0009EB7841B950B0FB6F8949EBF0FBE8DBFE4

-:1011B000EDB7FEB731966F011B821A82198270E07B

-:1011C00060E0CF0188D08E010F5F1F4F960140E095

-:1011D000BE016D5F7F4FC701B4D8582EF7018485DB

-:1011E0009585892B29F011E086859785892B09F053

-:1011F00010E0F7016680778000E06114710479F0F7

-:1012000049815A81B301C60150D001E0892B09F40C

-:1012100000E0F701408550E0B601C30153D0898159

-:101220009A81892BF1F0511004C0011102C010FF06

-:1012300018C0F701848595859787868781818F708F

-:101240008093E9008B8181118093F10069817A811B

-:1012500050E040E0C601CED98091E8008E778093BF

-:10126000E8008091E4009091E500F7019387828780

-:101270000FB6F8949EBE0FBE8DBE0FB6F894BEBEDC

-:101280000FBEADBE0F900F900F90DF91CF911F91C9

-:101290000F91FF90EF90DF90CF90BF90AF909F9015

-:1012A0008F907F906F905F900895FB01DC0104C0E8

-:1012B0008D910190801921F441505040C8F7881B4E

-:1012C000990B0895FB01DC0102C001900D92415081

-:1012D0005040D8F70895DC0101C06D934150504053

-:0812E000E0F70895F894FFCF38

-:1012E8000081080000011001040000000000000057

+:1001000081010509150025010909090A09080904E1

+:1001100075019504810275019501810109070903A3

+:10012000090209017501950481027501950181019A

+:100130001905290675019502810205010901A10031

+:10014000093115FE250195017502810275019501A0

+:100150008101093015FE2501950175028102C0C09B

+:1001600005010904A1018502750F950181010509A9

+:10017000150025010909090A0908090475019504F2

+:10018000810275019501810109070903090209012D

+:1001900075019504810275019501810119052906F2

+:1001A00075019502810205010901A100093115FEC1

+:1001B00025019501750281027501950181010930C2

+:1001C00015FE2501950175028102C0C005010904D3

+:1001D000A1018503750F9501810105091500250110

+:1001E0000909090A090809047501950481027501C4

+:1001F00095018101090709030902090175019504A7

+:100200008102750195018101190529067501950283

+:10021000810205010901A100093115FE25019501A1

+:1002200075028102750195018101093015FE2501D4

+:10023000950175028102C0C005010904A101850470

+:10024000750F950181010509150025010909090AA4

+:100250000908090475019504810275019501810160

+:100260000907090309020901750195048102750155

+:100270009501810119052906750195028102050183

+:100280000901A100093115FE2501950175028102C0

+:10029000750195018101093015FE25019501750251

+:1002A0008102C0C011241FBECFEFD2E0DEBFCDBFA0

+:1002B00011E0A0E0B1E0ECE1F3E102C005900D92A5

+:1002C000A031B107D9F721E0A0E1B1E001C01D9252

+:1002D000A232B207E1F71CD00C948C0991CE84B7FE

+:1002E000877F84BF0FB6F894A895809160008861DD

+:1002F00080936000109260000FBE80E890E00FB61F

+:10030000F89480936100909361000FBEC7D0B2C390

+:10031000E6DF789480E091E026D7BCD5FBCF089546

+:10032000089580E091E007D7E2EEF0E080818460FC

+:100330008083089580E091E0C6C580910E01909180

+:100340000F01009729F0019790930F0180930E0100

+:100350000895CF92DF92EF92FF920F931F93CF9366

+:10036000DF936B01E901FB016081C9019BD08F5FC5

+:10037000F60180839B81892F86958870292F220F13

+:100380002071822B977E89278B8384E090E0F8018F

+:100390009183808381E0DF91CF911F910F91FF9036

+:1003A000EF90DF90CF90089508959C01DA01832F9C

+:1003B000992783309105B9F060F48130910561F19E

+:1003C0000297E1F482E290E020EC30E02D933C9340

+:1003D00008958132910529F1829781F480EB91E0B3

+:1003E00024EF30E0F3CFC9019927213061F082304A

+:1003F000910579F0ECEBF0E0892B39F080E090E0AA

+:1004000020E030E0E3CFE0EAF0E0849190E09F016B

+:10041000DDCFE4E7F0E0F9CF82E190E022EE30E0DA

+:10042000D5CF89E090E022ED30E0D0CFFC01808193

+:100430009181A281B381B695A795979587957727E6

+:1004400046957795662755274427842B952BA62B11

+:10045000B72B80839183A283B383248131E0320F51

+:1004600034832581222321F0213091F080E008950A

+:10047000AC01BD014427552766277E7F41155105F4

+:1004800061057C4799F787E0848381E08583EECF1F

+:10049000383161F71582148281E008958FEF8BB9AE

+:1004A0001AB80895CF92DF92EF92FF920F931F93A5

+:1004B000CF93DF9300D000D000D0CDB7DEB77C0162

+:1004C000062F19B1662349F10150009314011982D6

+:1004D0001A821B821C821D821E8201113BC0C12C0C

+:1004E00048E0D42E812F19B110FD1EC080FF1CC022

+:1004F00011FB442740F950E060E070E0CE01019626

+:1005000095DF882389F089819A81AB81BC81F701CD

+:1005100080839183A283B3830DC0809114018F5F88

+:10052000843098F6082FD1CFF1E0CF1AD108C1144A

+:10053000D104C1F6802F0F900F900F900F900F9065

+:100540000F90DF91CF911F910F91FF90EF90DF906F

+:10055000CF9008950130D9F4C12C38E0D32E812FEB

+:1005600019B112FD0DC082FF0BC013FB442740F9E7

+:1005700050E060E070E0CE01019658DF8111C3CFFA

+:10058000F1E0CF1AD108C114D10449F7D3CF02301A

+:10059000D9F4C12C28E0D22E812F19B114FD0DC041

+:1005A00084FF0BC015FB442740F950E060E070E089

+:1005B000CE0101963BDF8111A6CFF1E0CF1AD10821

+:1005C000C114D10449F7B6CF033009F0B3CFC12C21

+:1005D00098E0D92E812F19B116FD13C086FF11C0E6

+:1005E000412F012E000C550B660B770B442777FD2E

+:1005F0004395552766277727CE01019617DF81118E

+:1006000082CFF1E0CF1AD108C114D10419F792CFEB

+:10061000AF92BF92CF92DF92FF920F931F93CF932F

+:10062000DF936C01EB018A01BCD1F82E811124C04B

+:100630000115110539F0F80180819181C81BD90B92

+:10064000C80ED91EA12CB12C2097B1F08091E800E2

+:1006500085FD22C08091E8008E778093E8001AD44F

+:1006600001151105A1F0F801808191818A0D9B1D72

+:100670009183808385E0F82E8F2DDF91CF911F919C

+:100680000F91FF90DF90CF90BF90AF90089589D1E8

+:100690008823D1F2F82EF0CFF60181916F0180937B

+:1006A000F1002197FFEFAF1ABF0ACECFFC019B01EB

+:1006B00080911F01909120018617970718F0672BF2

+:1006C00061F0C90140E0009771F441110CC08091C4

+:1006D000E80082FF34C080E008958091E8008E77C2

+:1006E0008093E800EECF209118012223A1F125305C

+:1006F000A1F12091E80023FD2CC02091E80022FD0B

+:10070000E6CF2091E80020FFDECF2091F20030E01C

+:10071000009719F02830310558F041E028303105B4

+:1007200009F040E02091E8002E772093E800CBCF3D

+:1007300041914093F10001972F5F3F4FE9CF8091A6

+:100740001801882341F0853041F08091E80083FF53

+:10075000BECF81E0089582E0089583E00895FC0112

+:10076000CB01009769F42091E8002B772093E800F3

+:10077000009731F48091E80080FF1BC080E008956D

+:10078000209118012223F9F02530C9F02091E800CA

+:1007900023FD17C02091E80022FFF2CF2091F20044

+:1007A000222309F32091F100219301970097B1F7DB

+:1007B000DACF80911801882331F08530D9F683E0B3

+:1007C000089581E0089582E00895FC019B018091E5

+:1007D0001F01909120018617970718F0672B61F091

+:1007E000C90140E0009771F441110CC08091E8000C

+:1007F00082FF35C080E008958091E8008E77809375

+:10080000E800EECF209118012223A9F12530A9F1AB

+:100810002091E80023FD2DC02091E80022FDE6CFC5

+:100820002091E80020FFDECF2091F20030E0009719

+:1008300019F02830310558F041E02830310509F031

+:1008400040E02091E8002E772093E800CBCF449140

+:100850004093F100319601972F5F3F4FE8CF809191

+:100860001801882341F0853041F08091E80083FF32

+:10087000BDCF81E0089582E0089583E00895982F28

+:10088000953028F08F708093E90081E0089590936F

+:10089000E900242F762F50E0981731F07091EC008A

+:1008A0002091ED005091F00021FD02C09F5FE8CF44

+:1008B0003091EB003E7F3093EB003091ED003D7FB7

+:1008C0003093ED003091EB0031603093EB0070938A

+:1008D000EC002093ED005093F0002091EE0027FDF6

+:1008E000E5CF80E008950F931F93CF93DF93162FEA

+:1008F000EC0100E0011302C081E00FC0988191116A

+:1009000003C00F5F2596F6CF3C81E981FA812B81E8

+:10091000892F8F70853030F080E0DF91CF911F916B

+:100920000F9108953230C0F036E068E070E040E0AA

+:100930006E177F0798F04295407F432B692F661F03

+:100940006627661F922F9295990F990F907C692BBD

+:1009500096DF8111D6CFE0CF32E0E7CF4F5F660F51

+:10096000771FE6CF8091190187FF13C08091E800BF

+:1009700082FF06C08091E8008B778093E80008959D

+:10098000809118018111F2CF089580911801882378

+:10099000D9F38091E80080FFF8CF8091E8008E774E

+:1009A000ECCF2091E4003091E50095E6A90180911B

+:1009B000EC008170882331F08091E80080FF06C050

+:1009C00080E008952091E80022FD1BC0809118016D

+:1009D000882391F0853091F08091EB0085FD10C067

+:1009E0002091E4003091E5004217530701F3915044

+:1009F0009111DCCF84E0089582E0089583E00895AA

+:100A000081E0089540D042D08091D8008F778093C4

+:100A1000D8008091D80080688093D8008091D80059

+:100A20008F7D8093D80019BC82E089BD09B400FE97

+:100A3000FDCF10921801109217011092150110921B

+:100A4000160142E060E080E01ADF8091E1008E7FD5

+:100A50008093E1008091E20081608093E2008091C8

+:100A6000E20088608093E2008091E0008E7F8093B6

+:100A7000E0000895E3E6F0E080818E7F808381E0EE

+:100A800080932101BFCF1092E20008951092E100FF

+:100A900008951F920F920FB60F9211242F933F9338

+:100AA0004F935F936F937F938F939F93AF93BF9376

+:100AB000EF93FF938091E10082FF0AC08091E200F2

+:100AC00082FF06C08091E1008B7F8093E10035DCDE

+:100AD0008091E10080FF17C08091E20080FF13C089

+:100AE0008091E2008E7F8093E2008091E20080613D

+:100AF0008093E2008091D80080628093D80019BC76

+:100B0000109218010DDC8091E10084FF26C08091D5

+:100B1000E20084FF22C019BC82E089BD09B400FE56

+:100B2000FDCF8091D8008F7D8093D8008091E10027

+:100B30008F7E8093E1008091E2008F7E8093E200BF

+:100B40008091E20081608093E20080911701882308

+:100B5000D9F184E080931801E2DB8091E10083FF0A

+:100B600022C08091E20083FF1EC08091E100877F58

+:100B70008093E10082E08093180110921701809128

+:100B8000E1008E7F8093E1008091E2008E7F809370

+:100B9000E2008091E20080618093E20042E060E048

+:100BA00080E06DDE76D1FF91EF91BF91AF919F9183

+:100BB0008F917F916F915F914F913F912F910F9006

+:100BC0000FBE0F901F9018958091E30087FF02C021

+:100BD00083E0C0CF81E0BECF1F93CF93DF93CDB72B

+:100BE000DEB7AA970FB6F894DEBF0FBECDBF89E17E

+:100BF00091E0FC0101962091F100208321E08132F7

+:100C00009207B9F797DB8091E80083FF10C08091CD

+:100C1000190190911A01953009F4D8C000F5292FD7

+:100C20002D7F213009F489C0992309F45DC080919A

+:100C3000E80083FF0AC08091E800877F8093E80086

+:100C40008091EB0080628093EB00AA960FB6F89437

+:100C5000DEBF0FBECDBFDF91CF911F9108959830B9

+:100C600009F4ECC0993009F4F6C0963001F78058C9

+:100C70008230E8F680911B0190911C018C3D53E07D

+:100C8000950709F0C6C083E08A838AE289834FB75B

+:100C9000F894DE01139620E03EE051E2E32FF0E00D

+:100CA00050935700849120FF03C082958F703F5F5F

+:100CB0008F708A3008F4ABC0895C90E08D939D936F

+:100CC0002F5F243159F74FBF8091E800877F8093D1

+:100CD000E8006AE270E0CE010196E8DC8091E8006D

+:100CE0008B778093E800A3CF803899F0823809F0A1

+:100CF0009ECF80911D018F70853008F098CF809332

+:100D0000E9008091EB0085FB882780F91092E900CB

+:100D100007C0909115019195927080911601892BD1

+:100D20009091E800977F9093E8008093F1001092F3

+:100D3000F1008091E8008E771AC081110CC080917B

+:100D40001B01813009F073CF81E0933009F080E01E

+:100D50008093150107C0823009F069CF80911B0193

+:100D6000882349F01092E9008091E800877F809302

+:100D7000E800F8DD5CCF80911D018F702FEF280F08

+:100D8000243008F054CF8093E9002091EB0020FF3D

+:100D9000E9CF933031F48091EB0080628093EB00D7

+:100DA000E1CF9091EB0090619093EB0021E030E077

+:100DB000A90102C0440F551F8A95E2F74093EA004B

+:100DC0001092EA008091EB008860E8CF81112FCF6C

+:100DD00010911B011F778091E3008078812B809315

+:100DE000E3008091E800877F8093E800BBDD80917D

+:100DF000E80080FFFCCF8091E30080688093E300EF

+:100E000083E0111101C082E08093180110CF805D52

+:100E100054CF60911D0170911E01AE014F5F5F4F75

+:100E2000C4DABC01892B09F402CF8091E800877FE6

+:100E30008093E80089819A81C8DC50CF803809F01E

+:100E4000F6CE8091E800877F8093E80080911701BB

+:100E50008093F1006ECF8111EACE90911B01923008

+:100E600008F0E5CE8091E800877F8093E8009093BA

+:100E7000170178DD80911701882329F084E08093A1

+:100E800018014FDAD4CE8091E30087FDF7CF81E0DF

+:100E9000F6CF0895CF9380911801882391F0809127

+:100EA000E900C091EC00C795CC27C7958F70C82B7F

+:100EB0001092E9008091E80083FD8EDECF70C09330

+:100EC000E900CF910895AF92BF92CF92DF92EF9257

+:100ED000FF920F931F93CF93DF9300D000D000D0E9

+:100EE0000F92CDB7DEB77C018DB79EB79F838E83FF

+:100EF0008091E80083FF18C0F701808190E0209185

+:100F00001D0130911E012817390771F480911A01D3

+:100F1000893009F48CC000F5823009F4F6C08330C2

+:100F200009F4C0C0813081F18E819F810FB6F894A1

+:100F30009EBF0FBE8DBF27960FB6F894DEBF0FBEC3

+:100F4000CDBFDF91CF911F910F91FF90EF90DF9078

+:100F5000CF90BF90AF9008958A3009F4BCC08B3019

+:100F600019F7809119018132F9F68091E800877FA5

+:100F70008093E800F7DC90911B0181E0911101C0A2

+:100F800080E0F7018187D0CF80911901813A61F625

+:100F90008DB79EB79D838C831A82198280911B0125

+:100FA00010911C018B838085482F50E08DB79EB730

+:100FB000841B950B0FB6F8949EBF0FBE8DBFEDB787

+:100FC000FEB731966F0160E070E0CF019ED14FEF28

+:100FD000410F8E010F5F1F4F9601BE016D5F7F4F66

+:100FE000C701B7D9F70186819781009721F0408525

+:100FF00050E0B60181D11092E9008091E800877F2E

+:101000008093E8008B8181118093F10069817A815E

+:10101000C6014CDB8091E8008B778093E8008C81DF

+:101020009D810FB6F8949EBF0FBE8DBF7DCF80917E

+:101030001901813209F078CFEDB7FEB7FD83EC835B

+:1010400000911F0110912001A0901B01B0901C0184

+:101050008DB79EB7801B910B0FB6F8949EBF0FBE45

+:101060008DBFEDB7FEB731966F018091E800877FA5

+:101070008093E800B801CF0172DB8091E8008E77A1

+:101080008093E80021E030E0A11002C020E030E0D1

+:10109000021B130B2C0D3D1D4FEF4B0D6A2DC7018D

+:1010A00083D9BDCF80911901813A09F03DCF80915C

+:1010B000E800877F8093E8008091E80080FFFCCF04

+:1010C000F70181858093F1008091E8008E7780930D

+:1010D000E80048DC29CF80911901813209F024CF42

+:1010E0008091E800877F8093E8003CDC80911B01C1

+:1010F00090911C0136E0969587953A95E1F78C7FA3

+:101100009370F701958784870FCF80911901813AF9

+:1011100009F00ACF8091E800877F8093E8008091F2

+:10112000E80080FFFCCFF70184859585969587952B

+:1011300096958795C7CFCF93DF93FC01DC011A9674

+:1011400086E0ED0119928A95E9F781E0818784EFC5

+:1011500091E09587848783E0848361E0CF010196E5

+:10116000DF91CF91C0CB9F92AF92BF92CF92DF928F

+:10117000EF92FF920F931F93CF93DF9300D000D095

+:1011800000D00F92CDB7DEB77C018DB79EB79F839D

+:101190008E8380911801843009F088C08091E4002A

+:1011A0009091E500F701228533852817390709F466

+:1011B0007DC081818F708093E9008091E80085FF78

+:1011C00075C08DB79EB79D838C83408550E0EDB789

+:1011D000FEB7E41BF50B0FB6F894FEBF0FBEEDBFD4

+:1011E0008DB79EB701966C011B821A82198260E04E

+:1011F00070E08BD08E010F5F1F4F960140E0BE0163

+:101200006D5F7F4FC701A5D8982EF701848595851E

+:10121000892B29F011E086859785892B09F010E04C

+:10122000F701A680B78000E0A114B10479F04981EC

+:101230005A81B501C60153D001E0892B09F400E0C1

+:10124000F701408550E0B601C50156D089819A81E9

+:10125000892BF1F0911004C0011102C010FF18C0D9

+:10126000F701848595859787868781818F70809324

+:10127000E9008B8181118093F10069817A8140E0DE

+:1012800050E0C601C5D98091E8008E778093E800D0

+:101290008091E4009091E500F701938782878C812B

+:1012A0009D810FB6F8949EBF0FBE8DBFEE81FF816A

+:1012B0000FB6F894FEBF0FBEEDBF27960FB6F89499

+:1012C000DEBF0FBECDBFDF91CF911F910F91FF9079

+:1012D000EF90DF90CF90BF90AF909F900895FB016B

+:1012E000DC0104C08D910190801921F441505040DF

+:1012F000C8F7881B990B0895FB01DC0102C001901F

+:101300000D9241505040D8F70895DC0101C06D9313

+:0C13100041505040E0F70895F894FFCFE2

+:10131C000081080000011001040000000000000022

 :00000001FF

diff --git a/grip2hid/makefile b/grip2hid/makefile
index d4bcf87..3793114 100644
--- a/grip2hid/makefile
+++ b/grip2hid/makefile
@@ -42,7 +42,7 @@
 include $(DMBS_PATH)/avrdude.mk
 include $(DMBS_PATH)/atprogram.mk
 
-PROG=usbasp
+PROG=stk500 -P /dev/ports/usb0
 flash: $(TARGET).hex
 	avrdude -u -c $(PROG) -p $(MCU) -Uflash:w:$^