├── .gitignore ├── README.md ├── compiled_firmwares ├── arduino_midi.hex ├── usbserial_due_16u2.hex ├── usbserial_mega_16u2.hex ├── usbserial_mega_8u2.hex ├── usbserial_uno_16u2.hex └── usbserial_uno_8u2.hex ├── example_sketches ├── midi_input │ └── midi_input.ino ├── midi_input_output │ └── midi_input_output.ino └── midi_output │ └── midi_output.ino └── src ├── README.md └── arduino_midi ├── Config └── LUFAConfig.h ├── Descriptors.c ├── Descriptors.h ├── arduino_midi.c ├── arduino_midi.h └── makefile /.gitignore: -------------------------------------------------------------------------------- 1 | *.swp 2 | *.o 3 | *.svn 4 | *.DS_STORE 5 | lufa-master -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # HIDUINO 2 | 3 | The HIDUINO project provides firmwares, documentation, and example code for building a class-compliant USB-MIDI device from an Arduino UNO or Mega 2560. HIDUINO does *not* use middleware software to convert serial messages through a MIDI loopback port (like LoopBe1 on Windows or IAC on OSX). Instead, HIDUINO provides a true USB-MIDI device for plug-and-play compatibility on Windows, OSX, and Linux - just like a commercial MIDI controller. 4 | 5 | HIDUINO takes advantage of Arduino boards where a second AVR chip is used as the USB controller, so it won't work with single chip variants (e.g. Leonardo), nor older boards that use an FTDI chip as USB controller (e.g. Duemilanove). Many cheap Arduino knockoffs that pretend to be an Uno or Mega also might not work, since they tend to use the (slighly) cheaper FTDI chips. 6 | 7 | HIDUINO is based on the [LUFA framework](https://github.com/abcminiuser/lufa-lib) by [Dean Camera](http://www.fourwalledcubicle.com/). HIDUINO was previously developed for robotic instruments and new musical interfaces @ the [California Institute of the Arts](http://mtiid.calarts.edu). 8 | 9 | The project name refers to a time when it was intended to contain many different USB-HID device types (joystick, mouse, keyboard, etc). The name "mididuino" is in use by an existing project, though it would be a more fitting title for this project. 10 | 11 | Some good examples of HIDUINO in action: 12 | 13 | [mHzKontrol](http://www.youtube.com/watch?v=f4GCczAaD8A) 14 | [NotomotoN](http://vimeo.com/33365051) 15 | [Diaktoros](https://forum.libcinder.org/topic/madewithcinder-intel-realsense-at-ces-2015) 16 | 17 | ## Requirements 18 | 19 | The full list of requirements is listed on the wiki. At a bare minimum, you'll need: 20 | 21 | * Crosspack on OSX /or/ WinAVR on Windows 22 | * Arduino IDE 1.6.7 & [Latest Arduino MIDI Library](https://github.com/FortySevenEffects/arduino_midi_library) 23 | * (Recommended) [AVRISPMKII](http://www.atmel.com/tools/AVRISPMKII.aspx) 24 | 25 | ## MIDI Library 26 | Since HIDUINO doesn't come with code for consuming or producing MIDI data in sketches themselves, a separate Arduino library must be used to encode/decode the MIDI format inbetween the HIDUINO firmware and the sketch. Notably, the standard Arduino midi library has not been updated to use the most recent "properties" file format, but details on this can be found on the [wiki](https://github.com/ddiakopoulos/hiduino/wiki/arduino_midi-library.properties). 27 | 28 | ## Quickstart 29 | 30 | The Github wiki contains a host of information on working with HIDUINO. HIDUINO can be flashed onto the ATmega (8u2/16u2) chip on the UNO and Mega2560. Sketches cannot be bootloaded onto an Arduino while a HIDUINO firmware is loaded on the 8u2, so users can expect to switch between the default usbserial and HIDUINO firmwares regularly during development. The flashing process can be accomplished using an ISP (recommended) or through the DFU bootloader. 31 | 32 | If using the ISP method, an easier way of development is to flash the USB controller chip with HIDUINO just once. Then, in the Arduino IDE, select "Upload Using Programmer" and connect the ISP to the header block near the main chip. This means the Arduino sketch can be flashed from the IDE without commandline interaction via an ISP or DFU. While HIDUINO is loaded onto the USB controller, do not attempt Serial communication via Serial.print()/println(): this will interrupt MIDI serial stream on the USB controller. 33 | 34 | Flashing the arduino_midi firmware located in the compiled_firmwares directory: 35 | *Note* Remove the slashes in a program like Notepad if you are on Windows. 36 | 37 | ```Shell 38 | avrdude -p at90usb82 -F -P usb -c avrispmkii -U flash:w:arduino_midi.hex \ 39 | -U lfuse:w:0xFF:m -U hfuse:w:0xD9:m -U efuse:w:0xF4:m -U lock:w:0x0F:m 40 | ``` 41 | 42 | The latest revisions (3+) of the Mega and UNO (and Due) use the Atmega 16u2 chip, so note the name changes of the default usbserial firmware below. On older revisions, the 8u2 chip is used. 8u2 firmwares are also included in the Compiled Firmware directory. The only important distinction between them is the product string that appears when an Arduino connects to a computer. avrdude will give a generic error if you try to flash an 8u2 chip with a 16u2 firmware and vice-versa. The at90usb82 chip profile is used for the following commands as it resembles both 16u2 and 8u2 -- one less thing to remember to change. 43 | 44 | Flashing usbserial onto an UNO using an avrispmkii: 45 | 46 | ```Shell 47 | avrdude -p at90usb82 -F -P usb -c avrispmkii -U flash:w:usbserial_uno_16u2.hex \ 48 | -U lfuse:w:0xFF:m -U hfuse:w:0xD9:m -U efuse:w:0xF4:m -U lock:w:0x0F:m 49 | ``` 50 | 51 | Flashing usbserial onto a Mega2560 using an avrispmkii: 52 | 53 | ```Shell 54 | avrdude -p at90usb82 -F -P usb -c avrispmkii -U flash:w:usbserial_mega_16u2.hex \ 55 | -U lfuse:w:0xFF:m -U hfuse:w:0xD9:m -U efuse:w:0xF4:m -U lock:w:0x0F:m 56 | ``` 57 | 58 | Flashing usbserial onto a Due using an avrispmkii: 59 | 60 | ```Shell 61 | avrdude -p at90usb82 -F -P usb -c avrispmkii -U flash:w:usbserial_due_16u2.hex \ 62 | -U lfuse:w:0xFF:m -U hfuse:w:0xD9:m -U efuse:w:0xF4:m -U lock:w:0x0F:m 63 | ``` 64 | 65 | ## A Note About Compiling 66 | Compiling the firmware from scratch lets you change the name of the USB device (default HIDUINO). 67 | 68 | ## Similar Projects 69 | * [HID](https://github.com/NicoHood/HID) - MIDI-capable HID implementation for 32u4-based-Arduino boards (Leonardo) or Uno/Mega with custom bootloader 70 | * [arcore](https://github.com/rkistner/arcore) - Similar to HID but only for USB-MIDI on Leonardo 71 | * [mocoLUFA](https://github.com/kuwatay/mocolufa) - Combined midi/usb-serial firmware 72 | 73 | ## License 74 | 75 | HIDUINO is released under the MIT license. HIDUINO inherits from the MIT license set by LUFA. A commercial license of LUFA is available for close-sourced products that do not wish to maintain MIT's attribution clause. 76 | -------------------------------------------------------------------------------- /compiled_firmwares/arduino_midi.hex: -------------------------------------------------------------------------------- 1 | :1000000096C00000AFC00000ADC00000ABC0000053 2 | :10001000A9C00000A7C00000A5C00000A3C0000048 3 | :10002000A1C000009FC000009DC0000006C50000E8 4 | :1000300099C0000097C0000095C0000093C0000068 5 | :1000400091C000008FC000008DC000008BC0000078 6 | :1000500089C0000087C0000085C000008DC100007D 7 | :1000600081C000007FC000007DC000007BC0000098 8 | :1000700079C000001A036100720064007500690015 9 | :100080006E006F005F006D00690064006900000091 10 | :100090002003680069006400750069006E006F004D 11 | :1000A0002000700072006F006A0065006300740039 12 | :1000B00000000403090409026500020100C03209BE 13 | :1000C00004000000010100000924010001090001F1 14 | :1000D000010904010002010300000724010001419D 15 | :1000E0000006240201010006240202020009240382 16 | :1000F00001030102010009240302040101010009B6 17 | :1001000005020240000500000525010101090581E5 18 | :100110000240000500000525010103120110010045 19 | :10012000000008EB03482001000102000100112437 20 | :100130001FBECFEFD2E0DEBFCDBF11E0A0E0B1E047 21 | :10014000E2E6FEE002C005900D92A030B107D9F7BB 22 | :1001500021E0A0E0B1E001C01D92AD31B207E1F7AE 23 | :10016000CAD07DC64DCF84B7877F84BF88E10FB6E4 24 | :10017000F89480936000109260000FBE8FE190E0D1 25 | :100180009093CD008093CC0086E08093CA001092BB 26 | :10019000C800E9ECF0E088E18083539A5A9A84E041 27 | :1001A00085BD108288E98083469A3E9A90E080E877 28 | :1001B0000FB6F89480936100909361000FBE8AB1EE 29 | :1001C000806F8AB98BB18F708BB928D45C985D9899 30 | :1001D00008958BB18F70806A8BB908958BB18F7041 31 | :1001E00080618BB90895CF9342E361E881E057D3F2 32 | :1001F000C82F42E360E882E052D3882321F0CC2369 33 | :1002000011F090E601C090E98BB18F70892B8BB90A 34 | :10021000CF91089580911401843041F581E080935D 35 | :10022000E9008091E80080FF21C0809108018823C7 36 | :10023000E9F01092080140E050E064E070E084E0F2 37 | :1002400091E0D6D11092040110920501109206019E 38 | :10025000109207018091E8008E778093E8005D9806 39 | :1002600088E893E190930301809302010895CF936E 40 | :10027000DF9300D000D0CDB7DEB780911401843079 41 | :1002800099F582E08093E9008091E80082FF2CC01C 42 | :1002900040E050E064E070E0CE010196F1D18A8147 43 | :1002A0009091C80095FFFCCF8093CE008B819091F8 44 | :1002B000C80095FFFCCF8093CE008C819091C80040 45 | :1002C00095FFFCCF8093CE005C9888E893E19093F3 46 | :1002D0000101809300018091F200811105C080919D 47 | :1002E000E8008B778093E8000F900F900F900F90AD 48 | :1002F000DF91CF91089537DF78947894809102014F 49 | :1003000090910301009731F001979093030180933E 50 | :10031000020101C05D9A8091000190910101009756 51 | :1003200031F00197909301018093000101C05C9A24 52 | :100330009EDF70DF78D5E2CF87FF0CC09CE0980F7E 53 | :10034000923040F0982F9B7F993F21F0803F18F426 54 | :10035000807F089580E00895982F9F7E282F2F7C1E 55 | :10036000203839F0803E29F081E0903C19F080E09F 56 | :1003700001C081E0817008951F920F920FB60F9215 57 | :1003800011242F933F934F935F936F937F938F939A 58 | :100390009F93AF93BF93CF93DF93EF93FF9380919E 59 | :1003A0001401843009F0DFC0C091CE0040910B01F0 60 | :1003B000411178C0C0930D01D0910A018D2FBCDF8F 61 | :1003C000CBDF882349F0C7FD07C0D0930D01C09350 62 | :1003D0000E0181E080930B01C0910D018C2FACDFE9 63 | :1003E000813F91F188F4803B89F138F4803971F1D3 64 | :1003F000803A61F1803869F529C0803D29F1803E5D 65 | :1004000029F1803C31F520C0883F69F030F4833F0A 66 | :10041000D9F0E0F0863F39F01CC08A3FD0F08D3F24 67 | :1004200010F08E3FB0F08FE080930401C09305017F 68 | :10043000109206011092070181E08093080110924A 69 | :100440000B01109209018FC092E001C093E09093DC 70 | :10045000090190910B0160910901492F50E0262F6D 71 | :1004600030E02150310942175307C4F082958F7054 72 | :1004700080930401C093050180910E0180930601D1 73 | :10048000633029F480910F018093070102C010921C 74 | :10049000070110920B01109209011BC09F5F9093FE 75 | :1004A0000B0161C0C7FF19C0CD3F28F4CA3F28F433 76 | :1004B000C83F99F402C0CE3F80F08C2F3DDF82957B 77 | :1004C0008F7080930401C093050110920601109271 78 | :1004D000070181E08093080146C0242F30E0F90134 79 | :1004E000E35FFE4FC083D09109018D2F90E001970B 80 | :1004F00028173907ACF1C0910D018C2F1DDF982F03 81 | :1005000092959F7090930401C093050190910E0104 82 | :1005100090930601D33029F490910F019093070135 83 | :1005200002C01092070110920B011092090191E094 84 | :1005300090930801803B71F038F4803959F0803A8B 85 | :1005400049F0803851F406C0803D21F0803E11F022 86 | :10055000803C19F4C0930A0106C010920A0103C03E 87 | :100560004F5F40930B01FF91EF91DF91CF91BF91CE 88 | :10057000AF919F918F917F916F915F914F913F913B 89 | :100580002F910F900FBE0F901F901895292F332792 90 | :100590002230310559F02330310569F02130310521 91 | :1005A000F9F482E190E02BE131E01EC085E690E0B5 92 | :1005B00026EB30E019C099278130910541F0823057 93 | :1005C000910541F0892B61F4E2EBF0E005C0E0E930 94 | :1005D000F0E002C0E4E7F0E0849190E09F0104C005 95 | :1005E00080E090E020E030E0FA013183208308953C 96 | :1005F000CF92DF92EF92FF920F931F93CF93DF93EF 97 | :100600007C018B01EA01A1D1811131C0209731F029 98 | :1006100088819981081B190BE80EF91EC12CD12C79 99 | :100620000115110519F18091E80085FD14C0809134 100 | :10063000E8008E778093E800F6D3209741F0888118 101 | :1006400099818C0D9D1D9983888385E010C07DD193 102 | :10065000882331F30CC0F70181917F018093F10071 103 | :1006600001501109FFEFCF1ADF0ADACF80E0DF91E6 104 | :10067000CF911F910F91FF90EF90DF90CF90089551 105 | :10068000CF92DF92EF92FF920F931F93CF93DF935E 106 | :100690007C018B01EA0159D1811131C0209731F0E1 107 | :1006A00088819981081B190BE80EF91EC12CD12CE9 108 | :1006B0000115110519F18091E80085FD14C08091A4 109 | :1006C000E8008B778093E800AED3209741F08881D3 110 | :1006D00099818C0D9D1D9983888385E010C035D14B 111 | :1006E000882331F30CC08091F100F70181937F01E1 112 | :1006F00001501109FFEFCF1ADF0ADACF80E0DF9156 113 | :10070000CF911F910F91FF90EF90DF90CF900895C0 114 | :1007100020911B0130911C012617370748F0611505 115 | :10072000710539F42091E8002E772093E80001C08C 116 | :10073000B90120E061157105D1F130911401332325 117 | :1007400009F443C0353009F442C03091E80033FD6C 118 | :1007500040C03091E80032FF06C08091E80082FF7F 119 | :1007600029C080E008953091E80030FFE3CF209168 120 | :10077000F20030E0FC01281B390BCF01820F931FE0 121 | :100780006115710549F08830910530F481918093AD 122 | :10079000F10061507109F1CF21E0089709F020E0E4 123 | :1007A0008091E8008E778093E800CF01C3CF2111BC 124 | :1007B000C4CFD3CF80911401882339F0853039F02C 125 | :1007C0008091E80083FFC9CF04C082E0089583E0F0 126 | :1007D000089581E0089520911B0130911C01261796 127 | :1007E000370748F06115710539F42091E8002E773C 128 | :1007F0002093E80001C0B90120E061157105D9F12D 129 | :1008000030911401332309F444C0353009F443C056 130 | :100810003091E80033FD41C03091E80032FF06C05E 131 | :100820008091E80082FF2AC080E008953091E800BE 132 | :1008300030FFE3CF2091F20030E0FC01281B390BA0 133 | :10084000C9018E0F9F1F6115710551F08830910508 134 | :1008500038F484918093F100319661507109F0CFA2 135 | :1008600021E0089709F020E08091E8008E778093DE 136 | :10087000E800CF01C2CF2111C3CFD2CF80911401A4 137 | :10088000882339F0853039F08091E80083FFC8CFA4 138 | :1008900004C082E0089583E0089581E00895982FD0 139 | :1008A000953058F59093E900981739F07091EC0065 140 | :1008B0002091ED005091F00003C0242F762F50E0DE 141 | :1008C00021FF19C03091EB003E7F3093EB00309157 142 | :1008D000ED003D7F3093ED003091EB0031603093BF 143 | :1008E000EB007093EC002093ED005093F00020910A 144 | :1008F000EE0027FF07C09F5FD3CF8F708093E90082 145 | :1009000081E0089580E008958091150187FD05C07C 146 | :100910008091E80080FF0EC012C08091E80082FD47 147 | :1009200005C0809114018111F8CF08958091E800ED 148 | :100930008B7708C0809114018111EACF08958091CE 149 | :10094000E8008E778093E80008958091E40090910C 150 | :10095000E50045E62091EC0020FF21C02091E80051 151 | :1009600020FD21C020911401222389F0253089F037 152 | :100970002091EB0025FD0FC02091E4003091E500AF 153 | :100980002817390739F3415041F0C901E3CF82E01C 154 | :10099000089583E0089581E0089584E0089520910A 155 | :1009A000E80022FFDFCF80E0089541D043D080915E 156 | :1009B000D8008F778093D8008091D800806880938A 157 | :1009C000D8008091D8008F7D8093D80084E089BDC5 158 | :1009D00086E089BD09B400FEFDCF1092140110928B 159 | :1009E0001001109212011092110142E060E080E0CB 160 | :1009F00056DF8091E1008E7F8093E1008091E200DC 161 | :100A000081608093E2008091E20088608093E20040 162 | :100A10008091E0008E7F8093E0000895E3E6F0E0AF 163 | :100A200080818E7F808381E080931301BECF1092FE 164 | :100A3000E20008951092E10008951F920F920FB600 165 | :100A40000F9211242F933F934F935F936F937F9354 166 | :100A50008F939F93AF93BF93EF93FF938091E100A8 167 | :100A600082FF0AC08091E20082FF06C08091E1000F 168 | :100A70008B7F8093E100D6D18091E10080FF17C089 169 | :100A80008091E20080FF13C08091E2008E7F80930E 170 | :100A9000E2008091E20080618093E2008091D800C2 171 | :100AA00080628093D80019BC1092140197DB80916A 172 | :100AB000E10084FF2FC08091E20084FF2BC084E01E 173 | :100AC00089BD86E089BD09B400FEFDCF8091D800C4 174 | :100AD0008F7D8093D8008091E1008F7E8093E1002C 175 | :100AE0008091E2008F7E8093E2008091E20081603D 176 | :100AF0008093E20080911001882311F084E007C008 177 | :100B00008091E30087FF02C083E001C081E0809311 178 | :100B100014015FDB8091E10083FF22C08091E2003D 179 | :100B200083FF1EC08091E100877F8093E10082E017 180 | :100B300080931401109210018091E1008E7F8093C8 181 | :100B4000E1008091E2008E7F8093E2008091E200DC 182 | :100B500080618093E20042E060E080E0A0DE62D14C 183 | :100B6000FF91EF91BF91AF919F918F917F916F9185 184 | :100B70005F914F913F912F910F900FBE0F901F905B 185 | :100B800018951F93CF93DF93CDB7DEB7AA970FB613 186 | :100B9000F894DEBF0FBECDBFE5E1F1E08091F1003A 187 | :100BA000819321E0ED31F207C9F73CD18091E80053 188 | :100BB00083FF20C19091150180911601853009F4C1 189 | :100BC00077C030F4813081F168F0833069F112C16F 190 | :100BD000883009F4E1C0893009F4F0C0863009F0AA 191 | :100BE00009C188C0903881F0923809F003C1809122 192 | :100BF00019018F708093E9008091EB0085FB8827B5 193 | :100C000080F91092E90006C08091110190911201C3 194 | :100C1000911182609091E800977F9093E800809313 195 | :100C2000F1001092F100C3C0292F2D7F09F0E2C01E 196 | :100C3000992319F0923061F0DDC090911701913045 197 | :100C400009F0D8C0833009F090E0909312012AC0D7 198 | :100C500090911701911126C0209119012F7009F46C 199 | :100C6000C9C02093E9009091EB0090FF1BC0833036 200 | :100C700021F48091EB00806213C08091EB008061D1 201 | :100C80008093EB0081E090E0022E01C0880F0A946F 202 | :100C9000EAF78093EA001092EA008091EB00886006 203 | :100CA0008093EB001092E9008091E800877F82C07A 204 | :100CB0009111A0C0109117011F778091E3008078F7 205 | :100CC000812B8093E3008091E800877F8093E80088 206 | :100CD0001BDE8091E80080FFFCCF8091E3008068FC 207 | :100CE0008093E300112311F083E001C082E0809340 208 | :100CF000140180C09058923008F07CC08091170198 209 | :100D0000909118018C3D23E0920771F583E08A836E 210 | :100D10008AE289834FB7F894DE01139620E03EE023 211 | :100D200051E2E32FF0E050935700E49120FF03C01D 212 | :100D3000E295EF703F5FEF708E2F90E0EA3010F099 213 | :100D4000C79601C0C0968D939D932F5F243149F7BC 214 | :100D50004FBF8091E800877F8093E8006AE270E0EF 215 | :100D6000CE010196D5DC12C0AE014F5F5F4F60919E 216 | :100D700019010CDC009709F43DC02091E800277FA1 217 | :100D80002093E800BC0189819A8125DD8091E800EB 218 | :100D90008B778093E8002EC0903861F58091E80051 219 | :100DA000877F8093E800809110018093F10080910B 220 | :100DB000E8008E778093E800A7DD1CC091111AC06F 221 | :100DC000909117019230B0F48091E800877F809372 222 | :100DD000E8009093100198DD80911001811104C00A 223 | :100DE0008091E30087FF02C084E001C081E080932E 224 | :100DF0001401F9D98091E80083FF0AC08091E800CE 225 | :100E0000877F8093E8008091EB0080628093EB0005 226 | :100E1000AA960FB6F894DEBF0FBECDBFDF91CF917B 227 | :100E20001F9108950895CF93809114018823A9F00C 228 | :100E30008091E9008F709091EC0090FF02C090E8E3 229 | :100E400001C090E0C92FC82B1092E9008091E80002 230 | :100E500083FD97DECF70C093E900CF910895F89499 231 | :020E6000FFCFC2 232 | :00000001FF 233 | -------------------------------------------------------------------------------- /compiled_firmwares/usbserial_due_16u2.hex: -------------------------------------------------------------------------------- 1 | :10000000A7C00000C0C00000BEC00000BCC000000F 2 | :10001000BAC00000B8C00000B6C00000B4C0000004 3 | :10002000B2C00000B0C00000AEC00000CBC40000F1 4 | :100030008FC40000A8C00000A6C00000A4C000003B 5 | :10004000A2C00000A0C000009EC000009CC0000034 6 | :100050009AC0000098C0000096C0000021C10000B6 7 | :1000600092C0000090C000008EC000008CC0000054 8 | :100070008AC0000088C0000086C0000084C0000064 9 | :1000800082C0000080C000007EC000007CC0000074 10 | :100090007AC0000078C000001201100102000008C0 11 | :1000A00041233D0001000102DC0109023E00020182 12 | :1000B00000C0320904000001020201000524000111 13 | :1000C0001004240206052406000107058203080027 14 | :1000D000FF09040100020A000000070504024000B5 15 | :1000E00001070583024000010403090432034100B3 16 | :1000F00072006400750069006E006F002000280027 17 | :100100007700770077002E006100720064007500B0 18 | :1001100069006E006F002E0063006300290000007C 19 | :100120002E03410072006400750069006E006F00CC 20 | :1001300020004400750065002000500072006F0030 21 | :1001400067002E00200050006F0072007400000055 22 | :1001500011241FBECFEFD2E0DEBFCDBF11E0A0E083 23 | :10016000B1E0E8EEF0E102C005900D92A831B107D0 24 | :10017000D9F712E0A8E1B1E001C01D92A833B107A0 25 | :10018000E1F722D1AFC73CCF9C01DC01AE57BF4F96 26 | :10019000ED91FC91119741911196FC93EE9380584B 27 | :1001A0009F4FE817F90711F42D933C939FB7F894EC 28 | :1001B000F901EC57FF4F8081815080839FBF842FCE 29 | :1001C0000895882311F03F9A01C03F9847980895F9 30 | :1001D000882311F046980895469A0895DF92EF9289 31 | :1001E000FF920F931F93FC018489813019F08230B4 32 | :1001F00019F404C010E303C010E001C010E28389C9 33 | :10020000823009F418608589873031F0883031F008 34 | :10021000863029F4126003C0146001C01660109289 35 | :10022000C9001092C8001092CA000785F088E188C2 36 | :10023000D288202F3F2D4E2D5D2D10921E01203B88 37 | :1002400084E0380780E0480780E0580719F481E02F 38 | :1002500080931E01CA01B90122E030E040E050E085 39 | :1002600026D720583B47414E5F4FCA01B901202F86 40 | :100270003F2D4E2D5D2DF9D6215030403093CD00CD 41 | :100280002093CC001093CA0082E08093C80088E9D4 42 | :100290008093C9001F910F91FF90EF90DF90089518 43 | :1002A0001F920F920FB60F9211242F938F939F934B 44 | :1002B000EF93FF939091CE008EB38430F1F4E091F0 45 | :1002C000A201F091A3019083E091A201F091A3011A 46 | :1002D000CF0101969093A3018093A201825A91408D 47 | :1002E00021F482E291E0928381839FB7F894809118 48 | :1002F000A6018F5F8093A6019FBFFF91EF919F9111 49 | :100300008F912F910F900FBE0F901F901895FC01A9 50 | :1003100040911A0140931B0180911C0180931D01A3 51 | :100320008585282F30E02170307020931A01858553 52 | :1003300090E096958795817080931C0180911E01B5 53 | :10034000882339F08FE590E090931901809318018C 54 | :100350000895442341F4222331F08EE190E09093FC 55 | :10036000190180931801089580E091E014C680E09F 56 | :1003700091E0C7C51F9384B7877F84BF18E10FB68C 57 | :10038000F89410936000109260000FBE80E019DFB7 58 | :10039000469A3E9A87E690E09093CD008093CC00F9 59 | :1003A00086E08093CA001092C8001093C900539A47 60 | :1003B0005A9A8AB180638AB98BB180638BB9BDD2F6 61 | :1003C00084E085BD1F9108950F931F93CF93DF9312 62 | :1003D000D1DF2FB7F89487EA91E0909328028093B9 63 | :1003E000270290932A02809329022FBF2FB7F894F7 64 | :1003F00082E291E09093A3018093A2019093A501E2 65 | :100400008093A4012FBF7894C7EAD1E003E08FB7AF 66 | :10041000F89490912B028FBF903809F180E091E021 67 | :10042000E6D497FD1CC0E0912702F091280280835A 68 | :10043000E0912702F0912802CF01019690932802C3 69 | :10044000809327028752924011F4D283C1839FB7D1 70 | :10045000F89480912B028F5F80932B029FBF8FB700 71 | :10046000F8941091A6018FBFA89903C0113608F423 72 | :1004700069C0A89A8091A601882361F05D980093D5 73 | :100480001F0108C082E291E07FDE682F80E091E0EA 74 | :1004900014D511501123B1F780911F01882351F019 75 | :1004A00080911F01815080931F0180911F0188233B 76 | :1004B00009F45D9A80912001882351F080912001F8 77 | :1004C00081508093200180912001882309F45C9A57 78 | :1004D0008091180190911901181619067CF58F3535 79 | :1004E000910521F481E074DE80E06BDE80911801DB 80 | :1004F00090911901839721F480E06ADE80E061DE4B 81 | :100500008091180190911901499721F480E060DEF3 82 | :1005100081E057DE8091180190911901019721F433 83 | :1005200080E056DE80E04DDE809118019091190147 84 | :100530000197909319018093180104C080E048DE70 85 | :1005400080E03FDE8FB7F89490912B028FBF992304 86 | :1005500069F087EA91E018DE982F8091C80085FF46 87 | :10056000FCCF9093CE005C980093200180E091E056 88 | :1005700095D42AD44CCFDA01923049F0933061F00F 89 | :100580009130F9F4E8E9F0E022E130E01EC0EAEA57 90 | :10059000F0E02EE330E019C0813049F0813018F0EE 91 | :1005A000823079F408C0E8EEF0E0849107C0ECEE08 92 | :1005B000F0E0849103C0E0E2F1E08491282F30E084 93 | :1005C00004C0E0E0F0E020E030E0ED93FC93C901EE 94 | :1005D000089528E030E040E003C04F5F220F331F52 95 | :1005E00028173907D0F3842F8295807F0895809350 96 | :1005F000E9008091EB0081608093EB001092ED00A8 97 | :100600006093EC004093ED008091EE00881F8827F6 98 | :10061000881F08951092F40090E09093E9001092E2 99 | :10062000F0001092E8001092ED008091EB008E7FB8 100 | :100630008093EB009F5F953081F7089580913002A1 101 | :1006400088238CF403C08EB38823B1F08091E80036 102 | :1006500082FFF9CF8091E8008B778093E8000895BE 103 | :100660008EB3882349F08091E80080FFF9CF809114 104 | :10067000E8008E778093E800089594E68091EC007E 105 | :1006800080FF05C08091E80080FF05C023C08091F5 106 | :10069000E80082FD1FC08EB3882311F482E0089524 107 | :1006A0008EB3853011F483E008958091EB0085FFCF 108 | :1006B00002C081E008958091E10082FFDFCF809148 109 | :1006C000E1008B7F8093E100992311F484E0089589 110 | :1006D0009150D4CF80E008959C0140913602509112 111 | :1006E00037024617570718F4F90120E038C06115A2 112 | :1006F000710511F0AB01F8CF8091E8008E778093FF 113 | :10070000E80040E050E0F0CF8091E80083FF02C0B5 114 | :1007100081E008958091E80082FD2DC08EB388238A 115 | :1007200081F18EB3853079F18091E80080FF17C0A8 116 | :100730009091F20006C081918093F10041505040A9 117 | :100740009F5F4115510511F09830A8F320E09830D3 118 | :1007500009F421E08091E8008E778093E80041154C 119 | :10076000510591F6222381F606C08EB3882349F005 120 | :100770008EB3853041F08091E80082FFF6CF80E0B3 121 | :10078000089582E0089583E008959C014091360227 122 | :10079000509137024617570710F490E03BC061159F 123 | :1007A000710511F0AB01F9CF8091E8008E7780934D 124 | :1007B000E80040E050E0F1CF8091E80083FF02C004 125 | :1007C00081E008958091E80082FD30C08EB38823D7 126 | :1007D00099F18EB3853091F18091E80080FF1AC0C5 127 | :1007E0008091F20009C0F9012F5F3F4FE491E0933F 128 | :1007F000F100415050408F5F4115510511F0883094 129 | :1008000090F390E0883009F491E08091E8008E77D1 130 | :100810008093E8004115510579F6992369F606C0E1 131 | :100820008EB3882349F08EB3853041F08091E80083 132 | :1008300082FFF6CF80E0089582E0089583E0089576 133 | :100840009C016115710529F48091E8008B778093F4 134 | :10085000E800F90120C08091E80083FF02C081E038 135 | :1008600008958EB3882339F18EB3853031F18091AC 136 | :10087000E80082FFF0CF06C08091F10081936150C3 137 | :10088000704021F08091F2008823B1F78091E80058 138 | :100890008B778093E80061157105E9F606C08EB389 139 | :1008A000882349F08EB3853041F08091E80080FFC5 140 | :1008B000F6CF80E0089582E0089583E0089542D065 141 | :1008C00044D01EBA10922E0210922D0210922C02C9 142 | :1008D00084E089BD89B5826089BD09B400FEFDCF81 143 | :1008E0008091D800982F9F779093D800806880934C 144 | :1008F000D800809163008E7F809363008091D80040 145 | :100900008F7D8093D8008091E0008E7F8093E000FF 146 | :100910008091E1008E7F8093E1008091E200816010 147 | :100920008093E2008091E100877F8093E1008091D5 148 | :10093000E20088608093E2000895C1DF81E0809347 149 | :100940002F0208951092E20008951092E100089598 150 | :100950001F920F920FB60F9211241F932F933F9364 151 | :100960004F935F936F937F938F939F93AF93BF93B7 152 | :10097000EF93FF93E9EEF0E0108117701082E0EF43 153 | :10098000F0E08081877F80837894C3D0F894A9EECB 154 | :10099000B0E01C92E0EFF0E08081886080831C93DF 155 | :1009A000FF91EF91BF91AF919F918F917F916F9147 156 | :1009B0005F914F913F912F911F910F900FBE0F901C 157 | :1009C0001F9018951F920F920FB60F9211242F931C 158 | :1009D0003F934F935F936F937F938F939F93AF93C7 159 | :1009E000BF93EF93FF938091E10080FF1BC0809144 160 | :1009F000E20080FF17C08091E1008E7F8093E100CC 161 | :100A00008091E2008E7F8093E2008091E20080611D 162 | :100A10008093E2008091D80080628093D80019BC56 163 | :100A20001EBAD1D18091E10084FF29C08091E200FB 164 | :100A300084FF25C084E089BD89B5826089BD09B481 165 | :100A400000FEFDCF8091D8008F7D8093D8008091EB 166 | :100A5000E1008F7E8093E1008091E2008F7E8093A1 167 | :100A6000E2008091E20081608093E20080912E029A 168 | :100A7000882311F481E001C084E08EBBA4D1809171 169 | :100A8000E10083FF27C08091E20083FF23C08091B3 170 | :100A9000E100877F8093E10082E08EBB10922E02FE 171 | :100AA0008091E1008E7F8093E1008091E2008E7F53 172 | :100AB0008093E2008091E20080618093E200AADDF1 173 | :100AC00080E060E042E093DD8091F00088608093F8 174 | :100AD000F00079D18091E10082FF0AC08091E200AC 175 | :100AE00082FF06C08091E1008B7F8093E1006BD193 176 | :100AF000FF91EF91BF91AF919F918F917F916F91F6 177 | :100B00005F914F913F912F910F900FBE0F901F90CB 178 | :100B100018951F93DF93CF93CDB7DEB7AC970FB681 179 | :100B2000F894DEBF0FBECDBFE0E3F2E08091F100AC 180 | :100B3000819322E0E833F207C9F7809130023091C7 181 | :100B40003102353009F487C0363040F43130C9F114 182 | :100B5000313070F0333009F01DC133C0383009F442 183 | :100B6000EFC0393009F4FEC0363009F013C192C02D 184 | :100B7000803821F0823809F00DC108C090912C0214 185 | :100B800080912D02882399F0926011C080913402E7 186 | :100B900087708093E9008091EB0090E025E09695C6 187 | :100BA00087952A95E1F7982F91701092E90080912E 188 | :100BB000E800877F8093E8009093F1001092F100A5 189 | :100BC000CAC0882319F0823009F0E4C090E08F7128 190 | :100BD0009070009721F0029709F0DDC00CC0809161 191 | :100BE0003202813009F0D7C010922D02333069F5FE 192 | :100BF00080932D022AC080913202882331F5209102 193 | :100C00003402277009F4C7C02093E9008091EB00FB 194 | :100C100080FFC1C0333021F48091EB00806213C0AB 195 | :100C20008091EB0080618093EB0081E090E002C056 196 | :100C3000880F991F2A95E2F78093EA001092EA0044 197 | :100C40008091EB0088608093EB001092E900809126 198 | :100C5000E800877F83C0882309F09CC0109132028E 199 | :100C60008091E800877F8093E800E8DC04C08EB3C1 200 | :100C7000882309F490C08091E80080FFF8CF812F8D 201 | :100C80008F7711F492E001C093E09EBB806880935F 202 | :100C9000E30081C08058823008F07CC0809132022D 203 | :100CA0009091330223E08C3D920799F55FB7F89459 204 | :100CB000DE0115964EE020E030E061E2E42FF0E046 205 | :100CC00060935700849120FF03C082958F704F5F1F 206 | :100CD000982F9F70892F805D8A3308F0895F8C93ED 207 | :100CE00011961C9211972F5F3F4F129624313105B8 208 | :100CF00029F75FBF8AE28B8383E08C838091E800D1 209 | :100D0000877F8093E800CE0103966AE270E0E4DC1E 210 | :100D100011C060913402AE014F5F5F4F2CDCBC010B 211 | :100D20000097C9F18091E800877F8093E80089816E 212 | :100D30009A812BDD8091E8008B778093E8002BC0AF 213 | :100D4000803841F58091E800877F8093E8008091AA 214 | :100D50002E028093F1008091E8008E778093E80066 215 | :100D60006DDC19C08823B1F490913202923098F46E 216 | :100D70008091E800877F8093E80090932E025EDCEC 217 | :100D800080912E02882311F483E001C084E08EBBA1 218 | :100D9000EEDA01C0E9DA8091E80083FF0AC08091B1 219 | :100DA000EB0080628093EB008091E800877F809366 220 | :100DB000E800AC960FB6F894DEBF0FBECDBFCF9162 221 | :100DC000DF911F91089508951F938EB3882361F0DA 222 | :100DD0001091E9001092E9008091E80083FF01C0C2 223 | :100DE00098DE17701093E9001F9108950895FC0193 224 | :100DF0008EB3843021F587859089A189B2890097C7 225 | :100E0000A105B105E1F085818093E9008091E800BA 226 | :100E100082FF15C08091F200882319F42FEF3FEF75 227 | :100E200004C08091F100282F30E08091F2008823E7 228 | :100E300041F48091E8008B778093E80002C02FEFA7 229 | :100E40003FEFC9010895FC018EB3843011F5878509 230 | :100E50009089A189B2890097A105B105D1F081815E 231 | :100E60008093E9008091F2008823A9F09091E80036 232 | :100E70008091E8008E778093E80095FD0CC0FDDB43 233 | :100E8000982F882349F48091E8008E778093E800BA 234 | :100E900003C092E001C090E0892F0895FC018EB359 235 | :100EA000843051F487859089A189B2890097A10582 236 | :100EB000B10511F0CF01C7CF08951F93FC01162F84 237 | :100EC0008EB38430D9F487859089A189B28900973F 238 | :100ED000A105B10599F081818093E9008091E80036 239 | :100EE00085FD08C08091E8008E778093E800C5DB1F 240 | :100EF000882329F41093F10080E001C082E01F9163 241 | :100F000008950F931F93CF93DF93EC010D96FC018F 242 | :100F100089E0DF011D928A95E9F72A813B810981E9 243 | :100F20008C81882311F410E001C014E0C90151DB69 244 | :100F3000182B1260802F61E8412F59DB882329F19B 245 | :100F40002E813F810D818885882311F410E001C036 246 | :100F500014E0C9013EDB182B1260802F60E8412F9E 247 | :100F600046DB882391F02A853B8509858C8588237B 248 | :100F700011F410E001C014E0C9012BDB182B126042 249 | :100F8000802F61EC412F33DB01C080E0DF91CF91F6 250 | :100F90001F910F910895CF93DF93EC018091E800AA 251 | :100FA00083FF60C0888190E0209134023091350247 252 | :100FB0002817390709F056C080913102813261F05B 253 | :100FC000823220F4803209F04DC019C0823269F1BA 254 | :100FD000833209F047C038C080913002813A09F06D 255 | :100FE00041C08091E800877F8093E800CE010F9692 256 | :100FF00067E070E071DB8091E8008B7713C080912F 257 | :101000003002813279F58091E800877F8093E80093 258 | :10101000CE010F9667E070E013DCCE01DFD880913F 259 | :10102000E8008E778093E8001DC080913002813205 260 | :10103000C9F48091E800877F8093E80080913202B4 261 | :101040008D87CE0164D90DC080913002813251F478 262 | :101050008091E800877F8093E800CE0160913202A2 263 | :10106000C5DEECDADF91CF910895A1E21A2EAA1B1A 264 | :10107000BB1BFD010DC0AA1FBB1FEE1FFF1FA21748 265 | :10108000B307E407F50720F0A21BB30BE40BF50B45 266 | :10109000661F771F881F991F1A9469F760957095CE 267 | :1010A000809590959B01AC01BD01CF01089597FB00 268 | :1010B000092E05260ED057FD04D0D7DF0AD0001C1C 269 | :1010C00038F450954095309521953F4F4F4F5F4FE5 270 | :1010D0000895F6F790958095709561957F4F8F4FA5 271 | :0810E0009F4F0895F894FFCF23 272 | :1010E8000003400000044000000208000000000067 273 | :0810F8000000000000001400DC 274 | :00000001FF 275 | -------------------------------------------------------------------------------- /compiled_firmwares/usbserial_mega_16u2.hex: -------------------------------------------------------------------------------- 1 | :1000000090C00000A9C00000A7C00000A5C000006B 2 | :10001000A3C00000A1C000009FC000009DC0000060 3 | :100020009BC0000099C0000097C0000048C40000B9 4 | :100030000CC4000091C000008FC000008DC0000003 5 | :100040008BC0000089C0000087C0000085C0000090 6 | :1000500083C0000081C000007FC0000002C100001A 7 | :100060007BC0000079C0000077C0000075C00000B0 8 | :1000700073C0000071C000006FC000006DC00000C0 9 | :100080006BC0000069C0000067C0000065C00000D0 10 | :1000900063C0000061C000001201100102000008EE 11 | :1000A0004123420001000102DC0109023E0002017D 12 | :1000B00000C0320904000001020201000524000111 13 | :1000C0001004240206052406000107058203080027 14 | :1000D000FF09040100020A000000070504024000B5 15 | :1000E00001070583024000010403090432034100B3 16 | :1000F00072006400750069006E006F002000280027 17 | :100100007700770077002E006100720064007500B0 18 | :1001100069006E006F002E0063006300290000007C 19 | :10012000000011241FBECFEFD2E0DEBFCDBF11E033 20 | :10013000A0E0B1E0ECEAFFE002C005900D92A6312C 21 | :10014000B107D9F712E0A6E1B1E001C01D92AF32CC 22 | :10015000B107E1F7F1D028C753CF9C01DC01AE57BE 23 | :10016000BF4FED91FC91119741911196FC93EE9345 24 | :1001700080589F4FE817F90711F42D933C939FB7D0 25 | :10018000F894F901EC57FF4F8081815080839FBF25 26 | :10019000842F0895DF92EF92FF920F931F93FC013B 27 | :1001A0008489813019F0823021F405C040E3D42ED7 28 | :1001B00004C0DD2402C030E2D32E8389823011F4E2 29 | :1001C00088E0D82A8589873031F0883031F0863050 30 | :1001D00031F482E003C084E001C086E0D82A1092A6 31 | :1001E000C9001092C8001092CA00E784F088018903 32 | :1001F000128980E0E81681EEF80680E0080780E0CA 33 | :10020000180719F420E130E00FC0C801B701969536 34 | :1002100087957795679560587B47814E9F4FA801DA 35 | :100220009701A0D6215030403093CD002093CC00D0 36 | :10023000D092CA0080E0E81681EEF80680E0080758 37 | :1002400080E0180711F082E001C080E08093C800D0 38 | :1002500088E98093C9001F910F91FF90EF90DF9084 39 | :1002600008951F920F920FB60F9211242F938F9320 40 | :100270009F93EF93FF939091CE008EB38430F1F46F 41 | :10028000E0919901F0919A019083E0919901F091A8 42 | :100290009A01CF01019690939A018093990189590F 43 | :1002A000914021F489E191E0928381839FB7F89492 44 | :1002B00080919D018F5F80939D019FBFFF91EF9182 45 | :1002C0009F918F912F910F900FBE0F901F901895B7 46 | :1002D000FC01858580FF02C05F9808955F9A0895AC 47 | :1002E00080E091E0D5C580E091E088C584B7877F44 48 | :1002F00084BF28E10FB6F89420936000109260004C 49 | :100300000FBE87E690E09093CD008093CC0086E00E 50 | :100310008093CA001092C8002093C900539A5A9A39 51 | :100320008AB180638AB98BB180638BB983D284E050 52 | :1003300085BD5F9A579A08950F931F93CF93DF93CC 53 | :10034000D5DF2FB7F8948EE991E090931F02809348 54 | :100350001E0290932102809320022FBF2FB7F894A2 55 | :1003600089E191E090939A018093990190939C0187 56 | :1003700080939B012FBF7894CEE9D1E003E08FB743 57 | :10038000F894909122028FBF903809F180E091E0BB 58 | :10039000ABD497FD1CC0E0911E02F0911F02808338 59 | :1003A000E0911E02F0911F02CF01019690931F026F 60 | :1003B00080931E028E51924011F4D283C1839FB765 61 | :1003C000F894809122028F5F809322029FBF8FB7A3 62 | :1003D000F89410919D018FBFA89902C0113678F151 63 | :1003E000A89A80919D01882361F05D980093160181 64 | :1003F00008C089E191E0B1DE682F80E091E0DAD4B5 65 | :1004000011501123B1F780911601882351F080918A 66 | :10041000160181508093160180911601882309F4FA 67 | :100420005D9A80911701882351F0809117018150C6 68 | :100430008093170180911701882309F45C9A8FB784 69 | :10044000F894909122028FBF992369F08EE991E090 70 | :1004500084DE982F8091C80085FFFCCF9093CE005A 71 | :100460005C980093170180E091E095D42AD487CF5F 72 | :10047000DA01923049F0933061F09130F9F4E8E913 73 | :10048000F0E022E130E01EC0EAEAF0E02EE330E0E6 74 | :1004900019C0813049F0813018F0823079F408C0F9 75 | :1004A000E8EEF0E0849107C0ECEEF0E0849103C048 76 | :1004B000E0E2F1E08491282F30E004C0E0E0F0E0D9 77 | :1004C00020E030E0ED93FC93C901089528E030E08E 78 | :1004D00040E003C04F5F220F331F28173907D0F3C6 79 | :1004E000842F8295807F08958093E9008091EB00AE 80 | :1004F00081608093EB001092ED006093EC004093DC 81 | :10050000ED008091EE00881F8827881F08951092C3 82 | :10051000F40090E09093E9001092F0001092E8004F 83 | :100520001092ED008091EB008E7F8093EB009F5F37 84 | :10053000953081F708958091270288238CF403C0B9 85 | :100540008EB38823B1F08091E80082FFF9CF8091CB 86 | :10055000E8008B778093E80008958EB3882349F0F4 87 | :100560008091E80080FFF9CF8091E8008E7780933A 88 | :10057000E800089594E68091EC0080FF05C080912A 89 | :10058000E80080FF05C023C08091E80082FD1FC005 90 | :100590008EB3882311F482E008958EB3853011F470 91 | :1005A00083E008958091EB0085FF02C081E008950B 92 | :1005B0008091E10082FFDFCF8091E1008B7F80930B 93 | :1005C000E100992311F484E008959150D4CF80E0A4 94 | :1005D00008959C0140912D0250912E024617570715 95 | :1005E00018F4F90120E038C06115710511F0AB0174 96 | :1005F000F8CF8091E8008E778093E80040E050E0EB 97 | :10060000F0CF8091E80083FF02C081E008958091DF 98 | :10061000E80082FD2DC08EB3882381F18EB3853032 99 | :1006200079F18091E80080FF17C09091F20006C038 100 | :1006300081918093F100415050409F5F41155105D9 101 | :1006400011F09830A8F320E0983009F421E080916F 102 | :10065000E8008E778093E8004115510591F622233A 103 | :1006600081F606C08EB3882349F08EB3853041F001 104 | :100670008091E80082FFF6CF80E0089582E008953F 105 | :1006800083E008959C0140912D0250912E0246175F 106 | :10069000570710F490E03BC06115710511F0AB01F4 107 | :1006A000F9CF8091E8008E778093E80040E050E039 108 | :1006B000F1CF8091E80083FF02C081E0089580912E 109 | :1006C000E80082FD30C08EB3882399F18EB3853067 110 | :1006D00091F18091E80080FF1AC08091F20009C07A 111 | :1006E000F9012F5F3F4FE491E093F10041505040FA 112 | :1006F0008F5F4115510511F0883090F390E08830FC 113 | :1007000009F491E08091E8008E778093E80041152C 114 | :10071000510579F6992369F606C08EB3882349F00E 115 | :100720008EB3853041F08091E80082FFF6CF80E003 116 | :10073000089582E0089583E008959C016115710594 117 | :1007400029F48091E8008B778093E800F90120C0BC 118 | :100750008091E80083FF02C081E008958EB3882372 119 | :1007600039F18EB3853031F18091E80082FFF0CF0E 120 | :1007700006C08091F10081936150704021F080911A 121 | :10078000F2008823B1F78091E8008B778093E8002E 122 | :1007900061157105E9F606C08EB3882349F08EB362 123 | :1007A000853041F08091E80080FFF6CF80E0089529 124 | :1007B00082E0089583E0089542D044D01EBA10929A 125 | :1007C0002502109224021092230284E089BD89B58B 126 | :1007D000826089BD09B400FEFDCF8091D800982FBA 127 | :1007E0009F779093D80080688093D80080916300B1 128 | :1007F0008E7F809363008091D8008F7D8093D80096 129 | :100800008091E0008E7F8093E0008091E1008E7FF8 130 | :100810008093E1008091E20081608093E20080910A 131 | :10082000E100877F8093E1008091E20088608093FF 132 | :10083000E2000895C1DF81E08093260208951092BE 133 | :10084000E20008951092E10008951F920F920FB6F2 134 | :100850000F9211241F932F933F934F935F936F93A6 135 | :100860007F938F939F93AF93BF93EF93FF93E9EEA3 136 | :10087000F0E0108117701082E0EFF0E08081877F58 137 | :1008800080837894C3D0F894A9EEB0E01C92E0EF96 138 | :10089000F0E08081886080831C93FF91EF91BF918D 139 | :1008A000AF919F918F917F916F915F914F913F9108 140 | :1008B0002F911F910F900FBE0F901F9018951F92B0 141 | :1008C0000F920FB60F9211242F933F934F935F9384 142 | :1008D0006F937F938F939F93AF93BF93EF93FF9308 143 | :1008E0008091E10080FF1BC08091E20080FF17C073 144 | :1008F0008091E1008E7F8093E1008091E2008E7F05 145 | :100900008093E2008091E20080618093E200809118 146 | :10091000D80080628093D80019BC1EBAD1D18091D2 147 | :10092000E10084FF29C08091E20084FF25C084E0BB 148 | :1009300089BD89B5826089BD09B400FEFDCF809173 149 | :10094000D8008F7D8093D8008091E1008F7E8093C6 150 | :10095000E1008091E2008F7E8093E2008091E200CE 151 | :1009600081608093E20080912502882311F481E068 152 | :1009700001C084E08EBBA4D18091E10083FF27C039 153 | :100980008091E20083FF23C08091E100877F809304 154 | :10099000E10082E08EBB109225028091E1008E7F03 155 | :1009A0008093E1008091E2008E7F8093E20080914D 156 | :1009B000E20080618093E200AADD80E060E042E036 157 | :1009C00093DD8091F00088608093F00079D1809170 158 | :1009D000E10082FF0AC08091E20082FF06C08091A0 159 | :1009E000E1008B7F8093E1006BD1FF91EF91BF918C 160 | :1009F000AF919F918F917F916F915F914F913F91B7 161 | :100A00002F910F900FBE0F901F9018951F93DF939B 162 | :100A1000CF93CDB7DEB7AC970FB6F894DEBF0FBE5D 163 | :100A2000CDBFE7E2F2E08091F100819322E0EF3266 164 | :100A3000F207C9F78091270230912802353009F476 165 | :100A400087C0363040F43130C9F1313070F0333086 166 | :100A500009F01DC133C0383009F4EFC0393009F452 167 | :100A6000FEC0363009F013C192C0803821F08238C0 168 | :100A700009F00DC108C090912302809124028823BF 169 | :100A800099F0926011C080912B0287708093E900E9 170 | :100A90008091EB0090E025E0969587952A95E1F707 171 | :100AA000982F91701092E9008091E800877F8093E1 172 | :100AB000E8009093F1001092F100CAC0882319F069 173 | :100AC000823009F0E4C090E08F719070009721F0BF 174 | :100AD000029709F0DDC00CC080912902813009F035 175 | :100AE000D7C010922402333069F5809324022AC0C3 176 | :100AF00080912902882331F520912B02277009F477 177 | :100B0000C7C02093E9008091EB0080FFC1C0333063 178 | :100B100021F48091EB00806213C08091EB00806132 179 | :100B20008093EB0081E090E002C0880F991F2A9526 180 | :100B3000E2F78093EA001092EA008091EB0088606F 181 | :100B40008093EB001092E9008091E800877F83C0DA 182 | :100B5000882309F09CC0109129028091E800877FCA 183 | :100B60008093E800E8DC04C08EB3882309F490C0C9 184 | :100B70008091E80080FFF8CF812F8F7711F492E009 185 | :100B800001C093E09EBB80688093E30081C08058E1 186 | :100B9000823008F07CC08091290290912A0223E0E3 187 | :100BA0008C3D920799F55FB7F894DE0115964EE0FB 188 | :100BB00020E030E061E2E42FF0E0609357008491A0 189 | :100BC00020FF03C082958F704F5F982F9F70892FF1 190 | :100BD000805D8A3308F0895F8C9311961C9211977F 191 | :100BE0002F5F3F4F12962431310529F75FBF8AE20C 192 | :100BF0008B8383E08C838091E800877F8093E8007B 193 | :100C0000CE0103966AE270E0E4DC11C060912B0231 194 | :100C1000AE014F5F5F4F2CDCBC010097C9F18091A2 195 | :100C2000E800877F8093E80089819A812BDD80919D 196 | :100C3000E8008B778093E8002BC0803841F58091E5 197 | :100C4000E800877F8093E800809125028093F1007F 198 | :100C50008091E8008E778093E8006DDC19C08823CE 199 | :100C6000B1F490912902923098F48091E800877F46 200 | :100C70008093E800909325025EDC80912502882312 201 | :100C800011F483E001C084E08EBB2DDB01C028DBC2 202 | :100C90008091E80083FF0AC08091EB00806280931E 203 | :100CA000EB008091E800877F8093E800AC960FB658 204 | :100CB000F894DEBF0FBECDBFCF91DF911F91089595 205 | :100CC00008951F938EB3882361F01091E90010926C 206 | :100CD000E9008091E80083FF01C098DE177010934F 207 | :100CE000E9001F9108950895FC018EB3843021F529 208 | :100CF00087859089A189B2890097A105B105E1F0A6 209 | :100D000085818093E9008091E80082FF15C0809181 210 | :100D1000F200882319F42FEF3FEF04C08091F10017 211 | :100D2000282F30E08091F200882341F48091E80080 212 | :100D30008B778093E80002C02FEF3FEFC901089541 213 | :100D4000FC018EB3843011F587859089A189B28921 214 | :100D50000097A105B105D1F081818093E9008091D0 215 | :100D6000F2008823A9F09091E8008091E8008E7746 216 | :100D70008093E80095FD0CC0FDDB982F882349F493 217 | :100D80008091E8008E778093E80003C092E001C074 218 | :100D900090E0892F0895FC018EB3843051F487854B 219 | :100DA0009089A189B2890097A105B10511F0CF0101 220 | :100DB000C7CF08951F93FC01162F8EB38430D9F44A 221 | :100DC00087859089A189B2890097A105B10599F01D 222 | :100DD00081818093E9008091E80085FD08C08091C1 223 | :100DE000E8008E778093E800C5DB882329F4109310 224 | :100DF000F10080E001C082E01F9108950F931F93DE 225 | :100E0000CF93DF93EC010D96FC0189E0DF011D9289 226 | :100E10008A95E9F72A813B8109818C81882311F425 227 | :100E200010E001C014E0C90151DB182B1260802FC3 228 | :100E300061E8412F59DB882329F12E813F810D8103 229 | :100E40008885882311F410E001C014E0C9013EDB5D 230 | :100E5000182B1260802F60E8412F46DB882391F029 231 | :100E60002A853B8509858C85882311F410E001C013 232 | :100E700014E0C9012BDB182B1260802F61EC412F8D 233 | :100E800033DB01C080E0DF91CF911F910F91089576 234 | :100E9000CF93DF93EC018091E80083FF60C08881ED 235 | :100EA00090E020912B0230912C022817390709F08D 236 | :100EB00056C080912802813261F0823220F4803263 237 | :100EC00009F04DC019C0823269F1833209F047C080 238 | :100ED00038C080912702813A09F041C08091E80032 239 | :100EE000877F8093E800CE010F9667E070E071DBAA 240 | :100EF0008091E8008B7713C080912702813279F5C9 241 | :100F00008091E800877F8093E800CE010F9667E02C 242 | :100F100070E013DCCE013ED98091E8008E7780939B 243 | :100F2000E8001DC0809127028132C9F48091E80059 244 | :100F3000877F8093E800809129028D87CE01C8D9F0 245 | :100F40000DC080912702813251F48091E800877FA3 246 | :100F50008093E800CE0160912902C5DEECDADF91D2 247 | :100F6000CF910895A1E21A2EAA1BBB1BFD010DC053 248 | :100F7000AA1FBB1FEE1FFF1FA217B307E407F50749 249 | :100F800020F0A21BB30BE40BF50B661F771F881F25 250 | :100F9000991F1A9469F760957095809590959B01BB 251 | :0C0FA000AC01BD01CF010895F894FFCF13 252 | :100FAC0000034000000440000002080000000000A4 253 | :060FBC000000000000002F 254 | :103000004BC0000064C0000062C0000060C000004F 255 | :103010005EC000005CC000005AC0000058C0000044 256 | :1030200056C0000054C0000052C00000EEC40000B2 257 | :103030004EC000004CC000004AC0000048C0000064 258 | :1030400046C0000044C0000042C0000040C0000074 259 | :103050003EC000003CC000003AC0000038C0000084 260 | :1030600036C0000034C0000032C0000030C0000094 261 | :103070002EC000002CC000002AC0000028C00000A4 262 | :1030800026C0000024C0000022C0000020C00000B4 263 | :103090001EC000001CC0000011241FBECFEFD2E0F4 264 | :1030A000DEBFCDBF11E0A0E0B1E0EAEFFCE302C07B 265 | :1030B00005900D92AA33B107D9F711E0AAE3B1E068 266 | :1030C00001C01D92AB35B107E1F772D314C698CF9A 267 | :1030D000982F15C08091F200882371F48091E80048 268 | :1030E0008B7F8093E80003C08EB3882351F08091DA 269 | :1030F000E80082FFF9CF02C08091F100915099233E 270 | :1031000049F7089520914A01309149018091480181 271 | :103110009091470180933F0190934001C9018093B2 272 | :103120004101909342010895DF93CF9300D000D0E6 273 | :1031300000D0CDB7DEB780914501843009F45AC084 274 | :10314000853030F4813059F0833009F0D7C01FC08A 275 | :10315000853009F4A0C0863009F0D0C0C3C080918A 276 | :103160004601823008F0CAC0CDDF80914601882335 277 | :1031700061F480913F019091400123E0FC01209394 278 | :103180005700E89507B600FCFDCF85E008C08091A8 279 | :103190004601882311F0823029F4B4DF89E080935E 280 | :1031A0000101ACC0813009F0A9C020E030E040E06E 281 | :1031B00050E0F90184918F3F81F0CA01AA27BB2713 282 | :1031C00080933E013093400120933F018AE0809339 283 | :1031D000010185E080933B0191C02F5F3F4F4F4F2E 284 | :1031E0005F4F2030F0E33F07F0E04F07F0E05F076C 285 | :1031F00001F784C080914601833051F581E08093CE 286 | :103200003A0180914B0190914C01892B71F0809192 287 | :103210004701813009F072C080914A0190914901C3 288 | :1032200090933D0180933C0169C0809147018823C0 289 | :1032300061F42CE088E190E00FB6F894A8958093B3 290 | :1032400060000FBE2093600059C01092000156C06C 291 | :10325000882309F053C0809147018F3F09F04EC089 292 | :10326000E0E0F0E093E085E090935700E89507B642 293 | :1032700000FCFDCF80935700E89507B600FCFDCF1A 294 | :10328000E058FF4F20E3E030F20771F781E18093CF 295 | :103290005700E89533C0DE011196E5E0F1E083E0E8 296 | :1032A00001900D928150E1F7DE011496E2E0F1E029 297 | :1032B00083E001900D928150E1F790914701809158 298 | :1032C0004601882329F4FE01E90FF11D818107C021 299 | :1032D0008130A1F4FE01BC97E90FF11D808180933C 300 | :1032E00050010CC080914601833041F48091470128 301 | :1032F000882321F48091480180933E0126960FB6E1 302 | :10330000F894DEBF0FBECDBFCF91DF9108952F920D 303 | :103310003F924F925F926F927F929F92AF92BF9235 304 | :10332000CF92DF92EF92FF920F931F93CF93DF9391 305 | :103330008091590190915A0190934C0180934B01D7 306 | :1033400080914D01882351F080914D0181508093EF 307 | :103350004D0180914D01882309F45D9A80914E01C1 308 | :10336000882351F080914E01815080934E018091CD 309 | :103370004E01882309F45C9A80915401833009F44A 310 | :10338000B2C1843030F4813071F0823009F0E3C191 311 | :1033900011C1853009F4C5C1853008F4BAC1863041 312 | :1033A00009F0D9C1CDC15C9883E080934E01809132 313 | :1033B000E800877F8093E80080913A01882329F014 314 | :1033C000B3DE5D9A5C9A10923A0120914B013091E4 315 | :1033D0004C012115310529F42AC08EB3882309F444 316 | :1033E000BAC18091E80082FFF8CF8091F10080930C 317 | :1033F00045012150304030934C0120934B01E6E4CD 318 | :10340000F1E00CC08091F10081932150304081E0C7 319 | :10341000EB34F80719F43183208308C08091F2005F 320 | :10342000882381F730934C0120934B017DDE8091FE 321 | :103430000101853009F0BAC080914B0190914C0197 322 | :10344000892B21F482E080930101B0C08AE140DE43 323 | :1034500080913F018F713CDEC0914101D0914201CA 324 | :1034600020913F013091400121968E01021B130BE8 325 | :10347000219780914601882309F093C01801369462 326 | :103480002794C901A0913E01B0E09C01AD0162E02A 327 | :10349000E62EF12C012D112DE20EF31E041F151F37 328 | :1034A00059016A0190E099249394B5E0A3E048C0E3 329 | :1034B0008091F200882371F48091E8008B7F8093E3 330 | :1034C000E80004C08EB3882309F445C18091E80068 331 | :1034D00082FFF8CF0894210831088091F100682F0D 332 | :1034E0008091F100782FF5010B0190925700E8953B 333 | :1034F00011249F5F903419F021143104A1F4F901D3 334 | :10350000B0935700E89507B600FCFDCF21143104B5 335 | :1035100051F0F701A0935700E89507B600FCFDCFE6 336 | :10352000A801970190E042E0442E512C612C712CAF 337 | :10353000E40CF51C061D171DA40CB51CC61CD71CDD 338 | :103540002114310409F0B4CFD0934001C0933F015E 339 | :1035500081E180935700E89527C08091F20088238D 340 | :1035600071F48091E8008B7F8093E80004C08EB3F3 341 | :10357000882309F4F0C08091E80082FFF8CF6091C1 342 | :10358000F10080913F0190914001A7D380913F01CC 343 | :103590009091400101969093400180933F0101502A 344 | :1035A000104001151105C9F680E192DD8091E80017 345 | :1035B0008B7FC3C08091E800877F8093E8005D988F 346 | :1035C00083E080934D0104C08EB3882309F4C3C007 347 | :1035D0008091E80080FFF8CF80910101893091F05F 348 | :1035E0008A3069F480914601813049F480913F012D 349 | :1035F000909140018093F1009093F1009BC08091E5 350 | :10360000500196C0609141017091420120913F01AB 351 | :10361000309140016F5F7F4F7B01E21AF30A6150E6 352 | :10362000704080914601882389F58701169507959A 353 | :10363000C901A0913E01B0E09C01AD011FC0809185 354 | :10364000F200803271F48091E8008E7F8093E80070 355 | :1036500004C08EB3882309F47EC08091E80080FF07 356 | :10366000F8CFF901859194918093F1009093F10046 357 | :10367000015010402E5F3F4F4F4F5F4F0115110516 358 | :10368000F1F67093400160933F0129C0823039F513 359 | :1036900023C08091F200803271F48091E8008E7F27 360 | :1036A0008093E80004C08EB3882309F454C080914D 361 | :1036B000E80080FFF8CF00913F0110914001C80160 362 | :1036C00004D38093F1000F5F1F4F109340010093CC 363 | :1036D0003F010894E108F108E114F104D1F682E019 364 | :1036E0008093010127C08091E800877F8093E800E4 365 | :1036F00080913B018093F1001092F1001092F10053 366 | :103700001092F100809101018093F1001092F1007C 367 | :1037100011C08091E800877F8093E80010923B0100 368 | :1037200019C08091E800877F8093E80080910101B3 369 | :103730008093F1008091E8008E7F8093E8000AC0BA 370 | :103740008091E800877F8093E8005D9A5C9A82E030 371 | :103750008093010187D0DF91CF911F910F91FF904E 372 | :10376000EF90DF90CF90BF90AF909F907F906F9041 373 | :103770005F904F903F902F9008952BD181E085BFAF 374 | :1037800015BE089584B7877F84BF88E10FB6F8948B 375 | :1037900080936000109260000FBE81E085BF82E0E0 376 | :1037A00085BF8AB180638AB98BB180638BB90CC144 377 | :1037B000E9DF789401C080D2809100018823D9F795 378 | :1037C00080913A018823B9F7D8DFE0913C01F0916C 379 | :1037D0003D010995FA01923071F0933089F09130F2 380 | :1037E00029F488E091E022E130E019C080E090E027 381 | :1037F00020E030E014C08AE191E02BE130E00FC01E 382 | :10380000882339F480913501282F30E085E391E059 383 | :1038100006C080914301282F30E083E491E091833A 384 | :103820008083C90108958091EB0081608093EB0053 385 | :103830001092ED006093EC004093ED008091EE005B 386 | :10384000881F8827881F08951092F4001092F000B6 387 | :103850001092E8001092ED00EBEEF0E080818E7F98 388 | :10386000808308958091530188238CF403C08EB324 389 | :103870008823B1F08091E80082FFF9CF8091E800C1 390 | :103880008B7F8093E80008958EB3882349F0809160 391 | :10389000E80080FFF9CF8091E8008E7F8093E800F8 392 | :1038A00008959C014091590150915A0146175707BC 393 | :1038B00018F4F90120E038C06115710511F0AB0171 394 | :1038C000F8CF8091E8008E7F8093E80040E050E0E0 395 | :1038D000F0CF8091E80083FF02C081E008958091DD 396 | :1038E000E80082FD2DC08EB3882381F18EB3853030 397 | :1038F00079F18091E80080FF17C09091F20006C036 398 | :1039000081918093F100415050409F5F41155105D6 399 | :1039100011F09032A8F320E0903209F421E0809178 400 | :10392000E8008E7F8093E8004115510591F622232F 401 | :1039300081F606C08EB3882349F08EB3853041F0FE 402 | :103940008091E80082FFF6CF80E0089582E008953C 403 | :1039500083E0089554D056D01EBA1092510184E0ED 404 | :1039600089BD89B5826089BD09B400FEFDCF809113 405 | :10397000D800982F9F779093D80080688093D800C4 406 | :10398000809163008E7F809363008091D8008F7D4B 407 | :103990008093D8008091E0008E7F8093E00080913A 408 | :1039A000E1008E7F8093E1008091E200816080934E 409 | :1039B000E2008091E100877F8093E1008091E20046 410 | :1039C00088608093E2000895C5DF81E08093520112 411 | :1039D0000895C0DFE0EEF0E0808181608083E8ED53 412 | :1039E000F0E080818F7780830AD00CD019BCE3E6A9 413 | :1039F000F0E08081816080831092520108951092DE 414 | :103A0000E20008951092E10008951F920F920FB600 415 | :103A10000F9211242F933F934F935F936F937F9354 416 | :103A20008F939F93AF93BF93EF93FF938091E100A8 417 | :103A300080FF1BC08091E20080FF17C08091E100F1 418 | :103A40008E7F8093E1008091E2008E7F8093E20080 419 | :103A50008091E20080618093E2008091D8008062D2 420 | :103A60008093D80019BC1EBA26D18091E10084FF52 421 | :103A700029C08091E20084FF25C084E089BD89B51A 422 | :103A8000826089BD09B400FEFDCF8091D8008F7D92 423 | :103A90008093D8008091E1008F7E8093E100809137 424 | :103AA000E2008F7E8093E2008091E200816080934B 425 | :103AB000E20080915101882311F481E001C084E08B 426 | :103AC0008EBBF9D08091E10083FF22C08091E2009B 427 | :103AD00083FF1EC08091E100877F8093E10082E038 428 | :103AE0008EBB109251018091E1008E7F8093E100A6 429 | :103AF0008091E2008E7F8093E2008091E2008061FD 430 | :103B00008093E200A1DE80E060E042E28CDED3D070 431 | :103B10008091E10082FF0AC08091E20082FF06C02E 432 | :103B20008091E1008B7F8093E100C5D0FF91EF9100 433 | :103B3000BF91AF919F918F917F916F915F914F91C5 434 | :103B40003F912F910F900FBE0F901F9018951F93CC 435 | :103B5000DF93CF9300D0CDB7DEB7E3E5F1E08091FE 436 | :103B6000F100819381E0EB35F807C9F7909153019B 437 | :103B700080915401853011F1863040F48130B9F0E4 438 | :103B8000813070F0833009F081C011C0883009F4B1 439 | :103B900053C0893009F462C0863009F077C02DC067 440 | :103BA000903809F474C0923809F070C070C099233D 441 | :103BB00009F46DC0923009F069C069C0992309F019 442 | :103BC00065C0109155018091E800877F8093E800DF 443 | :103BD00049DE04C08EB3882309F459C08091E800FF 444 | :103BE00080FFF8CF812F8F7711F492E001C093E02E 445 | :103BF0009EBB80688093E3004AC09058923008F0E2 446 | :103C000045C0809155019091560160915701AE01D8 447 | :103C10004F5F5F4FDFDDBC010097C9F18091E80085 448 | :103C2000877F8093E80089819A813BDE8091E8005C 449 | :103C30008B7F8093E8002BC0903841F58091E8009D 450 | :103C4000877F8093E800809151018093F1008091FB 451 | :103C5000E8008E7F8093E80005DE19C09923B1F457 452 | :103C600090915501923098F48091E800877F80937D 453 | :103C7000E80090935101F6DD80915101882311F401 454 | :103C800083E001C084E08EBB16D001C040DB809190 455 | :103C9000E80083FF0AC08091EB0080628093EB0014 456 | :103CA0008091E800877F8093E8000F900F90CF917C 457 | :103CB000DF911F91089508958EB3882329F0809194 458 | :103CC000E80083FF01C043CF0895F999FECF92BD6C 459 | :103CD00081BDF89A992780B50895262FF999FECFCE 460 | :103CE0001FBA92BD81BD20BD0FB6F894FA9AF99A19 461 | :0A3CF0000FBE01960895F894FFCF6F 462 | :103CFA0001021E948920DCFB120110010000002041 463 | :103D0A00EB03EF2F00000001000109021B00010173 464 | :103D1A000080320904000000FE01020009210300AC 465 | :0A3D2A0000000C000104030904006E 466 | :0400000300003000C9 467 | :00000001FF 468 | -------------------------------------------------------------------------------- /compiled_firmwares/usbserial_mega_8u2.hex: -------------------------------------------------------------------------------- 1 | :20000000A2C00000BBC00000B9C00000B7C00000B5C00000B3C00000B1C00000AFC000004B 2 | :20002000ADC00000ABC00000A9C000005AC400001EC40000A3C00000A1C000009FC000005C 3 | :200040009DC000009BC0000099C0000097C0000095C0000093C0000091C0000014C100006A 4 | :200060008DC000008BC0000089C0000087C0000085C0000083C0000081C000007FC0000050 5 | :200080007DC000007BC0000079C0000077C0000075C0000073C000001201100102000008E2 6 | :2000A0004123100001000102DC0109023E00020100C0320904000001020201000524000170 7 | :2000C00010042402060524060001070582030800FF09040100020A000000070504024000AC 8 | :2000E0000107058302400001040309043203410072006400750069006E006F0020002800CA 9 | :200100007700770077002E00610072006400750069006E006F002E0063006300290000003D 10 | :200120002403410072006400750069006E006F0020004D00650067006100200032003500A5 11 | :2001400036003000000011241FBECFEFD2E0DEBFCDBF11E0A0E0B1E0E0EDFFE002C0059089 12 | :200160000D92A631B107D9F712E0A6E1B1E001C01D92AF32B107E1F7F1D028C741CF9C0139 13 | :20018000DC01AE57BF4FED91FC91119741911196FC93EE9380589F4FE817F90711F42D93A9 14 | :2001A0003C939FB7F894F901EC57FF4F8081815080839FBF842F0895DF92EF92FF920F935B 15 | :2001C0001F93FC018489813019F0823021F405C040E3D42E04C0DD2402C030E2D32E838952 16 | :2001E000823011F488E0D82A8589873031F0883031F0863031F482E003C084E001C086E094 17 | :20020000D82A1092C9001092C8001092CA00E784F0880189128980E0E81681EEF80680E068 18 | :20022000080780E0180719F420E130E00FC0C801B701969587957795679560587B47814E2A 19 | :200240009F4FA8019701A0D6215030403093CD002093CC00D092CA0080E0E81681EEF80612 20 | :2002600080E0080780E0180711F082E001C080E08093C80088E98093C9001F910F91FF9005 21 | :20028000EF90DF9008951F920F920FB60F9211242F938F939F93EF93FF939091CE008EB38C 22 | :2002A0008430F1F4E0919901F0919A019083E0919901F0919A01CF01019690939A0180930C 23 | :2002C00099018959914021F489E191E0928381839FB7F89480919D018F5F80939D019FBF3A 24 | :2002E000FF91EF919F918F912F910F900FBE0F901F901895FC01858580FF02C05F9808959B 25 | :200300005F9A089580E091E0D5C580E091E088C584B7877F84BF28E10FB6F89420936000CD 26 | :20032000109260000FBE87E690E09093CD008093CC0086E08093CA001092C8002093C90019 27 | :20034000539A5A9A8AB180638AB98BB180638BB983D284E085BD5F9A579A08950F931F9322 28 | :20036000CF93DF93D5DF2FB7F8948EE991E090931F0280931E0290932102809320022FBFBB 29 | :200380002FB7F89489E191E090939A018093990190939C0180939B012FBF7894CEE9D1E0D4 30 | :2003A00003E08FB7F894909122028FBF903809F180E091E0ABD497FD1CC0E0911E02F09161 31 | :2003C0001F028083E0911E02F0911F02CF01019690931F0280931E028E51924011F4D283DD 32 | :2003E000C1839FB7F894809122028F5F809322029FBF8FB7F89410919D018FBFA89902C0BD 33 | :20040000113678F1A89A80919D01882361F05D980093160108C089E191E0B1DE682F80E077 34 | :2004200091E0DAD411501123B1F780911601882351F0809116018150809316018091160101 35 | :20044000882309F45D9A80911701882351F08091170181508093170180911701882309F4F2 36 | :200460005C9A8FB7F894909122028FBF992369F08EE991E084DE982F8091C80085FFFCCFD3 37 | :200480009093CE005C980093170180E091E095D42AD487CFDA01923049F0933061F0913093 38 | :2004A000F9F4E8E9F0E022E130E01EC0EAEAF0E02EE330E019C0813049F0813018F08230CA 39 | :2004C00079F408C0E8EEF0E0849107C0ECEEF0E0849103C0E0E2F1E08491282F30E004C010 40 | :2004E000E0E0F0E020E030E0ED93FC93C901089528E030E040E003C04F5F220F331F28177B 41 | :200500003907D0F3842F8295807F08958093E9008091EB0081608093EB001092ED00609319 42 | :20052000EC004093ED008091EE00881F8827881F08951092F40090E09093E9001092F000D2 43 | :200540001092E8001092ED008091EB008E7F8093EB009F5F953081F70895809127028823BE 44 | :200560008CF403C08EB38823B1F08091E80082FFF9CF8091E8008B778093E80008958EB395 45 | :20058000882349F08091E80080FFF9CF8091E8008E778093E800089594E68091EC0080FFAB 46 | :2005A00005C08091E80080FF05C023C08091E80082FD1FC08EB3882311F482E008958EB3CE 47 | :2005C000853011F483E008958091EB0085FF02C081E008958091E10082FFDFCF8091E1000E 48 | :2005E0008B7F8093E100992311F484E008959150D4CF80E008959C0140912D0250912E020C 49 | :200600004617570718F4F90120E038C06115710511F0AB01F8CF8091E8008E778093E800C8 50 | :2006200040E050E0F0CF8091E80083FF02C081E008958091E80082FD2DC08EB3882381F1AD 51 | :200640008EB3853079F18091E80080FF17C09091F20006C081918093F100415050409F5FDD 52 | :200660004115510511F09830A8F320E0983009F421E08091E8008E778093E80041155105FF 53 | :2006800091F6222381F606C08EB3882349F08EB3853041F08091E80082FFF6CF80E00895C9 54 | :2006A00082E0089583E008959C0140912D0250912E024617570710F490E03BC06115710577 55 | :2006C00011F0AB01F9CF8091E8008E778093E80040E050E0F1CF8091E80083FF02C081E0FE 56 | :2006E00008958091E80082FD30C08EB3882399F18EB3853091F18091E80080FF1AC08091A4 57 | :20070000F20009C0F9012F5F3F4FE491E093F100415050408F5F4115510511F0883090F338 58 | :2007200090E0883009F491E08091E8008E778093E8004115510579F6992369F606C08EB3ED 59 | :20074000882349F08EB3853041F08091E80082FFF6CF80E0089582E0089583E008959C01B6 60 | :200760006115710529F48091E8008B778093E800F90120C08091E80083FF02C081E0089565 61 | :200780008EB3882339F18EB3853031F18091E80082FFF0CF06C08091F100819361507040B5 62 | :2007A00021F08091F2008823B1F78091E8008B778093E80061157105E9F606C08EB388235F 63 | :2007C00049F08EB3853041F08091E80080FFF6CF80E0089582E0089583E0089542D044D05A 64 | :2007E0001EBA10922502109224021092230284E089BD89B5826089BD09B400FEFDCF809121 65 | :20080000D800982F9F779093D80080688093D800809163008E7F809363008091D8008F7D69 66 | :200820008093D8008091E0008E7F8093E0008091E1008E7F8093E1008091E2008160809302 67 | :20084000E2008091E100877F8093E1008091E20088608093E2000895C1DF81E08093260221 68 | :2008600008951092E20008951092E10008951F920F920FB60F9211241F932F933F934F9385 69 | :200880005F936F937F938F939F93AF93BF93EF93FF93E9EEF0E0108117701082E0EFF0E066 70 | :2008A0008081877F80837894C3D0F894A9EEB0E01C92E0EFF0E08081886080831C93FF9164 71 | :2008C000EF91BF91AF919F918F917F916F915F914F913F912F911F910F900FBE0F901F90DE 72 | :2008E00018951F920F920FB60F9211242F933F934F935F936F937F938F939F93AF93BF93FA 73 | :20090000EF93FF938091E10080FF1BC08091E20080FF17C08091E1008E7F8093E10080912A 74 | :20092000E2008E7F8093E2008091E20080618093E2008091D80080628093D80019BC1EBAA7 75 | :20094000D1D18091E10084FF29C08091E20084FF25C084E089BD89B5826089BD09B400FE71 76 | :20096000FDCF8091D8008F7D8093D8008091E1008F7E8093E1008091E2008F7E8093E200E3 77 | :200980008091E20081608093E20080912502882311F481E001C084E08EBBA4D18091E10070 78 | :2009A00083FF27C08091E20083FF23C08091E100877F8093E10082E08EBB10922502809105 79 | :2009C000E1008E7F8093E1008091E2008E7F8093E2008091E20080618093E200AADD80E090 80 | :2009E00060E042E093DD8091F00088608093F00079D18091E10082FF0AC08091E20082FF3E 81 | :200A000006C08091E1008B7F8093E1006BD1FF91EF91BF91AF919F918F917F916F915F91F4 82 | :200A20004F913F912F910F900FBE0F901F9018951F93DF93CF93CDB7DEB7AC970FB6F894AC 83 | :200A4000DEBF0FBECDBFE7E2F2E08091F100819322E0EF32F207C9F78091270230912802EE 84 | :200A6000353009F487C0363040F43130C9F1313070F0333009F01DC133C0383009F4EFC016 85 | :200A8000393009F4FEC0363009F013C192C0803821F0823809F00DC108C090912302809144 86 | :200AA0002402882399F0926011C080912B0287708093E9008091EB0090E025E09695879530 87 | :200AC0002A95E1F7982F91701092E9008091E800877F8093E8009093F1001092F100CAC001 88 | :200AE000882319F0823009F0E4C090E08F719070009721F0029709F0DDC00CC080912902A4 89 | :200B0000813009F0D7C010922402333069F5809324022AC080912902882331F520912B02FD 90 | :200B2000277009F4C7C02093E9008091EB0080FFC1C0333021F48091EB00806213C08091C8 91 | :200B4000EB0080618093EB0081E090E002C0880F991F2A95E2F78093EA001092EA008091B7 92 | :200B6000EB0088608093EB001092E9008091E800877F83C0882309F09CC0109129028091FA 93 | :200B8000E800877F8093E800E8DC04C08EB3882309F490C08091E80080FFF8CF812F8F77B6 94 | :200BA00011F492E001C093E09EBB80688093E30081C08058823008F07CC0809129029091F7 95 | :200BC0002A0223E08C3D920799F55FB7F894DE0115964EE020E030E061E2E42FF0E0609373 96 | :200BE0005700849120FF03C082958F704F5F982F9F70892F805D8A3308F0895F8C93119615 97 | :200C00001C9211972F5F3F4F12962431310529F75FBF8AE28B8383E08C838091E800877F06 98 | :200C20008093E800CE0103966AE270E0E4DC11C060912B02AE014F5F5F4F2CDCBC0100979F 99 | :200C4000C9F18091E800877F8093E80089819A812BDD8091E8008B778093E8002BC080381A 100 | :200C600041F58091E800877F8093E800809125028093F1008091E8008E778093E8006DDCC6 101 | :200C800019C08823B1F490912902923098F48091E800877F8093E800909325025EDC809102 102 | :200CA0002502882311F483E001C084E08EBB2DDB01C028DB8091E80083FF0AC08091EB007F 103 | :200CC00080628093EB008091E800877F8093E800AC960FB6F894DEBF0FBECDBFCF91DF91E1 104 | :200CE0001F91089508951F938EB3882361F01091E9001092E9008091E80083FF01C098DE54 105 | :200D000017701093E9001F9108950895FC018EB3843021F587859089A189B2890097A10507 106 | :200D2000B105E1F085818093E9008091E80082FF15C08091F200882319F42FEF3FEF04C010 107 | :200D40008091F100282F30E08091F200882341F48091E8008B778093E80002C02FEF3FEF43 108 | :200D6000C9010895FC018EB3843011F587859089A189B2890097A105B105D1F081818093C1 109 | :200D8000E9008091F2008823A9F09091E8008091E8008E778093E80095FD0CC0FDDB982F24 110 | :200DA000882349F48091E8008E778093E80003C092E001C090E0892F0895FC018EB38430A5 111 | :200DC00051F487859089A189B2890097A105B10511F0CF01C7CF08951F93FC01162F8EB318 112 | :200DE0008430D9F487859089A189B2890097A105B10599F081818093E9008091E80085FDF3 113 | :200E000008C08091E8008E778093E800C5DB882329F41093F10080E001C082E01F91089545 114 | :200E20000F931F93CF93DF93EC010D96FC0189E0DF011D928A95E9F72A813B8109818C8108 115 | :200E4000882311F410E001C014E0C90151DB182B1260802F61E8412F59DB882329F12E8182 116 | :200E60003F810D818885882311F410E001C014E0C9013EDB182B1260802F60E8412F46DBA2 117 | :200E8000882391F02A853B8509858C85882311F410E001C014E0C9012BDB182B1260802F8F 118 | :200EA00061EC412F33DB01C080E0DF91CF911F910F910895CF93DF93EC018091E80083FF4D 119 | :200EC00060C0888190E020912B0230912C022817390709F056C080912802813261F082322B 120 | :200EE00020F4803209F04DC019C0823269F1833209F047C038C080912702813A09F041C0A3 121 | :200F00008091E800877F8093E800CE010F9667E070E071DB8091E8008B7713C08091270278 122 | :200F2000813279F58091E800877F8093E800CE010F9667E070E013DCCE013ED98091E800BD 123 | :200F40008E778093E8001DC0809127028132C9F48091E800877F8093E800809129028D87C0 124 | :200F6000CE01C8D90DC080912702813251F48091E800877F8093E800CE0160912902C5DE7A 125 | :200F8000ECDADF91CF910895A1E21A2EAA1BBB1BFD010DC0AA1FBB1FEE1FFF1FA217B307AC 126 | :200FA000E407F50720F0A21BB30BE40BF50B661F771F881F991F1A9469F760957095809539 127 | :200FC00090959B01AC01BD01CF010895F894FFCF000340000004400000020800000000008D 128 | :200FE000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0B 129 | :201000004BC0000064C0000062C0000060C000005EC000005CC000005AC0000058C00000F3 130 | :2010200056C0000054C0000052C00000CBC400004EC000004CC000004AC0000048C00000B9 131 | :2010400046C0000044C0000042C0000040C000003EC000003CC000003AC0000038C0000098 132 | :2010600036C0000034C0000032C0000030C000002EC000002CC000002AC0000028C00000F8 133 | :2010800026C0000024C0000022C0000020C000001EC000001CC0000011241FBECFEFD2E088 134 | :2010A000DEBFCDBF11E0A0E0B1E0E4EBFCE102C005900D92A836B107D9F711E0A8E6B1E0ED 135 | :2010C00001C01D92A738B107E1F74FD3F1C598CF982F15C08091F200882371F48091E8004A 136 | :2010E0008B7F8093E80003C08EB3882351F08091E80082FFF9CF02C08091F1009150992358 137 | :2011000049F708952091760130917501809174019091730180936D0190936E01C901809388 138 | :201120006F0190937001089580917101843009F45AC0853030F4813059F0833009F0C3C0BE 139 | :201140001FC0853009F4A0C0863009F0BCC0AFC080917201823008F0B6C0D4DF8091720129 140 | :20116000882361F480916D0190916E0123E0FC0120935700E89507B600FCFDCF85E008C027 141 | :2011800080917201882311F0823029F4BBDF89E0809301010895813009F095C020E030E08C 142 | :2011A00040E050E0F90184918F3F81F0CA01AA27BB2780936C0130936E0120936D018AE0D6 143 | :2011C0008093010185E08093690108952F5F3F4F4F4F5F4F2030F0E13F07F0E04F07F0E0B6 144 | :2011E0005F0701F7089580917201833051F581E0809368018091770190917801892B71F062 145 | :2012000080917301813009F05EC0809176019091750190936B0180936A0108958091730133 146 | :20122000882361F42CE088E190E00FB6F894A895809360000FBE20936000089510920001A8 147 | :201240000895882309F03FC0809173018F3F09F03AC0E0E0F0E093E085E090935700E895A9 148 | :2012600007B600FCFDCF80935700E89507B600FCFDCFE058FF4F20E1E030F20771F781E123 149 | :2012800080935700E8950895E091730180917201882321F4F0E0EB5FFE4F05C0813099F437 150 | :2012A000F0E0EE52FF4F808180937C01089580917201833041F480917301882321F48091E0 151 | :2012C000740180936C0108952F923F924F925F926F927F929F92AF92BF92CF92DF92EF92F0 152 | :2012E000FF920F931F93CF93DF938091850190918601909378018093770180917901882399 153 | :2013000051F08091790181508093790180917901882309F45D9A80917A01882351F08091F0 154 | :201320007A01815080937A0180917A01882309F45C9A80918001833009F4B2C1843030F41C 155 | :20134000813071F0823009F0E3C111C1853009F4C5C1853008F4BAC1863009F0D9C1CDC11F 156 | :201360005C9883E080937A018091E800877F8093E80080916801882329F0D6DE5D9A5C9AAF 157 | :201380001092680120917701309178012115310529F42AC08EB3882309F4BAC18091E8000F 158 | :2013A00082FFF8CF8091F10080937101215030403093780120937701E2E7F1E00CC080919F 159 | :2013C000F10081932150304081E0E737F80719F43183208308C08091F200882381F7309394 160 | :2013E000780120937701A0DE80910101853009F0BAC08091770190917801892B21F482E042 161 | :2014000080930101B0C08AE163DE80916D018F715FDEC0916F01D091700120916D0130916C 162 | :201420006E0121968E01021B130B219780917201882309F093C0180136942794C901A091F0 163 | :201440006C01B0E09C01AD0162E0E62EF12C012D112DE20EF31E041F151F59016A0190E0D8 164 | :2014600099249394B5E0A3E048C08091F200882371F48091E8008B7F8093E80004C08EB352 165 | :20148000882309F445C18091E80082FFF8CF0894210831088091F100682F8091F100782F1D 166 | :2014A000F5010B0190925700E89511249F5F903419F021143104A1F4F901B0935700E89524 167 | :2014C00007B600FCFDCF2114310451F0F701A0935700E89507B600FCFDCFA801970190E0A7 168 | :2014E00042E0442E512C612C712CE40CF51C061D171DA40CB51CC61CD71C2114310409F0A0 169 | :20150000B4CFD0936E01C0936D0181E180935700E89527C08091F200882371F48091E80079 170 | :201520008B7F8093E80004C08EB3882309F4F0C08091E80082FFF8CF6091F10080916D01A7 171 | :2015400090916E01A7D380916D0190916E01019690936E0180936D010150104001151105FB 172 | :20156000C9F680E1B5DD8091E8008B7FC3C08091E800877F8093E8005D9883E08093790154 173 | :2015800004C08EB3882309F4C3C08091E80080FFF8CF80910101893091F08A3069F4809167 174 | :2015A0007201813049F480916D0190916E018093F1009093F1009BC080917C0196C0609173 175 | :2015C0006F017091700120916D0130916E016F5F7F4F7B01E21AF30A6150704080917201E4 176 | :2015E000882389F5870116950795C901A0916C01B0E09C01AD011FC08091F200803271F4B7 177 | :201600008091E8008E7F8093E80004C08EB3882309F47EC08091E80080FFF8CFF90185918F 178 | :2016200094918093F1009093F100015010402E5F3F4F4F4F5F4F01151105F1F670936E01E0 179 | :2016400060936D0129C0823039F523C08091F200803271F48091E8008E7F8093E80004C09E 180 | :201660008EB3882309F454C08091E80080FFF8CF00916D0110916E01C80104D38093F1007B 181 | :201680000F5F1F4F10936E0100936D010894E108F108E114F104D1F682E08093010127C0CE 182 | :2016A0008091E800877F8093E800809169018093F1001092F1001092F1001092F1008091E7 183 | :2016C00001018093F1001092F10011C08091E800877F8093E8001092690119C08091E800C8 184 | :2016E000877F8093E800809101018093F1008091E8008E7F8093E8000AC08091E800877F08 185 | :201700008093E8005D9A5C9A82E08093010187D0DF91CF911F910F91FF90EF90DF90CF9017 186 | :20172000BF90AF909F907F906F905F904F903F902F9008952BD181E085BF15BE089584B799 187 | :20174000877F84BF88E10FB6F89480936000109260000FBE81E085BF82E085BF8AB18063DB 188 | :201760008AB98BB180638BB90CC1E9DF789401C080D2809100018823D9F78091680188235D 189 | :20178000B9F7D8DFE0916A01F0916B010995FA01923071F0933089F0913029F488E091E06A 190 | :2017A00022E130E019C080E090E020E030E014C08AE191E02BE130E00FC0882339F48091D9 191 | :2017C0003501282F30E085E391E006C080913901282F30E089E391E091838083C9010895C0 192 | :2017E0008091EB0081608093EB001092ED006093EC004093ED008091EE00881F8827881FE4 193 | :2018000008951092F4001092F0001092E8001092ED00EBEEF0E080818E7F80830895809182 194 | :201820007F0188238CF403C08EB38823B1F08091E80082FFF9CF8091E8008B7F8093E8006D 195 | :2018400008958EB3882349F08091E80080FFF9CF8091E8008E7F8093E80008959C0140917A 196 | :201860008501509186014617570718F4F90120E038C06115710511F0AB01F8CF8091E80068 197 | :201880008E7F8093E80040E050E0F0CF8091E80083FF02C081E008958091E80082FD2DC091 198 | :2018A0008EB3882381F18EB3853079F18091E80080FF17C09091F20006C081918093F1002C 199 | :2018C000415050409F5F4115510511F09032A8F320E0903209F421E08091E8008E7F809306 200 | :2018E000E8004115510591F6222381F606C08EB3882349F08EB3853041F08091E80082FF85 201 | :20190000F6CF80E0089582E0089583E0089554D056D01EBA10927D0184E089BD89B58260FA 202 | :2019200089BD09B400FEFDCF8091D800982F9F779093D80080688093D800809163008E7FC5 203 | :20194000809363008091D8008F7D8093D8008091E0008E7F8093E0008091E1008E7F80932E 204 | :20196000E1008091E20081608093E2008091E100877F8093E1008091E20088608093E20001 205 | :201980000895C5DF81E080937E010895C0DFE0EEF0E0808181608083E8EDF0E080818F77A8 206 | :2019A00080830AD00CD019BCE3E6F0E080818160808310927E0108951092E200089510929A 207 | :2019C000E10008951F920F920FB60F9211242F933F934F935F936F937F938F939F93AF938A 208 | :2019E000BF93EF93FF938091E10080FF1BC08091E20080FF17C08091E1008E7F8093E100F9 209 | :201A00008091E2008E7F8093E2008091E20080618093E2008091D80080628093D80019BC7D 210 | :201A20001EBA26D18091E10084FF29C08091E20084FF25C084E089BD89B5826089BD09B451 211 | :201A400000FEFDCF8091D8008F7D8093D8008091E1008F7E8093E1008091E2008F7E8093D6 212 | :201A6000E2008091E20081608093E20080917D01882311F481E001C084E08EBBF9D08091D3 213 | :201A8000E10083FF22C08091E20083FF1EC08091E100877F8093E10082E08EBB10927D01F7 214 | :201AA0008091E1008E7F8093E1008091E2008E7F8093E2008091E20080618093E200A1DEF6 215 | :201AC00080E060E042E28CDED3D08091E10082FF0AC08091E20082FF06C08091E1008B7FC2 216 | :201AE0008093E100C5D0FF91EF91BF91AF919F918F917F916F915F914F913F912F910F905E 217 | :201B00000FBE0F901F9018951F93DF93CF9300D0CDB7DEB7EFE7F1E08091F100819381E070 218 | :201B2000E738F807C9F790917F0180918001853011F1863040F48130B9F0813070F08330D5 219 | :201B400009F081C011C0883009F453C0893009F462C0863009F077C02DC0903809F474C00E 220 | :201B6000923809F070C070C0992309F46DC0923009F069C069C0992309F065C01091810152 221 | :201B80008091E800877F8093E80049DE04C08EB3882309F459C08091E80080FFF8CF812F6F 222 | :201BA0008F7711F492E001C093E09EBB80688093E3004AC09058923008F045C080918101F9 223 | :201BC0009091820160918301AE014F5F5F4FDFDDBC010097C9F18091E800877F8093E8001D 224 | :201BE00089819A813BDE8091E8008B7F8093E8002BC0903841F58091E800877F8093E800C6 225 | :201C000080917D018093F1008091E8008E7F8093E80005DE19C09923B1F4909181019230AE 226 | :201C200098F48091E800877F8093E80090937D01F6DD80917D01882311F483E001C084E0E3 227 | :201C40008EBB16D001C040DB8091E80083FF0AC08091EB0080628093EB008091E800877F59 228 | :201C60008093E8000F900F90CF91DF911F91089508958EB3882329F08091E80083FF01C030 229 | :201C800043CF0895F999FECF92BD81BDF89A992780B50895262FF999FECF1FBA92BD81BD6B 230 | :201CA00020BD0FB6F894FA9AF99A0FBE01960895F894FFCF01021E938220DCFB1201100123 231 | :201CC00000000020EB03F72F00000001000109021B0001010080320904000000FE010200E6 232 | :201CE0000921030000000C0001040309042C03410072006400750069006E006F0020004D28 233 | :1C1D000000650067006100200032003500360030002000440046005500000000AE 234 | :00000001FF 235 | -------------------------------------------------------------------------------- /compiled_firmwares/usbserial_uno_16u2.hex: -------------------------------------------------------------------------------- 1 | :1000000090C00000A9C00000A7C00000A5C000006B 2 | :10001000A3C00000A1C000009FC000009DC0000060 3 | :100020009BC0000099C0000097C0000048C40000B9 4 | :100030000CC4000091C000008FC000008DC0000003 5 | :100040008BC0000089C0000087C0000085C0000090 6 | :1000500083C0000081C000007FC0000002C100001A 7 | :100060007BC0000079C0000077C0000075C00000B0 8 | :1000700073C0000071C000006FC000006DC00000C0 9 | :100080006BC0000069C0000067C0000065C00000D0 10 | :1000900063C0000061C000001201100102000008EE 11 | :1000A0004123430001000102DC0109023E0002017C 12 | :1000B00000C0320904000001020201000524000111 13 | :1000C0001004240206052406000107058203080027 14 | :1000D000FF09040100020A000000070504024000B5 15 | :1000E00001070583024000010403090432034100B3 16 | :1000F00072006400750069006E006F002000280027 17 | :100100007700770077002E006100720064007500B0 18 | :1001100069006E006F002E0063006300290000007C 19 | :10012000000011241FBECFEFD2E0DEBFCDBF11E033 20 | :10013000A0E0B1E0ECEAFFE002C005900D92A6312C 21 | :10014000B107D9F712E0A6E1B1E001C01D92AF32CC 22 | :10015000B107E1F7F1D028C753CF9C01DC01AE57BE 23 | :10016000BF4FED91FC91119741911196FC93EE9345 24 | :1001700080589F4FE817F90711F42D933C939FB7D0 25 | :10018000F894F901EC57FF4F8081815080839FBF25 26 | :10019000842F0895DF92EF92FF920F931F93FC013B 27 | :1001A0008489813019F0823021F405C040E3D42ED7 28 | :1001B00004C0DD2402C030E2D32E8389823011F4E2 29 | :1001C00088E0D82A8589873031F0883031F0863050 30 | :1001D00031F482E003C084E001C086E0D82A1092A6 31 | :1001E000C9001092C8001092CA00E784F088018903 32 | :1001F000128980E0E81681EEF80680E0080780E0CA 33 | :10020000180719F420E130E00FC0C801B701969536 34 | :1002100087957795679560587B47814E9F4FA801DA 35 | :100220009701A0D6215030403093CD002093CC00D0 36 | :10023000D092CA0080E0E81681EEF80680E0080758 37 | :1002400080E0180711F082E001C080E08093C800D0 38 | :1002500088E98093C9001F910F91FF90EF90DF9084 39 | :1002600008951F920F920FB60F9211242F938F9320 40 | :100270009F93EF93FF939091CE008EB38430F1F46F 41 | :10028000E0919901F0919A019083E0919901F091A8 42 | :100290009A01CF01019690939A018093990189590F 43 | :1002A000914021F489E191E0928381839FB7F89492 44 | :1002B00080919D018F5F80939D019FBFFF91EF9182 45 | :1002C0009F918F912F910F900FBE0F901F901895B7 46 | :1002D000FC01858580FF02C05F9808955F9A0895AC 47 | :1002E00080E091E0D5C580E091E088C584B7877F44 48 | :1002F00084BF28E10FB6F89420936000109260004C 49 | :100300000FBE87E690E09093CD008093CC0086E00E 50 | :100310008093CA001092C8002093C900539A5A9A39 51 | :100320008AB180638AB98BB180638BB983D284E050 52 | :1003300085BD5F9A579A08950F931F93CF93DF93CC 53 | :10034000D5DF2FB7F8948EE991E090931F02809348 54 | :100350001E0290932102809320022FBF2FB7F894A2 55 | :1003600089E191E090939A018093990190939C0187 56 | :1003700080939B012FBF7894CEE9D1E003E08FB743 57 | :10038000F894909122028FBF903809F180E091E0BB 58 | :10039000ABD497FD1CC0E0911E02F0911F02808338 59 | :1003A000E0911E02F0911F02CF01019690931F026F 60 | :1003B00080931E028E51924011F4D283C1839FB765 61 | :1003C000F894809122028F5F809322029FBF8FB7A3 62 | :1003D000F89410919D018FBFA89902C0113678F151 63 | :1003E000A89A80919D01882361F05D980093160181 64 | :1003F00008C089E191E0B1DE682F80E091E0DAD4B5 65 | :1004000011501123B1F780911601882351F080918A 66 | :10041000160181508093160180911601882309F4FA 67 | :100420005D9A80911701882351F0809117018150C6 68 | :100430008093170180911701882309F45C9A8FB784 69 | :10044000F894909122028FBF992369F08EE991E090 70 | :1004500084DE982F8091C80085FFFCCF9093CE005A 71 | :100460005C980093170180E091E095D42AD487CF5F 72 | :10047000DA01923049F0933061F09130F9F4E8E913 73 | :10048000F0E022E130E01EC0EAEAF0E02EE330E0E6 74 | :1004900019C0813049F0813018F0823079F408C0F9 75 | :1004A000E8EEF0E0849107C0ECEEF0E0849103C048 76 | :1004B000E0E2F1E08491282F30E004C0E0E0F0E0D9 77 | :1004C00020E030E0ED93FC93C901089528E030E08E 78 | :1004D00040E003C04F5F220F331F28173907D0F3C6 79 | :1004E000842F8295807F08958093E9008091EB00AE 80 | :1004F00081608093EB001092ED006093EC004093DC 81 | :10050000ED008091EE00881F8827881F08951092C3 82 | :10051000F40090E09093E9001092F0001092E8004F 83 | :100520001092ED008091EB008E7F8093EB009F5F37 84 | :10053000953081F708958091270288238CF403C0B9 85 | :100540008EB38823B1F08091E80082FFF9CF8091CB 86 | :10055000E8008B778093E80008958EB3882349F0F4 87 | :100560008091E80080FFF9CF8091E8008E7780933A 88 | :10057000E800089594E68091EC0080FF05C080912A 89 | :10058000E80080FF05C023C08091E80082FD1FC005 90 | :100590008EB3882311F482E008958EB3853011F470 91 | :1005A00083E008958091EB0085FF02C081E008950B 92 | :1005B0008091E10082FFDFCF8091E1008B7F80930B 93 | :1005C000E100992311F484E008959150D4CF80E0A4 94 | :1005D00008959C0140912D0250912E024617570715 95 | :1005E00018F4F90120E038C06115710511F0AB0174 96 | :1005F000F8CF8091E8008E778093E80040E050E0EB 97 | :10060000F0CF8091E80083FF02C081E008958091DF 98 | :10061000E80082FD2DC08EB3882381F18EB3853032 99 | :1006200079F18091E80080FF17C09091F20006C038 100 | :1006300081918093F100415050409F5F41155105D9 101 | :1006400011F09830A8F320E0983009F421E080916F 102 | :10065000E8008E778093E8004115510591F622233A 103 | :1006600081F606C08EB3882349F08EB3853041F001 104 | :100670008091E80082FFF6CF80E0089582E008953F 105 | :1006800083E008959C0140912D0250912E0246175F 106 | :10069000570710F490E03BC06115710511F0AB01F4 107 | :1006A000F9CF8091E8008E778093E80040E050E039 108 | :1006B000F1CF8091E80083FF02C081E0089580912E 109 | :1006C000E80082FD30C08EB3882399F18EB3853067 110 | :1006D00091F18091E80080FF1AC08091F20009C07A 111 | :1006E000F9012F5F3F4FE491E093F10041505040FA 112 | :1006F0008F5F4115510511F0883090F390E08830FC 113 | :1007000009F491E08091E8008E778093E80041152C 114 | :10071000510579F6992369F606C08EB3882349F00E 115 | :100720008EB3853041F08091E80082FFF6CF80E003 116 | :10073000089582E0089583E008959C016115710594 117 | :1007400029F48091E8008B778093E800F90120C0BC 118 | :100750008091E80083FF02C081E008958EB3882372 119 | :1007600039F18EB3853031F18091E80082FFF0CF0E 120 | :1007700006C08091F10081936150704021F080911A 121 | :10078000F2008823B1F78091E8008B778093E8002E 122 | :1007900061157105E9F606C08EB3882349F08EB362 123 | :1007A000853041F08091E80080FFF6CF80E0089529 124 | :1007B00082E0089583E0089542D044D01EBA10929A 125 | :1007C0002502109224021092230284E089BD89B58B 126 | :1007D000826089BD09B400FEFDCF8091D800982FBA 127 | :1007E0009F779093D80080688093D80080916300B1 128 | :1007F0008E7F809363008091D8008F7D8093D80096 129 | :100800008091E0008E7F8093E0008091E1008E7FF8 130 | :100810008093E1008091E20081608093E20080910A 131 | :10082000E100877F8093E1008091E20088608093FF 132 | :10083000E2000895C1DF81E08093260208951092BE 133 | :10084000E20008951092E10008951F920F920FB6F2 134 | :100850000F9211241F932F933F934F935F936F93A6 135 | :100860007F938F939F93AF93BF93EF93FF93E9EEA3 136 | :10087000F0E0108117701082E0EFF0E08081877F58 137 | :1008800080837894C3D0F894A9EEB0E01C92E0EF96 138 | :10089000F0E08081886080831C93FF91EF91BF918D 139 | :1008A000AF919F918F917F916F915F914F913F9108 140 | :1008B0002F911F910F900FBE0F901F9018951F92B0 141 | :1008C0000F920FB60F9211242F933F934F935F9384 142 | :1008D0006F937F938F939F93AF93BF93EF93FF9308 143 | :1008E0008091E10080FF1BC08091E20080FF17C073 144 | :1008F0008091E1008E7F8093E1008091E2008E7F05 145 | :100900008093E2008091E20080618093E200809118 146 | :10091000D80080628093D80019BC1EBAD1D18091D2 147 | :10092000E10084FF29C08091E20084FF25C084E0BB 148 | :1009300089BD89B5826089BD09B400FEFDCF809173 149 | :10094000D8008F7D8093D8008091E1008F7E8093C6 150 | :10095000E1008091E2008F7E8093E2008091E200CE 151 | :1009600081608093E20080912502882311F481E068 152 | :1009700001C084E08EBBA4D18091E10083FF27C039 153 | :100980008091E20083FF23C08091E100877F809304 154 | :10099000E10082E08EBB109225028091E1008E7F03 155 | :1009A0008093E1008091E2008E7F8093E20080914D 156 | :1009B000E20080618093E200AADD80E060E042E036 157 | :1009C00093DD8091F00088608093F00079D1809170 158 | :1009D000E10082FF0AC08091E20082FF06C08091A0 159 | :1009E000E1008B7F8093E1006BD1FF91EF91BF918C 160 | :1009F000AF919F918F917F916F915F914F913F91B7 161 | :100A00002F910F900FBE0F901F9018951F93DF939B 162 | :100A1000CF93CDB7DEB7AC970FB6F894DEBF0FBE5D 163 | :100A2000CDBFE7E2F2E08091F100819322E0EF3266 164 | :100A3000F207C9F78091270230912802353009F476 165 | :100A400087C0363040F43130C9F1313070F0333086 166 | :100A500009F01DC133C0383009F4EFC0393009F452 167 | :100A6000FEC0363009F013C192C0803821F08238C0 168 | :100A700009F00DC108C090912302809124028823BF 169 | :100A800099F0926011C080912B0287708093E900E9 170 | :100A90008091EB0090E025E0969587952A95E1F707 171 | :100AA000982F91701092E9008091E800877F8093E1 172 | :100AB000E8009093F1001092F100CAC0882319F069 173 | :100AC000823009F0E4C090E08F719070009721F0BF 174 | :100AD000029709F0DDC00CC080912902813009F035 175 | :100AE000D7C010922402333069F5809324022AC0C3 176 | :100AF00080912902882331F520912B02277009F477 177 | :100B0000C7C02093E9008091EB0080FFC1C0333063 178 | :100B100021F48091EB00806213C08091EB00806132 179 | :100B20008093EB0081E090E002C0880F991F2A9526 180 | :100B3000E2F78093EA001092EA008091EB0088606F 181 | :100B40008093EB001092E9008091E800877F83C0DA 182 | :100B5000882309F09CC0109129028091E800877FCA 183 | :100B60008093E800E8DC04C08EB3882309F490C0C9 184 | :100B70008091E80080FFF8CF812F8F7711F492E009 185 | :100B800001C093E09EBB80688093E30081C08058E1 186 | :100B9000823008F07CC08091290290912A0223E0E3 187 | :100BA0008C3D920799F55FB7F894DE0115964EE0FB 188 | :100BB00020E030E061E2E42FF0E0609357008491A0 189 | :100BC00020FF03C082958F704F5F982F9F70892FF1 190 | :100BD000805D8A3308F0895F8C9311961C9211977F 191 | :100BE0002F5F3F4F12962431310529F75FBF8AE20C 192 | :100BF0008B8383E08C838091E800877F8093E8007B 193 | :100C0000CE0103966AE270E0E4DC11C060912B0231 194 | :100C1000AE014F5F5F4F2CDCBC010097C9F18091A2 195 | :100C2000E800877F8093E80089819A812BDD80919D 196 | :100C3000E8008B778093E8002BC0803841F58091E5 197 | :100C4000E800877F8093E800809125028093F1007F 198 | :100C50008091E8008E778093E8006DDC19C08823CE 199 | :100C6000B1F490912902923098F48091E800877F46 200 | :100C70008093E800909325025EDC80912502882312 201 | :100C800011F483E001C084E08EBB2DDB01C028DBC2 202 | :100C90008091E80083FF0AC08091EB00806280931E 203 | :100CA000EB008091E800877F8093E800AC960FB658 204 | :100CB000F894DEBF0FBECDBFCF91DF911F91089595 205 | :100CC00008951F938EB3882361F01091E90010926C 206 | :100CD000E9008091E80083FF01C098DE177010934F 207 | :100CE000E9001F9108950895FC018EB3843021F529 208 | :100CF00087859089A189B2890097A105B105E1F0A6 209 | :100D000085818093E9008091E80082FF15C0809181 210 | :100D1000F200882319F42FEF3FEF04C08091F10017 211 | :100D2000282F30E08091F200882341F48091E80080 212 | :100D30008B778093E80002C02FEF3FEFC901089541 213 | :100D4000FC018EB3843011F587859089A189B28921 214 | :100D50000097A105B105D1F081818093E9008091D0 215 | :100D6000F2008823A9F09091E8008091E8008E7746 216 | :100D70008093E80095FD0CC0FDDB982F882349F493 217 | :100D80008091E8008E778093E80003C092E001C074 218 | :100D900090E0892F0895FC018EB3843051F487854B 219 | :100DA0009089A189B2890097A105B10511F0CF0101 220 | :100DB000C7CF08951F93FC01162F8EB38430D9F44A 221 | :100DC00087859089A189B2890097A105B10599F01D 222 | :100DD00081818093E9008091E80085FD08C08091C1 223 | :100DE000E8008E778093E800C5DB882329F4109310 224 | :100DF000F10080E001C082E01F9108950F931F93DE 225 | :100E0000CF93DF93EC010D96FC0189E0DF011D9289 226 | :100E10008A95E9F72A813B8109818C81882311F425 227 | :100E200010E001C014E0C90151DB182B1260802FC3 228 | :100E300061E8412F59DB882329F12E813F810D8103 229 | :100E40008885882311F410E001C014E0C9013EDB5D 230 | :100E5000182B1260802F60E8412F46DB882391F029 231 | :100E60002A853B8509858C85882311F410E001C013 232 | :100E700014E0C9012BDB182B1260802F61EC412F8D 233 | :100E800033DB01C080E0DF91CF911F910F91089576 234 | :100E9000CF93DF93EC018091E80083FF60C08881ED 235 | :100EA00090E020912B0230912C022817390709F08D 236 | :100EB00056C080912802813261F0823220F4803263 237 | :100EC00009F04DC019C0823269F1833209F047C080 238 | :100ED00038C080912702813A09F041C08091E80032 239 | :100EE000877F8093E800CE010F9667E070E071DBAA 240 | :100EF0008091E8008B7713C080912702813279F5C9 241 | :100F00008091E800877F8093E800CE010F9667E02C 242 | :100F100070E013DCCE013ED98091E8008E7780939B 243 | :100F2000E8001DC0809127028132C9F48091E80059 244 | :100F3000877F8093E800809129028D87CE01C8D9F0 245 | :100F40000DC080912702813251F48091E800877FA3 246 | :100F50008093E800CE0160912902C5DEECDADF91D2 247 | :100F6000CF910895A1E21A2EAA1BBB1BFD010DC053 248 | :100F7000AA1FBB1FEE1FFF1FA217B307E407F50749 249 | :100F800020F0A21BB30BE40BF50B661F771F881F25 250 | :100F9000991F1A9469F760957095809590959B01BB 251 | :0C0FA000AC01BD01CF010895F894FFCF13 252 | :100FAC0000034000000440000002080000000000A4 253 | :060FBC000000000000002F 254 | :103000004BC0000064C0000062C0000060C000004F 255 | :103010005EC000005CC000005AC0000058C0000044 256 | :1030200056C0000054C0000052C00000EEC40000B2 257 | :103030004EC000004CC000004AC0000048C0000064 258 | :1030400046C0000044C0000042C0000040C0000074 259 | :103050003EC000003CC000003AC0000038C0000084 260 | :1030600036C0000034C0000032C0000030C0000094 261 | :103070002EC000002CC000002AC0000028C00000A4 262 | :1030800026C0000024C0000022C0000020C00000B4 263 | :103090001EC000001CC0000011241FBECFEFD2E0F4 264 | :1030A000DEBFCDBF11E0A0E0B1E0EAEFFCE302C07B 265 | :1030B00005900D92AA33B107D9F711E0AAE3B1E068 266 | :1030C00001C01D92AB35B107E1F772D314C698CF9A 267 | :1030D000982F15C08091F200882371F48091E80048 268 | :1030E0008B7F8093E80003C08EB3882351F08091DA 269 | :1030F000E80082FFF9CF02C08091F100915099233E 270 | :1031000049F7089520914A01309149018091480181 271 | :103110009091470180933F0190934001C9018093B2 272 | :103120004101909342010895DF93CF9300D000D0E6 273 | :1031300000D0CDB7DEB780914501843009F45AC084 274 | :10314000853030F4813059F0833009F0D7C01FC08A 275 | :10315000853009F4A0C0863009F0D0C0C3C080918A 276 | :103160004601823008F0CAC0CDDF80914601882335 277 | :1031700061F480913F019091400123E0FC01209394 278 | :103180005700E89507B600FCFDCF85E008C08091A8 279 | :103190004601882311F0823029F4B4DF89E080935E 280 | :1031A0000101ACC0813009F0A9C020E030E040E06E 281 | :1031B00050E0F90184918F3F81F0CA01AA27BB2713 282 | :1031C00080933E013093400120933F018AE0809339 283 | :1031D000010185E080933B0191C02F5F3F4F4F4F2E 284 | :1031E0005F4F2030F0E33F07F0E04F07F0E05F076C 285 | :1031F00001F784C080914601833051F581E08093CE 286 | :103200003A0180914B0190914C01892B71F0809192 287 | :103210004701813009F072C080914A0190914901C3 288 | :1032200090933D0180933C0169C0809147018823C0 289 | :1032300061F42CE088E190E00FB6F894A8958093B3 290 | :1032400060000FBE2093600059C01092000156C06C 291 | :10325000882309F053C0809147018F3F09F04EC089 292 | :10326000E0E0F0E093E085E090935700E89507B642 293 | :1032700000FCFDCF80935700E89507B600FCFDCF1A 294 | :10328000E058FF4F20E3E030F20771F781E18093CF 295 | :103290005700E89533C0DE011196E5E0F1E083E0E8 296 | :1032A00001900D928150E1F7DE011496E2E0F1E029 297 | :1032B00083E001900D928150E1F790914701809158 298 | :1032C0004601882329F4FE01E90FF11D818107C021 299 | :1032D0008130A1F4FE01BC97E90FF11D808180933C 300 | :1032E00050010CC080914601833041F48091470128 301 | :1032F000882321F48091480180933E0126960FB6E1 302 | :10330000F894DEBF0FBECDBFCF91DF9108952F920D 303 | :103310003F924F925F926F927F929F92AF92BF9235 304 | :10332000CF92DF92EF92FF920F931F93CF93DF9391 305 | :103330008091590190915A0190934C0180934B01D7 306 | :1033400080914D01882351F080914D0181508093EF 307 | :103350004D0180914D01882309F45D9A80914E01C1 308 | :10336000882351F080914E01815080934E018091CD 309 | :103370004E01882309F45C9A80915401833009F44A 310 | :10338000B2C1843030F4813071F0823009F0E3C191 311 | :1033900011C1853009F4C5C1853008F4BAC1863041 312 | :1033A00009F0D9C1CDC15C9883E080934E01809132 313 | :1033B000E800877F8093E80080913A01882329F014 314 | :1033C000B3DE5D9A5C9A10923A0120914B013091E4 315 | :1033D0004C012115310529F42AC08EB3882309F444 316 | :1033E000BAC18091E80082FFF8CF8091F10080930C 317 | :1033F00045012150304030934C0120934B01E6E4CD 318 | :10340000F1E00CC08091F10081932150304081E0C7 319 | :10341000EB34F80719F43183208308C08091F2005F 320 | :10342000882381F730934C0120934B017DDE8091FE 321 | :103430000101853009F0BAC080914B0190914C0197 322 | :10344000892B21F482E080930101B0C08AE140DE43 323 | :1034500080913F018F713CDEC0914101D0914201CA 324 | :1034600020913F013091400121968E01021B130BE8 325 | :10347000219780914601882309F093C01801369462 326 | :103480002794C901A0913E01B0E09C01AD0162E02A 327 | :10349000E62EF12C012D112DE20EF31E041F151F37 328 | :1034A00059016A0190E099249394B5E0A3E048C0E3 329 | :1034B0008091F200882371F48091E8008B7F8093E3 330 | :1034C000E80004C08EB3882309F445C18091E80068 331 | :1034D00082FFF8CF0894210831088091F100682F0D 332 | :1034E0008091F100782FF5010B0190925700E8953B 333 | :1034F00011249F5F903419F021143104A1F4F901D3 334 | :10350000B0935700E89507B600FCFDCF21143104B5 335 | :1035100051F0F701A0935700E89507B600FCFDCFE6 336 | :10352000A801970190E042E0442E512C612C712CAF 337 | :10353000E40CF51C061D171DA40CB51CC61CD71CDD 338 | :103540002114310409F0B4CFD0934001C0933F015E 339 | :1035500081E180935700E89527C08091F20088238D 340 | :1035600071F48091E8008B7F8093E80004C08EB3F3 341 | :10357000882309F4F0C08091E80082FFF8CF6091C1 342 | :10358000F10080913F0190914001A7D380913F01CC 343 | :103590009091400101969093400180933F0101502A 344 | :1035A000104001151105C9F680E192DD8091E80017 345 | :1035B0008B7FC3C08091E800877F8093E8005D988F 346 | :1035C00083E080934D0104C08EB3882309F4C3C007 347 | :1035D0008091E80080FFF8CF80910101893091F05F 348 | :1035E0008A3069F480914601813049F480913F012D 349 | :1035F000909140018093F1009093F1009BC08091E5 350 | :10360000500196C0609141017091420120913F01AB 351 | :10361000309140016F5F7F4F7B01E21AF30A6150E6 352 | :10362000704080914601882389F58701169507959A 353 | :10363000C901A0913E01B0E09C01AD011FC0809185 354 | :10364000F200803271F48091E8008E7F8093E80070 355 | :1036500004C08EB3882309F47EC08091E80080FF07 356 | :10366000F8CFF901859194918093F1009093F10046 357 | :10367000015010402E5F3F4F4F4F5F4F0115110516 358 | :10368000F1F67093400160933F0129C0823039F513 359 | :1036900023C08091F200803271F48091E8008E7F27 360 | :1036A0008093E80004C08EB3882309F454C080914D 361 | :1036B000E80080FFF8CF00913F0110914001C80160 362 | :1036C00004D38093F1000F5F1F4F109340010093CC 363 | :1036D0003F010894E108F108E114F104D1F682E019 364 | :1036E0008093010127C08091E800877F8093E800E4 365 | :1036F00080913B018093F1001092F1001092F10053 366 | :103700001092F100809101018093F1001092F1007C 367 | :1037100011C08091E800877F8093E80010923B0100 368 | :1037200019C08091E800877F8093E80080910101B3 369 | :103730008093F1008091E8008E7F8093E8000AC0BA 370 | :103740008091E800877F8093E8005D9A5C9A82E030 371 | :103750008093010187D0DF91CF911F910F91FF904E 372 | :10376000EF90DF90CF90BF90AF909F907F906F9041 373 | :103770005F904F903F902F9008952BD181E085BFAF 374 | :1037800015BE089584B7877F84BF88E10FB6F8948B 375 | :1037900080936000109260000FBE81E085BF82E0E0 376 | :1037A00085BF8AB180638AB98BB180638BB90CC144 377 | :1037B000E9DF789401C080D2809100018823D9F795 378 | :1037C00080913A018823B9F7D8DFE0913C01F0916C 379 | :1037D0003D010995FA01923071F0933089F09130F2 380 | :1037E00029F488E091E022E130E019C080E090E027 381 | :1037F00020E030E014C08AE191E02BE130E00FC01E 382 | :10380000882339F480913501282F30E085E391E059 383 | :1038100006C080914301282F30E083E491E091833A 384 | :103820008083C90108958091EB0081608093EB0053 385 | :103830001092ED006093EC004093ED008091EE005B 386 | :10384000881F8827881F08951092F4001092F000B6 387 | :103850001092E8001092ED00EBEEF0E080818E7F98 388 | :10386000808308958091530188238CF403C08EB324 389 | :103870008823B1F08091E80082FFF9CF8091E800C1 390 | :103880008B7F8093E80008958EB3882349F0809160 391 | :10389000E80080FFF9CF8091E8008E7F8093E800F8 392 | :1038A00008959C014091590150915A0146175707BC 393 | :1038B00018F4F90120E038C06115710511F0AB0171 394 | :1038C000F8CF8091E8008E7F8093E80040E050E0E0 395 | :1038D000F0CF8091E80083FF02C081E008958091DD 396 | :1038E000E80082FD2DC08EB3882381F18EB3853030 397 | :1038F00079F18091E80080FF17C09091F20006C036 398 | :1039000081918093F100415050409F5F41155105D6 399 | :1039100011F09032A8F320E0903209F421E0809178 400 | :10392000E8008E7F8093E8004115510591F622232F 401 | :1039300081F606C08EB3882349F08EB3853041F0FE 402 | :103940008091E80082FFF6CF80E0089582E008953C 403 | :1039500083E0089554D056D01EBA1092510184E0ED 404 | :1039600089BD89B5826089BD09B400FEFDCF809113 405 | :10397000D800982F9F779093D80080688093D800C4 406 | :10398000809163008E7F809363008091D8008F7D4B 407 | :103990008093D8008091E0008E7F8093E00080913A 408 | :1039A000E1008E7F8093E1008091E200816080934E 409 | :1039B000E2008091E100877F8093E1008091E20046 410 | :1039C00088608093E2000895C5DF81E08093520112 411 | :1039D0000895C0DFE0EEF0E0808181608083E8ED53 412 | :1039E000F0E080818F7780830AD00CD019BCE3E6A9 413 | :1039F000F0E08081816080831092520108951092DE 414 | :103A0000E20008951092E10008951F920F920FB600 415 | :103A10000F9211242F933F934F935F936F937F9354 416 | :103A20008F939F93AF93BF93EF93FF938091E100A8 417 | :103A300080FF1BC08091E20080FF17C08091E100F1 418 | :103A40008E7F8093E1008091E2008E7F8093E20080 419 | :103A50008091E20080618093E2008091D8008062D2 420 | :103A60008093D80019BC1EBA26D18091E10084FF52 421 | :103A700029C08091E20084FF25C084E089BD89B51A 422 | :103A8000826089BD09B400FEFDCF8091D8008F7D92 423 | :103A90008093D8008091E1008F7E8093E100809137 424 | :103AA000E2008F7E8093E2008091E200816080934B 425 | :103AB000E20080915101882311F481E001C084E08B 426 | :103AC0008EBBF9D08091E10083FF22C08091E2009B 427 | :103AD00083FF1EC08091E100877F8093E10082E038 428 | :103AE0008EBB109251018091E1008E7F8093E100A6 429 | :103AF0008091E2008E7F8093E2008091E2008061FD 430 | :103B00008093E200A1DE80E060E042E28CDED3D070 431 | :103B10008091E10082FF0AC08091E20082FF06C02E 432 | :103B20008091E1008B7F8093E100C5D0FF91EF9100 433 | :103B3000BF91AF919F918F917F916F915F914F91C5 434 | :103B40003F912F910F900FBE0F901F9018951F93CC 435 | :103B5000DF93CF9300D0CDB7DEB7E3E5F1E08091FE 436 | :103B6000F100819381E0EB35F807C9F7909153019B 437 | :103B700080915401853011F1863040F48130B9F0E4 438 | :103B8000813070F0833009F081C011C0883009F4B1 439 | :103B900053C0893009F462C0863009F077C02DC067 440 | :103BA000903809F474C0923809F070C070C099233D 441 | :103BB00009F46DC0923009F069C069C0992309F019 442 | :103BC00065C0109155018091E800877F8093E800DF 443 | :103BD00049DE04C08EB3882309F459C08091E800FF 444 | :103BE00080FFF8CF812F8F7711F492E001C093E02E 445 | :103BF0009EBB80688093E3004AC09058923008F0E2 446 | :103C000045C0809155019091560160915701AE01D8 447 | :103C10004F5F5F4FDFDDBC010097C9F18091E80085 448 | :103C2000877F8093E80089819A813BDE8091E8005C 449 | :103C30008B7F8093E8002BC0903841F58091E8009D 450 | :103C4000877F8093E800809151018093F1008091FB 451 | :103C5000E8008E7F8093E80005DE19C09923B1F457 452 | :103C600090915501923098F48091E800877F80937D 453 | :103C7000E80090935101F6DD80915101882311F401 454 | :103C800083E001C084E08EBB16D001C040DB809190 455 | :103C9000E80083FF0AC08091EB0080628093EB0014 456 | :103CA0008091E800877F8093E8000F900F90CF917C 457 | :103CB000DF911F91089508958EB3882329F0809194 458 | :103CC000E80083FF01C043CF0895F999FECF92BD6C 459 | :103CD00081BDF89A992780B50895262FF999FECFCE 460 | :103CE0001FBA92BD81BD20BD0FB6F894FA9AF99A19 461 | :0A3CF0000FBE01960895F894FFCF6F 462 | :103CFA0001021E948920DCFB120110010000002041 463 | :103D0A00EB03EF2F00000001000109021B00010173 464 | :103D1A000080320904000000FE01020009210300AC 465 | :0A3D2A0000000C000104030904006E 466 | :0400000300003000C9 467 | :00000001FF 468 | -------------------------------------------------------------------------------- /compiled_firmwares/usbserial_uno_8u2.hex: -------------------------------------------------------------------------------- 1 | :200000009CC00000B5C00000B3C00000B1C00000AFC00000ADC00000ABC00000A9C000007B 2 | :20002000A7C00000A5C00000A3C0000054C4000018C400009DC000009BC0000099C000008C 3 | :2000400097C0000095C0000093C0000091C000008FC000008DC000008BC000000EC100009A 4 | :2000600087C0000085C0000083C0000081C000007FC000007DC000007BC0000079C0000080 5 | :2000800077C0000075C0000073C0000071C000006FC000006DC00000120110010200000806 6 | :2000A0004123010001000102DC0109023E00020100C032090400000102020100052400017F 7 | :2000C00010042402060524060001070582030800FF09040100020A000000070504024000AC 8 | :2000E0000107058302400001040309043203410072006400750069006E006F0020002800CA 9 | :200100007700770077002E00610072006400750069006E006F002E0063006300290000003D 10 | :200120001803410072006400750069006E006F00200055006E006F00000011241FBECFEFB0 11 | :20014000D2E0DEBFCDBF11E0A0E0B1E0E4ECFFE002C005900D92A631B107D9F712E0A6E145 12 | :20016000B1E001C01D92AF32B107E1F7F1D028C747CF9C01DC01AE57BF4FED91FC91119707 13 | :2001800041911196FC93EE9380589F4FE817F90711F42D933C939FB7F894F901EC57FF4F10 14 | :2001A0008081815080839FBF842F0895DF92EF92FF920F931F93FC018489813019F082306F 15 | :2001C00021F405C040E3D42E04C0DD2402C030E2D32E8389823011F488E0D82A8589873094 16 | :2001E00031F0883031F0863031F482E003C084E001C086E0D82A1092C9001092C800109201 17 | :20020000CA00E784F0880189128980E0E81681EEF80680E0080780E0180719F420E130E035 18 | :200220000FC0C801B701969587957795679560587B47814E9F4FA8019701A0D62150304050 19 | :200240003093CD002093CC00D092CA0080E0E81681EEF80680E0080780E0180711F082E047 20 | :2002600001C080E08093C80088E98093C9001F910F91FF90EF90DF9008951F920F920FB6B4 21 | :200280000F9211242F938F939F93EF93FF939091CE008EB38430F1F4E0919901F0919A016E 22 | :2002A0009083E0919901F0919A01CF01019690939A01809399018959914021F489E191E08F 23 | :2002C000928381839FB7F89480919D018F5F80939D019FBFFF91EF919F918F912F910F90B8 24 | :2002E0000FBE0F901F901895FC01858580FF02C05F9808955F9A089580E091E0D5C580E0F9 25 | :2003000091E088C584B7877F84BF28E10FB6F89420936000109260000FBE87E690E090935F 26 | :20032000CD008093CC0086E08093CA001092C8002093C900539A5A9A8AB180638AB98BB16A 27 | :2003400080638BB983D284E085BD5F9A579A08950F931F93CF93DF93D5DF2FB7F8948EE92F 28 | :2003600091E090931F0280931E0290932102809320022FBF2FB7F89489E191E090939A0121 29 | :200380008093990190939C0180939B012FBF7894CEE9D1E003E08FB7F894909122028FBF97 30 | :2003A000903809F180E091E0ABD497FD1CC0E0911E02F0911F028083E0911E02F0911F0252 31 | :2003C000CF01019690931F0280931E028E51924011F4D283C1839FB7F894809122028F5FEB 32 | :2003E000809322029FBF8FB7F89410919D018FBFA89902C0113678F1A89A80919D018823BA 33 | :2004000061F05D980093160108C089E191E0B1DE682F80E091E0DAD411501123B1F7809156 34 | :200420001601882351F08091160181508093160180911601882309F45D9A809117018823FB 35 | :2004400051F08091170181508093170180911701882309F45C9A8FB7F894909122028FBF0A 36 | :20046000992369F08EE991E084DE982F8091C80085FFFCCF9093CE005C980093170180E03E 37 | :2004800091E095D42AD487CFDA01923049F0933061F09130F9F4E8E9F0E022E130E01EC004 38 | :2004A000EAEAF0E02EE330E019C0813049F0813018F0823079F408C0E8EEF0E0849107C092 39 | :2004C000ECEEF0E0849103C0E0E2F1E08491282F30E004C0E0E0F0E020E030E0ED93FC9318 40 | :2004E000C901089528E030E040E003C04F5F220F331F28173907D0F3842F8295807F0895C1 41 | :200500008093E9008091EB0081608093EB001092ED006093EC004093ED008091EE00881F30 42 | :200520008827881F08951092F40090E09093E9001092F0001092E8001092ED008091EB000F 43 | :200540008E7F8093EB009F5F953081F708958091270288238CF403C08EB38823B1F08091F2 44 | :20056000E80082FFF9CF8091E8008B778093E80008958EB3882349F08091E80080FFF9CF52 45 | :200580008091E8008E778093E800089594E68091EC0080FF05C08091E80080FF05C023C0EA 46 | :2005A0008091E80082FD1FC08EB3882311F482E008958EB3853011F483E008958091EB00FD 47 | :2005C00085FF02C081E008958091E10082FFDFCF8091E1008B7F8093E100992311F484E0A1 48 | :2005E00008959150D4CF80E008959C0140912D0250912E024617570718F4F90120E038C076 49 | :200600006115710511F0AB01F8CF8091E8008E778093E80040E050E0F0CF8091E80083FFF7 50 | :2006200002C081E008958091E80082FD2DC08EB3882381F18EB3853079F18091E80080FF5F 51 | :2006400017C09091F20006C081918093F100415050409F5F4115510511F09830A8F320E0A5 52 | :20066000983009F421E08091E8008E778093E8004115510591F6222381F606C08EB388231A 53 | :2006800049F08EB3853041F08091E80082FFF6CF80E0089582E0089583E008959C01409151 54 | :2006A0002D0250912E024617570710F490E03BC06115710511F0AB01F9CF8091E8008E7771 55 | :2006C0008093E80040E050E0F1CF8091E80083FF02C081E008958091E80082FD30C08EB32B 56 | :2006E000882399F18EB3853091F18091E80080FF1AC08091F20009C0F9012F5F3F4FE491A4 57 | :20070000E093F100415050408F5F4115510511F0883090F390E0883009F491E08091E800EF 58 | :200720008E778093E8004115510579F6992369F606C08EB3882349F08EB3853041F0809160 59 | :20074000E80082FFF6CF80E0089582E0089583E008959C016115710529F48091E8008B77CE 60 | :200760008093E800F90120C08091E80083FF02C081E008958EB3882339F18EB3853031F13B 61 | :200780008091E80082FFF0CF06C08091F10081936150704021F08091F2008823B1F780916B 62 | :2007A000E8008B778093E80061157105E9F606C08EB3882349F08EB3853041F08091E8007E 63 | :2007C00080FFF6CF80E0089582E0089583E0089542D044D01EBA10922502109224021092A8 64 | :2007E000230284E089BD89B5826089BD09B400FEFDCF8091D800982F9F779093D800806894 65 | :200800008093D800809163008E7F809363008091D8008F7D8093D8008091E0008E7F809305 66 | :20082000E0008091E1008E7F8093E1008091E20081608093E2008091E100877F8093E10030 67 | :200840008091E20088608093E2000895C1DF81E08093260208951092E20008951092E100AE 68 | :2008600008951F920F920FB60F9211241F932F933F934F935F936F937F938F939F93AF932A 69 | :20088000BF93EF93FF93E9EEF0E0108117701082E0EFF0E08081877F80837894C3D0F894CD 70 | :2008A000A9EEB0E01C92E0EFF0E08081886080831C93FF91EF91BF91AF919F918F917F9129 71 | :2008C0006F915F914F913F912F911F910F900FBE0F901F9018951F920F920FB60F921124B4 72 | :2008E0002F933F934F935F936F937F938F939F93AF93BF93EF93FF938091E10080FF1BC034 73 | :200900008091E20080FF17C08091E1008E7F8093E1008091E2008E7F8093E2008091E200B3 74 | :2009200080618093E2008091D80080628093D80019BC1EBAD1D18091E10084FF29C080916D 75 | :20094000E20084FF25C084E089BD89B5826089BD09B400FEFDCF8091D8008F7D8093D800D6 76 | :200960008091E1008F7E8093E1008091E2008F7E8093E2008091E20081608093E2008091B5 77 | :200980002502882311F481E001C084E08EBBA4D18091E10083FF27C08091E20083FF23C089 78 | :2009A0008091E100877F8093E10082E08EBB109225028091E1008E7F8093E1008091E200F1 79 | :2009C0008E7F8093E2008091E20080618093E200AADD80E060E042E093DD8091F0008860AA 80 | :2009E0008093F00079D18091E10082FF0AC08091E20082FF06C08091E1008B7F8093E10043 81 | :200A00006BD1FF91EF91BF91AF919F918F917F916F915F914F913F912F910F900FBE0F902F 82 | :200A20001F9018951F93DF93CF93CDB7DEB7AC970FB6F894DEBF0FBECDBFE7E2F2E0809185 83 | :200A4000F100819322E0EF32F207C9F78091270230912802353009F487C0363040F43130EC 84 | :200A6000C9F1313070F0333009F01DC133C0383009F4EFC0393009F4FEC0363009F013C163 85 | :200A800092C0803821F0823809F00DC108C09091230280912402882399F0926011C080916D 86 | :200AA0002B0287708093E9008091EB0090E025E0969587952A95E1F7982F91701092E90074 87 | :200AC0008091E800877F8093E8009093F1001092F100CAC0882319F0823009F0E4C090E078 88 | :200AE0008F719070009721F0029709F0DDC00CC080912902813009F0D7C0109224023330AB 89 | :200B000069F5809324022AC080912902882331F520912B02277009F4C7C02093E9008091A1 90 | :200B2000EB0080FFC1C0333021F48091EB00806213C08091EB0080618093EB0081E090E0F5 91 | :200B400002C0880F991F2A95E2F78093EA001092EA008091EB0088608093EB001092E900F6 92 | :200B60008091E800877F83C0882309F09CC0109129028091E800877F8093E800E8DC04C0E5 93 | :200B80008EB3882309F490C08091E80080FFF8CF812F8F7711F492E001C093E09EBB80683B 94 | :200BA0008093E30081C08058823008F07CC08091290290912A0223E08C3D920799F55FB7AE 95 | :200BC000F894DE0115964EE020E030E061E2E42FF0E060935700849120FF03C082958F7044 96 | :200BE0004F5F982F9F70892F805D8A3308F0895F8C9311961C9211972F5F3F4F129624310A 97 | :200C0000310529F75FBF8AE28B8383E08C838091E800877F8093E800CE0103966AE270E076 98 | :200C2000E4DC11C060912B02AE014F5F5F4F2CDCBC010097C9F18091E800877F8093E800EA 99 | :200C400089819A812BDD8091E8008B778093E8002BC0803841F58091E800877F8093E8009E 100 | :200C6000809125028093F1008091E8008E778093E8006DDC19C08823B1F4909129029230BF 101 | :200C800098F48091E800877F8093E800909325025EDC80912502882311F483E001C084E0DA 102 | :200CA0008EBB2DDB01C028DB8091E80083FF0AC08091EB0080628093EB008091E800877FFF 103 | :200CC0008093E800AC960FB6F894DEBF0FBECDBFCF91DF911F91089508951F938EB3882338 104 | :200CE00061F01091E9001092E9008091E80083FF01C098DE17701093E9001F9108950895DF 105 | :200D0000FC018EB3843021F587859089A189B2890097A105B105E1F085818093E90080916A 106 | :200D2000E80082FF15C08091F200882319F42FEF3FEF04C08091F100282F30E08091F2003E 107 | :200D4000882341F48091E8008B778093E80002C02FEF3FEFC9010895FC018EB3843011F550 108 | :200D600087859089A189B2890097A105B105D1F081818093E9008091F2008823A9F09091CF 109 | :200D8000E8008091E8008E778093E80095FD0CC0FDDB982F882349F48091E8008E7780937C 110 | :200DA000E80003C092E001C090E0892F0895FC018EB3843051F487859089A189B289009738 111 | :200DC000A105B10511F0CF01C7CF08951F93FC01162F8EB38430D9F487859089A189B28973 112 | :200DE0000097A105B10599F081818093E9008091E80085FD08C08091E8008E778093E8003D 113 | :200E0000C5DB882329F41093F10080E001C082E01F9108950F931F93CF93DF93EC010D964E 114 | :200E2000FC0189E0DF011D928A95E9F72A813B8109818C81882311F410E001C014E0C901A1 115 | :200E400051DB182B1260802F61E8412F59DB882329F12E813F810D818885882311F410E0A6 116 | :200E600001C014E0C9013EDB182B1260802F60E8412F46DB882391F02A853B8509858C8563 117 | :200E8000882311F410E001C014E0C9012BDB182B1260802F61EC412F33DB01C080E0DF916D 118 | :200EA000CF911F910F910895CF93DF93EC018091E80083FF60C0888190E020912B02309171 119 | :200EC0002C022817390709F056C080912802813261F0823220F4803209F04DC019C082320A 120 | :200EE00069F1833209F047C038C080912702813A09F041C08091E800877F8093E800CE0133 121 | :200F00000F9667E070E071DB8091E8008B7713C080912702813279F58091E800877F80930E 122 | :200F2000E800CE010F9667E070E013DCCE013ED98091E8008E778093E8001DC080912702D9 123 | :200F40008132C9F48091E800877F8093E800809129028D87CE01C8D90DC0809127028132AD 124 | :200F600051F48091E800877F8093E800CE0160912902C5DEECDADF91CF910895A1E21A2EA6 125 | :200F8000AA1BBB1BFD010DC0AA1FBB1FEE1FFF1FA217B307E407F50720F0A21BB30BE40B49 126 | :200FA000F50B661F771F881F991F1A9469F760957095809590959B01AC01BD01CF01089501 127 | :200FC000F894FFCF00034000000440000002080000000000000000000000FFFFFFFFFFFF2C 128 | :200FE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11 129 | :201000004BC0000064C0000062C0000060C000005EC000005CC000005AC0000058C00000F3 130 | :2010200056C0000054C0000052C00000CBC400004EC000004CC000004AC0000048C00000B9 131 | :2010400046C0000044C0000042C0000040C000003EC000003CC000003AC0000038C0000098 132 | :2010600036C0000034C0000032C0000030C000002EC000002CC000002AC0000028C00000F8 133 | :2010800026C0000024C0000022C0000020C000001EC000001CC0000011241FBECFEFD2E088 134 | :2010A000DEBFCDBF11E0A0E0B1E0E4EBFCE102C005900D92AC35B107D9F711E0ACE5B1E0E7 135 | :2010C00001C01D92AB37B107E1F74FD3F1C598CF982F15C08091F200882371F48091E80047 136 | :2010E0008B7F8093E80003C08EB3882351F08091E80082FFF9CF02C08091F1009150992358 137 | :2011000049F7089520916A013091690180916801909167018093610190936201C9018093D0 138 | :20112000630190936401089580916501843009F45AC0853030F4813059F0833009F0C3C0E2 139 | :201140001FC0853009F4A0C0863009F0BCC0AFC080916601823008F0B6C0D4DF8091660141 140 | :20116000882361F4809161019091620123E0FC0120935700E89507B600FCFDCF85E008C03F 141 | :2011800080916601882311F0823029F4BBDF89E0809301010895813009F095C020E030E098 142 | :2011A00040E050E0F90184918F3F81F0CA01AA27BB278093600130936201209361018AE0FA 143 | :2011C0008093010185E080935D0108952F5F3F4F4F4F5F4F2030F0E13F07F0E04F07F0E0C2 144 | :2011E0005F0701F7089580916601833051F581E080935C0180916B0190916C01892B71F092 145 | :2012000080916701813009F05EC080916A019091690190935F0180935E010895809167017B 146 | :20122000882361F42CE088E190E00FB6F894A895809360000FBE20936000089510920001A8 147 | :201240000895882309F03FC0809167018F3F09F03AC0E0E0F0E093E085E090935700E895B5 148 | :2012600007B600FCFDCF80935700E89507B600FCFDCFE058FF4F20E1E030F20771F781E123 149 | :2012800080935700E8950895E091670180916601882321F4F0E0EB5FFE4F05C0813099F44F 150 | :2012A000F0E0EE52FF4F808180937001089580916601833041F480916701882321F4809104 151 | :2012C00068018093600108952F923F924F925F926F927F929F92AF92BF92CF92DF92EF9208 152 | :2012E000FF920F931F93CF93DF938091790190917A0190936C0180936B0180916D018823D5 153 | :2013000051F080916D01815080936D0180916D01882309F45D9A80916E01882351F0809120 154 | :201320006E01815080936E0180916E01882309F45C9A80917401833009F4B2C1843030F44C 155 | :20134000813071F0823009F0E3C111C1853009F4C5C1853008F4BAC1863009F0D9C1CDC11F 156 | :201360005C9883E080936E018091E800877F8093E80080915C01882329F0D6DE5D9A5C9AC7 157 | :2013800010925C0120916B0130916C012115310529F42AC08EB3882309F4BAC18091E80033 158 | :2013A00082FFF8CF8091F100809365012150304030936C0120936B01E6E6F1E00CC08091C0 159 | :2013C000F10081932150304081E0EB36F80719F43183208308C08091F200882381F7309391 160 | :2013E0006C0120936B01A0DE80910101853009F0BAC080916B0190916C01892B21F482E072 161 | :2014000080930101B0C08AE163DE809161018F715FDEC0916301D09164012091610130919C 162 | :20142000620121968E01021B130B219780916601882309F093C0180136942794C901A09108 163 | :201440006001B0E09C01AD0162E0E62EF12C012D112DE20EF31E041F151F59016A0190E0E4 164 | :2014600099249394B5E0A3E048C08091F200882371F48091E8008B7F8093E80004C08EB352 165 | :20148000882309F445C18091E80082FFF8CF0894210831088091F100682F8091F100782F1D 166 | :2014A000F5010B0190925700E89511249F5F903419F021143104A1F4F901B0935700E89524 167 | :2014C00007B600FCFDCF2114310451F0F701A0935700E89507B600FCFDCFA801970190E0A7 168 | :2014E00042E0442E512C612C712CE40CF51C061D171DA40CB51CC61CD71C2114310409F0A0 169 | :20150000B4CFD0936201C093610181E180935700E89527C08091F200882371F48091E80091 170 | :201520008B7F8093E80004C08EB3882309F4F0C08091E80082FFF8CF6091F10080916101B3 171 | :2015400090916201A7D3809161019091620101969093620180936101015010400115110537 172 | :20156000C9F680E1B5DD8091E8008B7FC3C08091E800877F8093E8005D9883E080936D0160 173 | :2015800004C08EB3882309F4C3C08091E80080FFF8CF80910101893091F08A3069F4809167 174 | :2015A0006601813049F480916101909162018093F1009093F1009BC08091700196C06091A3 175 | :2015C00063017091640120916101309162016F5F7F4F7B01E21AF30A615070408091660120 176 | :2015E000882389F5870116950795C901A0916001B0E09C01AD011FC08091F200803271F4C3 177 | :201600008091E8008E7F8093E80004C08EB3882309F47EC08091E80080FFF8CFF90185918F 178 | :2016200094918093F1009093F100015010402E5F3F4F4F4F5F4F01151105F1F670936201EC 179 | :201640006093610129C0823039F523C08091F200803271F48091E8008E7F8093E80004C0AA 180 | :201660008EB3882309F454C08091E80080FFF8CF0091610110916201C80104D38093F10093 181 | :201680000F5F1F4F10936201009361010894E108F108E114F104D1F682E08093010127C0E6 182 | :2016A0008091E800877F8093E80080915D018093F1001092F1001092F1001092F1008091F3 183 | :2016C00001018093F1001092F10011C08091E800877F8093E80010925D0119C08091E800D4 184 | :2016E000877F8093E800809101018093F1008091E8008E7F8093E8000AC08091E800877F08 185 | :201700008093E8005D9A5C9A82E08093010187D0DF91CF911F910F91FF90EF90DF90CF9017 186 | :20172000BF90AF909F907F906F905F904F903F902F9008952BD181E085BF15BE089584B799 187 | :20174000877F84BF88E10FB6F89480936000109260000FBE81E085BF82E085BF8AB18063DB 188 | :201760008AB98BB180638BB90CC1E9DF789401C080D2809100018823D9F780915C01882369 189 | :20178000B9F7D8DFE0915E01F0915F010995FA01923071F0933089F0913029F488E091E082 190 | :2017A00022E130E019C080E090E020E030E014C08AE191E02BE130E00FC0882339F48091D9 191 | :2017C0003501282F30E085E391E006C080913901282F30E089E391E091838083C9010895C0 192 | :2017E0008091EB0081608093EB001092ED006093EC004093ED008091EE00881F8827881FE4 193 | :2018000008951092F4001092F0001092E8001092ED00EBEEF0E080818E7F80830895809182 194 | :20182000730188238CF403C08EB38823B1F08091E80082FFF9CF8091E8008B7F8093E80079 195 | :2018400008958EB3882349F08091E80080FFF9CF8091E8008E7F8093E80008959C0140917A 196 | :20186000790150917A014617570718F4F90120E038C06115710511F0AB01F8CF8091E80080 197 | :201880008E7F8093E80040E050E0F0CF8091E80083FF02C081E008958091E80082FD2DC091 198 | :2018A0008EB3882381F18EB3853079F18091E80080FF17C09091F20006C081918093F1002C 199 | :2018C000415050409F5F4115510511F09032A8F320E0903209F421E08091E8008E7F809306 200 | :2018E000E8004115510591F6222381F606C08EB3882349F08EB3853041F08091E80082FF85 201 | :20190000F6CF80E0089582E0089583E0089554D056D01EBA1092710184E089BD89B5826006 202 | :2019200089BD09B400FEFDCF8091D800982F9F779093D80080688093D800809163008E7FC5 203 | :20194000809363008091D8008F7D8093D8008091E0008E7F8093E0008091E1008E7F80932E 204 | :20196000E1008091E20081608093E2008091E100877F8093E1008091E20088608093E20001 205 | :201980000895C5DF81E0809372010895C0DFE0EEF0E0808181608083E8EDF0E080818F77B4 206 | :2019A00080830AD00CD019BCE3E6F0E08081816080831092720108951092E20008951092A6 207 | :2019C000E10008951F920F920FB60F9211242F933F934F935F936F937F938F939F93AF938A 208 | :2019E000BF93EF93FF938091E10080FF1BC08091E20080FF17C08091E1008E7F8093E100F9 209 | :201A00008091E2008E7F8093E2008091E20080618093E2008091D80080628093D80019BC7D 210 | :201A20001EBA26D18091E10084FF29C08091E20084FF25C084E089BD89B5826089BD09B451 211 | :201A400000FEFDCF8091D8008F7D8093D8008091E1008F7E8093E1008091E2008F7E8093D6 212 | :201A6000E2008091E20081608093E20080917101882311F481E001C084E08EBBF9D08091DF 213 | :201A8000E10083FF22C08091E20083FF1EC08091E100877F8093E10082E08EBB1092710103 214 | :201AA0008091E1008E7F8093E1008091E2008E7F8093E2008091E20080618093E200A1DEF6 215 | :201AC00080E060E042E28CDED3D08091E10082FF0AC08091E20082FF06C08091E1008B7FC2 216 | :201AE0008093E100C5D0FF91EF91BF91AF919F918F917F916F915F914F913F912F910F905E 217 | :201B00000FBE0F901F9018951F93DF93CF9300D0CDB7DEB7E3E7F1E08091F100819381E07C 218 | :201B2000EB37F807C9F79091730180917401853011F1863040F48130B9F0813070F08330EA 219 | :201B400009F081C011C0883009F453C0893009F462C0863009F077C02DC0903809F474C00E 220 | :201B6000923809F070C070C0992309F46DC0923009F069C069C0992309F065C0109175015E 221 | :201B80008091E800877F8093E80049DE04C08EB3882309F459C08091E80080FFF8CF812F6F 222 | :201BA0008F7711F492E001C093E09EBB80688093E3004AC09058923008F045C08091750105 223 | :201BC0009091760160917701AE014F5F5F4FDFDDBC010097C9F18091E800877F8093E80035 224 | :201BE00089819A813BDE8091E8008B7F8093E8002BC0903841F58091E800877F8093E800C6 225 | :201C0000809171018093F1008091E8008E7F8093E80005DE19C09923B1F4909175019230C6 226 | :201C200098F48091E800877F8093E80090937101F6DD80917101882311F483E001C084E0FB 227 | :201C40008EBB16D001C040DB8091E80083FF0AC08091EB0080628093EB008091E800877F59 228 | :201C60008093E8000F900F90CF91DF911F91089508958EB3882329F08091E80083FF01C030 229 | :201C800043CF0895F999FECF92BD81BDF89A992780B50895262FF999FECF1FBA92BD81BD6B 230 | :201CA00020BD0FB6F894FA9AF99A0FBE01960895F894FFCF01021E938220DCFB1201100123 231 | :201CC00000000020EB03F72F00000001000109021B0001010080320904000000FE010200E6 232 | :201CE0000921030000000C0001040309042003410072006400750069006E006F002000552C 233 | :101D0000006E006F002000440046005500000000F7 234 | :00000001FF 235 | -------------------------------------------------------------------------------- /example_sketches/midi_input/midi_input.ino: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////// 2 | // midi_input.ino // 3 | // Example: MIDI Input // 4 | // https://github.com/ddiakopoulos/hiduino // 5 | // Last Updated: 17 December 2015 // 6 | /////////////////////////////////////////////////////////// 7 | 8 | #include 9 | 10 | MIDI_CREATE_DEFAULT_INSTANCE(); 11 | 12 | void HandleNoteOn(byte channel, byte pitch, byte velocity) 13 | { 14 | // Do something here with your data! 15 | } 16 | 17 | void HandleCC(byte channel, byte pitch, byte velocity) 18 | { 19 | // Do something here with your data! 20 | } 21 | 22 | void HandleNoteOff(byte channel, byte pitch, byte velocity) 23 | { 24 | // Do something here with your data! 25 | } 26 | 27 | void setup() 28 | { 29 | 30 | MIDI.begin(MIDI_CHANNEL_OMNI); 31 | 32 | // As of the MIDI Library v3.1, the lib uses C style function 33 | // pointers to create a callback system for handling input events. 34 | MIDI.setHandleNoteOn(HandleNoteOn); 35 | MIDI.setHandleControlChange(HandleCC); 36 | MIDI.setHandleNoteOff(HandleNoteOff); 37 | 38 | } 39 | 40 | void loop() 41 | { 42 | MIDI.read(); 43 | } 44 | -------------------------------------------------------------------------------- /example_sketches/midi_input_output/midi_input_output.ino: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////// 2 | // midi_input_output.ino // 3 | // Example: MIDI input & MIDI output // 4 | // https://github.com/ddiakopoulos/hiduino // 5 | // Last Updated: 17 December 2015 // 6 | /////////////////////////////////////////////////////////// 7 | 8 | #include 9 | 10 | MIDI_CREATE_DEFAULT_INSTANCE(); 11 | 12 | const int ledPin = 13; 13 | 14 | long previousMillis = 0; 15 | long interval = 1000; 16 | 17 | void HandleNoteOn(byte channel, byte pitch, byte velocity) 18 | { 19 | digitalWrite(ledPin, HIGH); 20 | delay(50); 21 | digitalWrite(ledPin, LOW); 22 | } 23 | 24 | 25 | void setup() 26 | { 27 | pinMode(13, OUTPUT); 28 | 29 | MIDI.begin(MIDI_CHANNEL_OMNI); 30 | MIDI.setHandleNoteOn(HandleNoteOn); 31 | } 32 | 33 | void loop() 34 | { 35 | unsigned long currentMillis = millis(); 36 | 37 | if(currentMillis - previousMillis > interval) 38 | { 39 | MIDI.sendNoteOn(60, 60, 1); 40 | previousMillis = currentMillis; 41 | } 42 | 43 | MIDI.read(); 44 | } 45 | -------------------------------------------------------------------------------- /example_sketches/midi_output/midi_output.ino: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////// 2 | // midi_output.ino // 3 | // Example: MIDI Output // 4 | // https://github.com/ddiakopoulos/hiduino // 5 | // Last Updated: 17 December 2015 // 6 | /////////////////////////////////////////////////////////// 7 | 8 | #include 9 | 10 | MIDI_CREATE_DEFAULT_INSTANCE(); 11 | 12 | void setup() 13 | { 14 | MIDI.begin(MIDI_CHANNEL_OMNI); 15 | } 16 | 17 | void loop() 18 | { 19 | 20 | for (int i = 0; i < 24; i++) 21 | { 22 | MIDI.sendNoteOn(i, i*2, 1); 23 | delay(75); 24 | } 25 | 26 | // Delay == Bad! Set up an interrupt based timer instead 27 | // (or something like Blink Without Delay) 28 | delay(2000); 29 | 30 | } 31 | -------------------------------------------------------------------------------- /src/README.md: -------------------------------------------------------------------------------- 1 | This project can be compiled against LUFA-140928. Put it in the Lufa/Projects folder and run make (assuming you have crosspack or winavr, etc). 2 | 3 | http://www.github.com/abcminiuser/lufa/archive/LUFA-140928.zip -------------------------------------------------------------------------------- /src/arduino_midi/Config/LUFAConfig.h: -------------------------------------------------------------------------------- 1 | /* 2 | LUFA Library 3 | Copyright (C) Dean Camera, 2014. 4 | 5 | dean [at] fourwalledcubicle [dot] com 6 | www.lufa-lib.org 7 | */ 8 | 9 | /* 10 | Copyright 2014 Dean Camera (dean [at] fourwalledcubicle [dot] com) 11 | 12 | Permission to use, copy, modify, distribute, and sell this 13 | software and its documentation for any purpose is hereby granted 14 | without fee, provided that the above copyright notice appear in 15 | all copies and that both that the copyright notice and this 16 | permission notice and warranty disclaimer appear in supporting 17 | documentation, and that the name of the author not be used in 18 | advertising or publicity pertaining to distribution of the 19 | software without specific, written prior permission. 20 | 21 | The author disclaims all warranties with regard to this 22 | software, including all implied warranties of merchantability 23 | and fitness. In no event shall the author be liable for any 24 | special, indirect or consequential damages or any damages 25 | whatsoever resulting from loss of use, data or profits, whether 26 | in an action of contract, negligence or other tortious action, 27 | arising out of or in connection with the use or performance of 28 | this software. 29 | */ 30 | 31 | /** \file 32 | * \brief LUFA Library Configuration Header File 33 | * 34 | * This header file is used to configure LUFA's compile time options, 35 | * as an alternative to the compile time constants supplied through 36 | * a makefile. 37 | * 38 | * For information on what each token does, refer to the LUFA 39 | * manual section "Summary of Compile Tokens". 40 | */ 41 | 42 | #ifndef _LUFA_CONFIG_H_ 43 | #define _LUFA_CONFIG_H_ 44 | 45 | #if (ARCH == ARCH_AVR8) 46 | 47 | /* Non-USB Related Configuration Tokens: */ 48 | // #define DISABLE_TERMINAL_CODES 49 | 50 | /* USB Class Driver Related Tokens: */ 51 | // #define HID_HOST_BOOT_PROTOCOL_ONLY 52 | // #define HID_STATETABLE_STACK_DEPTH {Insert Value Here} 53 | // #define HID_USAGE_STACK_DEPTH {Insert Value Here} 54 | // #define HID_MAX_COLLECTIONS {Insert Value Here} 55 | // #define HID_MAX_REPORTITEMS {Insert Value Here} 56 | // #define HID_MAX_REPORT_IDS {Insert Value Here} 57 | // #define NO_CLASS_DRIVER_AUTOFLUSH 58 | 59 | /* General USB Driver Related Tokens: */ 60 | // #define ORDERED_EP_CONFIG 61 | #define USE_STATIC_OPTIONS (USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL) 62 | #define USB_DEVICE_ONLY 63 | // #define USB_HOST_ONLY 64 | // #define USB_STREAM_TIMEOUT_MS {Insert Value Here} 65 | // #define NO_LIMITED_CONTROLLER_CONNECT 66 | // #define NO_SOF_EVENTS 67 | 68 | /* USB Device Mode Driver Related Tokens: */ 69 | // #define USE_RAM_DESCRIPTORS 70 | #define USE_FLASH_DESCRIPTORS 71 | // #define USE_EEPROM_DESCRIPTORS 72 | // #define NO_INTERNAL_SERIAL 73 | #define FIXED_CONTROL_ENDPOINT_SIZE 8 74 | // #define DEVICE_STATE_AS_GPIOR {Insert Value Here} 75 | #define FIXED_NUM_CONFIGURATIONS 1 76 | // #define CONTROL_ONLY_DEVICE 77 | // #define INTERRUPT_CONTROL_ENDPOINT 78 | // #define NO_DEVICE_REMOTE_WAKEUP 79 | // #define NO_DEVICE_SELF_POWER 80 | 81 | /* USB Host Mode Driver Related Tokens: */ 82 | // #define HOST_STATE_AS_GPIOR {Insert Value Here} 83 | // #define USB_HOST_TIMEOUT_MS {Insert Value Here} 84 | // #define HOST_DEVICE_SETTLE_DELAY_MS {Insert Value Here} 85 | // #define NO_AUTO_VBUS_MANAGEMENT 86 | // #define INVERTED_VBUS_ENABLE_LINE 87 | 88 | #endif 89 | #endif 90 | -------------------------------------------------------------------------------- /src/arduino_midi/Descriptors.c: -------------------------------------------------------------------------------- 1 | /* 2 | LUFA Library 3 | Copyright (C) Dean Camera, 2014. 4 | 5 | dean [at] fourwalledcubicle [dot] com 6 | www.lufa-lib.org 7 | */ 8 | 9 | /* 10 | Copyright 2014 Dean Camera (dean [at] fourwalledcubicle [dot] com) 11 | 12 | Permission to use, copy, modify, distribute, and sell this 13 | software and its documentation for any purpose is hereby granted 14 | without fee, provided that the above copyright notice appear in 15 | all copies and that both that the copyright notice and this 16 | permission notice and warranty disclaimer appear in supporting 17 | documentation, and that the name of the author not be used in 18 | advertising or publicity pertaining to distribution of the 19 | software without specific, written prior permission. 20 | 21 | The author disclaims all warranties with regard to this 22 | software, including all implied warranties of merchantability 23 | and fitness. In no event shall the author be liable for any 24 | special, indirect or consequential damages or any damages 25 | whatsoever resulting from loss of use, data or profits, whether 26 | in an action of contract, negligence or other tortious action, 27 | arising out of or in connection with the use or performance of 28 | this software. 29 | */ 30 | 31 | /** \file 32 | * 33 | * USB Device Descriptors, for library use when in USB device mode. Descriptors are special 34 | * computer-readable structures which the host requests upon device enumeration, to determine 35 | * the device's capabilities and functions. 36 | */ 37 | 38 | #include "Descriptors.h" 39 | 40 | /** Device descriptor structure. This descriptor, located in FLASH memory, describes the overall 41 | * device characteristics, including the supported USB version, control endpoint size and the 42 | * number of device configurations. The descriptor is read out by the USB host when the enumeration 43 | * process begins. 44 | */ 45 | const USB_Descriptor_Device_t PROGMEM DeviceDescriptor = 46 | { 47 | .Header = {.Size = sizeof(USB_Descriptor_Device_t), .Type = DTYPE_Device}, 48 | 49 | .USBSpecification = VERSION_BCD(1,1,0), 50 | .Class = USB_CSCP_NoDeviceClass, 51 | .SubClass = USB_CSCP_NoDeviceSubclass, 52 | .Protocol = USB_CSCP_NoDeviceProtocol, 53 | 54 | .Endpoint0Size = FIXED_CONTROL_ENDPOINT_SIZE, 55 | 56 | .VendorID = 0x03EB, 57 | .ProductID = 0x2048, 58 | .ReleaseNumber = VERSION_BCD(0,0,1), 59 | 60 | .ManufacturerStrIndex = STRING_ID_Manufacturer, 61 | .ProductStrIndex = STRING_ID_Product, 62 | .SerialNumStrIndex = NO_DESCRIPTOR, 63 | 64 | .NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS 65 | }; 66 | 67 | /** Configuration descriptor structure. This descriptor, located in FLASH memory, describes the usage 68 | * of the device in one of its supported configurations, including information about any device interfaces 69 | * and endpoints. The descriptor is read out by the USB host during the enumeration process when selecting 70 | * a configuration so that the host may correctly communicate with the USB device. 71 | */ 72 | const USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor = 73 | { 74 | .Config = 75 | { 76 | .Header = {.Size = sizeof(USB_Descriptor_Configuration_Header_t), .Type = DTYPE_Configuration}, 77 | 78 | .TotalConfigurationSize = sizeof(USB_Descriptor_Configuration_t), 79 | .TotalInterfaces = 2, 80 | 81 | .ConfigurationNumber = 1, 82 | .ConfigurationStrIndex = NO_DESCRIPTOR, 83 | 84 | .ConfigAttributes = (USB_CONFIG_ATTR_RESERVED | USB_CONFIG_ATTR_SELFPOWERED), 85 | 86 | .MaxPowerConsumption = USB_CONFIG_POWER_MA(100) 87 | }, 88 | 89 | .Audio_ControlInterface = 90 | { 91 | .Header = {.Size = sizeof(USB_Descriptor_Interface_t), .Type = DTYPE_Interface}, 92 | 93 | .InterfaceNumber = INTERFACE_ID_AudioControl, 94 | .AlternateSetting = 0, 95 | 96 | .TotalEndpoints = 0, 97 | 98 | .Class = AUDIO_CSCP_AudioClass, 99 | .SubClass = AUDIO_CSCP_ControlSubclass, 100 | .Protocol = AUDIO_CSCP_ControlProtocol, 101 | 102 | .InterfaceStrIndex = NO_DESCRIPTOR 103 | }, 104 | 105 | .Audio_ControlInterface_SPC = 106 | { 107 | .Header = {.Size = sizeof(USB_Audio_Descriptor_Interface_AC_t), .Type = DTYPE_CSInterface}, 108 | .Subtype = AUDIO_DSUBTYPE_CSInterface_Header, 109 | 110 | .ACSpecification = VERSION_BCD(1,0,0), 111 | .TotalLength = sizeof(USB_Audio_Descriptor_Interface_AC_t), 112 | 113 | .InCollection = 1, 114 | .InterfaceNumber = INTERFACE_ID_AudioStream, 115 | }, 116 | 117 | .Audio_StreamInterface = 118 | { 119 | .Header = {.Size = sizeof(USB_Descriptor_Interface_t), .Type = DTYPE_Interface}, 120 | 121 | .InterfaceNumber = INTERFACE_ID_AudioStream, 122 | .AlternateSetting = 0, 123 | 124 | .TotalEndpoints = 2, 125 | 126 | .Class = AUDIO_CSCP_AudioClass, 127 | .SubClass = AUDIO_CSCP_MIDIStreamingSubclass, 128 | .Protocol = AUDIO_CSCP_StreamingProtocol, 129 | 130 | .InterfaceStrIndex = NO_DESCRIPTOR 131 | }, 132 | 133 | .Audio_StreamInterface_SPC = 134 | { 135 | .Header = {.Size = sizeof(USB_MIDI_Descriptor_AudioInterface_AS_t), .Type = DTYPE_CSInterface}, 136 | .Subtype = AUDIO_DSUBTYPE_CSInterface_General, 137 | 138 | .AudioSpecification = VERSION_BCD(1,0,0), 139 | 140 | .TotalLength = (sizeof(USB_Descriptor_Configuration_t) - 141 | offsetof(USB_Descriptor_Configuration_t, Audio_StreamInterface_SPC)) 142 | }, 143 | 144 | .MIDI_In_Jack_Emb = 145 | { 146 | .Header = {.Size = sizeof(USB_MIDI_Descriptor_InputJack_t), .Type = DTYPE_CSInterface}, 147 | .Subtype = AUDIO_DSUBTYPE_CSInterface_InputTerminal, 148 | 149 | .JackType = MIDI_JACKTYPE_Embedded, 150 | .JackID = 0x01, 151 | 152 | .JackStrIndex = NO_DESCRIPTOR 153 | }, 154 | 155 | .MIDI_In_Jack_Ext = 156 | { 157 | .Header = {.Size = sizeof(USB_MIDI_Descriptor_InputJack_t), .Type = DTYPE_CSInterface}, 158 | .Subtype = AUDIO_DSUBTYPE_CSInterface_InputTerminal, 159 | 160 | .JackType = MIDI_JACKTYPE_External, 161 | .JackID = 0x02, 162 | 163 | .JackStrIndex = NO_DESCRIPTOR 164 | }, 165 | 166 | .MIDI_Out_Jack_Emb = 167 | { 168 | .Header = {.Size = sizeof(USB_MIDI_Descriptor_OutputJack_t), .Type = DTYPE_CSInterface}, 169 | .Subtype = AUDIO_DSUBTYPE_CSInterface_OutputTerminal, 170 | 171 | .JackType = MIDI_JACKTYPE_Embedded, 172 | .JackID = 0x03, 173 | 174 | .NumberOfPins = 1, 175 | .SourceJackID = {0x02}, 176 | .SourcePinID = {0x01}, 177 | 178 | .JackStrIndex = NO_DESCRIPTOR 179 | }, 180 | 181 | .MIDI_Out_Jack_Ext = 182 | { 183 | .Header = {.Size = sizeof(USB_MIDI_Descriptor_OutputJack_t), .Type = DTYPE_CSInterface}, 184 | .Subtype = AUDIO_DSUBTYPE_CSInterface_OutputTerminal, 185 | 186 | .JackType = MIDI_JACKTYPE_External, 187 | .JackID = 0x04, 188 | 189 | .NumberOfPins = 1, 190 | .SourceJackID = {0x01}, 191 | .SourcePinID = {0x01}, 192 | 193 | .JackStrIndex = NO_DESCRIPTOR 194 | }, 195 | 196 | .MIDI_In_Jack_Endpoint = 197 | { 198 | .Endpoint = 199 | { 200 | .Header = {.Size = sizeof(USB_Audio_Descriptor_StreamEndpoint_Std_t), .Type = DTYPE_Endpoint}, 201 | 202 | .EndpointAddress = MIDI_STREAM_OUT_EPADDR, 203 | .Attributes = (EP_TYPE_BULK | ENDPOINT_ATTR_NO_SYNC | ENDPOINT_USAGE_DATA), 204 | .EndpointSize = MIDI_STREAM_EPSIZE, 205 | .PollingIntervalMS = 0x05 206 | }, 207 | 208 | .Refresh = 0, 209 | .SyncEndpointNumber = 0 210 | }, 211 | 212 | .MIDI_In_Jack_Endpoint_SPC = 213 | { 214 | .Header = {.Size = sizeof(USB_MIDI_Descriptor_Jack_Endpoint_t), .Type = DTYPE_CSEndpoint}, 215 | .Subtype = AUDIO_DSUBTYPE_CSEndpoint_General, 216 | 217 | .TotalEmbeddedJacks = 0x01, 218 | .AssociatedJackID = {0x01} 219 | }, 220 | 221 | .MIDI_Out_Jack_Endpoint = 222 | { 223 | .Endpoint = 224 | { 225 | .Header = {.Size = sizeof(USB_Audio_Descriptor_StreamEndpoint_Std_t), .Type = DTYPE_Endpoint}, 226 | 227 | .EndpointAddress = MIDI_STREAM_IN_EPADDR, 228 | .Attributes = (EP_TYPE_BULK | ENDPOINT_ATTR_NO_SYNC | ENDPOINT_USAGE_DATA), 229 | .EndpointSize = MIDI_STREAM_EPSIZE, 230 | .PollingIntervalMS = 0x05 231 | }, 232 | 233 | .Refresh = 0, 234 | .SyncEndpointNumber = 0 235 | }, 236 | 237 | .MIDI_Out_Jack_Endpoint_SPC = 238 | { 239 | .Header = {.Size = sizeof(USB_MIDI_Descriptor_Jack_Endpoint_t), .Type = DTYPE_CSEndpoint}, 240 | .Subtype = AUDIO_DSUBTYPE_CSEndpoint_General, 241 | 242 | .TotalEmbeddedJacks = 0x01, 243 | .AssociatedJackID = {0x03} 244 | } 245 | }; 246 | 247 | /** Language descriptor structure. This descriptor, located in FLASH memory, is returned when the host requests 248 | * the string descriptor with index 0 (the first index). It is actually an array of 16-bit integers, which indicate 249 | * via the language ID table available at USB.org what languages the device supports for its string descriptors. 250 | */ 251 | const USB_Descriptor_String_t PROGMEM LanguageString = USB_STRING_DESCRIPTOR_ARRAY(LANGUAGE_ID_ENG); 252 | 253 | /** Manufacturer descriptor string. This is a Unicode string containing the manufacturer's details in human readable 254 | * form, and is read out upon request by the host when the appropriate string ID is requested, listed in the Device 255 | * Descriptor. 256 | */ 257 | const USB_Descriptor_String_t PROGMEM ManufacturerString = USB_STRING_DESCRIPTOR(L"hiduino project"); 258 | 259 | /** Product descriptor string. This is a Unicode string containing the product's details in human readable form, 260 | * and is read out upon request by the host when the appropriate string ID is requested, listed in the Device 261 | * Descriptor. 262 | */ 263 | const USB_Descriptor_String_t PROGMEM ProductString = USB_STRING_DESCRIPTOR(L"arduino_midi"); 264 | 265 | /** This function is called by the library when in device mode, and must be overridden (see library "USB Descriptors" 266 | * documentation) by the application code so that the address and size of a requested descriptor can be given 267 | * to the USB library. When the device receives a Get Descriptor request on the control endpoint, this function 268 | * is called so that the descriptor details can be passed back and the appropriate descriptor sent back to the 269 | * USB host. 270 | */ 271 | uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, 272 | const uint8_t wIndex, 273 | const void** const DescriptorAddress) 274 | { 275 | const uint8_t DescriptorType = (wValue >> 8); 276 | const uint8_t DescriptorNumber = (wValue & 0xFF); 277 | 278 | const void* Address = NULL; 279 | uint16_t Size = NO_DESCRIPTOR; 280 | 281 | switch (DescriptorType) 282 | { 283 | case DTYPE_Device: 284 | Address = &DeviceDescriptor; 285 | Size = sizeof(USB_Descriptor_Device_t); 286 | break; 287 | case DTYPE_Configuration: 288 | Address = &ConfigurationDescriptor; 289 | Size = sizeof(USB_Descriptor_Configuration_t); 290 | break; 291 | case DTYPE_String: 292 | switch (DescriptorNumber) 293 | { 294 | case STRING_ID_Language: 295 | Address = &LanguageString; 296 | Size = pgm_read_byte(&LanguageString.Header.Size); 297 | break; 298 | case STRING_ID_Manufacturer: 299 | Address = &ManufacturerString; 300 | Size = pgm_read_byte(&ManufacturerString.Header.Size); 301 | break; 302 | case STRING_ID_Product: 303 | Address = &ProductString; 304 | Size = pgm_read_byte(&ProductString.Header.Size); 305 | break; 306 | } 307 | 308 | break; 309 | } 310 | 311 | *DescriptorAddress = Address; 312 | return Size; 313 | } 314 | 315 | -------------------------------------------------------------------------------- /src/arduino_midi/Descriptors.h: -------------------------------------------------------------------------------- 1 | /* 2 | LUFA Library 3 | Copyright (C) Dean Camera, 2014. 4 | 5 | dean [at] fourwalledcubicle [dot] com 6 | www.lufa-lib.org 7 | */ 8 | 9 | /* 10 | Copyright 2014 Dean Camera (dean [at] fourwalledcubicle [dot] com) 11 | 12 | Permission to use, copy, modify, distribute, and sell this 13 | software and its documentation for any purpose is hereby granted 14 | without fee, provided that the above copyright notice appear in 15 | all copies and that both that the copyright notice and this 16 | permission notice and warranty disclaimer appear in supporting 17 | documentation, and that the name of the author not be used in 18 | advertising or publicity pertaining to distribution of the 19 | software without specific, written prior permission. 20 | 21 | The author disclaims all warranties with regard to this 22 | software, including all implied warranties of merchantability 23 | and fitness. In no event shall the author be liable for any 24 | special, indirect or consequential damages or any damages 25 | whatsoever resulting from loss of use, data or profits, whether 26 | in an action of contract, negligence or other tortious action, 27 | arising out of or in connection with the use or performance of 28 | this software. 29 | */ 30 | 31 | /** \file 32 | * 33 | * Header file for Descriptors.c. 34 | */ 35 | 36 | #ifndef _DESCRIPTORS_H_ 37 | #define _DESCRIPTORS_H_ 38 | 39 | /* Includes: */ 40 | #include 41 | 42 | #include 43 | 44 | /* Macros: */ 45 | /** Endpoint address of the MIDI streaming data IN endpoint, for device-to-host data transfers. */ 46 | #define MIDI_STREAM_IN_EPADDR (ENDPOINT_DIR_IN | 1) 47 | 48 | /** Endpoint address of the MIDI streaming data OUT endpoint, for host-to-device data transfers. */ 49 | #define MIDI_STREAM_OUT_EPADDR (ENDPOINT_DIR_OUT | 2) 50 | 51 | /** Endpoint size in bytes of the Audio isochronous streaming data IN and OUT endpoints. */ 52 | #define MIDI_STREAM_EPSIZE 64 53 | 54 | /* Type Defines: */ 55 | /** Type define for the device configuration descriptor structure. This must be defined in the 56 | * application code, as the configuration descriptor contains several sub-descriptors which 57 | * vary between devices, and which describe the device's usage to the host. 58 | */ 59 | typedef struct 60 | { 61 | USB_Descriptor_Configuration_Header_t Config; 62 | 63 | // MIDI Audio Control Interface 64 | USB_Descriptor_Interface_t Audio_ControlInterface; 65 | USB_Audio_Descriptor_Interface_AC_t Audio_ControlInterface_SPC; 66 | 67 | // MIDI Audio Streaming Interface 68 | USB_Descriptor_Interface_t Audio_StreamInterface; 69 | USB_MIDI_Descriptor_AudioInterface_AS_t Audio_StreamInterface_SPC; 70 | USB_MIDI_Descriptor_InputJack_t MIDI_In_Jack_Emb; 71 | USB_MIDI_Descriptor_InputJack_t MIDI_In_Jack_Ext; 72 | USB_MIDI_Descriptor_OutputJack_t MIDI_Out_Jack_Emb; 73 | USB_MIDI_Descriptor_OutputJack_t MIDI_Out_Jack_Ext; 74 | USB_Audio_Descriptor_StreamEndpoint_Std_t MIDI_In_Jack_Endpoint; 75 | USB_MIDI_Descriptor_Jack_Endpoint_t MIDI_In_Jack_Endpoint_SPC; 76 | USB_Audio_Descriptor_StreamEndpoint_Std_t MIDI_Out_Jack_Endpoint; 77 | USB_MIDI_Descriptor_Jack_Endpoint_t MIDI_Out_Jack_Endpoint_SPC; 78 | } USB_Descriptor_Configuration_t; 79 | 80 | /** Enum for the device interface descriptor IDs within the device. Each interface descriptor 81 | * should have a unique ID index associated with it, which can be used to refer to the 82 | * interface from other descriptors. 83 | */ 84 | enum InterfaceDescriptors_t 85 | { 86 | INTERFACE_ID_AudioControl = 0, /**< Audio control interface descriptor ID */ 87 | INTERFACE_ID_AudioStream = 1, /**< Audio stream interface descriptor ID */ 88 | }; 89 | 90 | /** Enum for the device string descriptor IDs within the device. Each string descriptor should 91 | * have a unique ID index associated with it, which can be used to refer to the string from 92 | * other descriptors. 93 | */ 94 | enum StringDescriptors_t 95 | { 96 | STRING_ID_Language = 0, /**< Supported Languages string descriptor ID (must be zero) */ 97 | STRING_ID_Manufacturer = 1, /**< Manufacturer string ID */ 98 | STRING_ID_Product = 2, /**< Product string ID */ 99 | }; 100 | 101 | /* Function Prototypes: */ 102 | uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, 103 | const uint8_t wIndex, 104 | const void** const DescriptorAddress) 105 | ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(3); 106 | 107 | #endif 108 | 109 | -------------------------------------------------------------------------------- /src/arduino_midi/arduino_midi.c: -------------------------------------------------------------------------------- 1 | /*********************************************************************** 2 | * arduino_midi firmware, 02.01.2015 3 | * by Dimitri Diakopoulos (http://www.dimitridiakopoulos.com) 4 | * Based on the LUFA low-level midi example by Dean Camera 5 | * (http://www.fourwalledcubicle.com/LUFA.php) 6 | * Compiled against LUFA-140928 7 | ***********************************************************************/ 8 | 9 | #include "arduino_midi.h" 10 | 11 | uint16_t tx_ticks = 0; 12 | uint16_t rx_ticks = 0; 13 | const uint16_t TICK_COUNT = 5000; 14 | 15 | int main(void) 16 | { 17 | SetupHardware(); 18 | 19 | GlobalInterruptEnable(); 20 | 21 | sei(); 22 | 23 | for (;;) 24 | { 25 | if (tx_ticks > 0) 26 | { 27 | tx_ticks--; 28 | } 29 | else if (tx_ticks == 0) 30 | { 31 | LEDs_TurnOffLEDs(LEDS_LED2); 32 | } 33 | 34 | if (rx_ticks > 0) 35 | { 36 | rx_ticks--; 37 | } 38 | else if (rx_ticks == 0) 39 | { 40 | LEDs_TurnOffLEDs(LEDS_LED1); 41 | } 42 | 43 | MIDI_To_Arduino(); 44 | MIDI_To_Host(); 45 | 46 | USB_USBTask(); 47 | } 48 | } 49 | 50 | void SetupHardware(void) 51 | { 52 | 53 | // Disable watchdog if enabled by bootloader/fuses 54 | MCUSR &= ~(1 << WDRF); 55 | wdt_disable(); 56 | 57 | Serial_Init(31250, false); 58 | 59 | // Start the flush timer so that overflows occur rapidly to 60 | // push received bytes to the USB interface 61 | TCCR0B = (1 << CS02); 62 | 63 | // Serial Interrupts 64 | UCSR1B = 0; 65 | UCSR1B = ((1 << RXCIE1) | (1 << TXEN1) | (1 << RXEN1)); 66 | 67 | // https://github.com/ddiakopoulos/hiduino/issues/13 68 | /* Target /ERASE line is active HIGH: there is a mosfet that inverts logic */ 69 | // These are defined in the makefile... 70 | AVR_ERASE_LINE_PORT |= AVR_ERASE_LINE_MASK; 71 | AVR_ERASE_LINE_DDR |= AVR_ERASE_LINE_MASK; 72 | 73 | // Disable clock division 74 | clock_prescale_set(clock_div_1); 75 | 76 | LEDs_Init(); 77 | USB_Init(); 78 | } 79 | 80 | /////////////////////////////////////////////////////////////////////////////// 81 | // USB Configuration 82 | /////////////////////////////////////////////////////////////////////////////// 83 | 84 | // Event handler for the USB_Connect event. This indicates that the device is enumerating via the status LEDs. 85 | void EVENT_USB_Device_Connect(void) 86 | { 87 | /* Indicate USB enumerating */ 88 | LEDs_SetAllLEDs(LEDMASK_USB_ENUMERATING); 89 | } 90 | 91 | // Event handler for the USB_Disconnect event. This indicates that the device is no longer connected to a host via 92 | // the status LEDs, disables the sample update and PWM output timers and stops the USB and MIDI management tasks. 93 | void EVENT_USB_Device_Disconnect(void) 94 | { 95 | /* Indicate USB not ready */ 96 | LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY); 97 | } 98 | 99 | // Event handler for the USB_ConfigurationChanged event. This is fired when the host set the current configuration 100 | // of the USB device after enumeration - the device endpoints are configured and the MIDI management task started. 101 | void EVENT_USB_Device_ConfigurationChanged(void) 102 | { 103 | bool ConfigSuccess = true; 104 | 105 | /* Setup MIDI Data Endpoints */ 106 | ConfigSuccess &= Endpoint_ConfigureEndpoint(MIDI_STREAM_IN_EPADDR, EP_TYPE_BULK, MIDI_STREAM_EPSIZE, 1); 107 | ConfigSuccess &= Endpoint_ConfigureEndpoint(MIDI_STREAM_OUT_EPADDR, EP_TYPE_BULK, MIDI_STREAM_EPSIZE, 1); 108 | 109 | /* Indicate endpoint configuration success or failure */ 110 | LEDs_SetAllLEDs(ConfigSuccess ? LEDMASK_USB_READY : LEDMASK_USB_ERROR); 111 | } 112 | 113 | /////////////////////////////////////////////////////////////////////////////// 114 | // MIDI Worker Functions 115 | /////////////////////////////////////////////////////////////////////////////// 116 | 117 | // From Arduino/Serial to USB/Host 118 | void MIDI_To_Host(void) 119 | { 120 | // Device must be connected and configured for the task to run 121 | if (USB_DeviceState != DEVICE_STATE_Configured) return; 122 | 123 | // Select the MIDI IN stream 124 | Endpoint_SelectEndpoint(MIDI_STREAM_IN_EPADDR); 125 | 126 | if (Endpoint_IsINReady()) 127 | { 128 | if (mPendingMessageValid == true) 129 | { 130 | mPendingMessageValid = false; 131 | 132 | // Write the MIDI event packet to the endpoint 133 | Endpoint_Write_Stream_LE(&mCompleteMessage, sizeof(mCompleteMessage), NULL); 134 | 135 | // Clear out complete message 136 | memset(&mCompleteMessage, 0, sizeof(mCompleteMessage)); 137 | 138 | // Send the data in the endpoint to the host 139 | Endpoint_ClearIN(); 140 | 141 | LEDs_TurnOnLEDs(LEDS_LED2); 142 | tx_ticks = TICK_COUNT; 143 | } 144 | } 145 | 146 | } 147 | 148 | // From USB/Host to Arduino/Serial 149 | void MIDI_To_Arduino(void) 150 | { 151 | // Device must be connected and configured for the task to run 152 | if (USB_DeviceState != DEVICE_STATE_Configured) return; 153 | 154 | // Select the MIDI OUT stream 155 | Endpoint_SelectEndpoint(MIDI_STREAM_OUT_EPADDR); 156 | 157 | /* Check if a MIDI command has been received */ 158 | if (Endpoint_IsOUTReceived()) 159 | { 160 | MIDI_EventPacket_t MIDIEvent; 161 | 162 | /* Read the MIDI event packet from the endpoint */ 163 | Endpoint_Read_Stream_LE(&MIDIEvent, sizeof(MIDIEvent), NULL); 164 | 165 | // Passthrough to Arduino 166 | Serial_SendByte(MIDIEvent.Data1); 167 | Serial_SendByte(MIDIEvent.Data2); 168 | Serial_SendByte(MIDIEvent.Data3); 169 | 170 | LEDs_TurnOnLEDs(LEDS_LED1); 171 | rx_ticks = TICK_COUNT; 172 | 173 | /* If the endpoint is now empty, clear the bank */ 174 | if (!(Endpoint_BytesInEndpoint())) 175 | { 176 | /* Clear the endpoint ready for new packet */ 177 | Endpoint_ClearOUT(); 178 | } 179 | } 180 | 181 | } 182 | 183 | // Parse via Arduino/Serial 184 | ISR(USART1_RX_vect, ISR_BLOCK) 185 | { 186 | // Device must be connected and configured for the task to run 187 | if (USB_DeviceState != DEVICE_STATE_Configured) return; 188 | 189 | const uint8_t extracted = UDR1; 190 | 191 | // Borrowed + Modified from Francois Best's Arduino MIDI Library 192 | // https://github.com/FortySevenEffects/arduino_midi_library 193 | if (mPendingMessageIndex == 0) 194 | { 195 | // Start a new pending message 196 | mPendingMessage[0] = extracted; 197 | 198 | // Check for running status first 199 | if (isChannelMessage(getTypeFromStatusByte(mRunningStatus_RX))) 200 | { 201 | // Only these types allow Running Status 202 | 203 | // If the status byte is not received, prepend it to the pending message 204 | if (extracted < 0x80) 205 | { 206 | mPendingMessage[0] = mRunningStatus_RX; 207 | mPendingMessage[1] = extracted; 208 | mPendingMessageIndex = 1; 209 | } 210 | // Else we received another status byte, so the running status does not apply here. 211 | // It will be updated upon completion of this message. 212 | } 213 | 214 | switch (getTypeFromStatusByte(mPendingMessage[0])) 215 | { 216 | // 1 byte messages 217 | case Start: 218 | case Continue: 219 | case Stop: 220 | case Clock: 221 | case ActiveSensing: 222 | case SystemReset: 223 | case TuneRequest: 224 | // Handle the message type directly here. 225 | mCompleteMessage.Event = MIDI_EVENT(0, getTypeFromStatusByte(mPendingMessage[0])); 226 | mCompleteMessage.Data1 = mPendingMessage[0]; 227 | mCompleteMessage.Data2 = 0; 228 | mCompleteMessage.Data3 = 0; 229 | mPendingMessageValid = true; 230 | 231 | // We still need to reset these 232 | mPendingMessageIndex = 0; 233 | mPendingMessageExpectedLength = 0; 234 | 235 | return; 236 | break; 237 | 238 | // 2 bytes messages 239 | case ProgramChange: 240 | case AfterTouchChannel: 241 | case TimeCodeQuarterFrame: 242 | case SongSelect: 243 | mPendingMessageExpectedLength = 2; 244 | break; 245 | 246 | // 3 bytes messages 247 | case NoteOn: 248 | case NoteOff: 249 | case ControlChange: 250 | case PitchBend: 251 | case AfterTouchPoly: 252 | case SongPosition: 253 | mPendingMessageExpectedLength = 3; 254 | break; 255 | 256 | case SystemExclusive: 257 | break; 258 | 259 | case InvalidType: 260 | default: 261 | // Something bad happened 262 | break; 263 | } 264 | 265 | if (mPendingMessageIndex >= (mPendingMessageExpectedLength - 1)) 266 | { 267 | // Reception complete 268 | mCompleteMessage.Event = MIDI_EVENT(0, getTypeFromStatusByte(mPendingMessage[0])); 269 | mCompleteMessage.Data1 = mPendingMessage[0]; // status = channel + type 270 | mCompleteMessage.Data2 = mPendingMessage[1]; 271 | 272 | // Save Data3 only if applicable 273 | if (mPendingMessageExpectedLength == 3) 274 | mCompleteMessage.Data3 = mPendingMessage[2]; 275 | else 276 | mCompleteMessage.Data3 = 0; 277 | 278 | mPendingMessageIndex = 0; 279 | mPendingMessageExpectedLength = 0; 280 | mPendingMessageValid = true; 281 | return; 282 | } 283 | else 284 | { 285 | // Waiting for more data 286 | mPendingMessageIndex++; 287 | } 288 | } 289 | else 290 | { 291 | // First, test if this is a status byte 292 | if (extracted >= 0x80) 293 | { 294 | // Reception of status bytes in the middle of an uncompleted message 295 | // are allowed only for interleaved Real Time message or EOX 296 | switch (extracted) 297 | { 298 | case Clock: 299 | case Start: 300 | case Continue: 301 | case Stop: 302 | case ActiveSensing: 303 | case SystemReset: 304 | 305 | // Here we will have to extract the one-byte message, 306 | // pass it to the structure for being read outside 307 | // the MIDI class, and recompose the message it was 308 | // interleaved into. Oh, and without killing the running status.. 309 | // This is done by leaving the pending message as is, 310 | // it will be completed on next calls. 311 | mCompleteMessage.Event = MIDI_EVENT(0, getTypeFromStatusByte(extracted)); 312 | mCompleteMessage.Data1 = extracted; 313 | mCompleteMessage.Data2 = 0; 314 | mCompleteMessage.Data3 = 0; 315 | mPendingMessageValid = true; 316 | return; 317 | break; 318 | default: 319 | break; 320 | } 321 | } 322 | 323 | // Add extracted data byte to pending message 324 | mPendingMessage[mPendingMessageIndex] = extracted; 325 | 326 | // Now we are going to check if we have reached the end of the message 327 | if (mPendingMessageIndex >= (mPendingMessageExpectedLength - 1)) 328 | { 329 | 330 | mCompleteMessage.Event = MIDI_EVENT(0, getTypeFromStatusByte(mPendingMessage[0])); 331 | mCompleteMessage.Data1 = mPendingMessage[0]; 332 | mCompleteMessage.Data2 = mPendingMessage[1]; 333 | 334 | // Save Data3 only if applicable 335 | if (mPendingMessageExpectedLength == 3) 336 | mCompleteMessage.Data3 = mPendingMessage[2]; 337 | else 338 | mCompleteMessage.Data3 = 0; 339 | 340 | // Reset local variables 341 | mPendingMessageIndex = 0; 342 | mPendingMessageExpectedLength = 0; 343 | mPendingMessageValid = true; 344 | 345 | // Activate running status (if enabled for the received type) 346 | switch (getTypeFromStatusByte(mPendingMessage[0])) 347 | { 348 | case NoteOff: 349 | case NoteOn: 350 | case AfterTouchPoly: 351 | case ControlChange: 352 | case ProgramChange: 353 | case AfterTouchChannel: 354 | case PitchBend: 355 | // Running status enabled: store it from received message 356 | mRunningStatus_RX = mPendingMessage[0]; 357 | break; 358 | 359 | default: 360 | // No running status 361 | mRunningStatus_RX = InvalidType; 362 | break; 363 | } 364 | return; 365 | } 366 | else 367 | { 368 | // Not complete? Then update the index of the pending message. 369 | mPendingMessageIndex++; 370 | } 371 | } 372 | } 373 | 374 | /////////////////////////////////////////////////////////////////////////////// 375 | // MIDI Utility Functions 376 | /////////////////////////////////////////////////////////////////////////////// 377 | 378 | MidiMessageType getStatus(MidiMessageType inType, uint8_t inChannel) 379 | { 380 | return ((uint8_t)inType | ((inChannel - 1) & 0x0f)); 381 | } 382 | 383 | MidiMessageType getTypeFromStatusByte(uint8_t inStatus) 384 | { 385 | if ((inStatus < 0x80) || 386 | (inStatus == 0xf4) || 387 | (inStatus == 0xf5) || 388 | (inStatus == 0xf9) || 389 | (inStatus == 0xfD)) 390 | { 391 | // Data bytes and undefined. 392 | return InvalidType; 393 | } 394 | 395 | if (inStatus < 0xf0) 396 | { 397 | // Channel message, remove channel nibble. 398 | return (inStatus & 0xf0); 399 | } 400 | 401 | return inStatus; 402 | } 403 | 404 | uint8_t getChannelFromStatusByte(uint8_t inStatus) 405 | { 406 | return (inStatus & 0x0f) + 1; 407 | } 408 | 409 | bool isChannelMessage(uint8_t inType) 410 | { 411 | return (inType == NoteOff || 412 | inType == NoteOn || 413 | inType == ControlChange || 414 | inType == AfterTouchPoly || 415 | inType == AfterTouchChannel || 416 | inType == PitchBend || 417 | inType == ProgramChange); 418 | } 419 | -------------------------------------------------------------------------------- /src/arduino_midi/arduino_midi.h: -------------------------------------------------------------------------------- 1 | /*********************************************************************** 2 | * arduino_midi firmware, 02.01.2015 3 | * by Dimitri Diakopoulos (http://www.dimitridiakopoulos.com) 4 | * Based on the LUFA low-level midi example by Dean Camera 5 | * (http://www.fourwalledcubicle.com/LUFA.php) 6 | * Compiled against LUFA-140928 7 | ***********************************************************************/ 8 | 9 | #ifndef _arduino_midi_h 10 | #define _arduino_midi_h 11 | 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | 18 | #include "Descriptors.h" 19 | 20 | #include 21 | #include 22 | #include 23 | #include 24 | 25 | #define LEDMASK_USB_NOTREADY LEDS_LED1 26 | #define LEDMASK_USB_ENUMERATING LEDS_LED2 27 | #define LEDMASK_USB_READY LEDS_LED2 28 | #define LEDMASK_USB_ERROR LEDS_LED1 29 | 30 | void SetupHardware(void); 31 | void MIDI_To_Arduino(void); 32 | void MIDI_To_Host(void); 33 | 34 | void EVENT_USB_Device_Connect(void); 35 | void EVENT_USB_Device_Disconnect(void); 36 | void EVENT_USB_Device_ConfigurationChanged(void); 37 | 38 | typedef enum 39 | { 40 | InvalidType = 0x00, ///< For notifying errors 41 | NoteOff = 0x80, ///< Note Off 42 | NoteOn = 0x90, ///< Note On 43 | AfterTouchPoly = 0xA0, ///< Polyphonic AfterTouch 44 | ControlChange = 0xB0, ///< Control Change / Channel Mode 45 | ProgramChange = 0xC0, ///< Program Change 46 | AfterTouchChannel = 0xD0, ///< Channel (monophonic) AfterTouch 47 | PitchBend = 0xE0, ///< Pitch Bend 48 | SystemExclusive = 0xF0, ///< System Exclusive 49 | TimeCodeQuarterFrame = 0xF1, ///< System Common - MIDI Time Code Quarter Frame 50 | SongPosition = 0xF2, ///< System Common - Song Position Pointer 51 | SongSelect = 0xF3, ///< System Common - Song Select 52 | TuneRequest = 0xF6, ///< System Common - Tune Request 53 | Clock = 0xF8, ///< System Real Time - Timing Clock 54 | Start = 0xFA, ///< System Real Time - Start 55 | Continue = 0xFB, ///< System Real Time - Continue 56 | Stop = 0xFC, ///< System Real Time - Stop 57 | ActiveSensing = 0xFE, ///< System Real Time - Active Sensing 58 | SystemReset = 0xFF, ///< System Real Time - System Reset 59 | } MidiMessageType; 60 | 61 | uint8_t mRunningStatus_RX; 62 | uint8_t mRunningStatus_TX; 63 | uint8_t mPendingMessage[3]; 64 | uint8_t mPendingMessageExpectedLength; 65 | uint8_t mPendingMessageIndex; 66 | bool mPendingMessageValid; 67 | 68 | MIDI_EventPacket_t mCompleteMessage; 69 | 70 | MidiMessageType getStatus(MidiMessageType inType, uint8_t inChannel); 71 | MidiMessageType getTypeFromStatusByte(uint8_t inStatus); 72 | uint8_t getChannelFromStatusByte(uint8_t inStatus); 73 | bool isChannelMessage(uint8_t inType); 74 | 75 | #endif 76 | 77 | -------------------------------------------------------------------------------- /src/arduino_midi/makefile: -------------------------------------------------------------------------------- 1 | # 2 | # LUFA Library 3 | # Copyright (C) Dean Camera, 2014. 4 | # 5 | # dean [at] fourwalledcubicle [dot] com 6 | # www.lufa-lib.org 7 | # 8 | # -------------------------------------- 9 | # LUFA Project Makefile. 10 | # -------------------------------------- 11 | 12 | # Run "make help" for target help. 13 | 14 | MCU = atmega16u2 15 | ARCH = AVR8 16 | BOARD = UNO 17 | F_CPU = 16000000 18 | F_USB = $(F_CPU) 19 | OPTIMIZATION = s 20 | TARGET = arduino_midi 21 | SRC = $(TARGET).c Descriptors.c $(LUFA_SRC_USB) 22 | LUFA_PATH = ../../LUFA 23 | CC_FLAGS = -DUSE_LUFA_CONFIG_HEADER -IConfig/ 24 | LD_FLAGS = 25 | 26 | # Specifically for the Arduino Due 27 | CC_FLAGS += -DAVR_RESET_LINE_PORT="PORTC" 28 | CC_FLAGS += -DAVR_RESET_LINE_DDR="DDRC" 29 | CC_FLAGS += -DAVR_RESET_LINE_MASK="(1 << 7)" 30 | CC_FLAGS += -DAVR_ERASE_LINE_PORT="PORTC" 31 | CC_FLAGS += -DAVR_ERASE_LINE_DDR="DDRC" 32 | CC_FLAGS += -DAVR_ERASE_LINE_MASK="(1 << 6)" 33 | 34 | # Optional Variables 35 | AVRDUDE_PROGRAMMER = avrisp2 36 | ARDUINO_MODEL_PID = 0x0010 37 | 38 | # Default target 39 | all: 40 | 41 | # Include LUFA build script makefiles 42 | include $(LUFA_PATH)/Build/lufa_core.mk 43 | include $(LUFA_PATH)/Build/lufa_sources.mk 44 | include $(LUFA_PATH)/Build/lufa_build.mk 45 | include $(LUFA_PATH)/Build/lufa_cppcheck.mk 46 | include $(LUFA_PATH)/Build/lufa_doxygen.mk 47 | include $(LUFA_PATH)/Build/lufa_dfu.mk 48 | include $(LUFA_PATH)/Build/lufa_hid.mk 49 | include $(LUFA_PATH)/Build/lufa_avrdude.mk 50 | include $(LUFA_PATH)/Build/lufa_atprogram.mk 51 | --------------------------------------------------------------------------------