├── .github └── FUNDING.yml ├── FADR-4-Schematic.pdf ├── FADR-4 ├── FADR-4.hex ├── FADR-4.ino └── name.c ├── FADR4 - User Guide.pdf ├── LICENCE └── README.md /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] 4 | patreon: notesandvolts 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | otechie: # Replace with a single Otechie username 12 | lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry 13 | custom: https://paypal.me/NotesAndVolts 14 | -------------------------------------------------------------------------------- /FADR-4-Schematic.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NotesAndVolts/FADR-4/5152d9297f97887e1733fc5d4b23cffa69053ff5/FADR-4-Schematic.pdf -------------------------------------------------------------------------------- /FADR-4/FADR-4.hex: -------------------------------------------------------------------------------- 1 | :1000000000180020C1000000991100005D110000DF 2 | :100010005D1100005D1100005D1100005D11000028 3 | :100020005D1100005D1100005D11000099110000DC 4 | :10003000991100005D110000FD2100000522000063 5 | :100040009911000099110000991100009911000008 6 | :1000500099110000991100009911000099110000F8 7 | :1000600099110000991100009911000099110000E8 8 | :1000700099110000991100009911000099110000D8 9 | :1000800099110000991100009911000099110000C8 10 | :1000900099110000991100009911000099110000B8 11 | :1000A00085150000991100009911000099110000B8 12 | :1000B0009911000099110000991100009911000098 13 | :1000C000F8B501F06DF80821474A484B1A60484AD4 14 | :1000D000484B1A60484A494B1A60494B1A780A4201 15 | :1000E00002D01A780A431A702A22464B46481A70E0 16 | :1000F00000234649464C1A188A4203D2E558043375 17 | :100100001560F8E70021434B434A934201D202C3F2 18 | :10011000FBE70023414A424958589446985004331B 19 | :10012000C02BF9D100210326FF2580248A083D4BEE 20 | :100130009200D2180B002F003340DB009F40106864 21 | :100140000131B84307002000984003003B4313608F 22 | :100150002029EBD16246344B1A608A22334B1A7045 23 | :10016000334B663A5A707C321A709E3A9979114232 24 | :10017000FCD0102299791142FCD10C209A792C499B 25 | :100180000240082AFAD1053A0A713D324A71203AF2 26 | :1001900099791142FCD0402299791142FCD025492D 27 | :1001A000254A11602021224A117014399A790A4097 28 | :1001B0000C2AFBD1214A224B1A60224A224B1A6098 29 | :1001C0000022224B1A60224B07321A60214A224B2E 30 | :1001D0001A6062B601F0AAF800F0E8FF02F0A0FA97 31 | :1001E00002F018F8FEE7C046300004F03480044006 32 | :1001F000823F0000388004400100000F3C80044032 33 | :1002000002D0074000E0074040FEFF1FB4FFFF1F81 34 | :10021000102A0000B4FFFF1F2C02002000F9FF1F6E 35 | :100220000000000000E400E008ED00E0005006409F 36 | :10023000004006400000011044800440C000050555 37 | :10024000048004407FBB000014E000E018E000E000 38 | :1002500010E000E00000202020ED00E0FFFFFFFFA5 39 | :10026000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E 40 | :10027000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E 41 | :10028000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E 42 | :10029000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6E 43 | :1002A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5E 44 | :1002B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4E 45 | :1002C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E 46 | :1002D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2E 47 | :1002E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E 48 | :1002F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0E 49 | :10030000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD 50 | :10031000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED 51 | :10032000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD 52 | :10033000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD 53 | :10034000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD 54 | :10035000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAD 55 | :10036000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D 56 | :10037000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D 57 | :10038000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D 58 | :10039000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D 59 | :1003A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D 60 | :1003B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D 61 | :1003C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3D 62 | :1003D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2D 63 | :1003E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D 64 | :1003F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D 65 | :10040000FFFFFFFFFFFFFFFFFFFFFFFFDEF9FFFF23 66 | :1004100010B5064C2378002B07D1054B002B02D0DA 67 | :10042000044800E000BF0123237010BDB4FFFF1F8C 68 | :1004300000000000102A0000084B10B5002B03D06C 69 | :100440000749084800E000BF07480368002B00D1B7 70 | :1004500010BD064B002BFBD09847F9E700000000C9 71 | :10046000B8FFFF1F102A0000B4FFFF1F00000000AC 72 | :1004700073B50A210024060002F02EF9114DCBB20B 73 | :10048000022228002100009400F03AFC3000642190 74 | :1004900002F022F908000A2102F038F80122C3B262 75 | :1004A00021002800009400F02BFC3000642102F0B1 76 | :1004B0002DF80094C3B222002800210000F020FC97 77 | :1004C00073BDC046F4FFFF1F73B50A210024060068 78 | :1004D00002F002F90F4DCBB2022228002100009455 79 | :1004E00000F00EFC3000642102F0F6F808000A214A 80 | :1004F00002F00CF82100C3B200942800012200F0A1 81 | :10050000FFFB2800009443232200210000F016FC8A 82 | :1005100073BDC046F4FFFF1F70B5114E8400A05D8F 83 | :1005200000F0D8FC0F4D6359181A07300E2801D877 84 | :10053000FF2013E0A059C0B200F0CCFC62590300C8 85 | :10054000121A07320E2AF3D9082802D10922625161 86 | :1005500003E060510020072B00DDD81070BDC046BD 87 | :10056000B8FEFF1FD0FFFF1F37B500242000FFF7A4 88 | :10057000D3FF0E4B01341870042CF7D100240C4D1E 89 | :1005800022002800210000942D2300F0D7FB280032 90 | :10059000210000942D23012200F0D0FB28000094BC 91 | :1005A0002D230222210000F0C9FB37BDF1FFFF1F00 92 | :1005B000F4FFFF1FF8B5012000F014FD0024094BE3 93 | :1005C000094E0A4F1870002530784019001900F0C4 94 | :1005D00009FD3B1958550135082DF5D10834402C3B 95 | :1005E000F1D1F8BDADFEFF1FACFEFF1F6CFEFF1F7B 96 | :1005F00073B5002000F0F6FCC82835D0C8210020D3 97 | :1006000000F00CFD0121080000F008FD0024260088 98 | :1006100000256636F6B2154B71191878C9B2401923 99 | :100620000019013500F0FAFC082DF4D10834402CF3 100 | :10063000EDD100220E4D3F3C1100202328000094F4 101 | :1006400000F07CFB2023220000212800009400F011 102 | :1006500075FB2800009420230222002100F06EFB8D 103 | :10066000FA20800000F048FE73BDC046ACFEFF1FBC 104 | :10067000F4FFFF1F7FB52A4B1C781D00032C49D8BF 105 | :10068000200001F0A5FE021226400C2000F0B0FD73 106 | :10069000041E01D000243FE001232B70214B1B6876 107 | :1006A0000193019A204B1A6036E01E4B1F4A1B68CB 108 | :1006B0000293029B13601C4A12689B1A322BE9D9E1 109 | :1006C0000C2000F095FD0223041E16D000242C708F 110 | :1006D00022E0144B154E1B680C200393039B3360E0 111 | :1006E00000F086FD00280AD10F4A336812689B1A71 112 | :1006F000FA22D2009342CDD903232B700CE00023C1 113 | :1007000001242B7008E00C2000F072FD0224012867 114 | :1007100002D1DBE700241C70200004B070BDC0468D 115 | :10072000F0FFFF1F6400002054000020580000204C 116 | :10073000F8B5274D1F272C782000FFF7C5FEFFF7DF 117 | :1007400099FF0600012815D0002001F02DFB00269E 118 | :100750003000FFF7E1FE1F4AC3B21370FF2B05D034 119 | :10076000C4103C4001342000FFF7AEFE0136042ED9 120 | :10077000EED1E4E7E4B22C7000F034FC844203D004 121 | :100780002100300000F04AFC0022134C1100200030 122 | :1007900000F037FA642000F0AFFD022200212000B3 123 | :1007A00000F02FFA642000F0A7FD002220001100C5 124 | :1007B00000F027FA642000F09FFD022200212000B3 125 | :1007C00000F01FFA642000F097FDFFF7CDFEF8BDA2 126 | :1007D000ADFEFF1FF1FFFF1FF4FFFF1FF0B52B4A17 127 | :1007E00089B0431E0193D55C294B01241F00196871 128 | :1007F0000392059105990291FFF73CFF060002283C 129 | :100800002FD1002001F0D0FA3B68029A0693069B94 130 | :100810009B1A632B0FD91F48002C02D00022110015 131 | :1008200001E03200210000F0ECF93B680793079BE0 132 | :10083000029301235C4000263000FFF76DFE164A4C 133 | :10084000C3B21370FF2B08D0FF231840FFF710FE30 134 | :10085000114B019A1D78039B9D540136042EEBD158 135 | :10086000CAE70E4B1C78019BE418200000F0BAFB8D 136 | :10087000854203D02900200000F0D0FB0222002195 137 | :10088000044800F0BEF909B0F0BDC0466CFEFF1F81 138 | :1008900064000020F4FFFF1FF1FFFF1FACFEFF1FED 139 | :1008A000F0B5444B8BB01B6801250593059C029560 140 | :1008B0002600002001F078FA3E4F3B680693069B25 141 | :1008C0000393FFF7D7FE012823D1029B0133DBB24C 142 | :1008D0000293042B00D902900025374C46232000B8 143 | :1008E0002A002900009500F029FA2000029B01222D 144 | :1008F0002900009500F004FA202320000095022230 145 | :10090000290000F01BFA3B680793079C260003941C 146 | :1009100015E0022813D1294B294A1B780025DB005A 147 | :10092000D318029A9B18013B1878FFF7A1FD029893 148 | :10093000FFF754FF3B680893089C26000394039B31 149 | :10094000204A9B1B93422AD9002D17D000261A4F0C 150 | :100950003200310038000096462300F0EFF9029B88 151 | :10096000310038000096012200F0CAF900962023D9 152 | :1009700002223100380000F0E1F90AE00F4B104A82 153 | :100980001B78DB00D318029A9B18013B1878FFF7FD 154 | :100990006FFD01235D40074B1B680993099EFA22F6 155 | :1009A000039B52011B1B934283D9FFF7DDFD0BB064 156 | :1009B000F0BDC04664000020F4FFFF1F5C00002073 157 | :1009C0006CFEFF1FE7030000F8B5002001F0ECF912 158 | :1009D000FFF750FE012802D0022808D001E0FFF7FF 159 | :1009E0005FFFF026FE2700243601FF0502E0FFF737 160 | :1009F0009FFEF6E72000FFF78FFD124DC3B22B706C 161 | :100A0000FF2B1AD0104B11491B780006013B1B022B 162 | :100A100033401A000E4B384013430E4A03431278FA 163 | :100A2000D2008A18105DFE220004D2031040184341 164 | :100A300001F05AF92878FFF71BFD0134042CD9D1B5 165 | :100A4000F8BDC046F1FFFF1FADFEFF1F6CFEFF1F8C 166 | :100A50000BB000005C00002010B50024200000F066 167 | :100A6000C1FAFFF705FDFA200134C00000F044FC94 168 | :100A7000062CF3D110BDFFFF73B502210C2000F04E 169 | :100A8000C9FB334D02220021280000F0BAF80022F1 170 | :100A90002800110000F09AF80022762311002800A7 171 | :100AA00000F01DF9772301220021280000F017F93A 172 | :100AB0003E2302220021280000F011F9FFF798FDE3 173 | :100AC000FFF778FD0C2000F093FB041E32D10126C5 174 | :100AD0000200010008232800009600F02FF90823E7 175 | :100AE000320021002800009600F028F90823022295 176 | :100AF00021002800009600F003F9FA20C00000F061 177 | :100B0000FBFB3300220021002800009600F0F8F8DB 178 | :100B10002300320021002800009600F0F1F82800A0 179 | :100B2000009423000222210000F0EAF8FA2040019C 180 | :100B300000F0E2FB0C2000F05BFB002801D1FFF786 181 | :100B40008BFFFA20C00000F0D7FBFFF70DFD73BD4F 182 | :100B5000F4FFFF1F07B500F02DFA012302220093D6 183 | :100B600004210233014800F06FF807BDF4FFFF1FB6 184 | :100B7000F7B504006846073002706A460632137003 185 | :100B8000E36D00265D00230049001F1BBD4202DD0E 186 | :100B90001E700133F9E700786318587013786354B6 187 | :100BA000A36D0021D8B200F003FB002D08DD636DBA 188 | :100BB000013DD9B2236D625DD8B200F061FBF4E76C 189 | :100BC000A06D0121C0B200F0F3FAF7BD10B5002905 190 | :100BD00009DBC36D994206DA0023002A00D1012304 191 | :100BE0000C22FFF7C5FF10BD10B5002908DBC36D4F 192 | :100BF000994205DA072A03D8D3B20B22FFF7B8FFD0 193 | :100C000010BD10B5002908DBC36D994205DA0F2A23 194 | :100C100003D8D3B20A22FFF7ABFF10BDF8B5060028 195 | :100C20000D1E10DBC36D99420DDA0124CF000023A5 196 | :100C3000E219B218D3732900E2B230000134FFF791 197 | :100C400097FF092CF3D1F8BD70B50D0004998365A9 198 | :100C50004B1E040005654265072B00D90821E1659C 199 | :100C6000E8B2012100F0D6FA636D0121D8B200F09C 200 | :100C7000D1FAA36D0121D8B200F0CCFAA36D012105 201 | :100C8000D8B200F095FA2300220000212565103328 202 | :100C90005032197001339342FBD10025E36D9D4220 203 | :100CA0001BDA002329000F222000FFF761FF290033 204 | :100CB00007222000FFF798FF0023092229002000C7 205 | :100CC000FFF756FF29002000FFF7A8FF29000122A7 206 | :100CD0002000FFF77BFF0135E0E7200070BD10B575 207 | :100CE00000290CDBC46DA14209DA072A07D8CC0021 208 | :100CF0000419A41801322374D2B2FFF739FF10BDD2 209 | :100D000070B504AC2578002914DBC46DA14211DA5A 210 | :100D1000072A0FD80F2B0DD8074ECC00F35C002DFF 211 | :100D200001D080252B430419A41801322374D2B2B8 212 | :100D3000FFF71EFF70BDC0467E27000070B504ACF3 213 | :100D40002578002916DBC46DA14213DA072A11D8D1 214 | :100D50005EB2CC00002E00DA2023074EF35C002D9B 215 | :100D600001D080252B430419A41801322374D2B278 216 | :100D7000FFF7FEFE70BDC0467E27000010B500F0F4 217 | :100D800019F910BD8023F0B51D4A10681840FCD138 218 | :100D900072B61C4C2378002B30D01B4B1F681B4BAA 219 | :100DA0001A681B4BBA181E681A4B92191D681A4B09 220 | :100DB00052191968194B52181B68194DD21892B262 221 | :100DC0005208184B2A4392B21A60174B17491B68F6 222 | :100DD000174A9C46174B1B6812680F6816496344F4 223 | :100DE0000E6816499B180968DB199B195A1893B2AB 224 | :100DF0005B082B43124A9BB21360207062B6F0BDB1 225 | :100E000024B003405E00002038B003403CB00340F3 226 | :100E100040B0034044B0034048B003404CB00340EE 227 | :100E20000080FFFF2CB0034058B0034064B0034083 228 | :100E300060B003405CB0034068B003406CB0034056 229 | :100E400030B003401B4B1C4A19781C4B082901D1B8 230 | :100E5000002102E00A2903D12E311160132206E09D 231 | :100E60000C2901D1283100E03C21116012221A60C6 232 | :100E7000134B1A78134B002A01D0002200E0012204 233 | :100E80001A60114B1A78114B012A01D880220CE00C 234 | :100E9000042A01D8842208E0082A01D8852204E027 235 | :100EA000102A01D8862200E087221A600122084B0E 236 | :100EB0001A707047D8FEFF1F08B003400CB0034003 237 | :100EC0006000002020B00340D9FEFF1F24B0034083 238 | :100ED0005E000020F8B503000020272B33D81A4A03 239 | :100EE000D45CFF2C2FD0194B1B78834201D0FFF725 240 | :100EF00049FF72B610274022154B144205D01A68DC 241 | :100F0000BA431A603F231C4002E01A683A431A6051 242 | :100F10000123104E104D34602B7062B672B68022E1 243 | :100F20003368134208D00D4B186800232B7062B64B 244 | :100F30000B4B1B78184106E02B78002BDBD062B6F8 245 | :100F400001F070F9EAE7F8BDFE2700005E0000201E 246 | :100F50000CB0034000B003405F00002010B003401D 247 | :100F60005D0000200E4B10B51940C023DB0419436F 248 | :100F70000C4B19600C4B1A6072B601230B4C0343E7 249 | :100F80002000984762B670232278134000D0237067 250 | :100F90008021074AC90013680B43136010BDC04687 251 | :100FA000FCFFFF0004000240080002400000024075 252 | :100FB0000C3000F0F823802208491B0252021888E6 253 | :100FC000884203D1064A023B138006E00233934273 254 | :100FD000F5D10222024B52421A807047FFFF0000F7 255 | :100FE0006200002070B50C4D04002A88002A02D14E 256 | :100FF000FFF7E0FF2A88FF207F2C0CD8F82305009C 257 | :101000001B029A4207D319880E002E40B44200D129 258 | :10101000080A0233F5E770BD62000020F0B5464EC5 259 | :10102000A7B005000F000E22444902A8348801F041 260 | :101030009DFB01967F2D00D97BE0211E03D1FFF798 261 | :10104000B9FF019B19883E4A023191420AD8019B9F 262 | :101050003F023D4319808B0701D43A4A00E02D043A 263 | :101060002A4363E00023FF2206AE9A550133802B0A 264 | :10107000FBD1F8238020FF241B0240021A881100B4 265 | :1010800021407F2901D8120A725402338342F5D1DC 266 | :101090002D4C2E4B7755236072B601272C4D02AB99 267 | :1010A0001F432800B84762B670232A781A402300ED 268 | :1010B000002A00D02A708021264CC90022680A43E9 269 | :1010C0002260254A1A6072B62148B84762B670237A 270 | :1010D00080212A78C9001A402300002A01D01C4828 271 | :1010E0000270F8251400002718682D0201431960CA 272 | :1010F000F35DFF2B0FD00222154202D11C023C43AC 273 | :1011000008E03A0414431B061C432200290002A8ED 274 | :10111000FFF728FF02350137802FE9D1019AAB1E76 275 | :101120001380AB0705D52900064A224302A8FFF722 276 | :1011300019FF27B0F0BDC04662000020262800003D 277 | :10114000FFFF00000000FFFF0400024000F800095C 278 | :10115000000002400C3000F000FC000970B5802552 279 | :101160008026ED02F6000B4C23682B4201D000F0E4 280 | :1011700009FA2368334201D000F00EF823681B05FA 281 | :1011800001D500F009F82368DB04ECD500F004F881 282 | :10119000E9E7C0463480044010B5FFF7DFFFFFFFEA 283 | :1011A0000022014B1A60704700810440704770476D 284 | :1011B00010B51A2818D80C2358430C4A8358101815 285 | :1011C0001C7D027A224205D0002901D01A710BE061 286 | :1011D0001A7209E043681A68002902D003210A4301 287 | :1011E00001E002218A431A6010BDC0463428000085 288 | :1011F00000231A280AD80C335843054A835810187C 289 | :10120000007A1B7C0340581E8341DBB218007047F4 290 | :1012100034280000F0B51A282FD80C2217004743B5 291 | :10122000164CE5196B682600012901D0042911D15B 292 | :10123000504334583018257D027A20202A432275E5 293 | :10124000A22252001A601A68042901D1024313E055 294 | :10125000824311E038592C7A027DA2430275802224 295 | :10126000002908D0022902D10422FF3204E0002222 296 | :10127000032901D1812252001A60F0BD34280000F8 297 | :10128000F7B50E0017000824802501902900019869 298 | :101290003940FFF78DFF01213000FFF789FF013C46 299 | :1012A00000213000FFF784FF6D08002CEED1F7BD60 300 | :1012B00072B60C4B1A680C4B18680C4B1B6862B664 301 | :1012C0005B0104D5322393429B415B42C018084B1B 302 | :1012D0009A1A084B5A43FA239B005843920D101850 303 | :1012E0007047C04618E000E06400002004ED00E014 304 | :1012F0007FBB00005555010070B50400FFF7D8FF13 305 | :101300000500002C0FD0FFF7D3FF074B401B98427E 306 | :1013100006D9013C002C06D0FA239B00ED18F2E719 307 | :1013200000F080FFEFE770BDE703000080221F4B55 308 | :10133000D20510B51A608022002012061A601C4BDC 309 | :101340001C4918601C4B1D4A1960282313601C4A55 310 | :101350001C4C13601C4A13601C4A13601C4A136027 311 | :101360001C4A1360092222601B4C20601B4C216028 312 | :101370001B4C23601B4C23601B4C22601B4C2060C9 313 | :101380001B4801601B490B601B490B601B4B1A601B 314 | :10139000FFF758FDFFF70BFF1420FFF7ADFF00F03C 315 | :1013A000E7FB8C204000FFF7A7FF10BD00E100E045 316 | :1013B00004800340FFBF0000088003400C8003400E 317 | :1013C00014800340008003401C80034024800340BD 318 | :1013D0002C80034034800340049003400890034075 319 | :1013E0000C900340149003400090034004A003407D 320 | :1013F00008A003400CA0034014A0034000A0034039 321 | :101400000223F0B50A4A0B4E1478C8272343DB00A9 322 | :10141000F518686008480578002D00D1403F0904A0 323 | :101420000F43F75001235D405C4005701470F0BD20 324 | :10143000D000002000F8FF1F48010020431E10B517 325 | :101440000020032B0ED872B6074A9900885800284E 326 | :1014500007D044685B008C50044904885A5A121B18 327 | :101460005A5262B610BDC046C0000020DE01002006 328 | :10147000431E0020032B09D872B6054A9B009B58D7 329 | :10148000002B02D001305B68FAE762B67047C046B5 330 | :1014900014010020F8B572B6012308251E00154975 331 | :1014A000154C5A1EA25C2A421AD05F017C589A0041 332 | :1014B000002C05D1CB1908305860104BCB5109E0F6 333 | :1014C0003243D2005758002F0AD18B180830586089 334 | :1014D0000B4B8B500B4A1378013B137062B608E03C 335 | :1014E0000133052BDCD162B60022064B1A7000F0E6 336 | :1014F000B5FBF8BD00F8FF1F782900008800400008 337 | :10150000C80040003E010020421E10B5032A30D81A 338 | :10151000022380001843174BC0001B1872B6164CEC 339 | :10152000A05C03280BD800F053FF16040207052027 340 | :1015300012E0083302200FE0083304200CE00F48CB 341 | :10154000920014580E4B002C01D1115001E0985814 342 | :10155000416099500CE00320A0540A0008325A6000 343 | :10156000C822180700D4403A098809040A431A60BF 344 | :1015700062B610BD00F8FF1F7C000020140100209F 345 | :1015800024010020F7B5B34B1C781D000423E4B2FE 346 | :101590001C421FD0B04B1B78002B18D0AF4A1378D9 347 | :1015A000DBB2002B05D0013BDBB21370002B00D166 348 | :1015B00000BEAB4A1378DBB2002B06D0013BDBB296 349 | :1015C0001370002B01D100F0D1FD00F0D5FB0422F7 350 | :1015D000A04B1A700822224000D15CE2A14BA24F1E 351 | :1015E0001B78DBB29C08E4001D093C19002D00D0DB 352 | :1015F000E2E1206865688006000F01380C2800D9F8 353 | :10160000D6E100F0EFFE88018801D501D501D501B2 354 | :10161000D501D501D501B201D501D501D5010D0006 355 | :101620006B68924E9249736000230B6001219148D0 356 | :101630002A682060904C32602170904C92B23B61DD 357 | :101640000190BB61A24218D8D020C000824200D3D2 358 | :10165000E7E081204000824200D1C3E006D8802A22 359 | :1016600000D1A8E0822A00D1AAE0EFE0844B9A42A0 360 | :1016700000D1C6E0FF33FF3317E0824B9A4200D11E 361 | :1016800046E10DD8A13B9A4200D18EE080339A42C8 362 | :1016900000D0DBE0B278704B04241A70802508E09B 363 | :1016A000794B9A4200D10DE1784B9A4200D109E181 364 | :1016B000CCE0E300FA582A4204D0FB1858680838F6 365 | :1016C00000F0CCFA0134142CF3D100242500704B27 366 | :1016D000E058002805D04368009300F0BFFA009856 367 | :1016E000F7E76B4B18516B4BE0506B4BE058002801 368 | :1016F00005D04368009300F0B1FA0098F7E7664B15 369 | :10170000664A1851664BE0506B00D052654BE85C5E 370 | :101710000238032807D800F05BFE0204020400220E 371 | :1017200000E001225A5501350434042DCFD10023A5 372 | :1017300001245D4D2B705D4B5D49621EE3188A5C90 373 | :101740009B001A7008231A4221D000F069FA630145 374 | :10175000002805D0FA1808305060564AFA5003E0C5 375 | :10176000F8502B7801332B7000F05AFA0122A300B5 376 | :101770001343002806D0DB00FA1808305060019AA5 377 | :10178000FA5004E0DB00F8502B789B182B700221F4 378 | :101790000023A2001143C9007B5003210A438A4061 379 | :1017A0000134BB50052CC6D18DE02B4B424C1B782D 380 | :1017B00023700B0088E0404C23706370022383E0A9 381 | :1017C0007F22B0880240042A40D83B4C920023700C 382 | :1017D00063703A4BD218022312781A4200D173E098 383 | :1017E000217071E07F23B2881A40042A2ED87388B2 384 | :1017F000002B2BD1022031499200521811788143DD 385 | :101800000DE07F23B2881A40042A1FD87388002B6A 386 | :101810001CD10220294992005218117801431170FD 387 | :1018200051E07288B188264B5C68002C0ED0188875 388 | :10183000904209D15888884206D1120A032A01D160 389 | :10184000237841E01B893FE00C33EDE70F221B4B6F 390 | :101850001A705DE08020074047010020D100002081 391 | :10186000B80100209020074000F8FF1F340100203D 392 | :1018700068000020C80040004801002081060000E8 393 | :101880000203000021090000210A000021220000BB 394 | :10189000C00000206C00002014010020DE010020A8 395 | :1018A000240100207C0000203E01002030C80110EF 396 | :1018B00078290000880040003F010020C020074038 397 | :1018C0007C29000000231C00F5889D4200D91D00E2 398 | :1018D0002E00402D00D9402620003100FFF790FD5A 399 | :1018E000A419AD1B03D12F00402E04D010E04027D7 400 | :1018F000AF4200D92F0020003900FFF781FDE41925 401 | :10190000ED1B01D1402F03D17E4B1C607E4B1D800F 402 | :1019100001227E4B4BE07E4E7E4B32889A4203D1B1 403 | :1019200000210800FFF76CFD7B4B32689A4219D109 404 | :101930007A4B72689A4215D12B78A92B0BD16B7810 405 | :10194000452B08D1AB78C22B05D1EB786B2B02D19C 406 | :101950000522734B01E00122724B00211A7008002E 407 | :10196000FFF74EFD704B236022E0664F3E68002E6D 408 | :1019700013D0654B1C882500402C00D94025290038 409 | :101980003000FFF73DFD641B5F4BA4B21C80002CB0 410 | :1019900001D1402D00D174193C60A0225C4BD200D3 411 | :1019A0001988914204D100225A709A785F4B1A70BC 412 | :1019B0000122564B1A706AE008226068013D08381F 413 | :1019C000EDB2134037D000F049F95949A800425808 414 | :1019D000584B002A1CD0566846501100585D0831FB 415 | :1019E000616003280BD800F0F3FC02040608032111 416 | :1019F00004E0022102E0052100E0042159550821FC 417 | :101A0000C8230C4200D1403B1288120413433DE02E 418 | :101A1000585D032808D800F0DBFC3A3A02040022A3 419 | :101A200000E001225A5532E008221440621E94411F 420 | :101A300002345C552BE02168090C8AB2028000292F 421 | :101A40001ED03D4943804360AB005F583B4E002FA2 422 | :101A500001D1585001E0F158486039496D00F0500B 423 | :101A60006B5AD2186A5200F0DBF8002802D0083016 424 | :101A7000606005E0334A206013780133137006E09C 425 | :101A800008231C4201D1304B00E0274B2360082281 426 | :101A90002E4B1A7077E5012004421ED002231B4909 427 | :101AA000294C0B702A4B2B4E1A702B4B1C605E601E 428 | :101AB0009C602A4CDC600D241A619A61284B1C70D2 429 | :101AC000FF23284C2370194C2B702270264A137068 430 | :101AD0009F22264B1A70087013E063B2002B04DAC1 431 | :101AE0000D221F4B1A7080232B700222144204D047 432 | :101AF0001C490B78DBB20B702A7010231C4200D0FB 433 | :101B00002B70F7BD680000203C01002094200740A6 434 | :101B100034010020212000002109000301000400FD 435 | :101B2000D1000020AD010020C800400098200740EF 436 | :101B3000140100207C000020C00000206C00002068 437 | :101B4000DE0100203E010020880040008020074088 438 | :101B5000D00000208000002000F8FF1FD4000020EB 439 | :101B6000C0200740882007408C2007408420074081 440 | :101B700010B500F0EFFB002210001B4BD100C85045 441 | :101B8000013259184860142AF8D180201749C00240 442 | :101B90000A6802430A601A0A1549D2B20A701A0C7E 443 | :101BA0001449D2B20A70144A1B0E1370FF23134A51 444 | :101BB00000201370124A13491370134A1370012244 445 | :101BC0000A701249087012490A70124A1168994342 446 | :101BD0000B0070210B43136080220F4B52041A60DC 447 | :101BE00010220E4B1A7010BD00F8FF1F3480044005 448 | :101BF0009C200740B0200740B420074080200740C9 449 | :101C0000882007409420074010200740002107400B 450 | :101C10008420074018E400E000E100E008210740CC 451 | :101C200070B572B60B4D2C68200000F05BFD0F28DC 452 | :101C300002DD62B600200CE080231B06C3409C43FB 453 | :101C40002C6062B648235843034B181800230360E6 454 | :101C5000436070BDDCFEFF1FC0F9FF1F10B504001C 455 | :101C60000E484821201A00F0C7FB0F2814D80C4B4F 456 | :101C70001B78002B07D00B4B1B78002B03D02000C8 457 | :101C8000FFF708FC08E072B680231B06C340064A33 458 | :101C900011680B43136062B610BDC046C0F9FF1F48 459 | :101CA0003E01002047010020DCFEFF1F0B4B70B5FA 460 | :101CB0001B6805000A4C002B07D021883B2904D95A 461 | :101CC0000022084898470023238023883B2B03D811 462 | :101CD0005A1C2280034AD55470BDC04670010020B2 463 | :101CE000E8010020EE010020F8B501231D4D1E4C37 464 | :101CF0002B7023680700002B1DD11C4E1C4B1B783A 465 | :101D0000002B2DD00320FFF7B3FB052804D9013E9B 466 | :101D1000184B002E06D108E0FFF782FF2060002854 467 | :101D2000F5D008E01A78002A02D001221A7017E0D4 468 | :101D300000F078FAE2E700260E4B21681E704B880F 469 | :101D40005A1C9B00CB189F600F2A01D84A8005E0DF 470 | :101D5000402303200B80FFF7D7FB266000232B7066 471 | :101D6000F8BDC046600100208C010020E142000067 472 | :101D7000470100209001002070B5094B1D78002D0F 473 | :101D80000CD1084C2168002908D04B88002B05D0C5 474 | :101D90009B000B800320FFF7B7FB256070BDC0469A 475 | :101DA000600100208C010020F7B5B44E019033682B 476 | :101DB0003500002B13D1B24B1B78002B00D1A7E1CB 477 | :101DC0000420FFF73BFB3060002800D1A0E104882D 478 | :101DD000002C04D1FFF742FF3460200099E128680D 479 | :101DE00043889A08920082189468028804339342C8 480 | :101DF00001D2438005E0FFF731FF0420FFF71EFB0F 481 | :101E000028600F23250022099E491A401D40260AFA 482 | :101E100037000A702A001F40083A0137062A7FD887 483 | :101E2000019A002A02D0974200D071E1220B1340A0 484 | :101E3000082D07D1082B00D06AE18022924B1A703E 485 | :101E4000924B21E0092D16D1092B00D060E1220E22 486 | :101E50008D4B210C002A07D0902018708C4BD2B2E9 487 | :101E60001B68002B15D152E080201870874B1B682F 488 | :101E7000002B0ED14BE00A2D0FD10A2B00D047E1E9 489 | :101E8000A022814B1A70834B1B68002B3FD0220E7F 490 | :101E9000210CC9B2F8B2984739E00B2D07D10B2BB2 491 | :101EA00000D035E1B022784B1A707B4BECE70C2D5B 492 | :101EB00007D10C2B00D02BE1C022734B1A70774B4B 493 | :101EC00008E00D2D0ED10D2B00D021E1D0226E4B5C 494 | :101ED0001A70734B1B68002B19D0210CC9B2F8B2D1 495 | :101EE000984714E00E2B00D012E1E022664B1A70E6 496 | :101EF0006C4B1B68002B0AD0FE226102480E920137 497 | :101F0000610C1140684A01438918F8B29847674B41 498 | :101F1000220C1F70664B240E1A70664B1C70AAE0D0 499 | :101F2000AB1EF0B2012B05D9052D6DD1F02879D962 500 | :101F3000F72877D0F1380E2800D9E9E000F048FA08 501 | :101F4000080A17E8E81EE823E82D3741E84B55005A 502 | :101F5000594B0DE0594B1A68002A52D0FE236002FB 503 | :101F6000410E9B01600C18400843904749E0544BD8 504 | :101F70001B68200CC0B2002B42D142E0514B1B68C1 505 | :101F8000002B36D13DE0504B1B68002B31D14F4B1D 506 | :101F9000F8201B68002B33D133E04D4B1B68002B1E 507 | :101FA00027D14A4BFA201B68002B29D129E0494B45 508 | :101FB0001B68002B1DD1454BFB201B68002B1FD13C 509 | :101FC0001FE0454B1B68002B13D1404BFC201B68C6 510 | :101FD000002B15D115E0414B1B68002B09D13B4B61 511 | :101FE000FE201B68002B0BD10BE03D4B1B68002B28 512 | :101FF00001D0984705E0354B1B68002B01D0FF202E 513 | :102000009847214B1E7082E7042D08D1F0B2FFF7EC 514 | :102010004DFE200CC0B2FFF749FE200E76E06B1F8C 515 | :10202000022B67D8F0B2FFF741FE052D08D0200C37 516 | :10203000C0B2FFF73BFE072D02D1200EFFF736FEA0 517 | :10204000284B1B4A198811701A4A080A107000227E 518 | :102050001A800D4BF0321A70234B1B68002B03D0F3 519 | :10206000EF3A2248984706E0214B01201B68002BDD 520 | :102070004FD01E48984701204BE0C04698010020F1 521 | :1020800047010020EC010020E6010020A001002013 522 | :10209000A801002074010020A40100206401002098 523 | :1020A000780100206801002000E0FFFFED01002022 524 | :1020B000EA010020EB010020800100206C010020DB 525 | :1020C0009C010020840100204C01002058010020C8 526 | :1020D0007C0100205C0100209401002054010020BC 527 | :1020E00050010020E801002070010020EE010020D6 528 | :1020F000880100200F2D0BD1F72800D91AE7F0280E 529 | :1021000003D0044B1B88002B02D0F0B2FFF7CEFDAA 530 | :102110000020FEBDE801002070B5124C2368002BA2 531 | :1021200004D0206842880188130010E00E4B1B7811 532 | :10213000002B03D00220FFF781F920602568002DD5 533 | :10214000EFD10CE0C618367A002E03D001339D1A69 534 | :102150008B42F7DB002D02D1FFF780FD25602800C0 535 | :1021600070BDC046B40100204701002010B50B4BE4 536 | :102170001B78DBB2002B0FD1094C21684A883F2A1B 537 | :1021800003DC881803720132F9E7402301200B8039 538 | :10219000FFF7BAF90023236010BDC046AC01002050 539 | :1021A000B0010020EFF3108072B643425841C0B234 540 | :1021B0007047002800D062B67047FFFF10B5FFF7E8 541 | :1021C000F1FF0C4A1468002C10D063691360002BD7 542 | :1021D00002D000229A6101E0074A1360FFF7E9FF8D 543 | :1021E000002320006377A3689847E8E7FFF7E1FF43 544 | :1021F00010BDC046BC010020C001002010B5FFF793 545 | :10220000DDFF10BD024A1368013313607047C046FA 546 | :102210006400002010B5FEF72FFCFEF7D5FB00F0A0 547 | :1022200001F8FAE7F8B52F4C2278002A58D02E4E44 548 | :102230003378002B54D1013333701A420DD0FFF79D 549 | :102240006BFF002801D000F0C1F8284B1B78002B51 550 | :1022500003D0012223789343237023789B0712D560 551 | :102260000025234B1B78AB420DD9224BAA00D7582F 552 | :102270003B6838001B699847002801D03B699847A4 553 | :102280000135EDB2EDE70023337023785B0727D5E6 554 | :1022900019490B68002B23D0EFF30583002B1FD1C6 555 | :1022A000EFF3108272B60868002803D0134C25782B 556 | :1022B000002D03D0002A13D162B611E00123237050 557 | :1022C00043690B60002B01D09D6101E00C490B605C 558 | :1022D000002A00D162B600258368457798472570AB 559 | :1022E000F8BDC046E0FEFF1FCD010020B0FFFF1F7C 560 | :1022F000DC010020D0010020C8010020CC0100201A 561 | :10230000C4010020F8B506000D00170000243900B4 562 | :10231000300000F0F7F80B003733DBB2092901D8A1 563 | :102320003031CBB230002B55390000F065F8061E75 564 | :1023300001D00134EBE72B1958702B005A1B944243 565 | :1023400006DD1A78295D19702A550133013CF5E73D 566 | :102350002800F8BD30B585B072B670224121154B0A 567 | :102360001A70154A1170154A3239117080221A708C 568 | :102370001A7852B2002AFBDA114B186862B6114B78 569 | :10238000984201D80A23584301AC0A222100FFF7E2 570 | :10239000B9FF00230C48E15C0500002905D05A0074 571 | :1023A0008218013351800A2BF5D101335B002B7069 572 | :1023B00005B030BD000002400700024006000240A8 573 | :1023C000080002407F9698009AFFFF1F7047FFFFAA 574 | :1023D00002B4714649084900095C49008E4402BCB8 575 | :1023E0007047C04603B47146490840004900095A85 576 | :1023F00049008E4403BC7047002243088B4274D3CB 577 | :1024000003098B425FD3030A8B4244D3030B8B42F5 578 | :1024100028D3030C8B420DD3FF22090212BA030CFE 579 | :102420008B4202D31212090265D0030B8B4219D3DF 580 | :1024300000E0090AC30B8B4201D3CB03C01A5241FF 581 | :10244000830B8B4201D38B03C01A5241430B8B4247 582 | :1024500001D34B03C01A5241030B8B4201D30B0330 583 | :10246000C01A5241C30A8B4201D3CB02C01A524157 584 | :10247000830A8B4201D38B02C01A5241430A8B421A 585 | :1024800001D34B02C01A5241030A8B4201D30B0203 586 | :10249000C01A5241CDD2C3098B4201D3CB01C01A1D 587 | :1024A000524183098B4201D38B01C01A5241430927 588 | :1024B0008B4201D34B01C01A524103098B4201D315 589 | :1024C0000B01C01A5241C3088B4201D3CB00C01A82 590 | :1024D000524183088B4201D38B00C01A52414308FA 591 | :1024E0008B4201D34B00C01A5241411A00D201461F 592 | :1024F000524110467047FFE701B5002000F0F0F8A8 593 | :1025000002BDC0460029F7D076E7704703460B436B 594 | :102510007FD4002243088B4274D303098B425FD3DC 595 | :10252000030A8B4244D3030B8B4228D3030C8B4208 596 | :102530000DD3FF22090212BA030C8B4202D31212EE 597 | :10254000090265D0030B8B4219D300E0090AC30BC3 598 | :102550008B4201D3CB03C01A5241830B8B4201D370 599 | :102560008B03C01A5241430B8B4201D34B03C01A59 600 | :102570005241030B8B4201D30B03C01A5241C30AD1 601 | :102580008B4201D3CB02C01A5241830A8B4201D342 602 | :102590008B02C01A5241430A8B4201D34B02C01A2C 603 | :1025A0005241030A8B4201D30B02C01A5241CDD2D1 604 | :1025B000C3098B4201D3CB01C01A524183098B421C 605 | :1025C00001D38B01C01A524143098B4201D34B0105 606 | :1025D000C01A524103098B4201D30B01C01A524168 607 | :1025E000C3088B4201D3CB00C01A524183088B42EF 608 | :1025F00001D38B00C01A524143088B4201D34B00D8 609 | :10260000C01A5241411A00D2014652411046704749 610 | :102610005DE0CA0F00D04942031000D3404253404E 611 | :1026200000229C4603098B422DD3030A8B4212D30E 612 | :10263000FC22890112BA030A8B420CD38901921140 613 | :102640008B4208D3890192118B4204D389013AD07D 614 | :10265000921100E08909C3098B4201D3CB01C01A52 615 | :10266000524183098B4201D38B01C01A5241430965 616 | :102670008B4201D34B01C01A524103098B4201D353 617 | :102680000B01C01A5241C3088B4201D3CB00C01AC0 618 | :10269000524183088B4201D38B00C01A5241D9D2D8 619 | :1026A00043088B4201D34B00C01A5241411A00D259 620 | :1026B0000146634652415B10104601D34042002B55 621 | :1026C00000D54942704763465B1000D3404201B5D4 622 | :1026D000002000F005F802BD0029F8D016E7704789 623 | :1026E0007047C0461C2101231B04984201D3000CF3 624 | :1026F00010391B0A984201D3000A08391B09984275 625 | :1027000001D30009043902A2105C40187047C0468A 626 | :1027100004030202010101010000000000000000AA 627 | :102720000E4B70B500251E000D4CE41AA410A542F6 628 | :1027300004D0AB00F35898470135F8E700F05AF998 629 | :10274000084B00251E00084CE41AA410A54204D032 630 | :10275000AB00F35898470135F8E770BD002A000038 631 | :10276000002A0000002A00000C2A0000002310B5F7 632 | :102770009A4203D0CC5CC4540133F9E710BD7E30DB 633 | :102780006D79335B5F707F7B771F0D3D4F47000096 634 | :102790000000000000000000000000000000000039 635 | :1027A00000000000000000000000800180007E307A 636 | :1027B0006D79335B5F707F7B000000000000007765 637 | :1027C0001F0D3D4F4700370000000E00000067005E 638 | :1027D000000000000000000000000000000800777A 639 | :1027E0001F0D3D4F4700370000000E00151D67000C 640 | :1027F0000000000000000000000000000000050EC6 641 | :1028000008090D0C06070F0B004417FF050E0809F9 642 | :102810000D0C06070F0B004417FFFFFFFFFFFFFF24 643 | :10282000FFFFFFFF1A1B8023037003785BB2002BAE 644 | :10283000FBDA7047420000F840A0044001000000AD 645 | :10284000420000F844A0044002000000C00000F86C 646 | :1028500000C0044001000000000000F804900440A3 647 | :1028600002000000000000F808900440040000008E 648 | :10287000C00000F81CC0044080000000C00000F848 649 | :1028800010C0044010000000C00000F808C0044060 650 | :1028900004000000C00000F80CC004400800000064 651 | :1028A000800000F80CB0044008000000800000F830 652 | :1028B00010B0044010000000800000F818B0044080 653 | :1028C00040000000800000F81CB0044080000000C0 654 | :1028D000800000F814B0044020000000C00000F8A0 655 | :1028E00004C0044002000000800000F800B0044072 656 | :1028F00001000000400000F800A0044001000000BA 657 | :10290000400000F804A0044002000000400000F86D 658 | :102910000CA0044008000000400000F808A004409B 659 | :1029200004000000C00000F814C0044020000000B3 660 | :10293000C00000F818C0044040000000800000F80B 661 | :1029400004B0044002000000800000F808B0044019 662 | :1029500004000000020100F850D004401000000004 663 | :10296000020100F854D0044020000000030100F8E8 664 | :1029700078D004404000000015191519000100002E 665 | :10298000E1FEFF1F1200000000020000F3FEFF1F27 666 | :10299000730000000022010066FFFF1F21000000FD 667 | :1029A000002101004FFFFF1F09000000050309047B 668 | :1029B00088FFFF1F000000000003000096FFFF1FBC 669 | :1029C000000000000103090440FEFF1F000000009A 670 | :1029D0000203090460FEFF1F000000000303090456 671 | :1029E0009AFFFF1F00000000000000000000000030 672 | :1029F00000000000F8B5C046F8BC08BC9E46704711 673 | :0C2A000039040000550B00007D0D0000A3 674 | :042A0C00F8B5C04613 675 | :102A100020034E006F007400650073002000610009 676 | :102A20006E006400200056006F006C00740073009C 677 | :102A30000C0346004100440052003400010203042C 678 | :102A4000050607080102030405060708010203043E 679 | :102A5000050607080102030405060708010203042E 680 | :102A6000050607080102030405060708010203041E 681 | :102A70000506070801020304050607080201020310 682 | :102A800004050607080000000E0000000F0000000B 683 | :102A900010000000110000001200000013000000F0 684 | :102AA00014000000150000000A040000FFFFFFFFF3 685 | :102AB000011201100100000040C0168504730201DC 686 | :102AC00002030109027300020100C0320904000080 687 | :102AD0000201030000072401000125000624020171 688 | :102AE0000105062402020205092403010301020173 689 | :102AF000050924030204010101050905040240003F 690 | :102B000000000005250101010905830240000000C5 691 | :102B1000000525010103090401000203000000096A 692 | :102B20002111010001222100070581034000010756 693 | :102B300005020320000206C9FF0904A15C750815FF 694 | :102B40000026FF00954009758102952009769102C3 695 | :102B500095040976B102C0000E0350006F007200A8 696 | :102B6000740020003100040309040C03000000007D 697 | :102B70000000000000000000000000000000000055 698 | :042B80000100000050 699 | :00000001FF 700 | -------------------------------------------------------------------------------- /FADR-4/FADR-4.ino: -------------------------------------------------------------------------------- 1 | /****************************** 2 | FADR-4 v1.0.0 3 | for Teensy LC (www.pjrc.com) 4 | by Notes and Volts 5 | www.notesandvolts.com 6 | ******************************/ 7 | 8 | /************************************** 9 | ** Upload Settings ** 10 | Board: "Teensy LC" 11 | USB Type: "MIDI" 12 | CPU Speed: "48 Mhz" 13 | **************************************/ 14 | 15 | #include 16 | #include 17 | 18 | #define EEPROM_KEY 200 19 | #define LED_LEVEL 2 20 | 21 | #define EDIT_BUTTON 12 22 | 23 | LedControl mydisplay = LedControl(4, 2, 3, 1); 24 | 25 | byte memStart = 2; // Start of Faders in EEPROM 26 | byte bank = 0; 27 | int oldValue[8]; 28 | int pins[] = {A0, A1, A2, A3, A4, A5, A6, A7}; 29 | byte cc[][8] = { 30 | {1, 2, 3, 4, 5, 6, 7, 8}, 31 | {1, 2, 3, 4, 5, 6, 7, 8}, 32 | {1, 2, 3, 4, 5, 6, 7, 8}, 33 | {1, 2, 3, 4, 5, 6, 7, 8}, 34 | {1, 2, 3, 4, 5, 6, 7, 8}, 35 | {1, 2, 3, 4, 5, 6, 7, 8}, 36 | {1, 2, 3, 4, 5, 6, 7, 8}, 37 | {1, 2, 3, 4, 5, 6, 7, 8} 38 | }; 39 | byte mChan[] = {1, 2, 3, 4, 5, 6, 7, 8}; 40 | byte val = 0; 41 | 42 | void setup() { 43 | pinMode(EDIT_BUTTON, INPUT_PULLUP); //Edit Button 44 | mydisplay.setIntensity(0, LED_LEVEL); // 15 = brightest 45 | mydisplay.shutdown(0, false); // turns on display 46 | mydisplay.setRow(0, 0, 0x76); 47 | mydisplay.setRow(0, 1, 0x77); 48 | mydisplay.setRow(0, 2, 0x3e); 49 | 50 | initRom(); 51 | readRom(); 52 | if (digitalRead(EDIT_BUTTON) == LOW) { 53 | mydisplay.setChar(0, 0, 8, true); 54 | mydisplay.setChar(0, 1, 8, true); 55 | mydisplay.setDigit(0, 2, 8, true); 56 | delay(2000); 57 | mydisplay.setDigit(0, 0, 1, true); // Version 1.0.0 58 | mydisplay.setDigit(0, 1, 0, true); 59 | mydisplay.setDigit(0, 2, 0, false); 60 | delay(8000); 61 | } 62 | if (digitalRead(EDIT_BUTTON) == LOW) { 63 | showRom(); 64 | } 65 | delay(2000); 66 | faderReset(); 67 | } 68 | 69 | void loop() { 70 | usbMIDI.read(); 71 | switch (checkButton()) { 72 | case 1: 73 | displayMode(); 74 | break; 75 | case 2: 76 | channelEdit(); 77 | break; 78 | } 79 | for (int x = 0; x < 4; x++) { 80 | val = getFaderValue(x); 81 | if (val < 255) { 82 | usbMIDI.sendControlChange(cc[bank][x], (val), mChan[0]); 83 | threeDigit(val); 84 | } 85 | } 86 | } 87 | 88 | void faderReset() { 89 | for (int x = 0; x < 4; x++) { 90 | val = getFaderValue(x); 91 | if (val < 255) { 92 | } 93 | } 94 | mydisplay.setChar(0, 0, '-', false); 95 | mydisplay.setChar(0, 1, '-', false); 96 | mydisplay.setChar(0, 2, '-', false); 97 | } 98 | 99 | void channelEdit() { 100 | int channelVal = mChan[0]; 101 | chanDigit(channelVal); 102 | 103 | while (checkButton() != 1) { 104 | usbMIDI.read(); 105 | for (int x = 0; x < 4; x++) { 106 | val = getFaderValue(x); 107 | if (val < 255) { 108 | channelVal = (val >> 3) + 1; 109 | chanDigit(channelVal); 110 | } 111 | } 112 | } 113 | mChan[0] = channelVal; 114 | if (mChan[0] != EEPROM.read(1)) EEPROM.write(1, mChan[0]); 115 | mydisplay.setIntensity(0, 0); 116 | delay(100); 117 | mydisplay.setIntensity(0, LED_LEVEL); 118 | delay(100); 119 | mydisplay.setIntensity(0, 0); 120 | delay(100); 121 | mydisplay.setIntensity(0, LED_LEVEL); 122 | delay(100); 123 | 124 | faderReset(); 125 | } 126 | 127 | void displayMode() { 128 | unsigned long buttonMillis; 129 | unsigned long currentMillis; 130 | unsigned long delayMillis; 131 | byte faderSelected = 1; 132 | bool toggle = true; 133 | byte buttonStat = 0; 134 | 135 | buttonMillis = millis(); 136 | delayMillis = buttonMillis;//TEST 137 | 138 | while (1) { 139 | usbMIDI.read(); 140 | currentMillis = millis(); 141 | buttonStat = checkButton(); 142 | if (buttonStat == 1) { 143 | faderSelected++; 144 | if (faderSelected > 4) faderSelected = 1; 145 | mydisplay.setChar(0, 0, 'F', false); 146 | mydisplay.setDigit(0, 1, faderSelected, false); 147 | mydisplay.setChar(0, 2, ' ', false); 148 | buttonMillis = millis(); 149 | delayMillis = buttonMillis; 150 | currentMillis = buttonMillis; 151 | toggle = false; 152 | } 153 | 154 | else if (buttonStat == 2) { 155 | threeDigit(cc[bank][faderSelected - 1]); 156 | faderEdit(faderSelected); 157 | buttonMillis = millis(); 158 | delayMillis = buttonMillis; 159 | currentMillis = buttonMillis; 160 | toggle = false; 161 | } 162 | 163 | if (currentMillis - delayMillis >= 1000) { 164 | if (toggle == true) { 165 | mydisplay.setChar(0, 0, 'F', false); 166 | mydisplay.setDigit(0, 1, faderSelected, false); 167 | mydisplay.setChar(0, 2, ' ', false); 168 | } 169 | else if (toggle == false) { 170 | threeDigit(cc[bank][faderSelected - 1]); 171 | } 172 | toggle = !toggle; 173 | delayMillis = millis(); 174 | } 175 | 176 | if (currentMillis - buttonMillis > 8000) { 177 | faderReset(); 178 | return; 179 | } 180 | } 181 | } 182 | 183 | void faderEdit(byte fader) { 184 | unsigned long delayMillis; 185 | bool toggle = true; 186 | byte temp = cc[0][fader - 1]; 187 | 188 | delayMillis = millis(); 189 | while (checkButton() == 2) { 190 | usbMIDI.read(); 191 | if (millis() - delayMillis >= 100) { 192 | if (toggle == true) mydisplay.setIntensity(0, 0); 193 | else mydisplay.setIntensity(0, LED_LEVEL); 194 | delayMillis = millis(); 195 | toggle = !toggle; 196 | } 197 | for (int x = 0; x < 4; x++) { 198 | val = getFaderValue(x); 199 | if (val < 255) { 200 | threeDigit(val); 201 | temp = val; 202 | cc[0][fader - 1] = val; 203 | } 204 | } 205 | } 206 | if (temp != EEPROM.read((fader - 1) + memStart)) EEPROM.write((fader - 1) + memStart, temp); //Write new CC to EEProm 207 | mydisplay.setIntensity(0, LED_LEVEL); 208 | return; 209 | } 210 | 211 | void threeDigit(int number) { 212 | int first = number / 100; 213 | int secon = number % 100 / 10; 214 | int third = number % 10; 215 | mydisplay.setDigit(0, 2, third, false); 216 | mydisplay.setDigit(0, 1, secon, false); 217 | mydisplay.setDigit(0, 0, first, false); 218 | } 219 | 220 | void chanDigit(int number) { 221 | int secon = number % 100 / 10; 222 | int third = number % 10; 223 | mydisplay.setDigit(0, 2, third, false); 224 | mydisplay.setDigit(0, 1, secon, false); 225 | mydisplay.setChar(0, 0, 'C', false); 226 | 227 | } 228 | 229 | int getFaderValue(int pin) { 230 | int value = analogRead(pins[pin]); 231 | int tmp = (oldValue[pin] - value); 232 | if (tmp >= 8 || tmp <= -8) { 233 | value = analogRead(pins[pin]); 234 | tmp = (oldValue[pin] - value); 235 | if ((tmp >= 8) || (tmp <= -8)) { 236 | if (value == 8) oldValue[pin] = value + 1;// Zero Fix 237 | else oldValue[pin] = value; 238 | if (value < 8) return 0; //test 239 | else return (value >> 3); //test 240 | } 241 | } 242 | return 255; 243 | } 244 | 245 | void editBank() { 246 | bank++; 247 | if (bank > 7) bank = 0; 248 | mydisplay.clearDisplay(0); 249 | mydisplay.setChar(0, 0, 'B', false); 250 | mydisplay.setChar(0, 2, (bank + 1), false); 251 | delay(500); 252 | } 253 | 254 | void readRom() { 255 | mChan[0] = EEPROM.read(1); //Read Midi Channel 256 | 257 | for (int bank = 0; bank < 8; bank++) { 258 | for (int fader = 0; fader < 8; fader++) { 259 | cc[bank][fader] = EEPROM.read((bank * 8) + (fader + memStart)); 260 | } 261 | } 262 | } 263 | 264 | void initRom() { 265 | byte key = 102; // First CC Number 266 | 267 | if (EEPROM.read(0) != EEPROM_KEY) { 268 | EEPROM.write(0, EEPROM_KEY); // Key 269 | 270 | EEPROM.write(1, 1); // Set Midi channel to 1 271 | 272 | for (int bank = 0; bank < 8; bank++) { 273 | for (int fader = 0; fader < 8; fader++) { 274 | EEPROM.write((bank * 8) + (fader + memStart), key); 275 | key++; 276 | } 277 | } 278 | mydisplay.setChar(0, 0, ' ', true); 279 | mydisplay.setChar(0, 1, ' ', true); 280 | mydisplay.setChar(0, 2, ' ', true); 281 | delay(1000); 282 | } 283 | } 284 | 285 | byte checkButton() { 286 | const int debounce = 50; 287 | const int longPress = 2000; 288 | static byte buttonState = 0; 289 | static unsigned long buttonMillis; 290 | static unsigned long currentMillis; 291 | 292 | switch (buttonState) { 293 | case 0: // Nothing 294 | if (digitalRead(EDIT_BUTTON) == LOW) { 295 | buttonState = 1; 296 | buttonMillis = millis(); 297 | } 298 | return 0; 299 | break; 300 | case 1: // Test 301 | currentMillis = millis(); 302 | if (currentMillis - buttonMillis > debounce) { 303 | if (digitalRead(EDIT_BUTTON) == LOW) buttonState = 2; 304 | else buttonState = 0; 305 | } 306 | return 0; 307 | break; 308 | case 2: // Valid 309 | currentMillis = millis(); 310 | if (digitalRead(EDIT_BUTTON) == LOW) { 311 | if (currentMillis - buttonMillis > longPress) { 312 | buttonState = 3; 313 | return 2; 314 | } 315 | } 316 | else { 317 | buttonState = 0; 318 | return 1; 319 | } 320 | return 0; 321 | break; 322 | case 3: // Long 323 | if (digitalRead(EDIT_BUTTON) == HIGH) { 324 | buttonState = 0; 325 | return 0; 326 | } 327 | else return 2; 328 | break; 329 | default: 330 | buttonState = 0; 331 | return 0; 332 | break; 333 | } 334 | } 335 | 336 | void showRom() { 337 | for (int i = 0; i < 6; i++) { 338 | threeDigit(EEPROM.read(i)); 339 | delay(2000); 340 | } 341 | } 342 | -------------------------------------------------------------------------------- /FADR-4/name.c: -------------------------------------------------------------------------------- 1 | // To give your project a unique name, this code must be 2 | // placed into a .c file (its own tab). It can not be in 3 | // a .cpp file or your main sketch (the .ino file). 4 | 5 | #include "usb_names.h" 6 | 7 | // Edit these lines to create your own name. The length must 8 | // match the number of characters in your custom name. 9 | 10 | #define MIDI_NAME {'F','A','D','R','4'} 11 | #define MIDI_NAME_LEN 5 12 | 13 | #define MANUFACTURER_NAME {'N','o','t','e','s',' ','a','n','d',' ','V','o','l','t','s'} 14 | #define MANUFACTURER_NAME_LEN 15 15 | 16 | // Do not change this part. This exact format is required by USB. 17 | 18 | struct usb_string_descriptor_struct usb_string_product_name = { 19 | 2 + MIDI_NAME_LEN * 2, 20 | 3, 21 | MIDI_NAME 22 | }; 23 | 24 | struct usb_string_descriptor_struct usb_string_manufacturer_name = { 25 | 2 + MANUFACTURER_NAME_LEN * 2, 26 | 3, 27 | MANUFACTURER_NAME 28 | }; 29 | -------------------------------------------------------------------------------- /FADR4 - User Guide.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NotesAndVolts/FADR-4/5152d9297f97887e1733fc5d4b23cffa69053ff5/FADR4 - User Guide.pdf -------------------------------------------------------------------------------- /LICENCE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 NotesAndVolts 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # FADR-4 2 | A four channel midi controller for the Teensy-LC 3 | 4 | Tutorial Video: https://youtu.be/oAxvV_dByz0 5 | --------------------------------------------------------------------------------