Index: grip2hid/Descriptors.c
===================================================================
--- grip2hid/Descriptors.c	(revision 3fde1f7435d00e306b78658ac029f2f31e7dae81)
+++ grip2hid/Descriptors.c	(revision 02817dbd7f7d605c97ee8a8f6e8e3d5eeaa2cad2)
@@ -38,4 +38,22 @@
 #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
@@ -52,35 +70,32 @@
 				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),
-
-				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),
-
+				// 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),
+
+				// 5, 6 (L1, R1)
 				HID_RI_USAGE_MINIMUM(8, 5),
 				HID_RI_USAGE_MAXIMUM(8, 6),
@@ -128,21 +143,11 @@
 				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),
-
-				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),
+				BLOCK1
+
+				HID_RI_REPORT_SIZE(8, 1),
+				HID_RI_REPORT_COUNT(8, 0x01),
+				HID_RI_INPUT(8, HID_IOF_CONSTANT),
+
+				BLOCK2
 
 				HID_RI_REPORT_SIZE(8, 1),
@@ -195,21 +200,11 @@
 				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),
-
-				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),
+				BLOCK1
+
+				HID_RI_REPORT_SIZE(8, 1),
+				HID_RI_REPORT_COUNT(8, 0x01),
+				HID_RI_INPUT(8, HID_IOF_CONSTANT),
+
+				BLOCK2
 
 				HID_RI_REPORT_SIZE(8, 1),
@@ -262,21 +257,11 @@
 				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),
-
-				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),
+				BLOCK1
+
+				HID_RI_REPORT_SIZE(8, 1),
+				HID_RI_REPORT_COUNT(8, 0x01),
+				HID_RI_INPUT(8, HID_IOF_CONSTANT),
+
+				BLOCK2
 
 				HID_RI_REPORT_SIZE(8, 1),
Index: grip2hid/Joystick.hex
===================================================================
--- grip2hid/Joystick.hex	(revision 3fde1f7435d00e306b78658ac029f2f31e7dae81)
+++ grip2hid/Joystick.hex	(revision 02817dbd7f7d605c97ee8a8f6e8e3d5eeaa2cad2)
@@ -1,10 +1,10 @@
-:1000000049C1000063C1000061C100005FC1000080
-:100010005DC100005BC1000059C1000057C1000074
-:1000200055C1000053C1000051C1000028C50000A7
-:100030004DC100004BC1000049C1000047C1000094
-:1000400045C1000043C1000041C100003FC10000A4
-:100050003DC100003BC1000039C1000037C10000B4
-:1000600035C1000033C1000031C100002FC10000C4
-:100070002DC100002A03470072006100760069006C
+:1000000051C100006BC1000069C1000067C1000060
+:1000100065C1000063C1000061C100005FC1000054
+:100020005DC100005BC1000059C1000032C5000085
+:1000300055C1000053C1000051C100004FC1000074
+:100040004DC100004BC1000049C1000047C1000084
+:1000500045C1000043C1000041C100003FC1000094
+:100060003DC100003BC1000039C1000037C10000A4
+:1000700035C100002A034700720061007600690064
 :100080007300200047007200490050002000670004
 :1000900061006D0065007000610064007300000085
@@ -12,294 +12,297 @@
 :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
Index: grip2hid/makefile
===================================================================
--- grip2hid/makefile	(revision 3fde1f7435d00e306b78658ac029f2f31e7dae81)
+++ grip2hid/makefile	(revision 02817dbd7f7d605c97ee8a8f6e8e3d5eeaa2cad2)
@@ -43,5 +43,5 @@
 include $(DMBS_PATH)/atprogram.mk
 
-PROG=usbasp
+PROG=stk500 -P /dev/ports/usb0
 flash: $(TARGET).hex
 	avrdude -u -c $(PROG) -p $(MCU) -Uflash:w:$^
