From 75eb722759202d0b2bbb617ebaca865ff7ca19f5 Mon Sep 17 00:00:00 2001 From: Zach Eveland Date: Wed, 16 Nov 2011 16:38:22 -0500 Subject: [PATCH] Leonardo bootloader now sends iSerial string during enumeration. Seems to satisfy Windows' composite device requirements. --- .../diskloader/DiskLoader-Leonardo.hex | 218 +++++++++--------- .../diskloader/DiskLoader-Micro.hex | 113 --------- .../bootloaders/diskloader/src/Platform.h | 2 + .../bootloaders/diskloader/src/USBCore.cpp | 2 + .../bootloaders/diskloader/src/USBDesc.cpp | 9 +- .../bootloaders/diskloader/src/USBDesc.h | 2 + 6 files changed, 123 insertions(+), 223 deletions(-) delete mode 100644 hardware/arduino/bootloaders/diskloader/DiskLoader-Micro.hex diff --git a/hardware/arduino/bootloaders/diskloader/DiskLoader-Leonardo.hex b/hardware/arduino/bootloaders/diskloader/DiskLoader-Leonardo.hex index 4528a8bf3..0d0c167c7 100644 --- a/hardware/arduino/bootloaders/diskloader/DiskLoader-Leonardo.hex +++ b/hardware/arduino/bootloaders/diskloader/DiskLoader-Leonardo.hex @@ -1,113 +1,115 @@ -:1078000011241FBECFEFDAE0DEBFCDBFF2C04101D1 +:1078000011241FBECFEFDAE0DEBFCDBFFFC04101C4 :1078100042144505560455026403740300001E9586 :1078200087020110030000C18081C106C0FF0A0069 :107830000CA10185037508150026FF00954009017C -:107840008102954009029102C004030904380341F2 -:107850000072006400750069006E006F0020004C2B -:107860000065006F006E006100720064006F002010 -:107870000062006F006F0074006C006F00610064B4 -:107880000065007200180341007200640075006911 -:10789000006E006F0020004C004C004300120100FD -:1078A00002020000404123340000010102000112E5 -:1078B00001000200000040412334000001010200E9 -:1078C00001090264000301008032080B0002020279 -:1078D000010009040000010202000005240010015B -:1078E0000524010101042402020524060001070504 -:1078F000810310004009040100020A00000007058E -:107900000202400000070583024000000904020053 -:107910000103000000092101010001221E000705EA -:1079200084034000400020918A0130918B012C5F3C -:107930003F4F30938B0120938A01C901892F9927EA -:107940008695982F803418F08FE7891B982F990F10 -:10795000921710F447980895479A08955D9A289AC7 -:1079600081E08093E0001092E200EE27FF27099467 -:1079700008950F931F93CF93DF93982FEB01042F5C -:1079800010E088E76030780730F411E083E0FB0115 -:1079900080935700E895892F68E071E0402FF8D078 -:1079A000112311F107B600FCFDCF402F4695FE01D3 -:1079B000A8E0B1E020E031E009C08D919D910C017B -:1079C00030935700E895112432962F5F2417A8F3BF -:1079D00085E0FE0180935700E89507B600FCFDCFD7 -:1079E00081E180935700E895DF91CF911F910F912E -:1079F000089588E10FB6F8948093600010926000BB -:107A00000FBE5D9A289A47983F9A209A559A90E817 -:107A1000909361001092610081E885BF95BF9FD06F -:107A200084E18093880180E180938901E0E0F0E0C7 -:107A3000859194918F5F9F4F19F081E080938F0122 -:107A4000EE24FF24BB24B39454EFC52E51E0D52E71 -:107A50000ED2082F8EE098E7FC0124913196029611 -:107A60004491201711F02223B9F71092910110923E -:107A7000900182E068E071E08BD0013479F460918C -:107A800008016058633028F0683111F064E001C0EB -:107A900063E0C62FD0E0CF5DD7480EC0063571F445 -:107AA00080910801803311F011E022C080910A0119 -:107AB000C82FD0E0C25ED74811E022C0053721F4BC -:107AC00013E0CEE1D8E71CC0053539F4E090080199 -:107AD000F0900901EE0CFF1C0AC0043631F482E07C -:107AE000B7014091090145DF02C0043721F010E0E1 -:107AF000C5E2D8E705C010910901E701E10EF11CCC -:107B0000B6D18097B1F483E068E871E041E050E0DD -:107B100059D0112329F0412F50E083E8BE0152D003 -:107B200083E469E871E041E050E04CD0013509F0B0 -:107B30008FCFD0929101C0929001B0928F01EE242C -:107B4000FF2486CFFC01289884E680938D0104C031 -:107B50008091F100819361506623D1F708951092CE -:107B600091011092900110928E0110928F0181E08C -:107B70008093D70080EA8093D80082E189BD09B460 -:107B800000FEFDCF80E98093D8001092E0000895B8 -:107B9000FB018093E90024E69BE611C08091E80098 -:107BA00085FFFCCF289820938D018091F10081936F -:107BB0008091E80085FD02C09093E8004150442385 -:107BC00069F70895982FFB01282F20728770809302 -:107BD000E90064E63AE317C08091E80085FFFCCF36 -:107BE00097FF02C0849101C080813196211180E00D -:107BF0005D9860938C018093F1008091E80085FD91 -:107C000002C03093E800415050408FEF4F3F58077B -:107C100019F796FF03C08AE38093E80008958091E6 -:107C20009301813299F45D9884E680938C0120E081 -:107C300030E003C080818093F100F901E050FF4FF4 -:107C40002F5F3F4F28303105A9F714C0803261F40F -:107C50008091E80082FFFCCF80E091E067E072DF76 -:107C60008BEF8093E80006C0823221F4809194016A -:107C70008093070181E0089520919501223261F1FE -:107C8000213081F48091980190919901089711F425 -:107C900020939A0180919A01882309F04AC0EFEA63 -:107CA000F8E749C0223021F484E6E1ECF8E717C098 -:107CB000233009F03CC080919401882319F4E9E451 -:107CC000F8E739C0823019F4EDE4F8E734C08130C8 -:107CD00071F5E5E8F8E72FC081E0EBE2F8E7909175 -:107CE0009801382F981708F4392F90918C0120E0D3 -:107CF0004EEF8091E8008570E1F38091E80082FD0D -:107D000012C02F5F84915D988093F100822F8F7352 -:107D100011F44093E800319694E6231750F39093C2 -:107D20008C0181E0089590938C0180E0089580E0BB -:107D30000895EDE9F8E78491D2CF1092E90080919F -:107D4000E80083FF61C082E991E068E0FBDE82EF3A -:107D50008093E8008091920187FF05C08091E80040 -:107D600080FFFCCF03C08EEF8093E80080919301E9 -:107D7000853051F48091E80080FFFCCF8091940120 -:107D800080688093E30039C08930E1F480919401E8 -:107D900080938E01E7E2F8E791E031E026E39093EB -:107DA000E9003093EB0084918093EC002093ED0088 -:107DB0009F5F3196953099F78EE78093EA00109295 -:107DC000EA001BC0883049F490918E015D9884E6EA -:107DD00080938C019093F10010C0882339F45D9852 -:107DE00084E680938C011092F10007C0863011F474 -:107DF00043DF01C014DF882321F08EEF8093E80079 -:107E0000089581E28093EB0008958091E100109243 -:107E1000E100282F83FF0CC01092E90081E08093DD -:107E2000EB001092EC0082E38093ED0010928E0143 -:107E300022FF1CC080918C01882331F081508093F7 -:107E40008C01882309F45D9A80918D01882331F09B -:107E5000815080938D01882309F4289A80918F01A5 -:107E6000882321F4109291011092900108951F939C -:107E7000CF93DF9312E0C0E9D1E05FDFC6DF10935C -:107E8000E9008091E80085FF13C0289884E680937C -:107E90008D019091F1008091E80085FD03C08BE693 -:107EA0008093E800892F90E0DF91CF911F91089592 -:107EB000809190019091910101979093910180930D -:107EC00090018091900190919101892B09F446DDF8 -:0A7ED000CE010197F1F727DDD0CFB6 -:087EDA0000E1000000000000BF +:107840008102954009029102C0040309041A033021 +:1078500000300030003000300030003000300031A7 +:1078600000370030003100380341007200640075B9 +:107870000069006E006F0020004C0065006F006E14 +:10788000006100720064006F00200062006F006FF2 +:107890000074006C006F00610064006500720018E5 +:1078A00003410072006400750069006E006F0020E3 +:1078B000004C004C00430012010002020000404155 +:1078C0002334000001000203011201000200000045 +:1078D0004041233400000100020301090264000357 +:1078E00001008032080B00020202010009040000BE +:1078F0000102020000052400100105240101010419 +:107900002402020524060001070581031000400936 +:10791000040100020A0000000705020240000007FF +:107920000583024000000904020001030000000971 +:107930002101010001221E000705840340004000D0 +:1079400020918A0130918B012C5F3F4F30938B0146 +:1079500020938A01C901892F99278695982F803411 +:1079600018F08FE7891B982F990F921710F44798FA +:107970000895479A08955D9A289A81E08093E000DF +:107980001092E200EE27FF27099408950F931F93AA +:10799000CF93DF93982FEB01042F10E088E760303E +:1079A000780730F411E083E0FB0180935700E895FD +:1079B000892F68E071E0402FF8D0112311F107B64C +:1079C00000FCFDCF402F4695FE01A8E0B1E020E08D +:1079D00031E009C08D919D910C0130935700E895DD +:1079E000112432962F5F2417A8F385E0FE018093BF +:1079F0005700E89507B600FCFDCF81E18093570062 +:107A0000E895DF91CF911F910F91089588E10FB60E +:107A1000F89480936000109260000FBE5D9A289ADF +:107A200047983F9A209A559A90E890936100109257 +:107A3000610081E885BF95BF9FD084E18093880174 +:107A400080E180938901E0E0F0E0859194918F5F7F +:107A50009F4F19F081E080938F01EE24FF24BB2417 +:107A6000B39454EFC52E51E0D52E13D2082F8EE0DB +:107A700098E7FC012491319602964491201711F069 +:107A80002223B9F7109291011092900182E068E0F0 +:107A900071E08BD0013479F4609108016058633053 +:107AA00028F0683111F064E001C063E0C62FD0E037 +:107AB000CF5DD7480EC0063571F480910801803340 +:107AC00011F011E022C080910A01C82FD0E0C25EFF +:107AD000D74811E022C0053721F413E0CEE1D8E702 +:107AE0001CC0053539F4E0900801F0900901EE0C56 +:107AF000FF1C0AC0043631F482E0B701409109014D +:107B000045DF02C0043721F010E0C5E2D8E705C028 +:107B100010910901E701E10EF11CBBD18097B1F48E +:107B200083E068E871E041E050E059D0112329F08A +:107B3000412F50E083E8BE0152D083E469E871E050 +:107B400041E050E04CD0013509F08FCFD092910147 +:107B5000C0929001B0928F01EE24FF2486CFFC01E9 +:107B6000289884E680938D0104C08091F100819370 +:107B700061506623D1F708951092910110929001FF +:107B800010928E0110928F0181E08093D70080EADD +:107B90008093D80082E189BD09B400FEFDCF80E961 +:107BA0008093D8001092E0000895FB018093E900D3 +:107BB00024E69BE611C08091E80085FFFCCF289861 +:107BC00020938D018091F10081938091E80085FDE3 +:107BD00002C09093E8004150442369F70895982F1C +:107BE000FB01282F207287708093E90064E63AE356 +:107BF00017C08091E80085FFFCCF97FF02C08491F9 +:107C000001C080813196211180E05D9860938C01E4 +:107C10008093F1008091E80085FD02C03093E80078 +:107C2000415050408FEF4F3F580719F796FF03C060 +:107C30008AE38093E800089580919301813299F45A +:107C40005D9884E680938C0120E030E003C0808161 +:107C50008093F100F901E050FF4F2F5F3F4F283034 +:107C60003105A9F714C0803261F48091E80082FFE9 +:107C7000FCCF80E091E067E072DF8BEF8093E8005B +:107C800006C0823221F4809194018093070181E043 +:107C9000089520919501223289F1213081F480915B +:107CA000980190919901089711F420939A0180917D +:107CB0009A01882309F04FC0E9ECF8E74EC0223062 +:107CC00021F484E6EBEDF8E71CC0233009F041C055 +:107CD00080919401882319F4E9E4F8E73EC08230EA +:107CE00019F4E7E6F8E739C0833019F4EDE4F8E772 +:107CF00034C0813071F5EFE9F8E72FC081E0EBE2A5 +:107D0000F8E790919801382F981708F4392F90913F +:107D10008C0120E04EEF8091E8008570E1F38091C6 +:107D2000E80082FD12C02F5F84915D988093F1007E +:107D3000822F8F7311F44093E800319694E6231755 +:107D400050F390938C0181E0089590938C0180E032 +:107D5000089580E00895E7EBF8E78491D2CF109280 +:107D6000E9008091E80083FF61C082E991E068E06A +:107D7000F6DE82EF8093E8008091920187FF05C0D4 +:107D80008091E80080FFFCCF03C08EEF8093E80075 +:107D900080919301853051F48091E80080FFFCCF01 +:107DA0008091940180688093E30039C08930E1F4C8 +:107DB0008091940180938E01E7E2F8E791E031E051 +:107DC00026E39093E9003093EB0084918093EC00DC +:107DD0002093ED009F5F3196953099F78EE7809361 +:107DE000EA001092EA001BC0883049F490918E019D +:107DF0005D9884E680938C019093F10010C08823F5 +:107E000039F45D9884E680938C011092F10007C0EC +:107E1000863011F43EDF01C00FDF882321F08EEFA2 +:107E20008093E800089581E28093EB0008958091AB +:107E3000E1001092E100282F83FF0CC01092E900AE +:107E400081E08093EB001092EC0082E38093ED00E0 +:107E500010928E0122FF1CC080918C01882331F08A +:107E6000815080938C01882309F45D9A80918D0163 +:107E7000882331F0815080938D01882309F4289A5A +:107E800080918F01882321F410929101109290012A +:107E900008951F93CF93DF9312E0C0E9D1E05FDF35 +:107EA000C6DF1093E9008091E80085FF13C0289891 +:107EB00084E680938D019091F1008091E80085FD2A +:107EC00003C08BE68093E800892F90E0DF91CF918B +:107ED0001F91089580919001909191010197909345 +:107EE0009101809390018091900190919101892B53 +:0E7EF00009F441DDCE010197F1F722DDD0CF7C +:087EFE0000E10000000000009B :040000030000780081 :00000001FF diff --git a/hardware/arduino/bootloaders/diskloader/DiskLoader-Micro.hex b/hardware/arduino/bootloaders/diskloader/DiskLoader-Micro.hex deleted file mode 100644 index fbbcc52ea..000000000 --- a/hardware/arduino/bootloaders/diskloader/DiskLoader-Micro.hex +++ /dev/null @@ -1,113 +0,0 @@ -:1078000011241FBECFEFDAE0DEBFCDBFF2C04101D1 -:1078100042144505560455026403740300001E9586 -:1078200087020110030000C18081C106C0FF0A0069 -:107830000CA10185037508150026FF00954009017C -:107840008102954009029102C004030904380341F2 -:107850000072006400750069006E006F0020004D2A -:10786000006900630072006F00200062006F006F0B -:107870000074006C006F00610064006500720020FD -:1078800000200020001803410072006400750069A8 -:10789000006E006F0020004C004C004300120100FD -:1078A00002020000404123350000010102000112E4 -:1078B00001000200000040412335000001010200E8 -:1078C00001090264000301008032080B0002020279 -:1078D000010009040000010202000005240010015B -:1078E0000524010101042402020524060001070504 -:1078F000810310004009040100020A00000007058E -:107900000202400000070583024000000904020053 -:107910000103000000092101010001221E000705EA -:1079200084034000400020918A0130918B012C5F3C -:107930003F4F30938B0120938A01C901892F9927EA -:107940008695982F803418F08FE7891B982F990F10 -:10795000921710F447980895479A08955D9A289AC7 -:1079600081E08093E0001092E200EE27FF27099467 -:1079700008950F931F93CF93DF93982FEB01042F5C -:1079800010E088E76030780730F411E083E0FB0115 -:1079900080935700E895892F68E071E0402FF8D078 -:1079A000112311F107B600FCFDCF402F4695FE01D3 -:1079B000A8E0B1E020E031E009C08D919D910C017B -:1079C00030935700E895112432962F5F2417A8F3BF -:1079D00085E0FE0180935700E89507B600FCFDCFD7 -:1079E00081E180935700E895DF91CF911F910F912E -:1079F000089588E10FB6F8948093600010926000BB -:107A00000FBE5D9A289A47983F9A209A559A90E817 -:107A1000909361001092610081E885BF95BF9FD06F -:107A200084E18093880180E180938901E0E0F0E0C7 -:107A3000859194918F5F9F4F19F081E080938F0122 -:107A4000EE24FF24BB24B39454EFC52E51E0D52E71 -:107A50000ED2082F8EE098E7FC0124913196029611 -:107A60004491201711F02223B9F71092910110923E -:107A7000900182E068E071E08BD0013479F460918C -:107A800008016058633028F0683111F064E001C0EB -:107A900063E0C62FD0E0CF5DD7480EC0063571F445 -:107AA00080910801803311F011E022C080910A0119 -:107AB000C82FD0E0C25ED74811E022C0053721F4BC -:107AC00013E0CEE1D8E71CC0053539F4E090080199 -:107AD000F0900901EE0CFF1C0AC0043631F482E07C -:107AE000B7014091090145DF02C0043721F010E0E1 -:107AF000C5E2D8E705C010910901E701E10EF11CCC -:107B0000B6D18097B1F483E068E871E041E050E0DD -:107B100059D0112329F0412F50E083E8BE0152D003 -:107B200083E469E871E041E050E04CD0013509F0B0 -:107B30008FCFD0929101C0929001B0928F01EE242C -:107B4000FF2486CFFC01289884E680938D0104C031 -:107B50008091F100819361506623D1F708951092CE -:107B600091011092900110928E0110928F0181E08C -:107B70008093D70080EA8093D80082E189BD09B460 -:107B800000FEFDCF80E98093D8001092E0000895B8 -:107B9000FB018093E90024E69BE611C08091E80098 -:107BA00085FFFCCF289820938D018091F10081936F -:107BB0008091E80085FD02C09093E8004150442385 -:107BC00069F70895982FFB01282F20728770809302 -:107BD000E90064E63AE317C08091E80085FFFCCF36 -:107BE00097FF02C0849101C080813196211180E00D -:107BF0005D9860938C018093F1008091E80085FD91 -:107C000002C03093E800415050408FEF4F3F58077B -:107C100019F796FF03C08AE38093E80008958091E6 -:107C20009301813299F45D9884E680938C0120E081 -:107C300030E003C080818093F100F901E050FF4FF4 -:107C40002F5F3F4F28303105A9F714C0803261F40F -:107C50008091E80082FFFCCF80E091E067E072DF76 -:107C60008BEF8093E80006C0823221F4809194016A -:107C70008093070181E0089520919501223261F1FE -:107C8000213081F48091980190919901089711F425 -:107C900020939A0180919A01882309F04AC0EFEA63 -:107CA000F8E749C0223021F484E6E1ECF8E717C098 -:107CB000233009F03CC080919401882319F4E9E451 -:107CC000F8E739C0823019F4EDE4F8E734C08130C8 -:107CD00071F5E5E8F8E72FC081E0EBE2F8E7909175 -:107CE0009801382F981708F4392F90918C0120E0D3 -:107CF0004EEF8091E8008570E1F38091E80082FD0D -:107D000012C02F5F84915D988093F100822F8F7352 -:107D100011F44093E800319694E6231750F39093C2 -:107D20008C0181E0089590938C0180E0089580E0BB -:107D30000895EDE9F8E78491D2CF1092E90080919F -:107D4000E80083FF61C082E991E068E0FBDE82EF3A -:107D50008093E8008091920187FF05C08091E80040 -:107D600080FFFCCF03C08EEF8093E80080919301E9 -:107D7000853051F48091E80080FFFCCF8091940120 -:107D800080688093E30039C08930E1F480919401E8 -:107D900080938E01E7E2F8E791E031E026E39093EB -:107DA000E9003093EB0084918093EC002093ED0088 -:107DB0009F5F3196953099F78EE78093EA00109295 -:107DC000EA001BC0883049F490918E015D9884E6EA -:107DD00080938C019093F10010C0882339F45D9852 -:107DE00084E680938C011092F10007C0863011F474 -:107DF00043DF01C014DF882321F08EEF8093E80079 -:107E0000089581E28093EB0008958091E100109243 -:107E1000E100282F83FF0CC01092E90081E08093DD -:107E2000EB001092EC0082E38093ED0010928E0143 -:107E300022FF1CC080918C01882331F081508093F7 -:107E40008C01882309F45D9A80918D01882331F09B -:107E5000815080938D01882309F4289A80918F01A5 -:107E6000882321F4109291011092900108951F939C -:107E7000CF93DF9312E0C0E9D1E05FDFC6DF10935C -:107E8000E9008091E80085FF13C0289884E680937C -:107E90008D019091F1008091E80085FD03C08BE693 -:107EA0008093E800892F90E0DF91CF911F91089592 -:107EB000809190019091910101979093910180930D -:107EC00090018091900190919101892B09F446DDF8 -:0A7ED000CE010197F1F727DDD0CFB6 -:087EDA0000E1000000000000BF -:040000030000780081 -:00000001FF diff --git a/hardware/arduino/bootloaders/diskloader/src/Platform.h b/hardware/arduino/bootloaders/diskloader/src/Platform.h index 6acbf392e..04c5b7923 100644 --- a/hardware/arduino/bootloaders/diskloader/src/Platform.h +++ b/hardware/arduino/bootloaders/diskloader/src/Platform.h @@ -24,6 +24,8 @@ typedef unsigned long u32; #define USB_VID 0x2341 // arduino LLC vid #define USB_PID ARDUINO_MODEL_PID // passed in by Makefile - 0x0034 for Leonardo, 0x0035 for MIcro +#define USB_SERIAL_STRING '0','0','0','0','0','0','0','0','1','7','0','1' + #define OEM_NAME 'l','e','o','n','a','r','d','o' // 8 chars #define BOARD_INIT() DDRC |= (1<<7); DDRB |= (1<<0); DDRD |= (1<<5); CPU_PRESCALE(0); DISABLE_JTAG(); #define LED0 PORTC &= ~(1<<7) diff --git a/hardware/arduino/bootloaders/diskloader/src/USBCore.cpp b/hardware/arduino/bootloaders/diskloader/src/USBCore.cpp index ca747214e..208121e7d 100644 --- a/hardware/arduino/bootloaders/diskloader/src/USBCore.cpp +++ b/hardware/arduino/bootloaders/diskloader/src/USBCore.cpp @@ -376,6 +376,8 @@ bool SendDescriptor() desc_addr = (const u8*)&STRING_LANGUAGE; else if (setup.wValueL == IPRODUCT) desc_addr = (const u8*)&STRING_IPRODUCT; + else if (setup.wValueL == ISERIAL) + desc_addr = (const u8*)&STRING_SERIAL; else if (setup.wValueL == IMANUFACTURER) desc_addr = (const u8*)&STRING_IMANUFACTURER; else diff --git a/hardware/arduino/bootloaders/diskloader/src/USBDesc.cpp b/hardware/arduino/bootloaders/diskloader/src/USBDesc.cpp index c8ea9c643..ade072a52 100644 --- a/hardware/arduino/bootloaders/diskloader/src/USBDesc.cpp +++ b/hardware/arduino/bootloaders/diskloader/src/USBDesc.cpp @@ -27,6 +27,10 @@ const u16 STRING_LANGUAGE[2] = { 0x0409 // English }; +const u16 STRING_SERIAL[13] = { + (3<<8) | (2+2*12), + USB_SERIAL_STRING +}; const u16 STRING_IPRODUCT[28] = { (3<<8) | (2+2*27), @@ -44,11 +48,12 @@ const u16 STRING_IMANUFACTURER[12] = { //#ifdef CDC_ENABLED -DeviceDescriptor USB_DeviceDescriptorA = D_DEVICE(0X02,0X00,0X00,64,USB_VID,USB_PID,0x100,IMANUFACTURER,IPRODUCT,0,1); +DeviceDescriptor USB_DeviceDescriptorA = D_DEVICE(0X02,0X00,0X00,64,USB_VID,USB_PID,0x100,0,IPRODUCT,ISERIAL,1); //#else -DeviceDescriptor USB_DeviceDescriptor = D_DEVICE(0x00,0x00,0x00,64,USB_VID,USB_PID,0x100,IMANUFACTURER,IPRODUCT,0,1); +DeviceDescriptor USB_DeviceDescriptor = D_DEVICE(0x00,0x00,0x00,64,USB_VID,USB_PID,0x100,0,IPRODUCT,ISERIAL,1); //#endif + Config USB_ConfigDescriptor = { D_CONFIG(sizeof(Config),INTERFACE_COUNT), diff --git a/hardware/arduino/bootloaders/diskloader/src/USBDesc.h b/hardware/arduino/bootloaders/diskloader/src/USBDesc.h index 094dba551..a970fa40a 100644 --- a/hardware/arduino/bootloaders/diskloader/src/USBDesc.h +++ b/hardware/arduino/bootloaders/diskloader/src/USBDesc.h @@ -55,9 +55,11 @@ extern DeviceDescriptor USB_DeviceDescriptorA PROGMEM; extern const u16 STRING_LANGUAGE[2] PROGMEM; extern const u16 STRING_IPRODUCT[28] PROGMEM; extern const u16 STRING_IMANUFACTURER[12] PROGMEM; +extern const u16 STRING_SERIAL[13] PROGMEM; #define IMANUFACTURER 1 #define IPRODUCT 2 +#define ISERIAL 3 #define CDC_TX CDC_ENDPOINT_IN #define CDC_RX CDC_ENDPOINT_OUT \ No newline at end of file