Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Loading…

Auto-reset fix for Uno and Mega 2650 #22

Closed
wants to merge 2 commits into from

4 participants

@giseburt

This is a modification of the usbserial code for the 8u2 chip. The intent is to make auto-reset only work when programming, and remain backwards compatible with the software.

I added a check for an about 1 second delay between DTR toggles before the reset line is switched. This allows connection and reconnection from OS X and (untested) Linux without a reset.

Also optimized for size, since this check pushed the size over 4K. It might be a little faster as well.

I've also included HEX files for both UNO and Mega 2650, but I haven't tested the UNO files. (I don't have an UNO, sorry.) I did NOT include the combined HEX file that have the DFU programmer in them.

giseburt added some commits
@giseburt giseburt Make auto-reset only work when programming.
Added a check for an about 1 second delay between DTR toggles before the reset line is switched. This allows connection and reconnection form OS X and (untested) Linux without a reset.

Also optimized for size, since this check pushed the size over 4K. It might be a little faster as well.
3a7dc40
@giseburt giseburt Added hex files for uno and mega 2560.
I haven't tested the UNO file yet.
fec59ca
@damellis
Owner

I'd like to keep the current behavior of the 8U2 firmware in this respect. That is, it should merely pass through the DTR state changes made by the operating system. I know the auto-reset on serial connection is annoying in some cases, but it's useful in others and also the established behavior.

@damellis damellis closed this
@giseburt
@andyross

Could we get more discussion about this? Are there alternatives you'd consider? Is giseburt's "knocking" algorithm not acceptable for getting a reset done from the host?

While I accept that the reset behavior is there for legacy compatibility, I honestly consider it a bug. Plugging or unpluging a data cable really shouldn't be resetting the unit by design.

@NicoHood

You wont break older board i think, but the really use of this is minimal. There are so many boards out there delivered with the old firmware, i think this wont help much. You still can do this for your board if you like to via DFU. Thats my opinion.

@igrr igrr referenced this pull request from a commit in igrr/Arduino
@igrr igrr Enable reset control for generic esp8266 boards
Close #22
8b081eb
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Commits on Mar 26, 2011
  1. @giseburt

    Make auto-reset only work when programming.

    giseburt authored
    Added a check for an about 1 second delay between DTR toggles before the reset line is switched. This allows connection and reconnection form OS X and (untested) Linux without a reset.
    
    Also optimized for size, since this check pushed the size over 4K. It might be a little faster as well.
  2. @giseburt

    Added hex files for uno and mega 2560.

    giseburt authored
    I haven't tested the UNO file yet.
This page is out of date. Refresh to see the latest.
View
437 hardware/arduino/firmwares/arduino-usbserial/Arduino-usbserial-mega.hex
@@ -1,14 +1,14 @@
:10000000A2C00000BBC00000B9C00000B7C0000023
:10001000B5C00000B3C00000B1C00000AFC0000018
-:10002000ADC00000ABC00000A9C000005AC4000071
-:100030001EC40000A3C00000A1C000009FC00000BB
+:10002000ADC00000ABC00000A9C0000060C400006B
+:1000300024C40000A3C00000A1C000009FC00000B5
:100040009DC000009BC0000099C0000097C0000048
:1000500095C0000093C0000091C0000014C10000D2
:100060008DC000008BC0000089C0000087C0000068
:1000700085C0000083C0000081C000007FC0000078
:100080007DC000007BC0000079C0000077C0000088
:1000900075C0000073C000001201100102000008CA
-:1000A0004123100001000102DC0109023E000201AF
+:1000A000EB034B2001000102DC0109023E000201CA
:1000B00000C0320904000001020201000524000111
:1000C0001004240206052406000107058203080027
:1000D000FF09040100020A000000070504024000B5
@@ -19,9 +19,9 @@
:100120002403410072006400750069006E006F00D6
:1001300020004D006500670061002000320035009E
:1001400036003000000011241FBECFEFD2E0DEBF2A
-:10015000CDBF11E0A0E0B1E0E0EDFFE002C005900E
+:10015000CDBF11E0A0E0B1E0ECEDFFE002C0059002
:100160000D92A631B107D9F712E0A6E1B1E001C0C6
-:100170001D92AF32B107E1F7F1D028C741CF9C0102
+:100170001D92A033B107E1F7F8D02EC741CF9C0103
:10018000DC01AE57BF4FED91FC9111974191119653
:10019000FC93EE9380589F4FE817F90711F42D93C5
:1001A0003C939FB7F894F901EC57FF4F8081815041
@@ -34,223 +34,224 @@
:10021000F0880189128980E0E81681EEF80680E016
:10022000080780E0180719F420E130E00FC0C8018A
:10023000B701969587957795679560587B47814E6E
-:100240009F4FA8019701A0D6215030403093CD0098
+:100240009F4FA8019701A6D6215030403093CD0092
:100250002093CC00D092CA0080E0E81681EEF80628
:1002600080E0080780E0180711F082E001C080E01C
:100270008093C80088E98093C9001F910F91FF9077
:10028000EF90DF9008951F920F920FB60F921124F6
:100290002F938F939F93EF93FF939091CE008EB304
-:1002A0008430F1F4E0919901F0919A019083E0910A
-:1002B0009901F0919A01CF01019690939A01809350
-:1002C00099018959914021F489E191E092838183D8
-:1002D0009FB7F89480919D018F5F80939D019FBF90
+:1002A0008430F1F4E0919A01F0919B019083E09108
+:1002B0009A01F0919B01CF01019690939B0180934D
+:1002C0009A018A59914021F48AE191E092838183D5
+:1002D0009FB7F89480919E018F5F80939E019FBF8E
:1002E000FF91EF919F918F912F910F900FBE0F90E3
-:1002F0001F901895FC01858580FF02C05F980895C6
-:100300005F9A089580E091E0D5C580E091E088C5CE
-:1003100084B7877F84BF28E10FB6F89420936000EC
-:10032000109260000FBE87E690E09093CD0080931E
-:10033000CC0086E08093CA001092C8002093C900C8
-:10034000539A5A9A8AB180638AB98BB180638BB908
-:1003500083D284E085BD5F9A579A08950F931F93C7
-:10036000CF93DF93D5DF2FB7F8948EE991E0909388
-:100370001F0280931E0290932102809320022FBFC0
-:100380002FB7F89489E191E090939A0180939901B5
-:1003900090939C0180939B012FBF7894CEE9D1E08C
-:1003A00003E08FB7F894909122028FBF903809F143
-:1003B00080E091E0ABD497FD1CC0E0911E02F0916B
-:1003C0001F028083E0911E02F0911F02CF0101966F
-:1003D00090931F0280931E028E51924011F4D2839B
-:1003E000C1839FB7F894809122028F5F809322028D
-:1003F0009FBF8FB7F89410919D018FBFA89902C03D
-:10040000113678F1A89A80919D01882361F05D985A
-:100410000093160108C089E191E0B1DE682F80E009
-:1004200091E0DAD411501123B1F78091160188239D
-:1004300051F0809116018150809316018091160130
-:10044000882309F45D9A80911701882351F08091E7
-:10045000170181508093170180911701882309F4B7
-:100460005C9A8FB7F894909122028FBF992369F01C
-:100470008EE991E084DE982F8091C80085FFFCCF43
-:100480009093CE005C980093170180E091E095D4A2
-:100490002AD487CFDA01923049F0933061F091305D
-:1004A000F9F4E8E9F0E022E130E01EC0EAEAF0E029
-:1004B0002EE330E019C0813049F0813018F08230ED
-:1004C00079F408C0E8EEF0E0849107C0ECEEF0E0CB
-:1004D000849103C0E0E2F1E08491282F30E004C071
-:1004E000E0E0F0E020E030E0ED93FC93C9010895F6
-:1004F00028E030E040E003C04F5F220F331F281791
-:100500003907D0F3842F8295807F08958093E90086
-:100510008091EB0081608093EB001092ED0060937E
-:10052000EC004093ED008091EE00881F8827881F23
-:1005300008951092F40090E09093E9001092F0007A
-:100540001092E8001092ED008091EB008E7F809376
-:10055000EB009F5F953081F70895809127028823F3
-:100560008CF403C08EB38823B1F08091E80082FF41
-:10057000F9CF8091E8008B778093E80008958EB3DF
-:10058000882349F08091E80080FFF9CF8091E8004E
-:100590008E778093E800089594E68091EC0080FFC8
-:1005A00005C08091E80080FF05C023C08091E8006D
-:1005B00082FD1FC08EB3882311F482E008958EB3AC
-:1005C000853011F483E008958091EB0085FF02C02F
-:1005D00081E008958091E10082FFDFCF8091E1000A
-:1005E0008B7F8093E100992311F484E0089591506A
-:1005F000D4CF80E008959C0140912D0250912E02AD
-:100600004617570718F4F90120E038C06115710545
-:1006100011F0AB01F8CF8091E8008E778093E8006D
-:1006200040E050E0F0CF8091E80083FF02C081E01D
-:1006300008958091E80082FD2DC08EB3882381F15A
-:100640008EB3853079F18091E80080FF17C09091DA
-:10065000F20006C081918093F100415050409F5FAD
-:100660004115510511F09830A8F320E0983009F4B5
-:1006700021E08091E8008E778093E80041155105D4
-:1006800091F6222381F606C08EB3882349F08EB3FB
-:10069000853041F08091E80082FFF6CF80E0089538
-:1006A00082E0089583E008959C0140912D025091CD
-:1006B0002E024617570710F490E03BC061157105F4
-:1006C00011F0AB01F9CF8091E8008E778093E800BC
-:1006D00040E050E0F1CF8091E80083FF02C081E06C
-:1006E00008958091E80082FD30C08EB3882399F18F
-:1006F0008EB3853091F18091E80080FF1AC080911F
-:10070000F20009C0F9012F5F3F4FE491E093F1003F
-:10071000415050408F5F4115510511F0883090F3E2
-:1007200090E0883009F491E08091E8008E77809322
-:10073000E8004115510579F6992369F606C08EB394
-:10074000882349F08EB3853041F08091E80082FF24
-:10075000F6CF80E0089582E0089583E008959C013B
-:100760006115710529F48091E8008B778093E8008A
-:10077000F90120C08091E80083FF02C081E0089564
-:100780008EB3882339F18EB3853031F18091E80042
-:1007900082FFF0CF06C08091F100819361507040DC
-:1007A00021F08091F2008823B1F78091E8008B77E7
-:1007B0008093E80061157105E9F606C08EB38823C1
-:1007C00049F08EB3853041F08091E80080FFF6CF8C
-:1007D00080E0089582E0089583E0089542D044D0F7
-:1007E0001EBA10922502109224021092230284E075
-:1007F00089BD89B5826089BD09B400FEFDCF8091B5
-:10080000D800982F9F779093D80080688093D80065
-:10081000809163008E7F809363008091D8008F7DEC
-:100820008093D8008091E0008E7F8093E0008091DB
-:10083000E1008E7F8093E1008091E20081608093EF
-:10084000E2008091E100877F8093E1008091E200E7
-:1008500088608093E2000895C1DF81E080932602E2
-:1008600008951092E20008951092E10008951F92F9
-:100870000F920FB60F9211241F932F933F934F9314
-:100880005F936F937F938F939F93AF93BF93EF93F8
-:10089000FF93E9EEF0E0108117701082E0EFF0E0D6
-:1008A0008081877F80837894C3D0F894A9EEB0E0EC
-:1008B0001C92E0EFF0E08081886080831C93FF91C0
-:1008C000EF91BF91AF919F918F917F916F915F91C8
-:1008D0004F913F912F911F910F900FBE0F901F903E
-:1008E00018951F920F920FB60F9211242F933F93DA
-:1008F0004F935F936F937F938F939F93AF93BF9328
-:10090000EF93FF938091E10080FF1BC08091E20094
-:1009100080FF17C08091E1008E7F8093E10080917D
-:10092000E2008E7F8093E2008091E20080618093FC
-:10093000E2008091D80080628093D80019BC1EBA72
-:10094000D1D18091E10084FF29C08091E20084FF31
-:1009500025C084E089BD89B5826089BD09B400FEE7
-:10096000FDCF8091D8008F7D8093D8008091E100E9
-:100970008F7E8093E1008091E2008F7E8093E20081
-:100980008091E20081608093E200809125028823BB
-:1009900011F481E001C084E08EBBA4D18091E1001C
-:1009A00083FF27C08091E20083FF23C08091E10094
-:1009B000877F8093E10082E08EBB109225028091B8
-:1009C000E1008E7F8093E1008091E2008E7F809332
-:1009D000E2008091E20080618093E200AADD80E085
-:1009E00060E042E093DD8091F00088608093F00049
-:1009F00079D18091E10082FF0AC08091E20082FFFC
-:100A000006C08091E1008B7F8093E1006BD1FF9164
-:100A1000EF91BF91AF919F918F917F916F915F9176
-:100A20004F913F912F910F900FBE0F901F901895EF
-:100A30001F93DF93CF93CDB7DEB7AC970FB6F89483
-:100A4000DEBF0FBECDBFE7E2F2E08091F1008193FF
-:100A500022E0EF32F207C9F7809127023091280295
-:100A6000353009F487C0363040F43130C9F13130C7
-:100A700070F0333009F01DC133C0383009F4EFC0D5
-:100A8000393009F4FEC0363009F013C192C0803805
-:100A900021F0823809F00DC108C0909123028091A5
-:100AA0002402882399F0926011C080912B028770F4
-:100AB0008093E9008091EB0090E025E09695879582
-:100AC0002A95E1F7982F91701092E9008091E80043
-:100AD000877F8093E8009093F1001092F100CAC0E4
-:100AE000882319F0823009F0E4C090E08F71907093
-:100AF000009721F0029709F0DDC00CC08091290217
-:100B0000813009F0D7C010922402333069F5809308
-:100B100024022AC080912902882331F520912B02DA
-:100B2000277009F4C7C02093E9008091EB0080FF93
-:100B3000C1C0333021F48091EB00806213C08091FA
-:100B4000EB0080618093EB0081E090E002C0880FB1
-:100B5000991F2A95E2F78093EA001092EA008091AB
-:100B6000EB0088608093EB001092E9008091E80030
-:100B7000877F83C0882309F09CC01091290280914F
-:100B8000E800877F8093E800E8DC04C08EB3882308
-:100B900009F490C08091E80080FFF8CF812F8F7713
-:100BA00011F492E001C093E09EBB80688093E30063
-:100BB00081C08058823008F07CC0809129029091D9
-:100BC0002A0223E08C3D920799F55FB7F894DE0185
-:100BD00015964EE020E030E061E2E42FF0E0609313
-:100BE0005700849120FF03C082958F704F5F982F2C
-:100BF0009F70892F805D8A3308F0895F8C931196EE
-:100C00001C9211972F5F3F4F12962431310529F71F
-:100C10005FBF8AE28B8383E08C838091E800877FCB
-:100C20008093E800CE0103966AE270E0E4DC11C034
-:100C300060912B02AE014F5F5F4F2CDCBC0100972F
-:100C4000C9F18091E800877F8093E80089819A81CB
-:100C50002BDD8091E8008B778093E8002BC08038F3
-:100C600041F58091E800877F8093E800809125021C
-:100C70008093F1008091E8008E778093E8006DDC2E
-:100C800019C08823B1F490912902923098F4809190
-:100C9000E800877F8093E800909325025EDC8091D6
-:100CA0002502882311F483E001C084E08EBB2DDB94
-:100CB00001C028DB8091E80083FF0AC08091EB002F
-:100CC00080628093EB008091E800877F8093E8004A
-:100CD000AC960FB6F894DEBF0FBECDBFCF91DF91BB
-:100CE0001F91089508951F938EB3882361F010918A
-:100CF000E9001092E9008091E80083FF01C098DECE
-:100D000017701093E9001F9108950895FC018EB3A8
-:100D1000843021F587859089A189B2890097A10542
-:100D2000B105E1F085818093E9008091E80082FFC0
-:100D300015C08091F200882319F42FEF3FEF04C013
-:100D40008091F100282F30E08091F200882341F457
-:100D50008091E8008B778093E80002C02FEF3FEF8F
-:100D6000C9010895FC018EB3843011F587859089FF
-:100D7000A189B2890097A105B105D1F08181809345
-:100D8000E9008091F2008823A9F09091E800809119
-:100D9000E8008E778093E80095FD0CC0FDDB982F6E
-:100DA000882349F48091E8008E778093E80003C09F
-:100DB00092E001C090E0892F0895FC018EB3843049
-:100DC00051F487859089A189B2890097A105B10561
-:100DD00011F0CF01C7CF08951F93FC01162F8EB3DA
-:100DE0008430D9F487859089A189B2890097A105BB
-:100DF000B10599F081818093E9008091E80085FD3B
-:100E000008C08091E8008E778093E800C5DB8823D6
-:100E100029F41093F10080E001C082E01F91089551
-:100E20000F931F93CF93DF93EC010D96FC0189E0A4
-:100E3000DF011D928A95E9F72A813B8109818C8126
-:100E4000882311F410E001C014E0C90151DB182B14
-:100E50001260802F61E8412F59DB882329F12E8110
-:100E60003F810D818885882311F410E001C014E0D2
-:100E7000C9013EDB182B1260802F60E8412F46DB52
-:100E8000882391F02A853B8509858C85882311F478
-:100E900010E001C014E0C9012BDB182B1260802F79
-:100EA00061EC412F33DB01C080E0DF91CF911F91D6
-:100EB0000F910895CF93DF93EC018091E80083FFB9
-:100EC00060C0888190E020912B0230912C0228177D
-:100ED000390709F056C080912802813261F08232D0
-:100EE00020F4803209F04DC019C0823269F183329A
-:100EF00009F047C038C080912702813A09F041C00B
-:100F00008091E800877F8093E800CE010F9667E02C
-:100F100070E071DB8091E8008B7713C0809127022D
-:100F2000813279F58091E800877F8093E800CE01D7
-:100F30000F9667E070E013DCCE013ED98091E800A7
-:100F40008E778093E8001DC0809127028132C9F41A
-:100F50008091E800877F8093E800809129028D8747
-:100F6000CE01C8D90DC080912702813251F4809101
-:100F7000E800877F8093E800CE0160912902C5DEFA
-:100F8000ECDADF91CF910895A1E21A2EAA1BBB1BC8
-:100F9000FD010DC0AA1FBB1FEE1FFF1FA217B30745
-:100FA000E407F50720F0A21BB30BE40BF50B661F5B
-:100FB000771F881F991F1A9469F76095709580951F
-:100FC00090959B01AC01BD01CF010895F894FFCF2E
-:100FD0000003400000044000000208000000000080
-:060FE0000000000000000B
+:1002F0001F901895FC01858580FF04C05F981092BF
+:10030000160108958091160181568E3908F45F9A7E
+:10031000089580E091E0D4C580E091E087C584B77E
+:10032000877F84BF28E10FB6F89420936000109275
+:1003300060000FBE87E690E09093CD008093CC00E4
+:1003400086E08093CA001092C8002093C900539A97
+:100350005A9A8AB180638AB98BB180638BB982D291
+:1003600084E085BD5F98579A08950F931F93CF93AC
+:10037000DF93D5DF2FB7F8948FE991E090932002B7
+:1003800080931F0290932202809321022FBF2FB7E8
+:10039000F8948AE191E090939B0180939A01909365
+:1003A0009D0180939C012FBF7894CFE9D1E003E0B9
+:1003B0008FB7F894909123028FBF903809F180E0B5
+:1003C00091E0AAD497FD1CC0E0911F02F091200299
+:1003D0008083E0911F02F0912002CF01019690935B
+:1003E000200280931F028F51924011F4D283C18367
+:1003F0009FB7F894809123028F5F809323029FBF61
+:100400008FB7F89410919E018FBFA89902C0113642
+:1004100070F1A89A809116018F3F19F08F5F809339
+:10042000160180919E01882361F05D980093170169
+:1004300008C08AE191E0A3DE682F80E091E0D2D489
+:1004400011501123B1F780911701882331F08150A9
+:1004500080931701882309F45D9A809118018823FD
+:1004600031F0815080931801882309F45C9A8FB78A
+:10047000F894909123028FBF992369F08FE991E05E
+:100480007EDE982F8091C80085FFFCCF9093CE0030
+:100490005C980093180180E091E095D42AD488CF2D
+:1004A000DA01923049F0933061F09130F9F4E8E9E3
+:1004B000F0E022E130E01EC0EAEAF0E02EE330E0B6
+:1004C00019C0813049F0813018F0823079F408C0C9
+:1004D000E8EEF0E0849107C0ECEEF0E0849103C018
+:1004E000E0E2F1E08491282F30E004C0E0E0F0E0A9
+:1004F00020E030E0ED93FC93C901089528E030E05E
+:1005000040E003C04F5F220F331F28173907D0F395
+:10051000842F8295807F08958093E9008091EB007D
+:1005200081608093EB001092ED006093EC004093AB
+:10053000ED008091EE00881F8827881F0895109293
+:10054000F40090E09093E9001092F0001092E8001F
+:100550001092ED008091EB008E7F8093EB009F5F07
+:10056000953081F708958091280288238CF403C088
+:100570008EB38823B1F08091E80082FFF9CF80919B
+:10058000E8008B778093E80008958EB3882349F0C4
+:100590008091E80080FFF9CF8091E8008E7780930A
+:1005A000E800089594E68091EC0080FF05C08091FA
+:1005B000E80080FF05C023C08091E80082FD1FC0D5
+:1005C0008EB3882311F482E008958EB3853011F440
+:1005D00083E008958091EB0085FF02C081E00895DB
+:1005E0008091E10082FFDFCF8091E1008B7F8093DB
+:1005F000E100992311F484E008959150D4CF80E074
+:1006000008959C0140912E0250912F0246175707E2
+:1006100018F4F90120E038C06115710511F0AB0143
+:10062000F8CF8091E8008E778093E80040E050E0BA
+:10063000F0CF8091E80083FF02C081E008958091AF
+:10064000E80082FD2DC08EB3882381F18EB3853002
+:1006500079F18091E80080FF17C09091F20006C008
+:1006600081918093F100415050409F5F41155105A9
+:1006700011F09830A8F320E0983009F421E080913F
+:10068000E8008E778093E8004115510591F622230A
+:1006900081F606C08EB3882349F08EB3853041F0D1
+:1006A0008091E80082FFF6CF80E0089582E008950F
+:1006B00083E008959C0140912E0250912F0246172D
+:1006C000570710F490E03BC06115710511F0AB01C4
+:1006D000F9CF8091E8008E778093E80040E050E009
+:1006E000F1CF8091E80083FF02C081E008958091FE
+:1006F000E80082FD30C08EB3882399F18EB3853037
+:1007000091F18091E80080FF1AC08091F20009C049
+:10071000F9012F5F3F4FE491E093F10041505040C9
+:100720008F5F4115510511F0883090F390E08830CB
+:1007300009F491E08091E8008E778093E8004115FC
+:10074000510579F6992369F606C08EB3882349F0DE
+:100750008EB3853041F08091E80082FFF6CF80E0D3
+:10076000089582E0089583E008959C016115710564
+:1007700029F48091E8008B778093E800F90120C08C
+:100780008091E80083FF02C081E008958EB3882342
+:1007900039F18EB3853031F18091E80082FFF0CFDE
+:1007A00006C08091F10081936150704021F08091EA
+:1007B000F2008823B1F78091E8008B778093E800FE
+:1007C00061157105E9F606C08EB3882349F08EB332
+:1007D000853041F08091E80080FFF6CF80E00895F9
+:1007E00082E0089583E0089542D044D01EBA10926A
+:1007F0002602109225021092240284E089BD89B558
+:10080000826089BD09B400FEFDCF8091D800982F89
+:100810009F779093D80080688093D8008091630080
+:100820008E7F809363008091D8008F7D8093D80065
+:100830008091E0008E7F8093E0008091E1008E7FC8
+:100840008093E1008091E20081608093E2008091DA
+:10085000E100877F8093E1008091E20088608093CF
+:10086000E2000895C1DF81E080932702089510928D
+:10087000E20008951092E10008951F920F920FB6C2
+:100880000F9211241F932F933F934F935F936F9376
+:100890007F938F939F93AF93BF93EF93FF93E9EE73
+:1008A000F0E0108117701082E0EFF0E08081877F28
+:1008B00080837894C3D0F894A9EEB0E01C92E0EF66
+:1008C000F0E08081886080831C93FF91EF91BF915D
+:1008D000AF919F918F917F916F915F914F913F91D8
+:1008E0002F911F910F900FBE0F901F9018951F9280
+:1008F0000F920FB60F9211242F933F934F935F9354
+:100900006F937F938F939F93AF93BF93EF93FF93D7
+:100910008091E10080FF1BC08091E20080FF17C042
+:100920008091E1008E7F8093E1008091E2008E7FD4
+:100930008093E2008091E20080618093E2008091E8
+:10094000D80080628093D80019BC1EBAD1D18091A2
+:10095000E10084FF29C08091E20084FF25C084E08B
+:1009600089BD89B5826089BD09B400FEFDCF809143
+:10097000D8008F7D8093D8008091E1008F7E809396
+:10098000E1008091E2008F7E8093E2008091E2009E
+:1009900081608093E20080912602882311F481E037
+:1009A00001C084E08EBBA4D18091E10083FF27C009
+:1009B0008091E20083FF23C08091E100877F8093D4
+:1009C000E10082E08EBB109226028091E1008E7FD2
+:1009D0008093E1008091E2008E7F8093E20080911D
+:1009E000E20080618093E200AADD80E060E042E006
+:1009F00093DD8091F00088608093F00079D1809140
+:100A0000E10082FF0AC08091E20082FF06C080916F
+:100A1000E1008B7F8093E1006BD1FF91EF91BF915B
+:100A2000AF919F918F917F916F915F914F913F9186
+:100A30002F910F900FBE0F901F9018951F93DF936B
+:100A4000CF93CDB7DEB7AC970FB6F894DEBF0FBE2D
+:100A5000CDBFE8E2F2E08091F100819322E0E03343
+:100A6000F207C9F78091280230912902353009F444
+:100A700087C0363040F43130C9F1313070F0333056
+:100A800009F01DC133C0383009F4EFC0393009F422
+:100A9000FEC0363009F013C192C0803821F0823890
+:100AA00009F00DC108C0909124028091250288238D
+:100AB00099F0926011C080912C0287708093E900B8
+:100AC0008091EB0090E025E0969587952A95E1F7D7
+:100AD000982F91701092E9008091E800877F8093B1
+:100AE000E8009093F1001092F100CAC0882319F039
+:100AF000823009F0E4C090E08F719070009721F08F
+:100B0000029709F0DDC00CC080912A02813009F003
+:100B1000D7C010922502333069F5809325022AC090
+:100B200080912A02882331F520912C02277009F444
+:100B3000C7C02093E9008091EB0080FFC1C0333033
+:100B400021F48091EB00806213C08091EB00806102
+:100B50008093EB0081E090E002C0880F991F2A95F6
+:100B6000E2F78093EA001092EA008091EB0088603F
+:100B70008093EB001092E9008091E800877F83C0AA
+:100B8000882309F09CC010912A028091E800877F99
+:100B90008093E800E8DC04C08EB3882309F490C099
+:100BA0008091E80080FFF8CF812F8F7711F492E0D9
+:100BB00001C093E09EBB80688093E30081C08058B1
+:100BC000823008F07CC080912A0290912B0223E0B1
+:100BD0008C3D920799F55FB7F894DE0115964EE0CB
+:100BE00020E030E061E2E42FF0E060935700849170
+:100BF00020FF03C082958F704F5F982F9F70892FC1
+:100C0000805D8A3308F0895F8C9311961C9211974E
+:100C10002F5F3F4F12962431310529F75FBF8AE2DB
+:100C20008B8383E08C838091E800877F8093E8004A
+:100C3000CE0103966AE270E0E4DC11C060912C0200
+:100C4000AE014F5F5F4F2CDCBC010097C9F1809172
+:100C5000E800877F8093E80089819A812BDD80916D
+:100C6000E8008B778093E8002BC0803841F58091B5
+:100C7000E800877F8093E800809126028093F1004E
+:100C80008091E8008E778093E8006DDC19C088239E
+:100C9000B1F490912A02923098F48091E800877F15
+:100CA0008093E800909326025EDC809126028823E0
+:100CB00011F483E001C084E08EBB2EDB01C029DB90
+:100CC0008091E80083FF0AC08091EB0080628093EE
+:100CD000EB008091E800877F8093E800AC960FB628
+:100CE000F894DEBF0FBECDBFCF91DF911F91089565
+:100CF00008951F938EB3882361F01091E90010923C
+:100D0000E9008091E80083FF01C098DE177010931E
+:100D1000E9001F9108950895FC018EB3843021F5F8
+:100D200087859089A189B2890097A105B105E1F075
+:100D300085818093E9008091E80082FF15C0809151
+:100D4000F200882319F42FEF3FEF04C08091F100E7
+:100D5000282F30E08091F200882341F48091E80050
+:100D60008B778093E80002C02FEF3FEFC901089511
+:100D7000FC018EB3843011F587859089A189B289F1
+:100D80000097A105B105D1F081818093E9008091A0
+:100D9000F2008823A9F09091E8008091E8008E7716
+:100DA0008093E80095FD0CC0FDDB982F882349F463
+:100DB0008091E8008E778093E80003C092E001C044
+:100DC00090E0892F0895FC018EB3843051F487851B
+:100DD0009089A189B2890097A105B10511F0CF01D1
+:100DE000C7CF08951F93FC01162F8EB38430D9F41A
+:100DF00087859089A189B2890097A105B10599F0ED
+:100E000081818093E9008091E80085FD08C0809190
+:100E1000E8008E778093E800C5DB882329F41093DF
+:100E2000F10080E001C082E01F9108950F931F93AD
+:100E3000CF93DF93EC010D96FC0189E0DF011D9259
+:100E40008A95E9F72A813B8109818C81882311F4F5
+:100E500010E001C014E0C90151DB182B1260802F93
+:100E600061E8412F59DB882329F12E813F810D81D3
+:100E70008885882311F410E001C014E0C9013EDB2D
+:100E8000182B1260802F60E8412F46DB882391F0F9
+:100E90002A853B8509858C85882311F410E001C0E3
+:100EA00014E0C9012BDB182B1260802F61EC412F5D
+:100EB00033DB01C080E0DF91CF911F910F91089546
+:100EC000CF93DF93EC018091E80083FF60C08881BD
+:100ED00090E020912C0230912D022817390709F05B
+:100EE00056C080912902813261F0823220F4803232
+:100EF00009F04DC019C0823269F1833209F047C050
+:100F000038C080912802813A09F041C08091E80000
+:100F1000877F8093E800CE010F9667E070E071DB79
+:100F20008091E8008B7713C080912802813279F597
+:100F30008091E800877F8093E800CE010F9667E0FC
+:100F400070E013DCCE0138D98091E8008E77809371
+:100F5000E8001DC0809128028132C9F48091E80028
+:100F6000877F8093E80080912A028D87CE01C2D9C5
+:100F70000DC080912802813251F48091E800877F72
+:100F80008093E800CE0160912A02C5DEECDADF91A1
+:100F9000CF910895A1E21A2EAA1BBB1BFD010DC023
+:100FA000AA1FBB1FEE1FFF1FA217B307E407F50719
+:100FB00020F0A21BB30BE40BF50B661F771F881FF5
+:100FC000991F1A9469F760957095809590959B018B
+:0C0FD000AC01BD01CF010895F894FFCFE3
+:100FDC000003400000044000000208000000000074
+:060FEC00000000000000FF
:00000001FF
View
440 hardware/arduino/firmwares/arduino-usbserial/Arduino-usbserial-uno.hex
@@ -1,14 +1,14 @@
:100000009CC00000B5C00000B3C00000B1C000003B
:10001000AFC00000ADC00000ABC00000A9C0000030
-:10002000A7C00000A5C00000A3C0000054C4000089
-:1000300018C400009DC000009BC0000099C00000D3
+:10002000A7C00000A5C00000A3C000005AC4000083
+:100030001EC400009DC000009BC0000099C00000CD
:1000400097C0000095C0000093C0000091C0000060
:100050008FC000008DC000008BC000000EC10000EA
:1000600087C0000085C0000083C0000081C0000080
:100070007FC000007DC000007BC0000079C0000090
:1000800077C0000075C0000073C0000071C00000A0
:100090006FC000006DC000001201100102000008D6
-:1000A0004123010001000102DC0109023E000201BE
+:1000A000EB034B2001000102DC0109023E000201CA
:1000B00000C0320904000001020201000524000111
:1000C0001004240206052406000107058203080027
:1000D000FF09040100020A000000070504024000B5
@@ -18,9 +18,9 @@
:1001100069006E006F002E0063006300290000007C
:100120001803410072006400750069006E006F00E2
:10013000200055006E006F00000011241FBECFEF9D
-:10014000D2E0DEBFCDBF11E0A0E0B1E0E4ECFFE023
+:10014000D2E0DEBFCDBF11E0A0E0B1E0E0EDFFE026
:1001500002C005900D92A631B107D9F712E0A6E1D1
-:10016000B1E001C01D92AF32B107E1F7F1D028C76D
+:10016000B1E001C01D92A033B107E1F7F8D02EC76E
:1001700047CF9C01DC01AE57BF4FED91FC91119729
:1001800041911196FC93EE9380589F4FE817F90721
:1001900011F42D933C939FB7F894F901EC57FF4F5E
@@ -33,224 +33,224 @@
:10020000CA00E784F0880189128980E0E81681EE4F
:10021000F80680E0080780E0180719F420E130E0D4
:100220000FC0C801B7019695879577956795605877
-:100230007B47814E9F4FA8019701A0D621503040A7
+:100230007B47814E9F4FA8019701A6D621503040A1
:100240003093CD002093CC00D092CA0080E0E81615
:1002500081EEF80680E0080780E0180711F082E0E0
:1002600001C080E08093C80088E98093C9001F9195
:100270000F91FF90EF90DF9008951F920F920FB6AD
:100280000F9211242F938F939F93EF93FF9390914D
-:10029000CE008EB38430F1F4E0919901F0919A018F
-:1002A0009083E0919901F0919A01CF01019690938A
-:1002B0009A01809399018959914021F489E191E053
-:1002C000928381839FB7F89480919D018F5F809383
-:1002D0009D019FBFFF91EF919F918F912F910F9063
-:1002E0000FBE0F901F901895FC01858580FF02C0FE
-:1002F0005F9808955F9A089580E091E0D5C580E009
-:1003000091E088C584B7877F84BF28E10FB6F89451
-:1003100020936000109260000FBE87E690E09093FB
-:10032000CD008093CC0086E08093CA001092C80074
-:100330002093C900539A5A9A8AB180638AB98BB1C3
-:1003400080638BB983D284E085BD5F9A579A089504
-:100350000F931F93CF93DF93D5DF2FB7F8948EE9D8
-:1003600091E090931F0280931E029093210280934C
-:1003700020022FBF2FB7F89489E191E090939A0162
-:100380008093990190939C0180939B012FBF789457
-:10039000CEE9D1E003E08FB7F894909122028FBFAD
-:1003A000903809F180E091E0ABD497FD1CC0E0915A
-:1003B0001E02F0911F028083E0911E02F0911F0245
-:1003C000CF01019690931F0280931E028E5192409E
-:1003D00011F4D283C1839FB7F894809122028F5F7A
-:1003E000809322029FBF8FB7F89410919D018FBF19
-:1003F000A89902C0113678F1A89A80919D018823AE
-:1004000061F05D980093160108C089E191E0B1DECA
-:10041000682F80E091E0DAD411501123B1F7809178
-:100420001601882351F080911601815080931601A6
-:1004300080911601882309F45D9A80911701882321
-:1004400051F080911701815080931701809117011D
-:10045000882309F45C9A8FB7F894909122028FBF99
-:10046000992369F08EE991E084DE982F8091C8008D
-:1004700085FFFCCF9093CE005C980093170180E03D
-:1004800091E095D42AD487CFDA01923049F09330A5
-:1004900061F09130F9F4E8E9F0E022E130E01EC0CB
-:1004A000EAEAF0E02EE330E019C0813049F0813013
-:1004B00018F0823079F408C0E8EEF0E0849107C0CB
-:1004C000ECEEF0E0849103C0E0E2F1E08491282FAB
-:1004D00030E004C0E0E0F0E020E030E0ED93FC9399
-:1004E000C901089528E030E040E003C04F5F220FCB
-:1004F000331F28173907D0F3842F8295807F089502
-:100500008093E9008091EB0081608093EB00109272
-:10051000ED006093EC004093ED008091EE00881FA9
-:100520008827881F08951092F40090E09093E900C6
-:100530001092F0001092E8001092ED008091EB0014
-:100540008E7F8093EB009F5F953081F708958091B7
-:10055000270288238CF403C08EB38823B1F08091E6
-:10056000E80082FFF9CF8091E8008B778093E80064
-:1005700008958EB3882349F08091E80080FFF9CF79
-:100580008091E8008E778093E800089594E680914A
-:10059000EC0080FF05C08091E80080FF05C023C00B
-:1005A0008091E80082FD1FC08EB3882311F482E0A1
-:1005B00008958EB3853011F483E008958091EB00A7
-:1005C00085FF02C081E008958091E10082FFDFCFC6
-:1005D0008091E1008B7F8093E100992311F484E006
-:1005E00008959150D4CF80E008959C0140912D0250
-:1005F00050912E024617570718F4F90120E038C031
-:100600006115710511F0AB01F8CF8091E8008E778C
-:100610008093E80040E050E0F0CF8091E80083FF55
-:1006200002C081E008958091E80082FD2DC08EB364
-:10063000882381F18EB3853079F18091E80080FFC5
-:1006400017C09091F20006C081918093F100415053
-:1006500050409F5F4115510511F09830A8F320E0FC
-:10066000983009F421E08091E8008E778093E800CB
-:100670004115510591F6222381F606C08EB38823D9
-:1006800049F08EB3853041F08091E80082FFF6CFCB
-:1006900080E0089582E0089583E008959C014091F0
-:1006A0002D0250912E024617570710F490E03BC0E0
-:1006B0006115710511F0AB01F9CF8091E8008E77DB
-:1006C0008093E80040E050E0F1CF8091E80083FFA4
-:1006D00002C081E008958091E80082FD30C08EB3B1
-:1006E000882399F18EB3853091F18091E80080FFE5
-:1006F0001AC08091F20009C0F9012F5F3F4FE491C9
-:10070000E093F100415050408F5F4115510511F0C9
-:10071000883090F390E0883009F491E08091E8000F
-:100720008E778093E8004115510579F6992369F693
-:1007300006C08EB3882349F08EB3853041F0809196
-:10074000E80082FFF6CF80E0089582E0089583E01C
-:1007500008959C016115710529F48091E8008B775B
-:100760008093E800F90120C08091E80083FF02C077
-:1007700081E008958EB3882339F18EB3853031F14D
-:100780008091E80082FFF0CF06C08091F100819354
-:100790006150704021F08091F2008823B1F7809180
-:1007A000E8008B778093E80061157105E9F606C0D3
-:1007B0008EB3882349F08EB3853041F08091E800F4
-:1007C00080FFF6CF80E0089582E0089583E00895E9
-:1007D00042D044D01EBA10922502109224021092E8
-:1007E000230284E089BD89B5826089BD09B400FE19
-:1007F000FDCF8091D800982F9F779093D800806884
-:100800008093D800809163008E7F809363008091F5
-:10081000D8008F7D8093D8008091E0008E7F8093F8
-:10082000E0008091E1008E7F8093E1008091E20002
-:1008300081608093E2008091E100877F8093E100F6
-:100840008091E20088608093E2000895C1DF81E03A
-:100850008093260208951092E20008951092E1001C
-:1008600008951F920F920FB60F9211241F932F938A
-:100870003F934F935F936F937F938F939F93AF9328
-:10088000BF93EF93FF93E9EEF0E0108117701082B1
-:10089000E0EFF0E08081877F80837894C3D0F89484
-:1008A000A9EEB0E01C92E0EFF0E0808188608083E8
-:1008B0001C93FF91EF91BF91AF919F918F917F9189
-:1008C0006F915F914F913F912F911F910F900FBEAC
-:1008D0000F901F9018951F920F920FB60F92112430
-:1008E0002F933F934F935F936F937F938F939F9338
-:1008F000AF93BF93EF93FF938091E10080FF1BC004
-:100900008091E20080FF17C08091E1008E7F80938C
-:10091000E1008091E2008E7F8093E2008091E2000E
-:1009200080618093E2008091D80080628093D8003B
-:1009300019BC1EBAD1D18091E10084FF29C08091F9
-:10094000E20084FF25C084E089BD89B5826089BD4D
-:1009500009B400FEFDCF8091D8008F7D8093D80030
-:100960008091E1008F7E8093E1008091E2008F7E94
-:100970008093E2008091E20081608093E2008091A8
-:100980002502882311F481E001C084E08EBBA4D14C
-:100990008091E10083FF27C08091E20083FF23C0A4
-:1009A0008091E100877F8093E10082E08EBB10920E
-:1009B00025028091E1008E7F8093E1008091E2002A
-:1009C0008E7F8093E2008091E20080618093E2005C
-:1009D000AADD80E060E042E093DD8091F000886075
-:1009E0008093F00079D18091E10082FF0AC080916C
-:1009F000E20082FF06C08091E1008B7F8093E100DE
-:100A00006BD1FF91EF91BF91AF919F918F917F91AA
-:100A10006F915F914F913F912F910F900FBE0F906B
-:100A20001F9018951F93DF93CF93CDB7DEB7AC9788
-:100A30000FB6F894DEBF0FBECDBFE7E2F2E08091C3
-:100A4000F100819322E0EF32F207C9F7809127028B
-:100A500030912802353009F487C0363040F4313007
-:100A6000C9F1313070F0333009F01DC133C0383076
-:100A700009F4EFC0393009F4FEC0363009F013C173
-:100A800092C0803821F0823809F00DC108C09091E1
-:100A9000230280912402882399F0926011C08091F2
-:100AA0002B0287708093E9008091EB0090E025E0B5
-:100AB000969587952A95E1F7982F91701092E90005
-:100AC0008091E800877F8093E8009093F100109276
-:100AD000F100CAC0882319F0823009F0E4C090E028
-:100AE0008F719070009721F0029709F0DDC00CC063
-:100AF00080912902813009F0D7C01092240233304E
-:100B000069F5809324022AC080912902882331F557
-:100B100020912B02277009F4C7C02093E90080912F
-:100B2000EB0080FFC1C0333021F48091EB00806284
-:100B300013C08091EB0080618093EB0081E090E036
-:100B400002C0880F991F2A95E2F78093EA0010925D
-:100B5000EA008091EB0088608093EB001092E9003E
-:100B60008091E800877F83C0882309F09CC01091A2
-:100B700029028091E800877F8093E800E8DC04C0C8
-:100B80008EB3882309F490C08091E80080FFF8CFED
-:100B9000812F8F7711F492E001C093E09EBB8068B3
-:100BA0008093E30081C08058823008F07CC080913F
-:100BB000290290912A0223E08C3D920799F55FB7B4
-:100BC000F894DE0115964EE020E030E061E2E42F7B
-:100BD000F0E060935700849120FF03C082958F70EE
-:100BE0004F5F982F9F70892F805D8A3308F0895F4F
-:100BF0008C9311961C9211972F5F3F4F12962431C0
-:100C0000310529F75FBF8AE28B8383E08C83809173
-:100C1000E800877F8093E800CE0103966AE270E0E7
-:100C2000E4DC11C060912B02AE014F5F5F4F2CDC02
-:100C3000BC010097C9F18091E800877F8093E800AC
-:100C400089819A812BDD8091E8008B778093E80081
-:100C50002BC0803841F58091E800877F8093E800C1
-:100C6000809125028093F1008091E8008E77809337
-:100C7000E8006DDC19C08823B1F49091290292300C
-:100C800098F48091E800877F8093E8009093250294
-:100C90005EDC80912502882311F483E001C084E0AA
-:100CA0008EBB2DDB01C028DB8091E80083FF0AC0EA
-:100CB0008091EB0080628093EB008091E800877F59
-:100CC0008093E800AC960FB6F894DEBF0FBECDBFA0
-:100CD000CF91DF911F91089508951F938EB38823BC
-:100CE00061F01091E9001092E9008091E80083FF23
-:100CF00001C098DE17701093E9001F9108950895C0
-:100D0000FC018EB3843021F587859089A189B28951
-:100D10000097A105B105E1F085818093E9008091FC
-:100D2000E80082FF15C08091F200882319F42FEFAC
-:100D30003FEF04C08091F100282F30E08091F20055
-:100D4000882341F48091E8008B778093E80002C00B
-:100D50002FEF3FEFC9010895FC018EB3843011F5E8
-:100D600087859089A189B2890097A105B105D1F045
-:100D700081818093E9008091F2008823A9F090910D
-:100D8000E8008091E8008E778093E80095FD0CC024
-:100D9000FDDB982F882349F48091E8008E778093BB
-:100DA000E80003C092E001C090E0892F0895FC01A3
-:100DB0008EB3843051F487859089A189B2890097D8
-:100DC000A105B10511F0CF01C7CF08951F93FC0114
-:100DD000162F8EB38430D9F487859089A189B28982
-:100DE0000097A105B10599F081818093E900809178
-:100DF000E80085FD08C08091E8008E778093E800C8
-:100E0000C5DB882329F41093F10080E001C082E063
-:100E10001F9108950F931F93CF93DF93EC010D96CD
-:100E2000FC0189E0DF011D928A95E9F72A813B8167
-:100E300009818C81882311F410E001C014E0C901FC
-:100E400051DB182B1260802F61E8412F59DB88237A
-:100E500029F12E813F810D818885882311F410E0CE
-:100E600001C014E0C9013EDB182B1260802F60E83E
-:100E7000412F46DB882391F02A853B8509858C85A7
-:100E8000882311F410E001C014E0C9012BDB182BFA
-:100E90001260802F61EC412F33DB01C080E0DF91D5
-:100EA000CF911F910F910895CF93DF93EC01809123
-:100EB000E80083FF60C0888190E020912B02309190
-:100EC0002C022817390709F056C080912802813278
-:100ED00061F0823220F4803209F04DC019C08232B4
-:100EE00069F1833209F047C038C080912702813A06
-:100EF00009F041C08091E800877F8093E800CE012F
-:100F00000F9667E070E071DB8091E8008B7713C08B
-:100F100080912702813279F58091E800877F809364
-:100F2000E800CE010F9667E070E013DCCE013ED9F9
-:100F30008091E8008E778093E8001DC080912702A1
-:100F40008132C9F48091E800877F8093E800809126
-:100F500029028D87CE01C8D90DC080912702813228
-:100F600051F48091E800877F8093E800CE01609182
-:100F70002902C5DEECDADF91CF910895A1E21A2EA5
-:100F8000AA1BBB1BFD010DC0AA1FBB1FEE1FFF1F2D
-:100F9000A217B307E407F50720F0A21BB30BE40B7D
-:100FA000F50B661F771F881F991F1A9469F76095C4
-:100FB0007095809590959B01AC01BD01CF0108957E
-:040FC000F894FFCFD3
-:100FC400000340000004400000020800000000008C
-:060FD40000000000000017
+:10029000CE008EB38430F1F4E0919A01F0919B018D
+:1002A0009083E0919A01F0919B01CF010196909388
+:1002B0009B0180939A018A59914021F48AE191E04F
+:1002C000928381839FB7F89480919E018F5F809382
+:1002D0009E019FBFFF91EF919F918F912F910F9062
+:1002E0000FBE0F901F901895FC01858580FF04C0FC
+:1002F0005F981092160108958091160181568E39EB
+:1003000008F45F9A089580E091E0D4C580E091E020
+:1003100087C584B7877F84BF28E10FB6F894209300
+:100320006000109260000FBE87E690E09093CD00D1
+:100330008093CC0086E08093CA001092C80020937E
+:10034000C900539A5A9A8AB180638AB98BB1806383
+:100350008BB982D284E085BD5F98579A08950F9338
+:100360001F93CF93DF93D5DF2FB7F8948FE991E0F8
+:100370009093200280931F02909322028093210287
+:100380002FBF2FB7F8948AE191E090939B0180935F
+:100390009A0190939D0180939C012FBF7894CFE99F
+:1003A000D1E003E08FB7F894909123028FBF90388B
+:1003B00009F180E091E0AAD497FD1CC0E0911F02F2
+:1003C000F09120028083E0911F02F0912002CF0182
+:1003D00001969093200280931F028F51924011F456
+:1003E000D283C1839FB7F894809123028F5F80935B
+:1003F00023029FBF8FB7F89410919E018FBFA899D9
+:1004000002C0113670F1A89A809116018F3F19F041
+:100410008F5F8093160180919E01882361F05D9823
+:100420000093170108C08AE191E0A3DE682F80E005
+:1004300091E0D2D411501123B1F780911701882394
+:1004400031F0815080931701882309F45D9A8091DF
+:100450001801882331F0815080931801882309F412
+:100460005C9A8FB7F894909123028FBF992369F01B
+:100470008FE991E07EDE982F8091C80085FFFCCF48
+:100480009093CE005C980093180180E091E095D4A1
+:100490002AD488CFDA01923049F0933061F091305C
+:1004A000F9F4E8E9F0E022E130E01EC0EAEAF0E029
+:1004B0002EE330E019C0813049F0813018F08230ED
+:1004C00079F408C0E8EEF0E0849107C0ECEEF0E0CB
+:1004D000849103C0E0E2F1E08491282F30E004C071
+:1004E000E0E0F0E020E030E0ED93FC93C9010895F6
+:1004F00028E030E040E003C04F5F220F331F281791
+:100500003907D0F3842F8295807F08958093E90086
+:100510008091EB0081608093EB001092ED0060937E
+:10052000EC004093ED008091EE00881F8827881F23
+:1005300008951092F40090E09093E9001092F0007A
+:100540001092E8001092ED008091EB008E7F809376
+:10055000EB009F5F953081F70895809128028823F2
+:100560008CF403C08EB38823B1F08091E80082FF41
+:10057000F9CF8091E8008B778093E80008958EB3DF
+:10058000882349F08091E80080FFF9CF8091E8004E
+:100590008E778093E800089594E68091EC0080FFC8
+:1005A00005C08091E80080FF05C023C08091E8006D
+:1005B00082FD1FC08EB3882311F482E008958EB3AC
+:1005C000853011F483E008958091EB0085FF02C02F
+:1005D00081E008958091E10082FFDFCF8091E1000A
+:1005E0008B7F8093E100992311F484E0089591506A
+:1005F000D4CF80E008959C0140912E0250912F02AB
+:100600004617570718F4F90120E038C06115710545
+:1006100011F0AB01F8CF8091E8008E778093E8006D
+:1006200040E050E0F0CF8091E80083FF02C081E01D
+:1006300008958091E80082FD2DC08EB3882381F15A
+:100640008EB3853079F18091E80080FF17C09091DA
+:10065000F20006C081918093F100415050409F5FAD
+:100660004115510511F09830A8F320E0983009F4B5
+:1006700021E08091E8008E778093E80041155105D4
+:1006800091F6222381F606C08EB3882349F08EB3FB
+:10069000853041F08091E80082FFF6CF80E0089538
+:1006A00082E0089583E008959C0140912E025091CC
+:1006B0002F024617570710F490E03BC061157105F3
+:1006C00011F0AB01F9CF8091E8008E778093E800BC
+:1006D00040E050E0F1CF8091E80083FF02C081E06C
+:1006E00008958091E80082FD30C08EB3882399F18F
+:1006F0008EB3853091F18091E80080FF1AC080911F
+:10070000F20009C0F9012F5F3F4FE491E093F1003F
+:10071000415050408F5F4115510511F0883090F3E2
+:1007200090E0883009F491E08091E8008E77809322
+:10073000E8004115510579F6992369F606C08EB394
+:10074000882349F08EB3853041F08091E80082FF24
+:10075000F6CF80E0089582E0089583E008959C013B
+:100760006115710529F48091E8008B778093E8008A
+:10077000F90120C08091E80083FF02C081E0089564
+:100780008EB3882339F18EB3853031F18091E80042
+:1007900082FFF0CF06C08091F100819361507040DC
+:1007A00021F08091F2008823B1F78091E8008B77E7
+:1007B0008093E80061157105E9F606C08EB38823C1
+:1007C00049F08EB3853041F08091E80080FFF6CF8C
+:1007D00080E0089582E0089583E0089542D044D0F7
+:1007E0001EBA10922602109225021092240284E072
+:1007F00089BD89B5826089BD09B400FEFDCF8091B5
+:10080000D800982F9F779093D80080688093D80065
+:10081000809163008E7F809363008091D8008F7DEC
+:100820008093D8008091E0008E7F8093E0008091DB
+:10083000E1008E7F8093E1008091E20081608093EF
+:10084000E2008091E100877F8093E1008091E200E7
+:1008500088608093E2000895C1DF81E080932702E1
+:1008600008951092E20008951092E10008951F92F9
+:100870000F920FB60F9211241F932F933F934F9314
+:100880005F936F937F938F939F93AF93BF93EF93F8
+:10089000FF93E9EEF0E0108117701082E0EFF0E0D6
+:1008A0008081877F80837894C3D0F894A9EEB0E0EC
+:1008B0001C92E0EFF0E08081886080831C93FF91C0
+:1008C000EF91BF91AF919F918F917F916F915F91C8
+:1008D0004F913F912F911F910F900FBE0F901F903E
+:1008E00018951F920F920FB60F9211242F933F93DA
+:1008F0004F935F936F937F938F939F93AF93BF9328
+:10090000EF93FF938091E10080FF1BC08091E20094
+:1009100080FF17C08091E1008E7F8093E10080917D
+:10092000E2008E7F8093E2008091E20080618093FC
+:10093000E2008091D80080628093D80019BC1EBA72
+:10094000D1D18091E10084FF29C08091E20084FF31
+:1009500025C084E089BD89B5826089BD09B400FEE7
+:10096000FDCF8091D8008F7D8093D8008091E100E9
+:100970008F7E8093E1008091E2008F7E8093E20081
+:100980008091E20081608093E200809126028823BA
+:1009900011F481E001C084E08EBBA4D18091E1001C
+:1009A00083FF27C08091E20083FF23C08091E10094
+:1009B000877F8093E10082E08EBB109226028091B7
+:1009C000E1008E7F8093E1008091E2008E7F809332
+:1009D000E2008091E20080618093E200AADD80E085
+:1009E00060E042E093DD8091F00088608093F00049
+:1009F00079D18091E10082FF0AC08091E20082FFFC
+:100A000006C08091E1008B7F8093E1006BD1FF9164
+:100A1000EF91BF91AF919F918F917F916F915F9176
+:100A20004F913F912F910F900FBE0F901F901895EF
+:100A30001F93DF93CF93CDB7DEB7AC970FB6F89483
+:100A4000DEBF0FBECDBFE8E2F2E08091F1008193FE
+:100A500022E0E033F207C9F78091280230912902A1
+:100A6000353009F487C0363040F43130C9F13130C7
+:100A700070F0333009F01DC133C0383009F4EFC0D5
+:100A8000393009F4FEC0363009F013C192C0803805
+:100A900021F0823809F00DC108C0909124028091A4
+:100AA0002502882399F0926011C080912C028770F2
+:100AB0008093E9008091EB0090E025E09695879582
+:100AC0002A95E1F7982F91701092E9008091E80043
+:100AD000877F8093E8009093F1001092F100CAC0E4
+:100AE000882319F0823009F0E4C090E08F71907093
+:100AF000009721F0029709F0DDC00CC080912A0216
+:100B0000813009F0D7C010922502333069F5809307
+:100B100025022AC080912A02882331F520912C02D7
+:100B2000277009F4C7C02093E9008091EB0080FF93
+:100B3000C1C0333021F48091EB00806213C08091FA
+:100B4000EB0080618093EB0081E090E002C0880FB1
+:100B5000991F2A95E2F78093EA001092EA008091AB
+:100B6000EB0088608093EB001092E9008091E80030
+:100B7000877F83C0882309F09CC010912A0280914E
+:100B8000E800877F8093E800E8DC04C08EB3882308
+:100B900009F490C08091E80080FFF8CF812F8F7713
+:100BA00011F492E001C093E09EBB80688093E30063
+:100BB00081C08058823008F07CC080912A029091D8
+:100BC0002B0223E08C3D920799F55FB7F894DE0184
+:100BD00015964EE020E030E061E2E42FF0E0609313
+:100BE0005700849120FF03C082958F704F5F982F2C
+:100BF0009F70892F805D8A3308F0895F8C931196EE
+:100C00001C9211972F5F3F4F12962431310529F71F
+:100C10005FBF8AE28B8383E08C838091E800877FCB
+:100C20008093E800CE0103966AE270E0E4DC11C034
+:100C300060912C02AE014F5F5F4F2CDCBC0100972E
+:100C4000C9F18091E800877F8093E80089819A81CB
+:100C50002BDD8091E8008B778093E8002BC08038F3
+:100C600041F58091E800877F8093E800809126021B
+:100C70008093F1008091E8008E778093E8006DDC2E
+:100C800019C08823B1F490912A02923098F480918F
+:100C9000E800877F8093E800909326025EDC8091D5
+:100CA0002602882311F483E001C084E08EBB2EDB92
+:100CB00001C029DB8091E80083FF0AC08091EB002E
+:100CC00080628093EB008091E800877F8093E8004A
+:100CD000AC960FB6F894DEBF0FBECDBFCF91DF91BB
+:100CE0001F91089508951F938EB3882361F010918A
+:100CF000E9001092E9008091E80083FF01C098DECE
+:100D000017701093E9001F9108950895FC018EB3A8
+:100D1000843021F587859089A189B2890097A10542
+:100D2000B105E1F085818093E9008091E80082FFC0
+:100D300015C08091F200882319F42FEF3FEF04C013
+:100D40008091F100282F30E08091F200882341F457
+:100D50008091E8008B778093E80002C02FEF3FEF8F
+:100D6000C9010895FC018EB3843011F587859089FF
+:100D7000A189B2890097A105B105D1F08181809345
+:100D8000E9008091F2008823A9F09091E800809119
+:100D9000E8008E778093E80095FD0CC0FDDB982F6E
+:100DA000882349F48091E8008E778093E80003C09F
+:100DB00092E001C090E0892F0895FC018EB3843049
+:100DC00051F487859089A189B2890097A105B10561
+:100DD00011F0CF01C7CF08951F93FC01162F8EB3DA
+:100DE0008430D9F487859089A189B2890097A105BB
+:100DF000B10599F081818093E9008091E80085FD3B
+:100E000008C08091E8008E778093E800C5DB8823D6
+:100E100029F41093F10080E001C082E01F91089551
+:100E20000F931F93CF93DF93EC010D96FC0189E0A4
+:100E3000DF011D928A95E9F72A813B8109818C8126
+:100E4000882311F410E001C014E0C90151DB182B14
+:100E50001260802F61E8412F59DB882329F12E8110
+:100E60003F810D818885882311F410E001C014E0D2
+:100E7000C9013EDB182B1260802F60E8412F46DB52
+:100E8000882391F02A853B8509858C85882311F478
+:100E900010E001C014E0C9012BDB182B1260802F79
+:100EA00061EC412F33DB01C080E0DF91CF911F91D6
+:100EB0000F910895CF93DF93EC018091E80083FFB9
+:100EC00060C0888190E020912C0230912D0228177B
+:100ED000390709F056C080912902813261F08232CF
+:100EE00020F4803209F04DC019C0823269F183329A
+:100EF00009F047C038C080912802813A09F041C00A
+:100F00008091E800877F8093E800CE010F9667E02C
+:100F100070E071DB8091E8008B7713C0809128022C
+:100F2000813279F58091E800877F8093E800CE01D7
+:100F30000F9667E070E013DCCE0138D98091E800AD
+:100F40008E778093E8001DC0809128028132C9F419
+:100F50008091E800877F8093E80080912A028D8746
+:100F6000CE01C2D90DC080912802813251F4809106
+:100F7000E800877F8093E800CE0160912A02C5DEF9
+:100F8000ECDADF91CF910895A1E21A2EAA1BBB1BC8
+:100F9000FD010DC0AA1FBB1FEE1FFF1FA217B30745
+:100FA000E407F50720F0A21BB30BE40BF50B661F5B
+:100FB000771F881F991F1A9469F76095709580951F
+:100FC00090959B01AC01BD01CF010895F894FFCF2E
+:100FD0000003400000044000000208000000000080
+:060FE0000000000000000B
:00000001FF
View
50 hardware/arduino/firmwares/arduino-usbserial/Arduino-usbserial.c
@@ -43,12 +43,16 @@ RingBuff_t USBtoUSART_Buffer;
RingBuff_t USARTtoUSB_Buffer;
/** Pulse generation counters to keep track of the number of milliseconds remaining for each pulse type */
-volatile struct
+typedef struct
{
uint8_t TxLEDPulse; /**< Milliseconds remaining for data Tx LED pulse */
uint8_t RxLEDPulse; /**< Milliseconds remaining for data Rx LED pulse */
uint8_t PingPongLEDPulse; /**< Milliseconds remaining for enumeration Tx/Rx ping-pong LED pulse */
-} PulseMSRemaining;
+} PulseMS;
+
+volatile PulseMS PulseMSRemaining;
+
+volatile uint8_t DTRGuard = 0x00;
/** LUFA CDC Class driver interface configuration and state information. This structure is
* passed to all CDC Class driver functions, so that multiple instances of the same class
@@ -83,7 +87,10 @@ int main(void)
RingBuffer_InitBuffer(&USBtoUSART_Buffer);
RingBuffer_InitBuffer(&USARTtoUSB_Buffer);
-
+
+ // Size optimization (may speed up as well): Make the adresses local
+ PulseMS *PulseMSRemainingPtr = &PulseMSRemaining;
+ uint8_t *DTRGuardPtr = &DTRGuard;
sei();
for (;;)
@@ -103,10 +110,13 @@ int main(void)
if ((TIFR0 & (1 << TOV0)) || (BufferCount > BUFFER_NEARLY_FULL))
{
TIFR0 |= (1 << TOV0);
-
+
+ if (*DTRGuardPtr < 0xff)
+ (*DTRGuardPtr)++;
+
if (USARTtoUSB_Buffer.Count) {
LEDs_TurnOnLEDs(LEDMASK_TX);
- PulseMSRemaining.TxLEDPulse = TX_RX_LED_PULSE_MS;
+ PulseMSRemainingPtr->TxLEDPulse = TX_RX_LED_PULSE_MS;
}
/* Read bytes from the USART receive buffer into the USB IN endpoint */
@@ -114,20 +124,20 @@ int main(void)
CDC_Device_SendByte(&VirtualSerial_CDC_Interface, RingBuffer_Remove(&USARTtoUSB_Buffer));
/* Turn off TX LED(s) once the TX pulse period has elapsed */
- if (PulseMSRemaining.TxLEDPulse && !(--PulseMSRemaining.TxLEDPulse))
+ if (PulseMSRemainingPtr->TxLEDPulse && !(--PulseMSRemainingPtr->TxLEDPulse))
LEDs_TurnOffLEDs(LEDMASK_TX);
/* Turn off RX LED(s) once the RX pulse period has elapsed */
- if (PulseMSRemaining.RxLEDPulse && !(--PulseMSRemaining.RxLEDPulse))
+ if (PulseMSRemainingPtr->RxLEDPulse && !(--PulseMSRemainingPtr->RxLEDPulse))
LEDs_TurnOffLEDs(LEDMASK_RX);
}
/* Load the next byte from the USART transmit buffer into the USART */
if (!(RingBuffer_IsEmpty(&USBtoUSART_Buffer))) {
- Serial_TxByte(RingBuffer_Remove(&USBtoUSART_Buffer));
-
- LEDs_TurnOnLEDs(LEDMASK_RX);
- PulseMSRemaining.RxLEDPulse = TX_RX_LED_PULSE_MS;
+ Serial_TxByte(RingBuffer_Remove(&USBtoUSART_Buffer));
+
+ LEDs_TurnOnLEDs(LEDMASK_RX);
+ PulseMSRemainingPtr->RxLEDPulse = TX_RX_LED_PULSE_MS;
}
CDC_Device_USBTask(&VirtualSerial_CDC_Interface);
@@ -151,7 +161,7 @@ void SetupHardware(void)
TCCR0B = (1 << CS02);
/* Pull target /RESET line high */
- AVR_RESET_LINE_PORT |= AVR_RESET_LINE_MASK;
+ AVR_RESET_LINE_PORT &= ~AVR_RESET_LINE_MASK;
AVR_RESET_LINE_DDR |= AVR_RESET_LINE_MASK;
}
@@ -234,9 +244,15 @@ ISR(USART1_RX_vect, ISR_BLOCK)
void EVENT_CDC_Device_ControLineStateChanged(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo)
{
bool CurrentDTRState = (CDCInterfaceInfo->State.ControlLineStates.HostToDevice & CDC_CONTROL_LINE_OUT_DTR);
-
- if (CurrentDTRState)
- AVR_RESET_LINE_PORT &= ~AVR_RESET_LINE_MASK;
- else
- AVR_RESET_LINE_PORT |= AVR_RESET_LINE_MASK;
+ uint8_t *DTRGuardTemp = &DTRGuard;
+
+ if (CurrentDTRState) {
+ AVR_RESET_LINE_PORT &= ~AVR_RESET_LINE_MASK;
+ *DTRGuardTemp = 0x00;
+ }
+ else {
+ if (*DTRGuardTemp > 0x60 && *DTRGuardTemp < 0xFF)
+ AVR_RESET_LINE_PORT |= AVR_RESET_LINE_MASK;
+ }
+
}
Something went wrong with that request. Please try again.