From 60095a2f69a003e2b7b59466ddd2cee7f78d75ed Mon Sep 17 00:00:00 2001 From: Jorge Aparicio Date: Wed, 15 Jul 2020 13:35:55 +0200 Subject: [PATCH 1/5] add more switch info --- embedded-workshop-book/src/hardware.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/embedded-workshop-book/src/hardware.md b/embedded-workshop-book/src/hardware.md index b90859c..b34ca7b 100644 --- a/embedded-workshop-book/src/hardware.md +++ b/embedded-workshop-book/src/hardware.md @@ -51,7 +51,7 @@ $ ls /dev/tty.usbmodem* ## nRF52840 Development Kit (DK) -Connect one end of a micro USB cable to the USB connector *J2* of the board and the other end to your PC. +Connect one end of a micro USB cable to the USB connector *J2* of the board and the other end to your PC. 💬 These directions assume you are holding the board "horizontally" with components (switches, buttons and pins) facing up. In this position, rotate the board, so that its concave shaped short side faces right. You'll find one USB connector (J2) on the left edge, another USB connector (J3) on the bottom edge and 4 buttons on the bottom right corner. @@ -108,5 +108,8 @@ $ ls /dev/tty.usbmodem* The board has several switches to configure its behavior. The out of the box configuration is the one we want. If the above instructions didn't work for you, check the position of the on-board switches: -- Switch SW8, located on the bottom edge left corner, is set to the ON position; this is the left position of the two possible positions. -- Switch SW9, located on the surface of the board, to the right of USB connector (J2), is set to the VDD position; this is the center position of the three possible positions. \ No newline at end of file +- Switch SW6, on the top edge right corner, is set to the DEFAULT position; this is the right position of the two possible positions (nRF = DEFAULT). Note that this switch is protected by Kapton tape. +- Switch SW7, which is slightly up and to the right of the center of the board, is set to the Def. position; this is the right position of the two possible positions (TRACE = Def.) +- Switch SW8, on the bottom edge left corner, is set to the ON position; this is the left position of the two possible positions (Power = ON) +- Switch SW9, to the right the left edge USB connector (J2), is set to the VDD position; this is the center position of the three possible positions (nRF power source = VDD) +- Switch SW10, on the bottom edge right corner and to the right of the SW6 switch, is set to the OFF position; this is the left position of the two possible positions (VEXT -> nRF = OFF). Note that this switch is protected by Kapton tape. From 9f7bfe33840d3d447f56f8bb7608b7dec6cb1fd9 Mon Sep 17 00:00:00 2001 From: Jorge Aparicio Date: Tue, 14 Jul 2020 19:29:47 +0200 Subject: [PATCH 2/5] add no-USB variants of the Dongle programs these are for the case where USB functionality fails and compromises the radio functionality --- boards/dongle/README.md | 4 +- boards/dongle/loopback-nousb.rs | 35 +++ boards/dongle/loopback-nousb11.hex | 259 ++++++++++++++++++ boards/dongle/loopback-nousb16.hex | 259 ++++++++++++++++++ boards/dongle/loopback-nousb21.hex | 259 ++++++++++++++++++ boards/dongle/loopback-nousb26.hex | 259 ++++++++++++++++++ boards/dongle/puzzle-nousb.rs | 78 ++++++ boards/dongle/puzzle-nousb11.hex | 301 +++++++++++++++++++++ boards/dongle/puzzle-nousb16.hex | 301 +++++++++++++++++++++ boards/dongle/puzzle-nousb21.hex | 301 +++++++++++++++++++++ boards/dongle/puzzle-nousb26.hex | 301 +++++++++++++++++++++ embedded-workshop-book/src/dongle.md | 42 ++- embedded-workshop-book/src/radio-puzzle.md | 3 +- 13 files changed, 2391 insertions(+), 11 deletions(-) create mode 100644 boards/dongle/loopback-nousb.rs create mode 100644 boards/dongle/loopback-nousb11.hex create mode 100644 boards/dongle/loopback-nousb16.hex create mode 100644 boards/dongle/loopback-nousb21.hex create mode 100644 boards/dongle/loopback-nousb26.hex create mode 100644 boards/dongle/puzzle-nousb.rs create mode 100644 boards/dongle/puzzle-nousb11.hex create mode 100644 boards/dongle/puzzle-nousb16.hex create mode 100644 boards/dongle/puzzle-nousb21.hex create mode 100644 boards/dongle/puzzle-nousb26.hex diff --git a/boards/dongle/README.md b/boards/dongle/README.md index 4bd46ed..71cf305 100644 --- a/boards/dongle/README.md +++ b/boards/dongle/README.md @@ -4,9 +4,7 @@ Pre-made applications for the nRF52840 Dongle. These applications will be used in the beginner workshop. -## Getting familiar with the hardware - -> TODO review for accessibility +## Hardware ### LEDs diff --git a/boards/dongle/loopback-nousb.rs b/boards/dongle/loopback-nousb.rs new file mode 100644 index 0000000..2283049 --- /dev/null +++ b/boards/dongle/loopback-nousb.rs @@ -0,0 +1,35 @@ +#![deny(unused_must_use)] +#![no_main] +#![no_std] + +use hal::{radio::{self, Channel}, led}; +use panic_abort as _; + +#[no_mangle] +fn main() -> ! { + let (mut rtx, mut rrx) = radio::claim(Channel::_21); // <- change this + let led = led::Green; + + let task = async { + let mut packet = radio::Packet::new().await; + let mut on = true; + + loop { + let crcres = rrx.read(&mut packet).await; + // togle LED on each new packet + if on { + led.on(); + } else { + led.off(); + } + on = !on; + + if crcres.is_ok() { + packet.reverse(); + rtx.write(&packet).await.ok(); + } + } + }; + + executor::run!(task) +} diff --git a/boards/dongle/loopback-nousb11.hex b/boards/dongle/loopback-nousb11.hex new file mode 100644 index 0000000..69cc2d1 --- /dev/null +++ b/boards/dongle/loopback-nousb11.hex @@ -0,0 +1,259 @@ +:1010000000C003207D160000C51D0000C51D0000A6 +:10101000C51D0000C51D0000C51D0000000000002A +:10102000000000000000000000000000C51D0000DE +:10103000C51D000000000000C51D0000C51D00000A +:101040002517000029170000C51D00004D190000DC +:10105000C51D0000C51D0000C51D0000C51D000008 +:10106000C51D0000C51D0000C51D00007D19000044 +:10107000C51D0000C51D0000C51D0000C51D0000E8 +:10108000C51D0000C51D0000C51D0000C51D0000D8 +:10109000C51D0000C51D0000C51D0000C51D0000C8 +:1010A000C51D0000C51D0000C51D0000C51D0000B8 +:1010B000C51D0000C51D000000000000000000006C +:1010C000C51D0000C51D0000C51D0000C51D000098 +:1010D000C51D0000C51D0000C51D0000C51D000088 +:1010E000C51D0000C51D0000C51D0000000000005A +:1010F00000000000C51D000000000000C51D00002C +:041100000B010000DF +:1011040080B56F46017839B1032902D141780129AC +:1011140004D100F0A7FAFEDE002141700649012245 +:101124000978C9B2002908BF032202704270B1FADB +:1011340081F0400980BD00BF06F0032080B56F46F2 +:1011440098B0DFF8E4A40120DAE84F1F002940F04A +:101154005982CAE8410F0029F6D1C448052116ACCA +:101164004FF0000801264FF0030BC0F8FC1007A84D +:1011740000F12601029100F12501019100F1200105 +:10118400049100F12C01069100F1280100F10C09F1 +:10119400059100F1240100208DF830800994CDE9F7 +:1011A40007440391C0B2DFE810F006000302030213 +:1011B40022003B0009008DF834801DE09DF84400B6 +:1011C400DFE810F0AC00F701F601B20007005500AB +:1011D4004F009DF84C00810700F0B080032840F0D8 +:1011E400E8819DF84D00012840F0AA80E1E19DF8D6 +:1011F4003400012800F0DD81DAF8040060B10168F0 +:101204005AE8012F824204D14AE80112002AF3D19C +:1012140018E0BFF32F8FEFE703208DF8340040E18F +:101224009DF84000DFE810F03800C501C4013C001F +:10123400060016009DF84C00810723D0032800F017 +:101244003E81B6E10221C1708DF831600A908DF8BB +:1012540034601BE09DF8540088B1032800F06781D6 +:10126400A7E19DF84800012840F0EF80A1E19DF836 +:10127400500048B1032840F09C81139D74E0DDE9DF +:10128400110152E1119819E1129D6CE08DF8408032 +:10129400CDF8389007980D90ADF844800E980F90D3 +:1012A4000598FFF72DFF10B18DF840B005E04FF41D +:1012B4008070ADF841000120FAE00021022082B2E2 +:1012C400022A01D10420ECE0ADF82C004023ADF853 +:1012D4002E109DF83110D84A002914BF53601360B2 +:1012E400000481F001018DF83110CFD10A9911F871 +:1012F400030F821E51FA82F0D2B2013152083AB180 +:101304000B78013A057801F8015B00F80139F6E73A +:101314008DF84480CDF8389009980D90DDE90D01E1 +:101324000F90ADF8488010910698FFF7E9FE08B1D8 +:101334000320B3E0CDF84C800F9812908DF84D80C7 +:101344009AF803000121C0B2022808BF0321022831 +:101354008DF84C108DF84D1001D104209EE0039DB2 +:101364008DF8508012951395002100208DF8586057 +:10137400012905D0625C013106FA02F21043F7E755 +:1013840008B1B14908609AF8010000F0030001288F +:101394007CD0A0BB02208AF8010000F0FFFCCDE95C +:1013A40016012046022100F055FBA849204600F012 +:1013B4007DFB28689E4900680330C1F8F8009D4809 +:1013C40001464FF48040C1F80003D1F8F80140F41D +:1013D4008010C1F8F8019AF80200C0B201280ED1B9 +:1013E40094488AF802B0466000F0D8FCCDE91601B2 +:1013F4002046022100F02EFB2046954944E000F0EF +:101404005BFCC5B2A5B3012D40D0022D40F0D480C1 +:1014140088484FF000618AF80360C0F8FC12466205 +:1014240000F0BCFCCDE916012046022100F012FBBD +:101434008849204600F03AFB20468DF8586000F0B9 +:10144400ABFB8DF850608DF848809AF80300C0B269 +:1014540001284FF0010008BF03208DF8480001D196 +:1014640006201BE08DF8446010E700BF0C14004018 +:1014740000F01CFC00F092FCCDE91601204602218C +:1014840000F0E8FA7449204600F010FB20468DF87D +:10149400586000F081FB8DF850B005208DF84400B1 +:1014A40005208DF8300000F093FC9DF8300079E6BB +:1014B40000064AD004988DF84C80119012909AF846 +:1014C4000100C0B210B102286AD098E000F0F4FB29 +:1014D4005FFA80FBBBF1000F54D0BBF1010F5FD06A +:1014E400BBF1020F40F07780129851490068006800 +:1014F4000330C1F8F8004F488AF80260066000F033 +:101504004DFCCDE916012046022100F0A3FA4B4917 +:10151400204600F0CBFA01994FF0030B02988DF8A6 +:101524004C608DF8548012911190CDE913019AF812 +:10153400020000F00300DFE800F06202111E052043 +:101544008DF840008DF854B0B7E6394801688DF83D +:1015540040609DF8410080F00100B0E68AF8028006 +:10156400139880F800803348D0F8F803149900F0F9 +:101574000100087001E08AF802808DF854609DF83B +:10158400420095E700F092FB00F008FCCDE916015B +:101594002046022100F05EFA2949204600F086FA2E +:1015A40004204FF0030B8DF840008DF84CB084E616 +:1015B400FEDE00F057F8FEDE00F0F0FB16ACCDE9DD +:1015C40016010021204600F045FA2449204600F087 +:1015D4006DFA28460DE000F0E1FB16ACCDE91601EA +:1015E4000021204600F036FA1649204600F05EFA43 +:1015F4005846214600F07CFB00F0B6FBFEDE00F00E +:1016040073FAFEDEBFF32F8F00F0C8FB07ACCDE901 +:1016140007010021204600F01DFA0449204600F08D +:1016240045FA00F0CEFBFEDE08F003200D000000BA +:101634000C14004008100040080500500F00000082 +:101644000E0000001000000080E100E01100000026 +:101654001200000014000000130000001500000038 +:1016640000F0B0BB80B56F4600F001F8FEDE80B537 +:101674006F4600F08DFBFEDE80B56F461B481D4AA9 +:10168400016841F0807101601948002141600168DE +:1016940011400131016018480121C0F810150160A2 +:1016A40016488160016016481649091A21F00301A1 +:1016B40000F032FC14481549091A21F003021449B8 +:1016C40000F08AFB00F080FB12484FF48A51124C60 +:1016D400124D01600161AC4202D201CC8047FAE7AD +:1016E400FFF7BEFFFFF72AFDFEDE00BFFCED00E0C2 +:1016F400001000E0FEFFFF000800004000B00040C2 +:1017040000F0032010F0032010F0032010F0032059 +:10171400FC1F000008050050F01F0000FC1F000023 +:1017240000F0F6B9F0B503AF2DE9C00B00F036FBBD +:101734006C46CDE900012046042100F08BF979497B +:10174400204600F0B3F9784A906B000605D00020DB +:101754009063D2F80402400406D41068000607D04F +:101764004FF0040810461BE091464FF002081AE0BF +:10177400104650F8481F090602D04FF000080FE049 +:10178400104650F80C1F090602D04FF0010807E07C +:10179400104650F86C1F090600F0C0804FF0030893 +:1017A40091460021016000F0F9FA6E460446CDE945 +:1017B40000010D463046032100F04CF95B493046E8 +:1017C40000F074F928880C22411C6FF31F30225456 +:1017D40030462980564900F069F9DFE808F00372C1 +:1017E4002B482100DDE9000100250A88531C6FF312 +:1017F4001F3285540B8000F0D1FA6C46CDE900010C +:101804002046022100F026F94E49204600F04EF908 +:101814004FF000600421C9F808024648457061E0B1 +:10182400DDE9000104240A88531C6FF31F32845439 +:101834000B8070E0DDE9000102240A883D4D531C51 +:101844006FF31F3284540B806878000666D100F071 +:10185400A5FA6C46CDE900012046022100F0FAF811 +:101864003649204600F022F90120687053E0DDE992 +:101874000012032013885C1C6FF31F33C8542D49D6 +:1018840014804A78D2B2022A48D14FF48042C9F86F +:101894000422D9F8002122F48012C9F800214FF063 +:1018A4000062C9F8082200224A70C87000F076FA73 +:1018B4006C46CDE900012046022100F0CBF81E4918 +:1018C40026E0DDE9000101240A88531C6FF31F326E +:1018D400845418480B804178C9B2012904D00229E4 +:1018E4001CD10221C17016E08178C9B2012915D139 +:1018F4000021C9F86C1041700221817000F04EFA89 +:101904006C46CDE900012046022100F0A3F80C4901 +:10191400204600F0CBF8BDE80C0BF0BD00F0E4F875 +:10192400FEDE00BF020000000011004003000000C2 +:101934000800000008F00320070000000500000074 +:101944000600000004000000DCB504AF00F026FA35 +:101954006C46CDE900012046042100F07BF80449DF +:10196400204600F0A3F8034800210160DCBD00BF5D +:101974000100000018310040DCB504AF2F480168B5 +:10198400C90741D1C16BC90722D000212F4CC163C3 +:101994002D490A88931C013204EA03332C4C23603A +:1019A4000A8091B20C22B1FBF2F202EB4202A1EBEB +:1019B400820103290CD8DFE801F00207020721495C +:1019C4004FF480724A6003E01E494FF480720A604B +:1019D400016CC9071FBF002101644FF40031C0F836 +:1019E4000412416CC9071FBF002141644FF48021D8 +:1019F400C0F80412816CC9071FBF002181644FF431 +:101A04000021C0F80412DCBD00F0C8F96C46CDE931 +:101A140000012046002100F01DF80949204600F08D +:101A240045F808484FF480510160402101604FF4AB +:101A34008071416000F0C5F9FEDE00BF04B10040D2 +:101A4400000000000805005000F0032000F0FF0033 +:101A540040B50040F0B503AF4DF804BD124A12681A +:101A6400D0E90034258892096E1C6FF31F3559554F +:101A740000232680D0E900100488661C42F080050B +:101A84006FF31F34B3EBD21F08BF02F07F05B3EB33 +:101A9400D21F0D554FEAD21534462A460680ECD1A2 +:101AA4005DF804BBF0BD00BF041000E0F0B503AF67 +:101AB4004DF804BD8AB27F2A0AD3D0E9003441F03C +:101AC400800125886E1C6FF31F355955D109268076 +:101AD400D0E9002003885C1C6FF31F33D1540480C9 +:101AE4005DF804BBF0BDD4D4E0B502AF00F056F904 +:101AF4006C46CDE9000120460021FFF7ABFF034906 +:101B04002046FFF7D3FF00F05CF9FEDE0900000079 +:101B1400DCB504AF00F042F96C46CDE90001204683 +:101B24000421FFF797FF0D492046FFF7BFFF0C483C +:101B34000168090611D00021016000F02FF96C46FC +:101B4400CDE9000120460221FFF784FF0549204624 +:101B5400FFF7ACFF044801210170DCBD0A0000005E +:101B6400000100400B00000006F0032007484FF47A +:101B7400803101604FF48051C0F83C124FF4807101 +:101B840003480160034800F007B800BF04B30040F5 +:101B94000C05005000110000D0B502AF0022012353 +:101BA4000021012A05D0845C013203FA04F42143A4 +:101BB400F7E709B101480160D0BD00BF00E100E0D2 +:101BC400F0B503AF4DF804BD1E4C1F4D264604F579 +:101BD400C670864212D06868014655E8010F8842F3 +:101BE40004D145E80162002AF6D102E0BFF32F8F49 +:101BF400F2E746F8841B00F0E9F8E8E713480F2100 +:101C04000123416008210160114981608121C16083 +:101C140010490A6863F302020A6040F202214FF499 +:101C2400822281620C49C162002101630B49425046 +:101C34000B490C4A42500C485DF804BBBDE8F04027 +:101C4400FFF7AABF00C0032008F003200C150040D2 +:101C5400080000066C16004021100100F4FCFFFF90 +:101C6400F8FDFFFF0940040801110000BCB504AFF2 +:101C74004FF080400125056000F090F86C46CDE9F6 +:101C8400000120460221FFF7E5FE05492046FFF743 +:101C94000DFF044805600448BDE8BC40FFF77CBF65 +:101CA4000C0000000403004002110000014801215F +:101CB4000160704704100040BCB504AF0A480468D2 +:101CC40000F06CF86D46CDE9000128460321FFF7CA +:101CD400C1FE06492846FFF7E9FE2046294600F0E2 +:101CE40007F8204602B0B0BD5015004017000000B0 +:101CF400F0B503AF4DF804BD0C460546D1E900012B +:101D04000C260A88531C6FF31F32865420460B801E +:101D14001449FFF7CBFE05F00F010820DFE801F0BE +:101D2400070D0F091521212121110B131600002085 +:101D34000CE003200AE0062008E0012006E002206F +:101D440004E0052002E0072000E00420D4E90012AA +:101D540013885C1C6FF31F33C85414805DF804BBF4 +:101D6400F0BDFEDE16000000E0B502AF00F016F88C +:101D74006C46CDE9000120460021FFF76BFE0349C4 +:101D84002046FFF793FE00F01CF8FEDE180000006A +:101D940080B56F4600F015F8FEDED4D40649054838 +:101DA4000968C9B20029054918BF00F5805018BF59 +:101DB4000231704700D0032004ED00E002F003205C +:101DC400FFBEAABE62B6704772B6704740BF704786 +:101DD40020BF704700F0A3B8042A38BFFFF7FABF4A +:101DE400B0B502AFA2F1040C012303EB9C0313F082 +:101DF40003030ED08E4604465EF8045B012B44F8C0 +:101E0400045B1FD1634620467146BCF10C0F04D21B +:101E140012E01346BCF10C0F0ED30D68103B0560A5 +:101E2400032B4D6845608D688560CD6801F1100114 +:101E3400C56000F11000F0D802F00302BDE8B04024 +:101E4400FFF7C8BF4D68022B456007D1A2F1080314 +:101E540008310830BCF10C0FDFD2EDE78B680C3190 +:101E64008360A2F10C030C30BCF10C0FD5D2E3E774 +:101E74000B4611461A4600F08FB81346D2B2042915 +:101E840038BFFFF7F5BFD0B502AFA1F1040E42EAA7 +:101E94000363012443EA024304EB9E0443EA02235E +:101EA40014F0030410D08446012C4CF8043B10D1E8 +:101EB40074466046BEF10C0F1ED201F00301BDE86A +:101EC400D0406046FFF7D4BF0C46BEF10C0F13D2CE +:101ED400F3E7022C436007D10830A1F108048446DB +:101EE400BEF10C0F08D2E8E783600C30A1F10C04BA +:101EF4008446BEF10C0FE0D3C0E90033103CC0E9C6 +:101F040002331030032CF7D8844601F00301BDE8F6 +:101F1400D0406046FFF7ACBF0022FFF7AEBFF0B57C +:101F240003AF4DF8048DA2B3531E02F0030C032B30 +:101F340014D20022BCF1000F2BD08B5CBCF1010F3A +:101F4400835426D0531CBCF1020FCE5CC65420D05F +:101F54000232895C81545DF8048BF0BDACEB020E57 +:101F640001F10108441C6FF0030208EB0206A518F6 +:101F74000432F378EB7033792B7173796B71B37925 +:101F8400AB710EEB02030433EFD10432BCF1000F4A +:101F9400D3D15DF8048BF0BDD0B502AF12B3531E9C +:101FA40002F0030C032B01D200220FE0ACEB020E73 +:101FB400421C6FF00303D4180433A17161712171C1 +:101FC400E1700EEB03040434F5D11A1DBCF1000FCB +:101FD4001ABF8154BCF1010FD0BD0244BCF1020F01 +:0A1FE400517000D1D0BD9170D0BD46 +:0C1FF000711C0000C51B0000711B0000EC +:040000030000167D66 +:00000001FF diff --git a/boards/dongle/loopback-nousb16.hex b/boards/dongle/loopback-nousb16.hex new file mode 100644 index 0000000..a7595e7 --- /dev/null +++ b/boards/dongle/loopback-nousb16.hex @@ -0,0 +1,259 @@ +:1010000000C003207D160000C51D0000C51D0000A6 +:10101000C51D0000C51D0000C51D0000000000002A +:10102000000000000000000000000000C51D0000DE +:10103000C51D000000000000C51D0000C51D00000A +:101040002517000029170000C51D00004D190000DC +:10105000C51D0000C51D0000C51D0000C51D000008 +:10106000C51D0000C51D0000C51D00007D19000044 +:10107000C51D0000C51D0000C51D0000C51D0000E8 +:10108000C51D0000C51D0000C51D0000C51D0000D8 +:10109000C51D0000C51D0000C51D0000C51D0000C8 +:1010A000C51D0000C51D0000C51D0000C51D0000B8 +:1010B000C51D0000C51D000000000000000000006C +:1010C000C51D0000C51D0000C51D0000C51D000098 +:1010D000C51D0000C51D0000C51D0000C51D000088 +:1010E000C51D0000C51D0000C51D0000000000005A +:1010F00000000000C51D000000000000C51D00002C +:041100000B010000DF +:1011040080B56F46017839B1032902D141780129AC +:1011140004D100F0A7FAFEDE002141700649012245 +:101124000978C9B2002908BF032202704270B1FADB +:1011340081F0400980BD00BF06F0032080B56F46F2 +:1011440098B0DFF8E4A40120DAE84F1F002940F04A +:101154005982CAE8410F0029F6D1C4491E2016ACB1 +:101164004FF0000801264FF0030BC1F8FC0007A85C +:1011740000F12601029100F12501019100F1200105 +:10118400049100F12C01069100F1280100F10C09F1 +:10119400059100F1240100208DF830800994CDE9F7 +:1011A40007440391C0B2DFE810F006000302030213 +:1011B40022003B0009008DF834801DE09DF84400B6 +:1011C400DFE810F0AC00F701F601B20007005500AB +:1011D4004F009DF84C00810700F0B080032840F0D8 +:1011E400E8819DF84D00012840F0AA80E1E19DF8D6 +:1011F4003400012800F0DD81DAF8040060B10168F0 +:101204005AE8012F824204D14AE80112002AF3D19C +:1012140018E0BFF32F8FEFE703208DF8340040E18F +:101224009DF84000DFE810F03800C501C4013C001F +:10123400060016009DF84C00810723D0032800F017 +:101244003E81B6E10221C1708DF831600A908DF8BB +:1012540034601BE09DF8540088B1032800F06781D6 +:10126400A7E19DF84800012840F0EF80A1E19DF836 +:10127400500048B1032840F09C81139D74E0DDE9DF +:10128400110152E1119819E1129D6CE08DF8408032 +:10129400CDF8389007980D90ADF844800E980F90D3 +:1012A4000598FFF72DFF10B18DF840B005E04FF41D +:1012B4008070ADF841000120FAE00021022082B2E2 +:1012C400022A01D10420ECE0ADF82C004023ADF853 +:1012D4002E109DF83110D84A002914BF53601360B2 +:1012E400000481F001018DF83110CFD10A9911F871 +:1012F400030F821E51FA82F0D2B2013152083AB180 +:101304000B78013A057801F8015B00F80139F6E73A +:101314008DF84480CDF8389009980D90DDE90D01E1 +:101324000F90ADF8488010910698FFF7E9FE08B1D8 +:101334000320B3E0CDF84C800F9812908DF84D80C7 +:101344009AF803000121C0B2022808BF0321022831 +:101354008DF84C108DF84D1001D104209EE0039DB2 +:101364008DF8508012951395002100208DF8586057 +:10137400012905D0625C013106FA02F21043F7E755 +:1013840008B1B14908609AF8010000F0030001288F +:101394007CD0A0BB02208AF8010000F0FFFCCDE95C +:1013A40016012046022100F055FBA849204600F012 +:1013B4007DFB28689E4900680330C1F8F8009D4809 +:1013C40001464FF48040C1F80003D1F8F80140F41D +:1013D4008010C1F8F8019AF80200C0B201280ED1B9 +:1013E40094488AF802B0466000F0D8FCCDE91601B2 +:1013F4002046022100F02EFB2046954944E000F0EF +:101404005BFCC5B2A5B3012D40D0022D40F0D480C1 +:1014140088484FF000618AF80360C0F8FC12466205 +:1014240000F0BCFCCDE916012046022100F012FBBD +:101434008849204600F03AFB20468DF8586000F0B9 +:10144400ABFB8DF850608DF848809AF80300C0B269 +:1014540001284FF0010008BF03208DF8480001D196 +:1014640006201BE08DF8446010E700BF0C14004018 +:1014740000F01CFC00F092FCCDE91601204602218C +:1014840000F0E8FA7449204600F010FB20468DF87D +:10149400586000F081FB8DF850B005208DF84400B1 +:1014A40005208DF8300000F093FC9DF8300079E6BB +:1014B40000064AD004988DF84C80119012909AF846 +:1014C4000100C0B210B102286AD098E000F0F4FB29 +:1014D4005FFA80FBBBF1000F54D0BBF1010F5FD06A +:1014E400BBF1020F40F07780129851490068006800 +:1014F4000330C1F8F8004F488AF80260066000F033 +:101504004DFCCDE916012046022100F0A3FA4B4917 +:10151400204600F0CBFA01994FF0030B02988DF8A6 +:101524004C608DF8548012911190CDE913019AF812 +:10153400020000F00300DFE800F06202111E052043 +:101544008DF840008DF854B0B7E6394801688DF83D +:1015540040609DF8410080F00100B0E68AF8028006 +:10156400139880F800803348D0F8F803149900F0F9 +:101574000100087001E08AF802808DF854609DF83B +:10158400420095E700F092FB00F008FCCDE916015B +:101594002046022100F05EFA2949204600F086FA2E +:1015A40004204FF0030B8DF840008DF84CB084E616 +:1015B400FEDE00F057F8FEDE00F0F0FB16ACCDE9DD +:1015C40016010021204600F045FA2449204600F087 +:1015D4006DFA28460DE000F0E1FB16ACCDE91601EA +:1015E4000021204600F036FA1649204600F05EFA43 +:1015F4005846214600F07CFB00F0B6FBFEDE00F00E +:1016040073FAFEDEBFF32F8F00F0C8FB07ACCDE901 +:1016140007010021204600F01DFA0449204600F08D +:1016240045FA00F0CEFBFEDE08F003200D000000BA +:101634000C14004008100040080500500F00000082 +:101644000E0000001000000080E100E01100000026 +:101654001200000014000000130000001500000038 +:1016640000F0B0BB80B56F4600F001F8FEDE80B537 +:101674006F4600F08DFBFEDE80B56F461B481D4AA9 +:10168400016841F0807101601948002141600168DE +:1016940011400131016018480121C0F810150160A2 +:1016A40016488160016016481649091A21F00301A1 +:1016B40000F032FC14481549091A21F003021449B8 +:1016C40000F08AFB00F080FB12484FF48A51124C60 +:1016D400124D01600161AC4202D201CC8047FAE7AD +:1016E400FFF7BEFFFFF72AFDFEDE00BFFCED00E0C2 +:1016F400001000E0FEFFFF000800004000B00040C2 +:1017040000F0032010F0032010F0032010F0032059 +:10171400FC1F000008050050F01F0000FC1F000023 +:1017240000F0F6B9F0B503AF2DE9C00B00F036FBBD +:101734006C46CDE900012046042100F08BF979497B +:10174400204600F0B3F9784A906B000605D00020DB +:101754009063D2F80402400406D41068000607D04F +:101764004FF0040810461BE091464FF002081AE0BF +:10177400104650F8481F090602D04FF000080FE049 +:10178400104650F80C1F090602D04FF0010807E07C +:10179400104650F86C1F090600F0C0804FF0030893 +:1017A40091460021016000F0F9FA6E460446CDE945 +:1017B40000010D463046032100F04CF95B493046E8 +:1017C40000F074F928880C22411C6FF31F30225456 +:1017D40030462980564900F069F9DFE808F00372C1 +:1017E4002B482100DDE9000100250A88531C6FF312 +:1017F4001F3285540B8000F0D1FA6C46CDE900010C +:101804002046022100F026F94E49204600F04EF908 +:101814004FF000600421C9F808024648457061E0B1 +:10182400DDE9000104240A88531C6FF31F32845439 +:101834000B8070E0DDE9000102240A883D4D531C51 +:101844006FF31F3284540B806878000666D100F071 +:10185400A5FA6C46CDE900012046022100F0FAF811 +:101864003649204600F022F90120687053E0DDE992 +:101874000012032013885C1C6FF31F33C8542D49D6 +:1018840014804A78D2B2022A48D14FF48042C9F86F +:101894000422D9F8002122F48012C9F800214FF063 +:1018A4000062C9F8082200224A70C87000F076FA73 +:1018B4006C46CDE900012046022100F0CBF81E4918 +:1018C40026E0DDE9000101240A88531C6FF31F326E +:1018D400845418480B804178C9B2012904D00229E4 +:1018E4001CD10221C17016E08178C9B2012915D139 +:1018F4000021C9F86C1041700221817000F04EFA89 +:101904006C46CDE900012046022100F0A3F80C4901 +:10191400204600F0CBF8BDE80C0BF0BD00F0E4F875 +:10192400FEDE00BF020000000011004003000000C2 +:101934000800000008F00320070000000500000074 +:101944000600000004000000DCB504AF00F026FA35 +:101954006C46CDE900012046042100F07BF80449DF +:10196400204600F0A3F8034800210160DCBD00BF5D +:101974000100000018310040DCB504AF2F480168B5 +:10198400C90741D1C16BC90722D000212F4CC163C3 +:101994002D490A88931C013204EA03332C4C23603A +:1019A4000A8091B20C22B1FBF2F202EB4202A1EBEB +:1019B400820103290CD8DFE801F00207020721495C +:1019C4004FF480724A6003E01E494FF480720A604B +:1019D400016CC9071FBF002101644FF40031C0F836 +:1019E4000412416CC9071FBF002141644FF48021D8 +:1019F400C0F80412816CC9071FBF002181644FF431 +:101A04000021C0F80412DCBD00F0C8F96C46CDE931 +:101A140000012046002100F01DF80949204600F08D +:101A240045F808484FF480510160402101604FF4AB +:101A34008071416000F0C5F9FEDE00BF04B10040D2 +:101A4400000000000805005000F0032000F0FF0033 +:101A540040B50040F0B503AF4DF804BD124A12681A +:101A6400D0E90034258892096E1C6FF31F3559554F +:101A740000232680D0E900100488661C42F080050B +:101A84006FF31F34B3EBD21F08BF02F07F05B3EB33 +:101A9400D21F0D554FEAD21534462A460680ECD1A2 +:101AA4005DF804BBF0BD00BF041000E0F0B503AF67 +:101AB4004DF804BD8AB27F2A0AD3D0E9003441F03C +:101AC400800125886E1C6FF31F355955D109268076 +:101AD400D0E9002003885C1C6FF31F33D1540480C9 +:101AE4005DF804BBF0BDD4D4E0B502AF00F056F904 +:101AF4006C46CDE9000120460021FFF7ABFF034906 +:101B04002046FFF7D3FF00F05CF9FEDE0900000079 +:101B1400DCB504AF00F042F96C46CDE90001204683 +:101B24000421FFF797FF0D492046FFF7BFFF0C483C +:101B34000168090611D00021016000F02FF96C46FC +:101B4400CDE9000120460221FFF784FF0549204624 +:101B5400FFF7ACFF044801210170DCBD0A0000005E +:101B6400000100400B00000006F0032007484FF47A +:101B7400803101604FF48051C0F83C124FF4807101 +:101B840003480160034800F007B800BF04B30040F5 +:101B94000C05005000110000D0B502AF0022012353 +:101BA4000021012A05D0845C013203FA04F42143A4 +:101BB400F7E709B101480160D0BD00BF00E100E0D2 +:101BC400F0B503AF4DF804BD1E4C1F4D264604F579 +:101BD400C670864212D06868014655E8010F8842F3 +:101BE40004D145E80162002AF6D102E0BFF32F8F49 +:101BF400F2E746F8841B00F0E9F8E8E713480F2100 +:101C04000123416008210160114981608121C16083 +:101C140010490A6863F302020A6040F202214FF499 +:101C2400822281620C49C162002101630B49425046 +:101C34000B490C4A42500C485DF804BBBDE8F04027 +:101C4400FFF7AABF00C0032008F003200C150040D2 +:101C5400080000066C16004021100100F4FCFFFF90 +:101C6400F8FDFFFF0940040801110000BCB504AFF2 +:101C74004FF080400125056000F090F86C46CDE9F6 +:101C8400000120460221FFF7E5FE05492046FFF743 +:101C94000DFF044805600448BDE8BC40FFF77CBF65 +:101CA4000C0000000403004002110000014801215F +:101CB4000160704704100040BCB504AF0A480468D2 +:101CC40000F06CF86D46CDE9000128460321FFF7CA +:101CD400C1FE06492846FFF7E9FE2046294600F0E2 +:101CE40007F8204602B0B0BD5015004017000000B0 +:101CF400F0B503AF4DF804BD0C460546D1E900012B +:101D04000C260A88531C6FF31F32865420460B801E +:101D14001449FFF7CBFE05F00F010820DFE801F0BE +:101D2400070D0F091521212121110B131600002085 +:101D34000CE003200AE0062008E0012006E002206F +:101D440004E0052002E0072000E00420D4E90012AA +:101D540013885C1C6FF31F33C85414805DF804BBF4 +:101D6400F0BDFEDE16000000E0B502AF00F016F88C +:101D74006C46CDE9000120460021FFF76BFE0349C4 +:101D84002046FFF793FE00F01CF8FEDE180000006A +:101D940080B56F4600F015F8FEDED4D40649054838 +:101DA4000968C9B20029054918BF00F5805018BF59 +:101DB4000231704700D0032004ED00E002F003205C +:101DC400FFBEAABE62B6704772B6704740BF704786 +:101DD40020BF704700F0A3B8042A38BFFFF7FABF4A +:101DE400B0B502AFA2F1040C012303EB9C0313F082 +:101DF40003030ED08E4604465EF8045B012B44F8C0 +:101E0400045B1FD1634620467146BCF10C0F04D21B +:101E140012E01346BCF10C0F0ED30D68103B0560A5 +:101E2400032B4D6845608D688560CD6801F1100114 +:101E3400C56000F11000F0D802F00302BDE8B04024 +:101E4400FFF7C8BF4D68022B456007D1A2F1080314 +:101E540008310830BCF10C0FDFD2EDE78B680C3190 +:101E64008360A2F10C030C30BCF10C0FD5D2E3E774 +:101E74000B4611461A4600F08FB81346D2B2042915 +:101E840038BFFFF7F5BFD0B502AFA1F1040E42EAA7 +:101E94000363012443EA024304EB9E0443EA02235E +:101EA40014F0030410D08446012C4CF8043B10D1E8 +:101EB40074466046BEF10C0F1ED201F00301BDE86A +:101EC400D0406046FFF7D4BF0C46BEF10C0F13D2CE +:101ED400F3E7022C436007D10830A1F108048446DB +:101EE400BEF10C0F08D2E8E783600C30A1F10C04BA +:101EF4008446BEF10C0FE0D3C0E90033103CC0E9C6 +:101F040002331030032CF7D8844601F00301BDE8F6 +:101F1400D0406046FFF7ACBF0022FFF7AEBFF0B57C +:101F240003AF4DF8048DA2B3531E02F0030C032B30 +:101F340014D20022BCF1000F2BD08B5CBCF1010F3A +:101F4400835426D0531CBCF1020FCE5CC65420D05F +:101F54000232895C81545DF8048BF0BDACEB020E57 +:101F640001F10108441C6FF0030208EB0206A518F6 +:101F74000432F378EB7033792B7173796B71B37925 +:101F8400AB710EEB02030433EFD10432BCF1000F4A +:101F9400D3D15DF8048BF0BDD0B502AF12B3531E9C +:101FA40002F0030C032B01D200220FE0ACEB020E73 +:101FB400421C6FF00303D4180433A17161712171C1 +:101FC400E1700EEB03040434F5D11A1DBCF1000FCB +:101FD4001ABF8154BCF1010FD0BD0244BCF1020F01 +:0A1FE400517000D1D0BD9170D0BD46 +:0C1FF000711C0000C51B0000711B0000EC +:040000030000167D66 +:00000001FF diff --git a/boards/dongle/loopback-nousb21.hex b/boards/dongle/loopback-nousb21.hex new file mode 100644 index 0000000..a3e1fb5 --- /dev/null +++ b/boards/dongle/loopback-nousb21.hex @@ -0,0 +1,259 @@ +:1010000000C003207D160000C51D0000C51D0000A6 +:10101000C51D0000C51D0000C51D0000000000002A +:10102000000000000000000000000000C51D0000DE +:10103000C51D000000000000C51D0000C51D00000A +:101040002517000029170000C51D00004D190000DC +:10105000C51D0000C51D0000C51D0000C51D000008 +:10106000C51D0000C51D0000C51D00007D19000044 +:10107000C51D0000C51D0000C51D0000C51D0000E8 +:10108000C51D0000C51D0000C51D0000C51D0000D8 +:10109000C51D0000C51D0000C51D0000C51D0000C8 +:1010A000C51D0000C51D0000C51D0000C51D0000B8 +:1010B000C51D0000C51D000000000000000000006C +:1010C000C51D0000C51D0000C51D0000C51D000098 +:1010D000C51D0000C51D0000C51D0000C51D000088 +:1010E000C51D0000C51D0000C51D0000000000005A +:1010F00000000000C51D000000000000C51D00002C +:041100000B010000DF +:1011040080B56F46017839B1032902D141780129AC +:1011140004D100F0A7FAFEDE002141700649012245 +:101124000978C9B2002908BF032202704270B1FADB +:1011340081F0400980BD00BF06F0032080B56F46F2 +:1011440098B0DFF8E4A40120DAE84F1F002940F04A +:101154005982CAE8410F0029F6D1C449372016AC98 +:101164004FF0000801264FF0030BC1F8FC0007A85C +:1011740000F12601029100F12501019100F1200105 +:10118400049100F12C01069100F1280100F10C09F1 +:10119400059100F1240100208DF830800994CDE9F7 +:1011A40007440391C0B2DFE810F006000302030213 +:1011B40022003B0009008DF834801DE09DF84400B6 +:1011C400DFE810F0AC00F701F601B20007005500AB +:1011D4004F009DF84C00810700F0B080032840F0D8 +:1011E400E8819DF84D00012840F0AA80E1E19DF8D6 +:1011F4003400012800F0DD81DAF8040060B10168F0 +:101204005AE8012F824204D14AE80112002AF3D19C +:1012140018E0BFF32F8FEFE703208DF8340040E18F +:101224009DF84000DFE810F03800C501C4013C001F +:10123400060016009DF84C00810723D0032800F017 +:101244003E81B6E10221C1708DF831600A908DF8BB +:1012540034601BE09DF8540088B1032800F06781D6 +:10126400A7E19DF84800012840F0EF80A1E19DF836 +:10127400500048B1032840F09C81139D74E0DDE9DF +:10128400110152E1119819E1129D6CE08DF8408032 +:10129400CDF8389007980D90ADF844800E980F90D3 +:1012A4000598FFF72DFF10B18DF840B005E04FF41D +:1012B4008070ADF841000120FAE00021022082B2E2 +:1012C400022A01D10420ECE0ADF82C004023ADF853 +:1012D4002E109DF83110D84A002914BF53601360B2 +:1012E400000481F001018DF83110CFD10A9911F871 +:1012F400030F821E51FA82F0D2B2013152083AB180 +:101304000B78013A057801F8015B00F80139F6E73A +:101314008DF84480CDF8389009980D90DDE90D01E1 +:101324000F90ADF8488010910698FFF7E9FE08B1D8 +:101334000320B3E0CDF84C800F9812908DF84D80C7 +:101344009AF803000121C0B2022808BF0321022831 +:101354008DF84C108DF84D1001D104209EE0039DB2 +:101364008DF8508012951395002100208DF8586057 +:10137400012905D0625C013106FA02F21043F7E755 +:1013840008B1B14908609AF8010000F0030001288F +:101394007CD0A0BB02208AF8010000F0FFFCCDE95C +:1013A40016012046022100F055FBA849204600F012 +:1013B4007DFB28689E4900680330C1F8F8009D4809 +:1013C40001464FF48040C1F80003D1F8F80140F41D +:1013D4008010C1F8F8019AF80200C0B201280ED1B9 +:1013E40094488AF802B0466000F0D8FCCDE91601B2 +:1013F4002046022100F02EFB2046954944E000F0EF +:101404005BFCC5B2A5B3012D40D0022D40F0D480C1 +:1014140088484FF000618AF80360C0F8FC12466205 +:1014240000F0BCFCCDE916012046022100F012FBBD +:101434008849204600F03AFB20468DF8586000F0B9 +:10144400ABFB8DF850608DF848809AF80300C0B269 +:1014540001284FF0010008BF03208DF8480001D196 +:1014640006201BE08DF8446010E700BF0C14004018 +:1014740000F01CFC00F092FCCDE91601204602218C +:1014840000F0E8FA7449204600F010FB20468DF87D +:10149400586000F081FB8DF850B005208DF84400B1 +:1014A40005208DF8300000F093FC9DF8300079E6BB +:1014B40000064AD004988DF84C80119012909AF846 +:1014C4000100C0B210B102286AD098E000F0F4FB29 +:1014D4005FFA80FBBBF1000F54D0BBF1010F5FD06A +:1014E400BBF1020F40F07780129851490068006800 +:1014F4000330C1F8F8004F488AF80260066000F033 +:101504004DFCCDE916012046022100F0A3FA4B4917 +:10151400204600F0CBFA01994FF0030B02988DF8A6 +:101524004C608DF8548012911190CDE913019AF812 +:10153400020000F00300DFE800F06202111E052043 +:101544008DF840008DF854B0B7E6394801688DF83D +:1015540040609DF8410080F00100B0E68AF8028006 +:10156400139880F800803348D0F8F803149900F0F9 +:101574000100087001E08AF802808DF854609DF83B +:10158400420095E700F092FB00F008FCCDE916015B +:101594002046022100F05EFA2949204600F086FA2E +:1015A40004204FF0030B8DF840008DF84CB084E616 +:1015B400FEDE00F057F8FEDE00F0F0FB16ACCDE9DD +:1015C40016010021204600F045FA2449204600F087 +:1015D4006DFA28460DE000F0E1FB16ACCDE91601EA +:1015E4000021204600F036FA1649204600F05EFA43 +:1015F4005846214600F07CFB00F0B6FBFEDE00F00E +:1016040073FAFEDEBFF32F8F00F0C8FB07ACCDE901 +:1016140007010021204600F01DFA0449204600F08D +:1016240045FA00F0CEFBFEDE08F003200D000000BA +:101634000C14004008100040080500500F00000082 +:101644000E0000001000000080E100E01100000026 +:101654001200000014000000130000001500000038 +:1016640000F0B0BB80B56F4600F001F8FEDE80B537 +:101674006F4600F08DFBFEDE80B56F461B481D4AA9 +:10168400016841F0807101601948002141600168DE +:1016940011400131016018480121C0F810150160A2 +:1016A40016488160016016481649091A21F00301A1 +:1016B40000F032FC14481549091A21F003021449B8 +:1016C40000F08AFB00F080FB12484FF48A51124C60 +:1016D400124D01600161AC4202D201CC8047FAE7AD +:1016E400FFF7BEFFFFF72AFDFEDE00BFFCED00E0C2 +:1016F400001000E0FEFFFF000800004000B00040C2 +:1017040000F0032010F0032010F0032010F0032059 +:10171400FC1F000008050050F01F0000FC1F000023 +:1017240000F0F6B9F0B503AF2DE9C00B00F036FBBD +:101734006C46CDE900012046042100F08BF979497B +:10174400204600F0B3F9784A906B000605D00020DB +:101754009063D2F80402400406D41068000607D04F +:101764004FF0040810461BE091464FF002081AE0BF +:10177400104650F8481F090602D04FF000080FE049 +:10178400104650F80C1F090602D04FF0010807E07C +:10179400104650F86C1F090600F0C0804FF0030893 +:1017A40091460021016000F0F9FA6E460446CDE945 +:1017B40000010D463046032100F04CF95B493046E8 +:1017C40000F074F928880C22411C6FF31F30225456 +:1017D40030462980564900F069F9DFE808F00372C1 +:1017E4002B482100DDE9000100250A88531C6FF312 +:1017F4001F3285540B8000F0D1FA6C46CDE900010C +:101804002046022100F026F94E49204600F04EF908 +:101814004FF000600421C9F808024648457061E0B1 +:10182400DDE9000104240A88531C6FF31F32845439 +:101834000B8070E0DDE9000102240A883D4D531C51 +:101844006FF31F3284540B806878000666D100F071 +:10185400A5FA6C46CDE900012046022100F0FAF811 +:101864003649204600F022F90120687053E0DDE992 +:101874000012032013885C1C6FF31F33C8542D49D6 +:1018840014804A78D2B2022A48D14FF48042C9F86F +:101894000422D9F8002122F48012C9F800214FF063 +:1018A4000062C9F8082200224A70C87000F076FA73 +:1018B4006C46CDE900012046022100F0CBF81E4918 +:1018C40026E0DDE9000101240A88531C6FF31F326E +:1018D400845418480B804178C9B2012904D00229E4 +:1018E4001CD10221C17016E08178C9B2012915D139 +:1018F4000021C9F86C1041700221817000F04EFA89 +:101904006C46CDE900012046022100F0A3F80C4901 +:10191400204600F0CBF8BDE80C0BF0BD00F0E4F875 +:10192400FEDE00BF020000000011004003000000C2 +:101934000800000008F00320070000000500000074 +:101944000600000004000000DCB504AF00F026FA35 +:101954006C46CDE900012046042100F07BF80449DF +:10196400204600F0A3F8034800210160DCBD00BF5D +:101974000100000018310040DCB504AF2F480168B5 +:10198400C90741D1C16BC90722D000212F4CC163C3 +:101994002D490A88931C013204EA03332C4C23603A +:1019A4000A8091B20C22B1FBF2F202EB4202A1EBEB +:1019B400820103290CD8DFE801F00207020721495C +:1019C4004FF480724A6003E01E494FF480720A604B +:1019D400016CC9071FBF002101644FF40031C0F836 +:1019E4000412416CC9071FBF002141644FF48021D8 +:1019F400C0F80412816CC9071FBF002181644FF431 +:101A04000021C0F80412DCBD00F0C8F96C46CDE931 +:101A140000012046002100F01DF80949204600F08D +:101A240045F808484FF480510160402101604FF4AB +:101A34008071416000F0C5F9FEDE00BF04B10040D2 +:101A4400000000000805005000F0032000F0FF0033 +:101A540040B50040F0B503AF4DF804BD124A12681A +:101A6400D0E90034258892096E1C6FF31F3559554F +:101A740000232680D0E900100488661C42F080050B +:101A84006FF31F34B3EBD21F08BF02F07F05B3EB33 +:101A9400D21F0D554FEAD21534462A460680ECD1A2 +:101AA4005DF804BBF0BD00BF041000E0F0B503AF67 +:101AB4004DF804BD8AB27F2A0AD3D0E9003441F03C +:101AC400800125886E1C6FF31F355955D109268076 +:101AD400D0E9002003885C1C6FF31F33D1540480C9 +:101AE4005DF804BBF0BDD4D4E0B502AF00F056F904 +:101AF4006C46CDE9000120460021FFF7ABFF034906 +:101B04002046FFF7D3FF00F05CF9FEDE0900000079 +:101B1400DCB504AF00F042F96C46CDE90001204683 +:101B24000421FFF797FF0D492046FFF7BFFF0C483C +:101B34000168090611D00021016000F02FF96C46FC +:101B4400CDE9000120460221FFF784FF0549204624 +:101B5400FFF7ACFF044801210170DCBD0A0000005E +:101B6400000100400B00000006F0032007484FF47A +:101B7400803101604FF48051C0F83C124FF4807101 +:101B840003480160034800F007B800BF04B30040F5 +:101B94000C05005000110000D0B502AF0022012353 +:101BA4000021012A05D0845C013203FA04F42143A4 +:101BB400F7E709B101480160D0BD00BF00E100E0D2 +:101BC400F0B503AF4DF804BD1E4C1F4D264604F579 +:101BD400C670864212D06868014655E8010F8842F3 +:101BE40004D145E80162002AF6D102E0BFF32F8F49 +:101BF400F2E746F8841B00F0E9F8E8E713480F2100 +:101C04000123416008210160114981608121C16083 +:101C140010490A6863F302020A6040F202214FF499 +:101C2400822281620C49C162002101630B49425046 +:101C34000B490C4A42500C485DF804BBBDE8F04027 +:101C4400FFF7AABF00C0032008F003200C150040D2 +:101C5400080000066C16004021100100F4FCFFFF90 +:101C6400F8FDFFFF0940040801110000BCB504AFF2 +:101C74004FF080400125056000F090F86C46CDE9F6 +:101C8400000120460221FFF7E5FE05492046FFF743 +:101C94000DFF044805600448BDE8BC40FFF77CBF65 +:101CA4000C0000000403004002110000014801215F +:101CB4000160704704100040BCB504AF0A480468D2 +:101CC40000F06CF86D46CDE9000128460321FFF7CA +:101CD400C1FE06492846FFF7E9FE2046294600F0E2 +:101CE40007F8204602B0B0BD5015004017000000B0 +:101CF400F0B503AF4DF804BD0C460546D1E900012B +:101D04000C260A88531C6FF31F32865420460B801E +:101D14001449FFF7CBFE05F00F010820DFE801F0BE +:101D2400070D0F091521212121110B131600002085 +:101D34000CE003200AE0062008E0012006E002206F +:101D440004E0052002E0072000E00420D4E90012AA +:101D540013885C1C6FF31F33C85414805DF804BBF4 +:101D6400F0BDFEDE16000000E0B502AF00F016F88C +:101D74006C46CDE9000120460021FFF76BFE0349C4 +:101D84002046FFF793FE00F01CF8FEDE180000006A +:101D940080B56F4600F015F8FEDED4D40649054838 +:101DA4000968C9B20029054918BF00F5805018BF59 +:101DB4000231704700D0032004ED00E002F003205C +:101DC400FFBEAABE62B6704772B6704740BF704786 +:101DD40020BF704700F0A3B8042A38BFFFF7FABF4A +:101DE400B0B502AFA2F1040C012303EB9C0313F082 +:101DF40003030ED08E4604465EF8045B012B44F8C0 +:101E0400045B1FD1634620467146BCF10C0F04D21B +:101E140012E01346BCF10C0F0ED30D68103B0560A5 +:101E2400032B4D6845608D688560CD6801F1100114 +:101E3400C56000F11000F0D802F00302BDE8B04024 +:101E4400FFF7C8BF4D68022B456007D1A2F1080314 +:101E540008310830BCF10C0FDFD2EDE78B680C3190 +:101E64008360A2F10C030C30BCF10C0FD5D2E3E774 +:101E74000B4611461A4600F08FB81346D2B2042915 +:101E840038BFFFF7F5BFD0B502AFA1F1040E42EAA7 +:101E94000363012443EA024304EB9E0443EA02235E +:101EA40014F0030410D08446012C4CF8043B10D1E8 +:101EB40074466046BEF10C0F1ED201F00301BDE86A +:101EC400D0406046FFF7D4BF0C46BEF10C0F13D2CE +:101ED400F3E7022C436007D10830A1F108048446DB +:101EE400BEF10C0F08D2E8E783600C30A1F10C04BA +:101EF4008446BEF10C0FE0D3C0E90033103CC0E9C6 +:101F040002331030032CF7D8844601F00301BDE8F6 +:101F1400D0406046FFF7ACBF0022FFF7AEBFF0B57C +:101F240003AF4DF8048DA2B3531E02F0030C032B30 +:101F340014D20022BCF1000F2BD08B5CBCF1010F3A +:101F4400835426D0531CBCF1020FCE5CC65420D05F +:101F54000232895C81545DF8048BF0BDACEB020E57 +:101F640001F10108441C6FF0030208EB0206A518F6 +:101F74000432F378EB7033792B7173796B71B37925 +:101F8400AB710EEB02030433EFD10432BCF1000F4A +:101F9400D3D15DF8048BF0BDD0B502AF12B3531E9C +:101FA40002F0030C032B01D200220FE0ACEB020E73 +:101FB400421C6FF00303D4180433A17161712171C1 +:101FC400E1700EEB03040434F5D11A1DBCF1000FCB +:101FD4001ABF8154BCF1010FD0BD0244BCF1020F01 +:0A1FE400517000D1D0BD9170D0BD46 +:0C1FF000711C0000C51B0000711B0000EC +:040000030000167D66 +:00000001FF diff --git a/boards/dongle/loopback-nousb26.hex b/boards/dongle/loopback-nousb26.hex new file mode 100644 index 0000000..a262869 --- /dev/null +++ b/boards/dongle/loopback-nousb26.hex @@ -0,0 +1,259 @@ +:1010000000C003207D160000C51D0000C51D0000A6 +:10101000C51D0000C51D0000C51D0000000000002A +:10102000000000000000000000000000C51D0000DE +:10103000C51D000000000000C51D0000C51D00000A +:101040002517000029170000C51D00004D190000DC +:10105000C51D0000C51D0000C51D0000C51D000008 +:10106000C51D0000C51D0000C51D00007D19000044 +:10107000C51D0000C51D0000C51D0000C51D0000E8 +:10108000C51D0000C51D0000C51D0000C51D0000D8 +:10109000C51D0000C51D0000C51D0000C51D0000C8 +:1010A000C51D0000C51D0000C51D0000C51D0000B8 +:1010B000C51D0000C51D000000000000000000006C +:1010C000C51D0000C51D0000C51D0000C51D000098 +:1010D000C51D0000C51D0000C51D0000C51D000088 +:1010E000C51D0000C51D0000C51D0000000000005A +:1010F00000000000C51D000000000000C51D00002C +:041100000B010000DF +:1011040080B56F46017839B1032902D141780129AC +:1011140004D100F0A7FAFEDE002141700649012245 +:101124000978C9B2002908BF032202704270B1FADB +:1011340081F0400980BD00BF06F0032080B56F46F2 +:1011440098B0DFF8E4A40120DAE84F1F002940F04A +:101154005982CAE8410F0029F6D1C449502016AC7F +:101164004FF0000801264FF0030BC1F8FC0007A85C +:1011740000F12601029100F12501019100F1200105 +:10118400049100F12C01069100F1280100F10C09F1 +:10119400059100F1240100208DF830800994CDE9F7 +:1011A40007440391C0B2DFE810F006000302030213 +:1011B40022003B0009008DF834801DE09DF84400B6 +:1011C400DFE810F0AC00F701F601B20007005500AB +:1011D4004F009DF84C00810700F0B080032840F0D8 +:1011E400E8819DF84D00012840F0AA80E1E19DF8D6 +:1011F4003400012800F0DD81DAF8040060B10168F0 +:101204005AE8012F824204D14AE80112002AF3D19C +:1012140018E0BFF32F8FEFE703208DF8340040E18F +:101224009DF84000DFE810F03800C501C4013C001F +:10123400060016009DF84C00810723D0032800F017 +:101244003E81B6E10221C1708DF831600A908DF8BB +:1012540034601BE09DF8540088B1032800F06781D6 +:10126400A7E19DF84800012840F0EF80A1E19DF836 +:10127400500048B1032840F09C81139D74E0DDE9DF +:10128400110152E1119819E1129D6CE08DF8408032 +:10129400CDF8389007980D90ADF844800E980F90D3 +:1012A4000598FFF72DFF10B18DF840B005E04FF41D +:1012B4008070ADF841000120FAE00021022082B2E2 +:1012C400022A01D10420ECE0ADF82C004023ADF853 +:1012D4002E109DF83110D84A002914BF53601360B2 +:1012E400000481F001018DF83110CFD10A9911F871 +:1012F400030F821E51FA82F0D2B2013152083AB180 +:101304000B78013A057801F8015B00F80139F6E73A +:101314008DF84480CDF8389009980D90DDE90D01E1 +:101324000F90ADF8488010910698FFF7E9FE08B1D8 +:101334000320B3E0CDF84C800F9812908DF84D80C7 +:101344009AF803000121C0B2022808BF0321022831 +:101354008DF84C108DF84D1001D104209EE0039DB2 +:101364008DF8508012951395002100208DF8586057 +:10137400012905D0625C013106FA02F21043F7E755 +:1013840008B1B14908609AF8010000F0030001288F +:101394007CD0A0BB02208AF8010000F0FFFCCDE95C +:1013A40016012046022100F055FBA849204600F012 +:1013B4007DFB28689E4900680330C1F8F8009D4809 +:1013C40001464FF48040C1F80003D1F8F80140F41D +:1013D4008010C1F8F8019AF80200C0B201280ED1B9 +:1013E40094488AF802B0466000F0D8FCCDE91601B2 +:1013F4002046022100F02EFB2046954944E000F0EF +:101404005BFCC5B2A5B3012D40D0022D40F0D480C1 +:1014140088484FF000618AF80360C0F8FC12466205 +:1014240000F0BCFCCDE916012046022100F012FBBD +:101434008849204600F03AFB20468DF8586000F0B9 +:10144400ABFB8DF850608DF848809AF80300C0B269 +:1014540001284FF0010008BF03208DF8480001D196 +:1014640006201BE08DF8446010E700BF0C14004018 +:1014740000F01CFC00F092FCCDE91601204602218C +:1014840000F0E8FA7449204600F010FB20468DF87D +:10149400586000F081FB8DF850B005208DF84400B1 +:1014A40005208DF8300000F093FC9DF8300079E6BB +:1014B40000064AD004988DF84C80119012909AF846 +:1014C4000100C0B210B102286AD098E000F0F4FB29 +:1014D4005FFA80FBBBF1000F54D0BBF1010F5FD06A +:1014E400BBF1020F40F07780129851490068006800 +:1014F4000330C1F8F8004F488AF80260066000F033 +:101504004DFCCDE916012046022100F0A3FA4B4917 +:10151400204600F0CBFA01994FF0030B02988DF8A6 +:101524004C608DF8548012911190CDE913019AF812 +:10153400020000F00300DFE800F06202111E052043 +:101544008DF840008DF854B0B7E6394801688DF83D +:1015540040609DF8410080F00100B0E68AF8028006 +:10156400139880F800803348D0F8F803149900F0F9 +:101574000100087001E08AF802808DF854609DF83B +:10158400420095E700F092FB00F008FCCDE916015B +:101594002046022100F05EFA2949204600F086FA2E +:1015A40004204FF0030B8DF840008DF84CB084E616 +:1015B400FEDE00F057F8FEDE00F0F0FB16ACCDE9DD +:1015C40016010021204600F045FA2449204600F087 +:1015D4006DFA28460DE000F0E1FB16ACCDE91601EA +:1015E4000021204600F036FA1649204600F05EFA43 +:1015F4005846214600F07CFB00F0B6FBFEDE00F00E +:1016040073FAFEDEBFF32F8F00F0C8FB07ACCDE901 +:1016140007010021204600F01DFA0449204600F08D +:1016240045FA00F0CEFBFEDE08F003200D000000BA +:101634000C14004008100040080500500F00000082 +:101644000E0000001000000080E100E01100000026 +:101654001200000014000000130000001500000038 +:1016640000F0B0BB80B56F4600F001F8FEDE80B537 +:101674006F4600F08DFBFEDE80B56F461B481D4AA9 +:10168400016841F0807101601948002141600168DE +:1016940011400131016018480121C0F810150160A2 +:1016A40016488160016016481649091A21F00301A1 +:1016B40000F032FC14481549091A21F003021449B8 +:1016C40000F08AFB00F080FB12484FF48A51124C60 +:1016D400124D01600161AC4202D201CC8047FAE7AD +:1016E400FFF7BEFFFFF72AFDFEDE00BFFCED00E0C2 +:1016F400001000E0FEFFFF000800004000B00040C2 +:1017040000F0032010F0032010F0032010F0032059 +:10171400FC1F000008050050F01F0000FC1F000023 +:1017240000F0F6B9F0B503AF2DE9C00B00F036FBBD +:101734006C46CDE900012046042100F08BF979497B +:10174400204600F0B3F9784A906B000605D00020DB +:101754009063D2F80402400406D41068000607D04F +:101764004FF0040810461BE091464FF002081AE0BF +:10177400104650F8481F090602D04FF000080FE049 +:10178400104650F80C1F090602D04FF0010807E07C +:10179400104650F86C1F090600F0C0804FF0030893 +:1017A40091460021016000F0F9FA6E460446CDE945 +:1017B40000010D463046032100F04CF95B493046E8 +:1017C40000F074F928880C22411C6FF31F30225456 +:1017D40030462980564900F069F9DFE808F00372C1 +:1017E4002B482100DDE9000100250A88531C6FF312 +:1017F4001F3285540B8000F0D1FA6C46CDE900010C +:101804002046022100F026F94E49204600F04EF908 +:101814004FF000600421C9F808024648457061E0B1 +:10182400DDE9000104240A88531C6FF31F32845439 +:101834000B8070E0DDE9000102240A883D4D531C51 +:101844006FF31F3284540B806878000666D100F071 +:10185400A5FA6C46CDE900012046022100F0FAF811 +:101864003649204600F022F90120687053E0DDE992 +:101874000012032013885C1C6FF31F33C8542D49D6 +:1018840014804A78D2B2022A48D14FF48042C9F86F +:101894000422D9F8002122F48012C9F800214FF063 +:1018A4000062C9F8082200224A70C87000F076FA73 +:1018B4006C46CDE900012046022100F0CBF81E4918 +:1018C40026E0DDE9000101240A88531C6FF31F326E +:1018D400845418480B804178C9B2012904D00229E4 +:1018E4001CD10221C17016E08178C9B2012915D139 +:1018F4000021C9F86C1041700221817000F04EFA89 +:101904006C46CDE900012046022100F0A3F80C4901 +:10191400204600F0CBF8BDE80C0BF0BD00F0E4F875 +:10192400FEDE00BF020000000011004003000000C2 +:101934000800000008F00320070000000500000074 +:101944000600000004000000DCB504AF00F026FA35 +:101954006C46CDE900012046042100F07BF80449DF +:10196400204600F0A3F8034800210160DCBD00BF5D +:101974000100000018310040DCB504AF2F480168B5 +:10198400C90741D1C16BC90722D000212F4CC163C3 +:101994002D490A88931C013204EA03332C4C23603A +:1019A4000A8091B20C22B1FBF2F202EB4202A1EBEB +:1019B400820103290CD8DFE801F00207020721495C +:1019C4004FF480724A6003E01E494FF480720A604B +:1019D400016CC9071FBF002101644FF40031C0F836 +:1019E4000412416CC9071FBF002141644FF48021D8 +:1019F400C0F80412816CC9071FBF002181644FF431 +:101A04000021C0F80412DCBD00F0C8F96C46CDE931 +:101A140000012046002100F01DF80949204600F08D +:101A240045F808484FF480510160402101604FF4AB +:101A34008071416000F0C5F9FEDE00BF04B10040D2 +:101A4400000000000805005000F0032000F0FF0033 +:101A540040B50040F0B503AF4DF804BD124A12681A +:101A6400D0E90034258892096E1C6FF31F3559554F +:101A740000232680D0E900100488661C42F080050B +:101A84006FF31F34B3EBD21F08BF02F07F05B3EB33 +:101A9400D21F0D554FEAD21534462A460680ECD1A2 +:101AA4005DF804BBF0BD00BF041000E0F0B503AF67 +:101AB4004DF804BD8AB27F2A0AD3D0E9003441F03C +:101AC400800125886E1C6FF31F355955D109268076 +:101AD400D0E9002003885C1C6FF31F33D1540480C9 +:101AE4005DF804BBF0BDD4D4E0B502AF00F056F904 +:101AF4006C46CDE9000120460021FFF7ABFF034906 +:101B04002046FFF7D3FF00F05CF9FEDE0900000079 +:101B1400DCB504AF00F042F96C46CDE90001204683 +:101B24000421FFF797FF0D492046FFF7BFFF0C483C +:101B34000168090611D00021016000F02FF96C46FC +:101B4400CDE9000120460221FFF784FF0549204624 +:101B5400FFF7ACFF044801210170DCBD0A0000005E +:101B6400000100400B00000006F0032007484FF47A +:101B7400803101604FF48051C0F83C124FF4807101 +:101B840003480160034800F007B800BF04B30040F5 +:101B94000C05005000110000D0B502AF0022012353 +:101BA4000021012A05D0845C013203FA04F42143A4 +:101BB400F7E709B101480160D0BD00BF00E100E0D2 +:101BC400F0B503AF4DF804BD1E4C1F4D264604F579 +:101BD400C670864212D06868014655E8010F8842F3 +:101BE40004D145E80162002AF6D102E0BFF32F8F49 +:101BF400F2E746F8841B00F0E9F8E8E713480F2100 +:101C04000123416008210160114981608121C16083 +:101C140010490A6863F302020A6040F202214FF499 +:101C2400822281620C49C162002101630B49425046 +:101C34000B490C4A42500C485DF804BBBDE8F04027 +:101C4400FFF7AABF00C0032008F003200C150040D2 +:101C5400080000066C16004021100100F4FCFFFF90 +:101C6400F8FDFFFF0940040801110000BCB504AFF2 +:101C74004FF080400125056000F090F86C46CDE9F6 +:101C8400000120460221FFF7E5FE05492046FFF743 +:101C94000DFF044805600448BDE8BC40FFF77CBF65 +:101CA4000C0000000403004002110000014801215F +:101CB4000160704704100040BCB504AF0A480468D2 +:101CC40000F06CF86D46CDE9000128460321FFF7CA +:101CD400C1FE06492846FFF7E9FE2046294600F0E2 +:101CE40007F8204602B0B0BD5015004017000000B0 +:101CF400F0B503AF4DF804BD0C460546D1E900012B +:101D04000C260A88531C6FF31F32865420460B801E +:101D14001449FFF7CBFE05F00F010820DFE801F0BE +:101D2400070D0F091521212121110B131600002085 +:101D34000CE003200AE0062008E0012006E002206F +:101D440004E0052002E0072000E00420D4E90012AA +:101D540013885C1C6FF31F33C85414805DF804BBF4 +:101D6400F0BDFEDE16000000E0B502AF00F016F88C +:101D74006C46CDE9000120460021FFF76BFE0349C4 +:101D84002046FFF793FE00F01CF8FEDE180000006A +:101D940080B56F4600F015F8FEDED4D40649054838 +:101DA4000968C9B20029054918BF00F5805018BF59 +:101DB4000231704700D0032004ED00E002F003205C +:101DC400FFBEAABE62B6704772B6704740BF704786 +:101DD40020BF704700F0A3B8042A38BFFFF7FABF4A +:101DE400B0B502AFA2F1040C012303EB9C0313F082 +:101DF40003030ED08E4604465EF8045B012B44F8C0 +:101E0400045B1FD1634620467146BCF10C0F04D21B +:101E140012E01346BCF10C0F0ED30D68103B0560A5 +:101E2400032B4D6845608D688560CD6801F1100114 +:101E3400C56000F11000F0D802F00302BDE8B04024 +:101E4400FFF7C8BF4D68022B456007D1A2F1080314 +:101E540008310830BCF10C0FDFD2EDE78B680C3190 +:101E64008360A2F10C030C30BCF10C0FD5D2E3E774 +:101E74000B4611461A4600F08FB81346D2B2042915 +:101E840038BFFFF7F5BFD0B502AFA1F1040E42EAA7 +:101E94000363012443EA024304EB9E0443EA02235E +:101EA40014F0030410D08446012C4CF8043B10D1E8 +:101EB40074466046BEF10C0F1ED201F00301BDE86A +:101EC400D0406046FFF7D4BF0C46BEF10C0F13D2CE +:101ED400F3E7022C436007D10830A1F108048446DB +:101EE400BEF10C0F08D2E8E783600C30A1F10C04BA +:101EF4008446BEF10C0FE0D3C0E90033103CC0E9C6 +:101F040002331030032CF7D8844601F00301BDE8F6 +:101F1400D0406046FFF7ACBF0022FFF7AEBFF0B57C +:101F240003AF4DF8048DA2B3531E02F0030C032B30 +:101F340014D20022BCF1000F2BD08B5CBCF1010F3A +:101F4400835426D0531CBCF1020FCE5CC65420D05F +:101F54000232895C81545DF8048BF0BDACEB020E57 +:101F640001F10108441C6FF0030208EB0206A518F6 +:101F74000432F378EB7033792B7173796B71B37925 +:101F8400AB710EEB02030433EFD10432BCF1000F4A +:101F9400D3D15DF8048BF0BDD0B502AF12B3531E9C +:101FA40002F0030C032B01D200220FE0ACEB020E73 +:101FB400421C6FF00303D4180433A17161712171C1 +:101FC400E1700EEB03040434F5D11A1DBCF1000FCB +:101FD4001ABF8154BCF1010FD0BD0244BCF1020F01 +:0A1FE400517000D1D0BD9170D0BD46 +:0C1FF000711C0000C51B0000711B0000EC +:040000030000167D66 +:00000001FF diff --git a/boards/dongle/puzzle-nousb.rs b/boards/dongle/puzzle-nousb.rs new file mode 100644 index 0000000..440b507 --- /dev/null +++ b/boards/dongle/puzzle-nousb.rs @@ -0,0 +1,78 @@ +#![deny(unused_must_use)] +#![no_main] +#![no_std] + +use hal::{ + led, + radio::{self, Channel, Packet}, +}; +use heapless::{consts, LinearMap}; +use panic_abort as _; + +static FROM: &[u8] = &[ + // +]; + +static TO: &[u8] = &[ + // +]; + +// store the secret rather than the plaintext -- otherwise `strings $elf` will reveal the answer +static SECRET: &[u8] = b""; + +#[no_mangle] +fn main() -> ! { + let (mut rtx, mut rrx) = radio::claim(Channel::_26); + let led = led::Green; + + let mut dict = LinearMap::<_, _, consts::U128>::new(); + for (&from, &to) in FROM.iter().zip(TO.iter()) { + dict.insert(from, to).ok(); + } + + let task = async { + let mut packet = Packet::new().await; + let mut on = true; + + loop { + let crcres = rrx.read(&mut packet).await; + // toggle LED on each new packet + if on { + led.on(); + } else { + led.off(); + } + on = !on; + + if crcres.is_ok() { + if packet.is_empty() { + packet.copy_from_slice(SECRET); + } else if packet.len() == 1 { + let p = packet[0]; + let c = dict.get(&p).unwrap_or(&p); + packet.copy_from_slice(&[*c]); + } else { + // encrypt + for slot in packet.iter_mut() { + if let Some(c) = dict.get(slot) { + *slot = *c; + } + } + + let matches = &packet[..] == SECRET; + packet.copy_from_slice(if matches { + led::Blue.on(); + b"correct" + } else { + led::Blue.off(); + b"incorrect" + }); + } + + rtx.write(&packet).await.ok(); + } + } + }; + + executor::run!(task) +} diff --git a/boards/dongle/puzzle-nousb11.hex b/boards/dongle/puzzle-nousb11.hex new file mode 100644 index 0000000..ffe55b9 --- /dev/null +++ b/boards/dongle/puzzle-nousb11.hex @@ -0,0 +1,301 @@ +:1010000000C00320B5180000FD1F0000FD1F0000F8 +:10101000FD1F0000FD1F0000FD1F0000000000007C +:10102000000000000000000000000000FD1F0000A4 +:10103000FD1F000000000000FD1F0000FD1F00005C +:101040005D19000061190000FD1F0000851B0000F4 +:10105000FD1F0000FD1F0000FD1F0000FD1F000020 +:10106000FD1F0000FD1F0000FD1F0000B51B00005C +:10107000FD1F0000FD1F0000FD1F0000FD1F000000 +:10108000FD1F0000FD1F0000FD1F0000FD1F0000F0 +:10109000FD1F0000FD1F0000FD1F0000FD1F0000E0 +:1010A000FD1F0000FD1F0000FD1F0000FD1F0000D0 +:1010B000FD1F0000FD1F00000000000000000000F8 +:1010C000FD1F0000FD1F0000FD1F0000FD1F0000B0 +:1010D000FD1F0000FD1F0000FD1F0000FD1F0000A0 +:1010E000FD1F0000FD1F0000FD1F000000000000AC +:1010F00000000000FD1F000000000000FD1F0000B8 +:10110000525B5D4D446657777E636A21313A3B649A +:1011100073622E347156424A5C3C7B2225292A4C4C +:10112000494758362327375E4041515F6972793EFF +:101130007C28657D596F356E7024763F336C383D61 +:10114000264E5A482B672F453020756168743253FC +:101150007A2C552D50784B544F4643606B6D394770 +:101160005C75783322576E53516C2C7348204F6A4C +:1011700049313F723D2F215468715D246F746B7B40 +:101180005B2D3B25645E61632A2339267D36504200 +:1011900052585A692755655F402E4A663556416D4B +:1011A000293C767037774D384460624B434C3A287F +:1011B0007C32453E2B464E7A3059347E67790000AA +:1011C0004E4B62657E6A4422277D445F627D4326E2 +:1011D00051265F624326653744266544434B584495 +:1011E0007A2B264F262858445B3527496235446EB2 +:1011F000277D7E6A4B275F2C636F72726563740074 +:0C120000696E636F72726563740B01000D +:10120C0004C8C9B252003AB110F8023B023A8B4200 +:10121C00F9D1411E023801E00020002100B9002163 +:10122C000846704780B56F46017839B1032902D161 +:10123C004178012904D100F02DFBFEDE0021417024 +:10124C00064901220978C9B2002908BF032202709D +:10125C004270B1FA81F0400980BD00BF06F0032056 +:10126C0080B56F46DAB0DFF8DC850120D8E84F1F77 +:10127C00002940F0D482C8E8410F0029F6D1C749B3 +:10128C000DF11C0CDFF8C8E50520DFF8C8950CF152 +:10129C00040AC1F8FC00002107915F2920D0079EA9 +:1012AC0052461EF8015019F80100013173003BB190 +:1012BC0012F8024B023B8442F9D1531E023A01E070 +:1012CC00002200230AB11D70E7E77F2EE5D80AF84B +:1012DC0016000AEB46004570079801300790DCE7D2 +:1012EC0048A8AE4C00F12A01019100F129010091AE +:1012FC0000F12401039100F13001059100F12C0162 +:10130C00049100F1280110300DF5B07B00260690F9 +:10131C004FF0010A4FF0030900208DF83861CDE938 +:10132C004ACBCDE948BB0291C0B2DFE810F0060011 +:10133C004E024E0222003B0009008DF83C611DE07C +:10134C009DF84C01DFE810F0F70042024102FD006D +:10135C00070055004F009DF85401810700F0FA80FA +:10136C00032840F033829DF85501012840F0F480A9 +:10137C002CE29DF83C01012800F02882D8F80400EA +:10138C0060B1016858E8012F824204D148E801128B +:10139C00002AF3D118E0BFF32F8FEFE703208DF86D +:1013AC003C018EE19DF84801DFE810F03800100296 +:1013BC000F023C00060016009DF85401810723D053 +:1013CC00032800F08C8101E20221C1708DF839A153 +:1013DC004C908DF83CA11BE09DF85C0188B1032872 +:1013EC0000F0B481F2E19DF85001012840F04081F9 +:1013FC00ECE19DF8580148B1032840F0E781559D78 +:10140C00BEE0DDE953019FE1539867E1549DB6E0DE +:10141C0006988DF84861509048984F90ADF84C6103 +:10142C00509851900498FFF7FDFE10B18DF848913B +:10143C0005E04FF48070ADF84901012048E100212E +:10144C00022082B2022A01D104203AE1ADF8340123 +:10145C004023ADF836119DF83911514A002914BFBB +:10146C0053601360000481F001018DF83911CFD164 +:10147C004C98C17803290BD0022919D13A21382272 +:10148C00C1704C98DFF8E413043000F058FE4CE0C7 +:10149C0001794A988DF86011FFF7B2FE002808BF59 +:1014AC0058464C99007881F803904C9908713CE0AF +:1014BC00061D881EC5B25DB134464A9814F8011B4E +:1014CC00FFF79EFE08B100783070013D2646F2E72A +:1014DC004C9CE0783A280AD1DFF89013201D884202 +:1014EC0012D0DFF88813382200F0F2FD60B1DB482F +:1014FC004FF48051092201600B20E0704C98DC49BC +:10150C00043000F01CFE0EE0D4484FF480514160D2 +:10151C000920E070D7484C9A01460068D1F80310B6 +:10152C00C2F807105060C94C002606988DF84C6123 +:10153C0050904B984F90DDE94F015190ADF85061B0 +:10154C0052910598FFF76EFE08B10320B6E0559650 +:10155C00519854908DF8556198F803000121C0B250 +:10156C00022808BF032102288DF854118DF855115B +:10157C0001D10420A2E0029D8DF858615495559537 +:10158C00002100208DF860A101290BD01BF801204F +:10159C0001310AFA02F21043F6E700BF0C140040C6 +:1015AC000805005008B1B449086098F8010000F033 +:1015BC00030001287AD0A0BB022088F8010000F0BB +:1015CC0005FDCDE958015846022100F05BFBAB4903 +:1015DC00584600F083FB286800680330C4F8F80014 +:1015EC009D4801464FF48040C1F80003D1F8F80142 +:1015FC0040F48010C1F8F80198F80200C0B201283C +:10160C000FD1954888F80290C0F804A000F0DEFCD9 +:10161C00CDE958015846022100F034FB5846984950 +:10162C0042E000F061FCC5B295B3012D3ED0022D15 +:10163C0040F0CF8088484FF0006188F803A0C0F8D4 +:10164C00FC12C0F824A000F0C1FCCDE958015846AA +:10165C00022100F017FB8B49584600F03FFB58461F +:10166C008DF860A100F0B0FB8DF858A18DF8506199 +:10167C0098F80300C0B201284FF0010008BF032006 +:10168C008DF8500101D1062018E08DF84CA1BFE671 +:10169C0000F024FC00F09AFCCDE9580158460221D8 +:1016AC0000F0F0FA7849584600F018FB58468DF8CF +:1016BC0060A100F089FB8DF8589105208DF84C0144 +:1016CC0005208DF8380100F09BFC9DF838012BE6C5 +:1016DC00000649D003988DF854615390549098F8B3 +:1016EC000100C0B210B1022867D095E000F0FCFBFD +:1016FC005FFA80F9B9F1000F51D0B9F1010F5CD04C +:10170C00B9F1020F74D15498006800680330C4F822 +:10171C00F800514888F802A0C0F800A000F056FC70 +:10172C00CDE958015846022100F0ACFA4C49584614 +:10173C0000F0D4FA00994FF0030901988DF854A1E8 +:10174C008DF85C6154915390CDE9550198F80200E5 +:10175C0000F00300DFE800F06002101C05208DF89B +:10176C0048018DF85C916AE621688DF848A19DF8D6 +:10177C00490180F0010064E688F802605598067013 +:10178C003548D0F8F803569900F00100087001E0D4 +:10179C0088F802608DF85CA19DF84A0198E700F08A +:1017AC009DFB00F013FCCDE958015846022100F0D6 +:1017BC0069FA2C49584600F091FA04204FF00309BD +:1017CC008DF848018DF8549139E6FEDE00F062F890 +:1017DC00FEDE00F0FBFB58ACCDE9580100212046A1 +:1017EC0000F050FA2949204600F078FA28460DE01E +:1017FC0000F0ECFB58ACCDE958010021204600F07C +:10180C0041FA1949204600F069FA4846214600F091 +:10181C0087FB00F0C1FBFEDE00F07EFAFEDEBFF3BC +:10182C002F8F00F0D3FB07ACCDE907010021204638 +:10183C0000F028FA0449204600F050FA00F0D9FBD9 +:10184C00FEDE00BF08F003200D0000000C14004069 +:10185C005F11000000110000081000400805005046 +:10186C000F0000000E00000010000000C01100006E +:10187C0000120000F811000080E100E011000000EF +:10188C0012000000140000001300000015000000FE +:10189C0000F0B0BB80B56F4600F001F8FEDE80B5FD +:1018AC006F4600F08DFBFEDE80B56F461B481D4A6F +:1018BC00016841F0807101601948002141600168A4 +:1018CC0011400131016018480121C0F81015016068 +:1018DC0016488160016016481649091A21F0030167 +:1018EC0000F0CFFC14481549091A21F003021449E1 +:1018FC0000F027FC00F080FB12484FF48A51124C88 +:10190C00124D01600161AC4202D201CC8047FAE772 +:10191C00FFF7BEFFFFF7A4FCFEDE00BFFCED00E00E +:10192C00001000E0FEFFFF000800004000B0004087 +:10193C0000F0032010F0032010F0032010F003201F +:10194C00A02200000805005094220000A0220000F4 +:10195C0000F0F6B9F0B503AF2DE9C00B00F036FB83 +:10196C006C46CDE900012046042100F08BF9794941 +:10197C00204600F0B3F9784A906B000605D00020A1 +:10198C009063D2F80402400406D41068000607D015 +:10199C004FF0040810461BE091464FF002081AE085 +:1019AC00104650F8481F090602D04FF000080FE00F +:1019BC00104650F80C1F090602D04FF0010807E042 +:1019CC00104650F86C1F090600F0C0804FF0030859 +:1019DC0091460021016000F0F9FA6E460446CDE90B +:1019EC0000010D463046032100F04CF95B493046AE +:1019FC0000F074F928880C22411C6FF31F3022541C +:101A0C0030462980564900F069F9DFE808F0037286 +:101A1C002B482100DDE9000100250A88531C6FF3D7 +:101A2C001F3285540B8000F0D1FA6C46CDE90001D1 +:101A3C002046022100F026F94E49204600F04EF9CE +:101A4C004FF000600421C9F808024648457061E077 +:101A5C00DDE9000104240A88531C6FF31F328454FF +:101A6C000B8070E0DDE9000102240A883D4D531C17 +:101A7C006FF31F3284540B806878000666D100F037 +:101A8C00A5FA6C46CDE900012046022100F0FAF8D7 +:101A9C003649204600F022F90120687053E0DDE958 +:101AAC000012032013885C1C6FF31F33C8542D499C +:101ABC0014804A78D2B2022A48D14FF48042C9F835 +:101ACC000422D9F8002122F48012C9F800214FF029 +:101ADC000062C9F8082200224A70C87000F076FA39 +:101AEC006C46CDE900012046022100F0CBF81E49DE +:101AFC0026E0DDE9000101240A88531C6FF31F3234 +:101B0C00845418480B804178C9B2012904D00229A9 +:101B1C001CD10221C17016E08178C9B2012915D1FE +:101B2C000021C9F86C1041700221817000F04EFA4E +:101B3C006C46CDE900012046022100F0A3F80C49C7 +:101B4C00204600F0CBF8BDE80C0BF0BD00F0E4F83B +:101B5C00FEDE00BF02000000001100400300000088 +:101B6C000800000008F0032007000000050000003A +:101B7C000600000004000000DCB504AF00F026FAFB +:101B8C006C46CDE900012046042100F07BF80449A5 +:101B9C00204600F0A3F8034800210160DCBD00BF23 +:101BAC000100000018310040DCB504AF2F4801687B +:101BBC00C90741D1C16BC90722D000212F4CC16389 +:101BCC002D490A88931C013204EA03332C4C236000 +:101BDC000A8091B20C22B1FBF2F202EB4202A1EBB1 +:101BEC00820103290CD8DFE801F002070207214922 +:101BFC004FF480724A6003E01E494FF480720A6011 +:101C0C00016CC9071FBF002101644FF40031C0F8FB +:101C1C000412416CC9071FBF002141644FF480219D +:101C2C00C0F80412816CC9071FBF002181644FF4F6 +:101C3C000021C0F80412DCBD00F0C8F96C46CDE9F7 +:101C4C0000012046002100F01DF80949204600F053 +:101C5C0045F808484FF480510160402101604FF471 +:101C6C008071416000F0C5F9FEDE00BF04B1004098 +:101C7C00000000000805005000F0032000F0FF00F9 +:101C8C0040B50040F0B503AF4DF804BD124A1268E0 +:101C9C00D0E90034258892096E1C6FF31F35595515 +:101CAC0000232680D0E900100488661C42F08005D1 +:101CBC006FF31F34B3EBD21F08BF02F07F05B3EBF9 +:101CCC00D21F0D554FEAD21534462A460680ECD168 +:101CDC005DF804BBF0BD00BF041000E0F0B503AF2D +:101CEC004DF804BD8AB27F2A0AD3D0E9003441F002 +:101CFC00800125886E1C6FF31F355955D10926803C +:101D0C00D0E9002003885C1C6FF31F33D15404808E +:101D1C005DF804BBF0BDD4D4E0B502AF00F056F9C9 +:101D2C006C46CDE9000120460021FFF7ABFF0349CB +:101D3C002046FFF7D3FF00F05CF9FEDE090000003F +:101D4C00DCB504AF00F042F96C46CDE90001204649 +:101D5C000421FFF797FF0D492046FFF7BFFF0C4802 +:101D6C000168090611D00021016000F02FF96C46C2 +:101D7C00CDE9000120460221FFF784FF05492046EA +:101D8C00FFF7ACFF044801210170DCBD0A00000024 +:101D9C00000100400B00000006F0032007484FF440 +:101DAC00803101604FF48051C0F83C124FF48071C7 +:101DBC0003480160034800F007B800BF04B30040BB +:101DCC000C05005009120000D0B502AF002201230F +:101DDC000021012A05D0845C013203FA04F421436A +:101DEC00F7E709B101480160D0BD00BF00E100E098 +:101DFC00F0B503AF4DF804BD1E4C1F4D264604F53F +:101E0C00C670864212D06868014655E8010F8842B8 +:101E1C0004D145E80162002AF6D102E0BFF32F8F0E +:101E2C00F2E746F8841B00F0E9F8E8E713480F21C5 +:101E3C000123416008210160114981608121C16049 +:101E4C0010490A6863F302020A6040F202214FF45F +:101E5C00822281620C49C162002101630B4942500C +:101E6C000B490C4A42500C485DF804BBBDE8F040ED +:101E7C00FFF7AABF00C0032008F003200C15004098 +:101E8C00080000066C16004021100100F4FCFFFF56 +:101E9C00F8FDFFFF094004080A120000BCB504AFAE +:101EAC004FF080400125056000F090F86C46CDE9BC +:101EBC00000120460221FFF7E5FE05492046FFF709 +:101ECC000DFF044805600448BDE8BC40FFF77CBF2B +:101EDC000C000000040300400B120000014801211B +:101EEC000160704704100040BCB504AF0A48046898 +:101EFC0000F06CF86D46CDE9000128460321FFF790 +:101F0C00C1FE06492846FFF7E9FE2046294600F0A7 +:101F1C0007F8204602B0B0BD501500401700000075 +:101F2C00F0B503AF4DF804BD0C460546D1E90001F0 +:101F3C000C260A88531C6FF31F32865420460B80E4 +:101F4C001449FFF7CBFE05F00F010820DFE801F084 +:101F5C00070D0F091521212121110B13160000204B +:101F6C000CE003200AE0062008E0012006E0022035 +:101F7C0004E0052002E0072000E00420D4E9001270 +:101F8C0013885C1C6FF31F33C85414805DF804BBBA +:101F9C00F0BDFEDE16000000E0B502AF00F016F852 +:101FAC006C46CDE9000120460021FFF76BFE03498A +:101FBC002046FFF793FE00F01CF8FEDE1800000030 +:101FCC0080B56F4600F015F8FEDED4D406490548FE +:101FDC000968C9B20029054918BF00F5805018BF1F +:101FEC000231704700D0032004ED00E002F0032022 +:101FFC00FFBEAABE62B6704772B6704740BF70474C +:10200C0020BF7047F0B503AF4DF8048DA2B3531E3B +:10201C0002F0030C032B14D20022BCF1000F2BD0C6 +:10202C008B5CBCF1010F835426D0531CBCF1020F06 +:10203C00CE5CC65420D00232895C81545DF8048B8E +:10204C00F0BDACEB020E01F10108441C6FF0030271 +:10205C0008EB0206A5180432F378EB7033792B7178 +:10206C0073796B71B379AB710EEB02030433EFD15F +:10207C000432BCF1000FD3D15DF8048BF0BDD0B5A8 +:10208C0002AF12B3531E02F0030C032B01D2002239 +:10209C000FE0ACEB020E421C6FF00303D4180433B8 +:1020AC00A17161712171E1700EEB03040434F5D15F +:1020BC001A1DBCF1000F1ABF8154BCF1010FD0BD29 +:1020CC000244BCF1020F517000D1D0BD9170D0BD53 +:1020DC00F0B503AF2DE9000B4AB3A2F1010EC2F12A +:1020EC00000C0023CC5CC55CA54224D19E451ED0BF +:1020FC0001EB030800EB030998F8014099F8015033 +:10210C00A54218D10CEB0306B41C10D098F8024071 +:10211C0099F80250A5420ED1F41C08D098F803404F +:10212C0099F80350A54206D104339A42DAD1002023 +:10213C00BDE8000BF0BD281BBDE8000BF0BDFFF7A0 +:10214C0061BF042A38BFFFF7FABFB0B502AFA2F1E6 +:10215C00040C012303EB9C0313F003030ED08E46F7 +:10216C0004465EF8045B012B44F8045B1FD1634604 +:10217C0020467146BCF10C0F04D212E01346BCF1A0 +:10218C000C0F0ED30D68103B0560032B4D6845609A +:10219C008D688560CD6801F11001C56000F11000FB +:1021AC00F0D802F00302BDE8B040FFF7C8BF4D689D +:1021BC00022B456007D1A2F1080308310830BCF1AD +:1021CC000C0FDFD2EDE78B680C318360A2F10C03AE +:1021DC000C30BCF10C0FD5D2E3E70B4611461A4676 +:1021EC00FFF74DBF1346D2B2042938BFFFF7F5BF36 +:1021FC00D0B502AFA1F1040E42EA0363012443EA15 +:10220C00024304EB9E0443EA022314F0030410D0AF +:10221C008446012C4CF8043B10D174466046BEF148 +:10222C000C0F1ED201F00301BDE8D0406046FFF751 +:10223C00D4BF0C46BEF10C0F13D2F3E7022C436053 +:10224C0007D10830A1F108048446BEF10C0F08D266 +:10225C00E8E783600C30A1F10C048446BEF10C0F4E +:10226C00E0D3C0E90033103CC0E902331030032C3A +:10227C00F7D8844601F00301BDE8D0406046FFF773 +:08228C00ACBF0022FFF7AEBF5A +:0C229400A91E0000FD1D0000A91D000097 +:04000003000018B52C +:00000001FF diff --git a/boards/dongle/puzzle-nousb16.hex b/boards/dongle/puzzle-nousb16.hex new file mode 100644 index 0000000..bb63f06 --- /dev/null +++ b/boards/dongle/puzzle-nousb16.hex @@ -0,0 +1,301 @@ +:1010000000C00320B5180000FD1F0000FD1F0000F8 +:10101000FD1F0000FD1F0000FD1F0000000000007C +:10102000000000000000000000000000FD1F0000A4 +:10103000FD1F000000000000FD1F0000FD1F00005C +:101040005D19000061190000FD1F0000851B0000F4 +:10105000FD1F0000FD1F0000FD1F0000FD1F000020 +:10106000FD1F0000FD1F0000FD1F0000B51B00005C +:10107000FD1F0000FD1F0000FD1F0000FD1F000000 +:10108000FD1F0000FD1F0000FD1F0000FD1F0000F0 +:10109000FD1F0000FD1F0000FD1F0000FD1F0000E0 +:1010A000FD1F0000FD1F0000FD1F0000FD1F0000D0 +:1010B000FD1F0000FD1F00000000000000000000F8 +:1010C000FD1F0000FD1F0000FD1F0000FD1F0000B0 +:1010D000FD1F0000FD1F0000FD1F0000FD1F0000A0 +:1010E000FD1F0000FD1F0000FD1F000000000000AC +:1010F00000000000FD1F000000000000FD1F0000B8 +:10110000525B5D4D446657777E636A21313A3B649A +:1011100073622E347156424A5C3C7B2225292A4C4C +:10112000494758362327375E4041515F6972793EFF +:101130007C28657D596F356E7024763F336C383D61 +:10114000264E5A482B672F453020756168743253FC +:101150007A2C552D50784B544F4643606B6D394770 +:101160005C75783322576E53516C2C7348204F6A4C +:1011700049313F723D2F215468715D246F746B7B40 +:101180005B2D3B25645E61632A2339267D36504200 +:1011900052585A692755655F402E4A663556416D4B +:1011A000293C767037774D384460624B434C3A287F +:1011B0007C32453E2B464E7A3059347E67790000AA +:1011C0004E4B62657E6A4422277D445F627D4326E2 +:1011D00051265F624326653744266544434B584495 +:1011E0007A2B264F262858445B3527496235446EB2 +:1011F000277D7E6A4B275F2C636F72726563740074 +:0C120000696E636F72726563740B01000D +:10120C0004C8C9B252003AB110F8023B023A8B4200 +:10121C00F9D1411E023801E00020002100B9002163 +:10122C000846704780B56F46017839B1032902D161 +:10123C004178012904D100F02DFBFEDE0021417024 +:10124C00064901220978C9B2002908BF032202709D +:10125C004270B1FA81F0400980BD00BF06F0032056 +:10126C0080B56F46DAB0DFF8DC850120D8E84F1F77 +:10127C00002940F0D482C8E8410F0029F6D1C749B3 +:10128C000DF11C0CDFF8C8E51E20DFF8C8950CF139 +:10129C00040AC1F8FC00002107915F2920D0079EA9 +:1012AC0052461EF8015019F80100013173003BB190 +:1012BC0012F8024B023B8442F9D1531E023A01E070 +:1012CC00002200230AB11D70E7E77F2EE5D80AF84B +:1012DC0016000AEB46004570079801300790DCE7D2 +:1012EC0048A8AE4C00F12A01019100F129010091AE +:1012FC0000F12401039100F13001059100F12C0162 +:10130C00049100F1280110300DF5B07B00260690F9 +:10131C004FF0010A4FF0030900208DF83861CDE938 +:10132C004ACBCDE948BB0291C0B2DFE810F0060011 +:10133C004E024E0222003B0009008DF83C611DE07C +:10134C009DF84C01DFE810F0F70042024102FD006D +:10135C00070055004F009DF85401810700F0FA80FA +:10136C00032840F033829DF85501012840F0F480A9 +:10137C002CE29DF83C01012800F02882D8F80400EA +:10138C0060B1016858E8012F824204D148E801128B +:10139C00002AF3D118E0BFF32F8FEFE703208DF86D +:1013AC003C018EE19DF84801DFE810F03800100296 +:1013BC000F023C00060016009DF85401810723D053 +:1013CC00032800F08C8101E20221C1708DF839A153 +:1013DC004C908DF83CA11BE09DF85C0188B1032872 +:1013EC0000F0B481F2E19DF85001012840F04081F9 +:1013FC00ECE19DF8580148B1032840F0E781559D78 +:10140C00BEE0DDE953019FE1539867E1549DB6E0DE +:10141C0006988DF84861509048984F90ADF84C6103 +:10142C00509851900498FFF7FDFE10B18DF848913B +:10143C0005E04FF48070ADF84901012048E100212E +:10144C00022082B2022A01D104203AE1ADF8340123 +:10145C004023ADF836119DF83911514A002914BFBB +:10146C0053601360000481F001018DF83911CFD164 +:10147C004C98C17803290BD0022919D13A21382272 +:10148C00C1704C98DFF8E413043000F058FE4CE0C7 +:10149C0001794A988DF86011FFF7B2FE002808BF59 +:1014AC0058464C99007881F803904C9908713CE0AF +:1014BC00061D881EC5B25DB134464A9814F8011B4E +:1014CC00FFF79EFE08B100783070013D2646F2E72A +:1014DC004C9CE0783A280AD1DFF89013201D884202 +:1014EC0012D0DFF88813382200F0F2FD60B1DB482F +:1014FC004FF48051092201600B20E0704C98DC49BC +:10150C00043000F01CFE0EE0D4484FF480514160D2 +:10151C000920E070D7484C9A01460068D1F80310B6 +:10152C00C2F807105060C94C002606988DF84C6123 +:10153C0050904B984F90DDE94F015190ADF85061B0 +:10154C0052910598FFF76EFE08B10320B6E0559650 +:10155C00519854908DF8556198F803000121C0B250 +:10156C00022808BF032102288DF854118DF855115B +:10157C0001D10420A2E0029D8DF858615495559537 +:10158C00002100208DF860A101290BD01BF801204F +:10159C0001310AFA02F21043F6E700BF0C140040C6 +:1015AC000805005008B1B449086098F8010000F033 +:1015BC00030001287AD0A0BB022088F8010000F0BB +:1015CC0005FDCDE958015846022100F05BFBAB4903 +:1015DC00584600F083FB286800680330C4F8F80014 +:1015EC009D4801464FF48040C1F80003D1F8F80142 +:1015FC0040F48010C1F8F80198F80200C0B201283C +:10160C000FD1954888F80290C0F804A000F0DEFCD9 +:10161C00CDE958015846022100F034FB5846984950 +:10162C0042E000F061FCC5B295B3012D3ED0022D15 +:10163C0040F0CF8088484FF0006188F803A0C0F8D4 +:10164C00FC12C0F824A000F0C1FCCDE958015846AA +:10165C00022100F017FB8B49584600F03FFB58461F +:10166C008DF860A100F0B0FB8DF858A18DF8506199 +:10167C0098F80300C0B201284FF0010008BF032006 +:10168C008DF8500101D1062018E08DF84CA1BFE671 +:10169C0000F024FC00F09AFCCDE9580158460221D8 +:1016AC0000F0F0FA7849584600F018FB58468DF8CF +:1016BC0060A100F089FB8DF8589105208DF84C0144 +:1016CC0005208DF8380100F09BFC9DF838012BE6C5 +:1016DC00000649D003988DF854615390549098F8B3 +:1016EC000100C0B210B1022867D095E000F0FCFBFD +:1016FC005FFA80F9B9F1000F51D0B9F1010F5CD04C +:10170C00B9F1020F74D15498006800680330C4F822 +:10171C00F800514888F802A0C0F800A000F056FC70 +:10172C00CDE958015846022100F0ACFA4C49584614 +:10173C0000F0D4FA00994FF0030901988DF854A1E8 +:10174C008DF85C6154915390CDE9550198F80200E5 +:10175C0000F00300DFE800F06002101C05208DF89B +:10176C0048018DF85C916AE621688DF848A19DF8D6 +:10177C00490180F0010064E688F802605598067013 +:10178C003548D0F8F803569900F00100087001E0D4 +:10179C0088F802608DF85CA19DF84A0198E700F08A +:1017AC009DFB00F013FCCDE958015846022100F0D6 +:1017BC0069FA2C49584600F091FA04204FF00309BD +:1017CC008DF848018DF8549139E6FEDE00F062F890 +:1017DC00FEDE00F0FBFB58ACCDE9580100212046A1 +:1017EC0000F050FA2949204600F078FA28460DE01E +:1017FC0000F0ECFB58ACCDE958010021204600F07C +:10180C0041FA1949204600F069FA4846214600F091 +:10181C0087FB00F0C1FBFEDE00F07EFAFEDEBFF3BC +:10182C002F8F00F0D3FB07ACCDE907010021204638 +:10183C0000F028FA0449204600F050FA00F0D9FBD9 +:10184C00FEDE00BF08F003200D0000000C14004069 +:10185C005F11000000110000081000400805005046 +:10186C000F0000000E00000010000000C01100006E +:10187C0000120000F811000080E100E011000000EF +:10188C0012000000140000001300000015000000FE +:10189C0000F0B0BB80B56F4600F001F8FEDE80B5FD +:1018AC006F4600F08DFBFEDE80B56F461B481D4A6F +:1018BC00016841F0807101601948002141600168A4 +:1018CC0011400131016018480121C0F81015016068 +:1018DC0016488160016016481649091A21F0030167 +:1018EC0000F0CFFC14481549091A21F003021449E1 +:1018FC0000F027FC00F080FB12484FF48A51124C88 +:10190C00124D01600161AC4202D201CC8047FAE772 +:10191C00FFF7BEFFFFF7A4FCFEDE00BFFCED00E00E +:10192C00001000E0FEFFFF000800004000B0004087 +:10193C0000F0032010F0032010F0032010F003201F +:10194C00A02200000805005094220000A0220000F4 +:10195C0000F0F6B9F0B503AF2DE9C00B00F036FB83 +:10196C006C46CDE900012046042100F08BF9794941 +:10197C00204600F0B3F9784A906B000605D00020A1 +:10198C009063D2F80402400406D41068000607D015 +:10199C004FF0040810461BE091464FF002081AE085 +:1019AC00104650F8481F090602D04FF000080FE00F +:1019BC00104650F80C1F090602D04FF0010807E042 +:1019CC00104650F86C1F090600F0C0804FF0030859 +:1019DC0091460021016000F0F9FA6E460446CDE90B +:1019EC0000010D463046032100F04CF95B493046AE +:1019FC0000F074F928880C22411C6FF31F3022541C +:101A0C0030462980564900F069F9DFE808F0037286 +:101A1C002B482100DDE9000100250A88531C6FF3D7 +:101A2C001F3285540B8000F0D1FA6C46CDE90001D1 +:101A3C002046022100F026F94E49204600F04EF9CE +:101A4C004FF000600421C9F808024648457061E077 +:101A5C00DDE9000104240A88531C6FF31F328454FF +:101A6C000B8070E0DDE9000102240A883D4D531C17 +:101A7C006FF31F3284540B806878000666D100F037 +:101A8C00A5FA6C46CDE900012046022100F0FAF8D7 +:101A9C003649204600F022F90120687053E0DDE958 +:101AAC000012032013885C1C6FF31F33C8542D499C +:101ABC0014804A78D2B2022A48D14FF48042C9F835 +:101ACC000422D9F8002122F48012C9F800214FF029 +:101ADC000062C9F8082200224A70C87000F076FA39 +:101AEC006C46CDE900012046022100F0CBF81E49DE +:101AFC0026E0DDE9000101240A88531C6FF31F3234 +:101B0C00845418480B804178C9B2012904D00229A9 +:101B1C001CD10221C17016E08178C9B2012915D1FE +:101B2C000021C9F86C1041700221817000F04EFA4E +:101B3C006C46CDE900012046022100F0A3F80C49C7 +:101B4C00204600F0CBF8BDE80C0BF0BD00F0E4F83B +:101B5C00FEDE00BF02000000001100400300000088 +:101B6C000800000008F0032007000000050000003A +:101B7C000600000004000000DCB504AF00F026FAFB +:101B8C006C46CDE900012046042100F07BF80449A5 +:101B9C00204600F0A3F8034800210160DCBD00BF23 +:101BAC000100000018310040DCB504AF2F4801687B +:101BBC00C90741D1C16BC90722D000212F4CC16389 +:101BCC002D490A88931C013204EA03332C4C236000 +:101BDC000A8091B20C22B1FBF2F202EB4202A1EBB1 +:101BEC00820103290CD8DFE801F002070207214922 +:101BFC004FF480724A6003E01E494FF480720A6011 +:101C0C00016CC9071FBF002101644FF40031C0F8FB +:101C1C000412416CC9071FBF002141644FF480219D +:101C2C00C0F80412816CC9071FBF002181644FF4F6 +:101C3C000021C0F80412DCBD00F0C8F96C46CDE9F7 +:101C4C0000012046002100F01DF80949204600F053 +:101C5C0045F808484FF480510160402101604FF471 +:101C6C008071416000F0C5F9FEDE00BF04B1004098 +:101C7C00000000000805005000F0032000F0FF00F9 +:101C8C0040B50040F0B503AF4DF804BD124A1268E0 +:101C9C00D0E90034258892096E1C6FF31F35595515 +:101CAC0000232680D0E900100488661C42F08005D1 +:101CBC006FF31F34B3EBD21F08BF02F07F05B3EBF9 +:101CCC00D21F0D554FEAD21534462A460680ECD168 +:101CDC005DF804BBF0BD00BF041000E0F0B503AF2D +:101CEC004DF804BD8AB27F2A0AD3D0E9003441F002 +:101CFC00800125886E1C6FF31F355955D10926803C +:101D0C00D0E9002003885C1C6FF31F33D15404808E +:101D1C005DF804BBF0BDD4D4E0B502AF00F056F9C9 +:101D2C006C46CDE9000120460021FFF7ABFF0349CB +:101D3C002046FFF7D3FF00F05CF9FEDE090000003F +:101D4C00DCB504AF00F042F96C46CDE90001204649 +:101D5C000421FFF797FF0D492046FFF7BFFF0C4802 +:101D6C000168090611D00021016000F02FF96C46C2 +:101D7C00CDE9000120460221FFF784FF05492046EA +:101D8C00FFF7ACFF044801210170DCBD0A00000024 +:101D9C00000100400B00000006F0032007484FF440 +:101DAC00803101604FF48051C0F83C124FF48071C7 +:101DBC0003480160034800F007B800BF04B30040BB +:101DCC000C05005009120000D0B502AF002201230F +:101DDC000021012A05D0845C013203FA04F421436A +:101DEC00F7E709B101480160D0BD00BF00E100E098 +:101DFC00F0B503AF4DF804BD1E4C1F4D264604F53F +:101E0C00C670864212D06868014655E8010F8842B8 +:101E1C0004D145E80162002AF6D102E0BFF32F8F0E +:101E2C00F2E746F8841B00F0E9F8E8E713480F21C5 +:101E3C000123416008210160114981608121C16049 +:101E4C0010490A6863F302020A6040F202214FF45F +:101E5C00822281620C49C162002101630B4942500C +:101E6C000B490C4A42500C485DF804BBBDE8F040ED +:101E7C00FFF7AABF00C0032008F003200C15004098 +:101E8C00080000066C16004021100100F4FCFFFF56 +:101E9C00F8FDFFFF094004080A120000BCB504AFAE +:101EAC004FF080400125056000F090F86C46CDE9BC +:101EBC00000120460221FFF7E5FE05492046FFF709 +:101ECC000DFF044805600448BDE8BC40FFF77CBF2B +:101EDC000C000000040300400B120000014801211B +:101EEC000160704704100040BCB504AF0A48046898 +:101EFC0000F06CF86D46CDE9000128460321FFF790 +:101F0C00C1FE06492846FFF7E9FE2046294600F0A7 +:101F1C0007F8204602B0B0BD501500401700000075 +:101F2C00F0B503AF4DF804BD0C460546D1E90001F0 +:101F3C000C260A88531C6FF31F32865420460B80E4 +:101F4C001449FFF7CBFE05F00F010820DFE801F084 +:101F5C00070D0F091521212121110B13160000204B +:101F6C000CE003200AE0062008E0012006E0022035 +:101F7C0004E0052002E0072000E00420D4E9001270 +:101F8C0013885C1C6FF31F33C85414805DF804BBBA +:101F9C00F0BDFEDE16000000E0B502AF00F016F852 +:101FAC006C46CDE9000120460021FFF76BFE03498A +:101FBC002046FFF793FE00F01CF8FEDE1800000030 +:101FCC0080B56F4600F015F8FEDED4D406490548FE +:101FDC000968C9B20029054918BF00F5805018BF1F +:101FEC000231704700D0032004ED00E002F0032022 +:101FFC00FFBEAABE62B6704772B6704740BF70474C +:10200C0020BF7047F0B503AF4DF8048DA2B3531E3B +:10201C0002F0030C032B14D20022BCF1000F2BD0C6 +:10202C008B5CBCF1010F835426D0531CBCF1020F06 +:10203C00CE5CC65420D00232895C81545DF8048B8E +:10204C00F0BDACEB020E01F10108441C6FF0030271 +:10205C0008EB0206A5180432F378EB7033792B7178 +:10206C0073796B71B379AB710EEB02030433EFD15F +:10207C000432BCF1000FD3D15DF8048BF0BDD0B5A8 +:10208C0002AF12B3531E02F0030C032B01D2002239 +:10209C000FE0ACEB020E421C6FF00303D4180433B8 +:1020AC00A17161712171E1700EEB03040434F5D15F +:1020BC001A1DBCF1000F1ABF8154BCF1010FD0BD29 +:1020CC000244BCF1020F517000D1D0BD9170D0BD53 +:1020DC00F0B503AF2DE9000B4AB3A2F1010EC2F12A +:1020EC00000C0023CC5CC55CA54224D19E451ED0BF +:1020FC0001EB030800EB030998F8014099F8015033 +:10210C00A54218D10CEB0306B41C10D098F8024071 +:10211C0099F80250A5420ED1F41C08D098F803404F +:10212C0099F80350A54206D104339A42DAD1002023 +:10213C00BDE8000BF0BD281BBDE8000BF0BDFFF7A0 +:10214C0061BF042A38BFFFF7FABFB0B502AFA2F1E6 +:10215C00040C012303EB9C0313F003030ED08E46F7 +:10216C0004465EF8045B012B44F8045B1FD1634604 +:10217C0020467146BCF10C0F04D212E01346BCF1A0 +:10218C000C0F0ED30D68103B0560032B4D6845609A +:10219C008D688560CD6801F11001C56000F11000FB +:1021AC00F0D802F00302BDE8B040FFF7C8BF4D689D +:1021BC00022B456007D1A2F1080308310830BCF1AD +:1021CC000C0FDFD2EDE78B680C318360A2F10C03AE +:1021DC000C30BCF10C0FD5D2E3E70B4611461A4676 +:1021EC00FFF74DBF1346D2B2042938BFFFF7F5BF36 +:1021FC00D0B502AFA1F1040E42EA0363012443EA15 +:10220C00024304EB9E0443EA022314F0030410D0AF +:10221C008446012C4CF8043B10D174466046BEF148 +:10222C000C0F1ED201F00301BDE8D0406046FFF751 +:10223C00D4BF0C46BEF10C0F13D2F3E7022C436053 +:10224C0007D10830A1F108048446BEF10C0F08D266 +:10225C00E8E783600C30A1F10C048446BEF10C0F4E +:10226C00E0D3C0E90033103CC0E902331030032C3A +:10227C00F7D8844601F00301BDE8D0406046FFF773 +:08228C00ACBF0022FFF7AEBF5A +:0C229400A91E0000FD1D0000A91D000097 +:04000003000018B52C +:00000001FF diff --git a/boards/dongle/puzzle-nousb21.hex b/boards/dongle/puzzle-nousb21.hex new file mode 100644 index 0000000..c60d4c3 --- /dev/null +++ b/boards/dongle/puzzle-nousb21.hex @@ -0,0 +1,301 @@ +:1010000000C00320B5180000FD1F0000FD1F0000F8 +:10101000FD1F0000FD1F0000FD1F0000000000007C +:10102000000000000000000000000000FD1F0000A4 +:10103000FD1F000000000000FD1F0000FD1F00005C +:101040005D19000061190000FD1F0000851B0000F4 +:10105000FD1F0000FD1F0000FD1F0000FD1F000020 +:10106000FD1F0000FD1F0000FD1F0000B51B00005C +:10107000FD1F0000FD1F0000FD1F0000FD1F000000 +:10108000FD1F0000FD1F0000FD1F0000FD1F0000F0 +:10109000FD1F0000FD1F0000FD1F0000FD1F0000E0 +:1010A000FD1F0000FD1F0000FD1F0000FD1F0000D0 +:1010B000FD1F0000FD1F00000000000000000000F8 +:1010C000FD1F0000FD1F0000FD1F0000FD1F0000B0 +:1010D000FD1F0000FD1F0000FD1F0000FD1F0000A0 +:1010E000FD1F0000FD1F0000FD1F000000000000AC +:1010F00000000000FD1F000000000000FD1F0000B8 +:10110000525B5D4D446657777E636A21313A3B649A +:1011100073622E347156424A5C3C7B2225292A4C4C +:10112000494758362327375E4041515F6972793EFF +:101130007C28657D596F356E7024763F336C383D61 +:10114000264E5A482B672F453020756168743253FC +:101150007A2C552D50784B544F4643606B6D394770 +:101160005C75783322576E53516C2C7348204F6A4C +:1011700049313F723D2F215468715D246F746B7B40 +:101180005B2D3B25645E61632A2339267D36504200 +:1011900052585A692755655F402E4A663556416D4B +:1011A000293C767037774D384460624B434C3A287F +:1011B0007C32453E2B464E7A3059347E67790000AA +:1011C0004E4B62657E6A4422277D445F627D4326E2 +:1011D00051265F624326653744266544434B584495 +:1011E0007A2B264F262858445B3527496235446EB2 +:1011F000277D7E6A4B275F2C636F72726563740074 +:0C120000696E636F72726563740B01000D +:10120C0004C8C9B252003AB110F8023B023A8B4200 +:10121C00F9D1411E023801E00020002100B9002163 +:10122C000846704780B56F46017839B1032902D161 +:10123C004178012904D100F02DFBFEDE0021417024 +:10124C00064901220978C9B2002908BF032202709D +:10125C004270B1FA81F0400980BD00BF06F0032056 +:10126C0080B56F46DAB0DFF8DC850120D8E84F1F77 +:10127C00002940F0D482C8E8410F0029F6D1C749B3 +:10128C000DF11C0CDFF8C8E53720DFF8C8950CF120 +:10129C00040AC1F8FC00002107915F2920D0079EA9 +:1012AC0052461EF8015019F80100013173003BB190 +:1012BC0012F8024B023B8442F9D1531E023A01E070 +:1012CC00002200230AB11D70E7E77F2EE5D80AF84B +:1012DC0016000AEB46004570079801300790DCE7D2 +:1012EC0048A8AE4C00F12A01019100F129010091AE +:1012FC0000F12401039100F13001059100F12C0162 +:10130C00049100F1280110300DF5B07B00260690F9 +:10131C004FF0010A4FF0030900208DF83861CDE938 +:10132C004ACBCDE948BB0291C0B2DFE810F0060011 +:10133C004E024E0222003B0009008DF83C611DE07C +:10134C009DF84C01DFE810F0F70042024102FD006D +:10135C00070055004F009DF85401810700F0FA80FA +:10136C00032840F033829DF85501012840F0F480A9 +:10137C002CE29DF83C01012800F02882D8F80400EA +:10138C0060B1016858E8012F824204D148E801128B +:10139C00002AF3D118E0BFF32F8FEFE703208DF86D +:1013AC003C018EE19DF84801DFE810F03800100296 +:1013BC000F023C00060016009DF85401810723D053 +:1013CC00032800F08C8101E20221C1708DF839A153 +:1013DC004C908DF83CA11BE09DF85C0188B1032872 +:1013EC0000F0B481F2E19DF85001012840F04081F9 +:1013FC00ECE19DF8580148B1032840F0E781559D78 +:10140C00BEE0DDE953019FE1539867E1549DB6E0DE +:10141C0006988DF84861509048984F90ADF84C6103 +:10142C00509851900498FFF7FDFE10B18DF848913B +:10143C0005E04FF48070ADF84901012048E100212E +:10144C00022082B2022A01D104203AE1ADF8340123 +:10145C004023ADF836119DF83911514A002914BFBB +:10146C0053601360000481F001018DF83911CFD164 +:10147C004C98C17803290BD0022919D13A21382272 +:10148C00C1704C98DFF8E413043000F058FE4CE0C7 +:10149C0001794A988DF86011FFF7B2FE002808BF59 +:1014AC0058464C99007881F803904C9908713CE0AF +:1014BC00061D881EC5B25DB134464A9814F8011B4E +:1014CC00FFF79EFE08B100783070013D2646F2E72A +:1014DC004C9CE0783A280AD1DFF89013201D884202 +:1014EC0012D0DFF88813382200F0F2FD60B1DB482F +:1014FC004FF48051092201600B20E0704C98DC49BC +:10150C00043000F01CFE0EE0D4484FF480514160D2 +:10151C000920E070D7484C9A01460068D1F80310B6 +:10152C00C2F807105060C94C002606988DF84C6123 +:10153C0050904B984F90DDE94F015190ADF85061B0 +:10154C0052910598FFF76EFE08B10320B6E0559650 +:10155C00519854908DF8556198F803000121C0B250 +:10156C00022808BF032102288DF854118DF855115B +:10157C0001D10420A2E0029D8DF858615495559537 +:10158C00002100208DF860A101290BD01BF801204F +:10159C0001310AFA02F21043F6E700BF0C140040C6 +:1015AC000805005008B1B449086098F8010000F033 +:1015BC00030001287AD0A0BB022088F8010000F0BB +:1015CC0005FDCDE958015846022100F05BFBAB4903 +:1015DC00584600F083FB286800680330C4F8F80014 +:1015EC009D4801464FF48040C1F80003D1F8F80142 +:1015FC0040F48010C1F8F80198F80200C0B201283C +:10160C000FD1954888F80290C0F804A000F0DEFCD9 +:10161C00CDE958015846022100F034FB5846984950 +:10162C0042E000F061FCC5B295B3012D3ED0022D15 +:10163C0040F0CF8088484FF0006188F803A0C0F8D4 +:10164C00FC12C0F824A000F0C1FCCDE958015846AA +:10165C00022100F017FB8B49584600F03FFB58461F +:10166C008DF860A100F0B0FB8DF858A18DF8506199 +:10167C0098F80300C0B201284FF0010008BF032006 +:10168C008DF8500101D1062018E08DF84CA1BFE671 +:10169C0000F024FC00F09AFCCDE9580158460221D8 +:1016AC0000F0F0FA7849584600F018FB58468DF8CF +:1016BC0060A100F089FB8DF8589105208DF84C0144 +:1016CC0005208DF8380100F09BFC9DF838012BE6C5 +:1016DC00000649D003988DF854615390549098F8B3 +:1016EC000100C0B210B1022867D095E000F0FCFBFD +:1016FC005FFA80F9B9F1000F51D0B9F1010F5CD04C +:10170C00B9F1020F74D15498006800680330C4F822 +:10171C00F800514888F802A0C0F800A000F056FC70 +:10172C00CDE958015846022100F0ACFA4C49584614 +:10173C0000F0D4FA00994FF0030901988DF854A1E8 +:10174C008DF85C6154915390CDE9550198F80200E5 +:10175C0000F00300DFE800F06002101C05208DF89B +:10176C0048018DF85C916AE621688DF848A19DF8D6 +:10177C00490180F0010064E688F802605598067013 +:10178C003548D0F8F803569900F00100087001E0D4 +:10179C0088F802608DF85CA19DF84A0198E700F08A +:1017AC009DFB00F013FCCDE958015846022100F0D6 +:1017BC0069FA2C49584600F091FA04204FF00309BD +:1017CC008DF848018DF8549139E6FEDE00F062F890 +:1017DC00FEDE00F0FBFB58ACCDE9580100212046A1 +:1017EC0000F050FA2949204600F078FA28460DE01E +:1017FC0000F0ECFB58ACCDE958010021204600F07C +:10180C0041FA1949204600F069FA4846214600F091 +:10181C0087FB00F0C1FBFEDE00F07EFAFEDEBFF3BC +:10182C002F8F00F0D3FB07ACCDE907010021204638 +:10183C0000F028FA0449204600F050FA00F0D9FBD9 +:10184C00FEDE00BF08F003200D0000000C14004069 +:10185C005F11000000110000081000400805005046 +:10186C000F0000000E00000010000000C01100006E +:10187C0000120000F811000080E100E011000000EF +:10188C0012000000140000001300000015000000FE +:10189C0000F0B0BB80B56F4600F001F8FEDE80B5FD +:1018AC006F4600F08DFBFEDE80B56F461B481D4A6F +:1018BC00016841F0807101601948002141600168A4 +:1018CC0011400131016018480121C0F81015016068 +:1018DC0016488160016016481649091A21F0030167 +:1018EC0000F0CFFC14481549091A21F003021449E1 +:1018FC0000F027FC00F080FB12484FF48A51124C88 +:10190C00124D01600161AC4202D201CC8047FAE772 +:10191C00FFF7BEFFFFF7A4FCFEDE00BFFCED00E00E +:10192C00001000E0FEFFFF000800004000B0004087 +:10193C0000F0032010F0032010F0032010F003201F +:10194C00A02200000805005094220000A0220000F4 +:10195C0000F0F6B9F0B503AF2DE9C00B00F036FB83 +:10196C006C46CDE900012046042100F08BF9794941 +:10197C00204600F0B3F9784A906B000605D00020A1 +:10198C009063D2F80402400406D41068000607D015 +:10199C004FF0040810461BE091464FF002081AE085 +:1019AC00104650F8481F090602D04FF000080FE00F +:1019BC00104650F80C1F090602D04FF0010807E042 +:1019CC00104650F86C1F090600F0C0804FF0030859 +:1019DC0091460021016000F0F9FA6E460446CDE90B +:1019EC0000010D463046032100F04CF95B493046AE +:1019FC0000F074F928880C22411C6FF31F3022541C +:101A0C0030462980564900F069F9DFE808F0037286 +:101A1C002B482100DDE9000100250A88531C6FF3D7 +:101A2C001F3285540B8000F0D1FA6C46CDE90001D1 +:101A3C002046022100F026F94E49204600F04EF9CE +:101A4C004FF000600421C9F808024648457061E077 +:101A5C00DDE9000104240A88531C6FF31F328454FF +:101A6C000B8070E0DDE9000102240A883D4D531C17 +:101A7C006FF31F3284540B806878000666D100F037 +:101A8C00A5FA6C46CDE900012046022100F0FAF8D7 +:101A9C003649204600F022F90120687053E0DDE958 +:101AAC000012032013885C1C6FF31F33C8542D499C +:101ABC0014804A78D2B2022A48D14FF48042C9F835 +:101ACC000422D9F8002122F48012C9F800214FF029 +:101ADC000062C9F8082200224A70C87000F076FA39 +:101AEC006C46CDE900012046022100F0CBF81E49DE +:101AFC0026E0DDE9000101240A88531C6FF31F3234 +:101B0C00845418480B804178C9B2012904D00229A9 +:101B1C001CD10221C17016E08178C9B2012915D1FE +:101B2C000021C9F86C1041700221817000F04EFA4E +:101B3C006C46CDE900012046022100F0A3F80C49C7 +:101B4C00204600F0CBF8BDE80C0BF0BD00F0E4F83B +:101B5C00FEDE00BF02000000001100400300000088 +:101B6C000800000008F0032007000000050000003A +:101B7C000600000004000000DCB504AF00F026FAFB +:101B8C006C46CDE900012046042100F07BF80449A5 +:101B9C00204600F0A3F8034800210160DCBD00BF23 +:101BAC000100000018310040DCB504AF2F4801687B +:101BBC00C90741D1C16BC90722D000212F4CC16389 +:101BCC002D490A88931C013204EA03332C4C236000 +:101BDC000A8091B20C22B1FBF2F202EB4202A1EBB1 +:101BEC00820103290CD8DFE801F002070207214922 +:101BFC004FF480724A6003E01E494FF480720A6011 +:101C0C00016CC9071FBF002101644FF40031C0F8FB +:101C1C000412416CC9071FBF002141644FF480219D +:101C2C00C0F80412816CC9071FBF002181644FF4F6 +:101C3C000021C0F80412DCBD00F0C8F96C46CDE9F7 +:101C4C0000012046002100F01DF80949204600F053 +:101C5C0045F808484FF480510160402101604FF471 +:101C6C008071416000F0C5F9FEDE00BF04B1004098 +:101C7C00000000000805005000F0032000F0FF00F9 +:101C8C0040B50040F0B503AF4DF804BD124A1268E0 +:101C9C00D0E90034258892096E1C6FF31F35595515 +:101CAC0000232680D0E900100488661C42F08005D1 +:101CBC006FF31F34B3EBD21F08BF02F07F05B3EBF9 +:101CCC00D21F0D554FEAD21534462A460680ECD168 +:101CDC005DF804BBF0BD00BF041000E0F0B503AF2D +:101CEC004DF804BD8AB27F2A0AD3D0E9003441F002 +:101CFC00800125886E1C6FF31F355955D10926803C +:101D0C00D0E9002003885C1C6FF31F33D15404808E +:101D1C005DF804BBF0BDD4D4E0B502AF00F056F9C9 +:101D2C006C46CDE9000120460021FFF7ABFF0349CB +:101D3C002046FFF7D3FF00F05CF9FEDE090000003F +:101D4C00DCB504AF00F042F96C46CDE90001204649 +:101D5C000421FFF797FF0D492046FFF7BFFF0C4802 +:101D6C000168090611D00021016000F02FF96C46C2 +:101D7C00CDE9000120460221FFF784FF05492046EA +:101D8C00FFF7ACFF044801210170DCBD0A00000024 +:101D9C00000100400B00000006F0032007484FF440 +:101DAC00803101604FF48051C0F83C124FF48071C7 +:101DBC0003480160034800F007B800BF04B30040BB +:101DCC000C05005009120000D0B502AF002201230F +:101DDC000021012A05D0845C013203FA04F421436A +:101DEC00F7E709B101480160D0BD00BF00E100E098 +:101DFC00F0B503AF4DF804BD1E4C1F4D264604F53F +:101E0C00C670864212D06868014655E8010F8842B8 +:101E1C0004D145E80162002AF6D102E0BFF32F8F0E +:101E2C00F2E746F8841B00F0E9F8E8E713480F21C5 +:101E3C000123416008210160114981608121C16049 +:101E4C0010490A6863F302020A6040F202214FF45F +:101E5C00822281620C49C162002101630B4942500C +:101E6C000B490C4A42500C485DF804BBBDE8F040ED +:101E7C00FFF7AABF00C0032008F003200C15004098 +:101E8C00080000066C16004021100100F4FCFFFF56 +:101E9C00F8FDFFFF094004080A120000BCB504AFAE +:101EAC004FF080400125056000F090F86C46CDE9BC +:101EBC00000120460221FFF7E5FE05492046FFF709 +:101ECC000DFF044805600448BDE8BC40FFF77CBF2B +:101EDC000C000000040300400B120000014801211B +:101EEC000160704704100040BCB504AF0A48046898 +:101EFC0000F06CF86D46CDE9000128460321FFF790 +:101F0C00C1FE06492846FFF7E9FE2046294600F0A7 +:101F1C0007F8204602B0B0BD501500401700000075 +:101F2C00F0B503AF4DF804BD0C460546D1E90001F0 +:101F3C000C260A88531C6FF31F32865420460B80E4 +:101F4C001449FFF7CBFE05F00F010820DFE801F084 +:101F5C00070D0F091521212121110B13160000204B +:101F6C000CE003200AE0062008E0012006E0022035 +:101F7C0004E0052002E0072000E00420D4E9001270 +:101F8C0013885C1C6FF31F33C85414805DF804BBBA +:101F9C00F0BDFEDE16000000E0B502AF00F016F852 +:101FAC006C46CDE9000120460021FFF76BFE03498A +:101FBC002046FFF793FE00F01CF8FEDE1800000030 +:101FCC0080B56F4600F015F8FEDED4D406490548FE +:101FDC000968C9B20029054918BF00F5805018BF1F +:101FEC000231704700D0032004ED00E002F0032022 +:101FFC00FFBEAABE62B6704772B6704740BF70474C +:10200C0020BF7047F0B503AF4DF8048DA2B3531E3B +:10201C0002F0030C032B14D20022BCF1000F2BD0C6 +:10202C008B5CBCF1010F835426D0531CBCF1020F06 +:10203C00CE5CC65420D00232895C81545DF8048B8E +:10204C00F0BDACEB020E01F10108441C6FF0030271 +:10205C0008EB0206A5180432F378EB7033792B7178 +:10206C0073796B71B379AB710EEB02030433EFD15F +:10207C000432BCF1000FD3D15DF8048BF0BDD0B5A8 +:10208C0002AF12B3531E02F0030C032B01D2002239 +:10209C000FE0ACEB020E421C6FF00303D4180433B8 +:1020AC00A17161712171E1700EEB03040434F5D15F +:1020BC001A1DBCF1000F1ABF8154BCF1010FD0BD29 +:1020CC000244BCF1020F517000D1D0BD9170D0BD53 +:1020DC00F0B503AF2DE9000B4AB3A2F1010EC2F12A +:1020EC00000C0023CC5CC55CA54224D19E451ED0BF +:1020FC0001EB030800EB030998F8014099F8015033 +:10210C00A54218D10CEB0306B41C10D098F8024071 +:10211C0099F80250A5420ED1F41C08D098F803404F +:10212C0099F80350A54206D104339A42DAD1002023 +:10213C00BDE8000BF0BD281BBDE8000BF0BDFFF7A0 +:10214C0061BF042A38BFFFF7FABFB0B502AFA2F1E6 +:10215C00040C012303EB9C0313F003030ED08E46F7 +:10216C0004465EF8045B012B44F8045B1FD1634604 +:10217C0020467146BCF10C0F04D212E01346BCF1A0 +:10218C000C0F0ED30D68103B0560032B4D6845609A +:10219C008D688560CD6801F11001C56000F11000FB +:1021AC00F0D802F00302BDE8B040FFF7C8BF4D689D +:1021BC00022B456007D1A2F1080308310830BCF1AD +:1021CC000C0FDFD2EDE78B680C318360A2F10C03AE +:1021DC000C30BCF10C0FD5D2E3E70B4611461A4676 +:1021EC00FFF74DBF1346D2B2042938BFFFF7F5BF36 +:1021FC00D0B502AFA1F1040E42EA0363012443EA15 +:10220C00024304EB9E0443EA022314F0030410D0AF +:10221C008446012C4CF8043B10D174466046BEF148 +:10222C000C0F1ED201F00301BDE8D0406046FFF751 +:10223C00D4BF0C46BEF10C0F13D2F3E7022C436053 +:10224C0007D10830A1F108048446BEF10C0F08D266 +:10225C00E8E783600C30A1F10C048446BEF10C0F4E +:10226C00E0D3C0E90033103CC0E902331030032C3A +:10227C00F7D8844601F00301BDE8D0406046FFF773 +:08228C00ACBF0022FFF7AEBF5A +:0C229400A91E0000FD1D0000A91D000097 +:04000003000018B52C +:00000001FF diff --git a/boards/dongle/puzzle-nousb26.hex b/boards/dongle/puzzle-nousb26.hex new file mode 100644 index 0000000..f416f31 --- /dev/null +++ b/boards/dongle/puzzle-nousb26.hex @@ -0,0 +1,301 @@ +:1010000000C00320B5180000FD1F0000FD1F0000F8 +:10101000FD1F0000FD1F0000FD1F0000000000007C +:10102000000000000000000000000000FD1F0000A4 +:10103000FD1F000000000000FD1F0000FD1F00005C +:101040005D19000061190000FD1F0000851B0000F4 +:10105000FD1F0000FD1F0000FD1F0000FD1F000020 +:10106000FD1F0000FD1F0000FD1F0000B51B00005C +:10107000FD1F0000FD1F0000FD1F0000FD1F000000 +:10108000FD1F0000FD1F0000FD1F0000FD1F0000F0 +:10109000FD1F0000FD1F0000FD1F0000FD1F0000E0 +:1010A000FD1F0000FD1F0000FD1F0000FD1F0000D0 +:1010B000FD1F0000FD1F00000000000000000000F8 +:1010C000FD1F0000FD1F0000FD1F0000FD1F0000B0 +:1010D000FD1F0000FD1F0000FD1F0000FD1F0000A0 +:1010E000FD1F0000FD1F0000FD1F000000000000AC +:1010F00000000000FD1F000000000000FD1F0000B8 +:10110000525B5D4D446657777E636A21313A3B649A +:1011100073622E347156424A5C3C7B2225292A4C4C +:10112000494758362327375E4041515F6972793EFF +:101130007C28657D596F356E7024763F336C383D61 +:10114000264E5A482B672F453020756168743253FC +:101150007A2C552D50784B544F4643606B6D394770 +:101160005C75783322576E53516C2C7348204F6A4C +:1011700049313F723D2F215468715D246F746B7B40 +:101180005B2D3B25645E61632A2339267D36504200 +:1011900052585A692755655F402E4A663556416D4B +:1011A000293C767037774D384460624B434C3A287F +:1011B0007C32453E2B464E7A3059347E67790000AA +:1011C0004E4B62657E6A4422277D445F627D4326E2 +:1011D00051265F624326653744266544434B584495 +:1011E0007A2B264F262858445B3527496235446EB2 +:1011F000277D7E6A4B275F2C636F72726563740074 +:0C120000696E636F72726563740B01000D +:10120C0004C8C9B252003AB110F8023B023A8B4200 +:10121C00F9D1411E023801E00020002100B9002163 +:10122C000846704780B56F46017839B1032902D161 +:10123C004178012904D100F02DFBFEDE0021417024 +:10124C00064901220978C9B2002908BF032202709D +:10125C004270B1FA81F0400980BD00BF06F0032056 +:10126C0080B56F46DAB0DFF8DC850120D8E84F1F77 +:10127C00002940F0D482C8E8410F0029F6D1C749B3 +:10128C000DF11C0CDFF8C8E55020DFF8C8950CF107 +:10129C00040AC1F8FC00002107915F2920D0079EA9 +:1012AC0052461EF8015019F80100013173003BB190 +:1012BC0012F8024B023B8442F9D1531E023A01E070 +:1012CC00002200230AB11D70E7E77F2EE5D80AF84B +:1012DC0016000AEB46004570079801300790DCE7D2 +:1012EC0048A8AE4C00F12A01019100F129010091AE +:1012FC0000F12401039100F13001059100F12C0162 +:10130C00049100F1280110300DF5B07B00260690F9 +:10131C004FF0010A4FF0030900208DF83861CDE938 +:10132C004ACBCDE948BB0291C0B2DFE810F0060011 +:10133C004E024E0222003B0009008DF83C611DE07C +:10134C009DF84C01DFE810F0F70042024102FD006D +:10135C00070055004F009DF85401810700F0FA80FA +:10136C00032840F033829DF85501012840F0F480A9 +:10137C002CE29DF83C01012800F02882D8F80400EA +:10138C0060B1016858E8012F824204D148E801128B +:10139C00002AF3D118E0BFF32F8FEFE703208DF86D +:1013AC003C018EE19DF84801DFE810F03800100296 +:1013BC000F023C00060016009DF85401810723D053 +:1013CC00032800F08C8101E20221C1708DF839A153 +:1013DC004C908DF83CA11BE09DF85C0188B1032872 +:1013EC0000F0B481F2E19DF85001012840F04081F9 +:1013FC00ECE19DF8580148B1032840F0E781559D78 +:10140C00BEE0DDE953019FE1539867E1549DB6E0DE +:10141C0006988DF84861509048984F90ADF84C6103 +:10142C00509851900498FFF7FDFE10B18DF848913B +:10143C0005E04FF48070ADF84901012048E100212E +:10144C00022082B2022A01D104203AE1ADF8340123 +:10145C004023ADF836119DF83911514A002914BFBB +:10146C0053601360000481F001018DF83911CFD164 +:10147C004C98C17803290BD0022919D13A21382272 +:10148C00C1704C98DFF8E413043000F058FE4CE0C7 +:10149C0001794A988DF86011FFF7B2FE002808BF59 +:1014AC0058464C99007881F803904C9908713CE0AF +:1014BC00061D881EC5B25DB134464A9814F8011B4E +:1014CC00FFF79EFE08B100783070013D2646F2E72A +:1014DC004C9CE0783A280AD1DFF89013201D884202 +:1014EC0012D0DFF88813382200F0F2FD60B1DB482F +:1014FC004FF48051092201600B20E0704C98DC49BC +:10150C00043000F01CFE0EE0D4484FF480514160D2 +:10151C000920E070D7484C9A01460068D1F80310B6 +:10152C00C2F807105060C94C002606988DF84C6123 +:10153C0050904B984F90DDE94F015190ADF85061B0 +:10154C0052910598FFF76EFE08B10320B6E0559650 +:10155C00519854908DF8556198F803000121C0B250 +:10156C00022808BF032102288DF854118DF855115B +:10157C0001D10420A2E0029D8DF858615495559537 +:10158C00002100208DF860A101290BD01BF801204F +:10159C0001310AFA02F21043F6E700BF0C140040C6 +:1015AC000805005008B1B449086098F8010000F033 +:1015BC00030001287AD0A0BB022088F8010000F0BB +:1015CC0005FDCDE958015846022100F05BFBAB4903 +:1015DC00584600F083FB286800680330C4F8F80014 +:1015EC009D4801464FF48040C1F80003D1F8F80142 +:1015FC0040F48010C1F8F80198F80200C0B201283C +:10160C000FD1954888F80290C0F804A000F0DEFCD9 +:10161C00CDE958015846022100F034FB5846984950 +:10162C0042E000F061FCC5B295B3012D3ED0022D15 +:10163C0040F0CF8088484FF0006188F803A0C0F8D4 +:10164C00FC12C0F824A000F0C1FCCDE958015846AA +:10165C00022100F017FB8B49584600F03FFB58461F +:10166C008DF860A100F0B0FB8DF858A18DF8506199 +:10167C0098F80300C0B201284FF0010008BF032006 +:10168C008DF8500101D1062018E08DF84CA1BFE671 +:10169C0000F024FC00F09AFCCDE9580158460221D8 +:1016AC0000F0F0FA7849584600F018FB58468DF8CF +:1016BC0060A100F089FB8DF8589105208DF84C0144 +:1016CC0005208DF8380100F09BFC9DF838012BE6C5 +:1016DC00000649D003988DF854615390549098F8B3 +:1016EC000100C0B210B1022867D095E000F0FCFBFD +:1016FC005FFA80F9B9F1000F51D0B9F1010F5CD04C +:10170C00B9F1020F74D15498006800680330C4F822 +:10171C00F800514888F802A0C0F800A000F056FC70 +:10172C00CDE958015846022100F0ACFA4C49584614 +:10173C0000F0D4FA00994FF0030901988DF854A1E8 +:10174C008DF85C6154915390CDE9550198F80200E5 +:10175C0000F00300DFE800F06002101C05208DF89B +:10176C0048018DF85C916AE621688DF848A19DF8D6 +:10177C00490180F0010064E688F802605598067013 +:10178C003548D0F8F803569900F00100087001E0D4 +:10179C0088F802608DF85CA19DF84A0198E700F08A +:1017AC009DFB00F013FCCDE958015846022100F0D6 +:1017BC0069FA2C49584600F091FA04204FF00309BD +:1017CC008DF848018DF8549139E6FEDE00F062F890 +:1017DC00FEDE00F0FBFB58ACCDE9580100212046A1 +:1017EC0000F050FA2949204600F078FA28460DE01E +:1017FC0000F0ECFB58ACCDE958010021204600F07C +:10180C0041FA1949204600F069FA4846214600F091 +:10181C0087FB00F0C1FBFEDE00F07EFAFEDEBFF3BC +:10182C002F8F00F0D3FB07ACCDE907010021204638 +:10183C0000F028FA0449204600F050FA00F0D9FBD9 +:10184C00FEDE00BF08F003200D0000000C14004069 +:10185C005F11000000110000081000400805005046 +:10186C000F0000000E00000010000000C01100006E +:10187C0000120000F811000080E100E011000000EF +:10188C0012000000140000001300000015000000FE +:10189C0000F0B0BB80B56F4600F001F8FEDE80B5FD +:1018AC006F4600F08DFBFEDE80B56F461B481D4A6F +:1018BC00016841F0807101601948002141600168A4 +:1018CC0011400131016018480121C0F81015016068 +:1018DC0016488160016016481649091A21F0030167 +:1018EC0000F0CFFC14481549091A21F003021449E1 +:1018FC0000F027FC00F080FB12484FF48A51124C88 +:10190C00124D01600161AC4202D201CC8047FAE772 +:10191C00FFF7BEFFFFF7A4FCFEDE00BFFCED00E00E +:10192C00001000E0FEFFFF000800004000B0004087 +:10193C0000F0032010F0032010F0032010F003201F +:10194C00A02200000805005094220000A0220000F4 +:10195C0000F0F6B9F0B503AF2DE9C00B00F036FB83 +:10196C006C46CDE900012046042100F08BF9794941 +:10197C00204600F0B3F9784A906B000605D00020A1 +:10198C009063D2F80402400406D41068000607D015 +:10199C004FF0040810461BE091464FF002081AE085 +:1019AC00104650F8481F090602D04FF000080FE00F +:1019BC00104650F80C1F090602D04FF0010807E042 +:1019CC00104650F86C1F090600F0C0804FF0030859 +:1019DC0091460021016000F0F9FA6E460446CDE90B +:1019EC0000010D463046032100F04CF95B493046AE +:1019FC0000F074F928880C22411C6FF31F3022541C +:101A0C0030462980564900F069F9DFE808F0037286 +:101A1C002B482100DDE9000100250A88531C6FF3D7 +:101A2C001F3285540B8000F0D1FA6C46CDE90001D1 +:101A3C002046022100F026F94E49204600F04EF9CE +:101A4C004FF000600421C9F808024648457061E077 +:101A5C00DDE9000104240A88531C6FF31F328454FF +:101A6C000B8070E0DDE9000102240A883D4D531C17 +:101A7C006FF31F3284540B806878000666D100F037 +:101A8C00A5FA6C46CDE900012046022100F0FAF8D7 +:101A9C003649204600F022F90120687053E0DDE958 +:101AAC000012032013885C1C6FF31F33C8542D499C +:101ABC0014804A78D2B2022A48D14FF48042C9F835 +:101ACC000422D9F8002122F48012C9F800214FF029 +:101ADC000062C9F8082200224A70C87000F076FA39 +:101AEC006C46CDE900012046022100F0CBF81E49DE +:101AFC0026E0DDE9000101240A88531C6FF31F3234 +:101B0C00845418480B804178C9B2012904D00229A9 +:101B1C001CD10221C17016E08178C9B2012915D1FE +:101B2C000021C9F86C1041700221817000F04EFA4E +:101B3C006C46CDE900012046022100F0A3F80C49C7 +:101B4C00204600F0CBF8BDE80C0BF0BD00F0E4F83B +:101B5C00FEDE00BF02000000001100400300000088 +:101B6C000800000008F0032007000000050000003A +:101B7C000600000004000000DCB504AF00F026FAFB +:101B8C006C46CDE900012046042100F07BF80449A5 +:101B9C00204600F0A3F8034800210160DCBD00BF23 +:101BAC000100000018310040DCB504AF2F4801687B +:101BBC00C90741D1C16BC90722D000212F4CC16389 +:101BCC002D490A88931C013204EA03332C4C236000 +:101BDC000A8091B20C22B1FBF2F202EB4202A1EBB1 +:101BEC00820103290CD8DFE801F002070207214922 +:101BFC004FF480724A6003E01E494FF480720A6011 +:101C0C00016CC9071FBF002101644FF40031C0F8FB +:101C1C000412416CC9071FBF002141644FF480219D +:101C2C00C0F80412816CC9071FBF002181644FF4F6 +:101C3C000021C0F80412DCBD00F0C8F96C46CDE9F7 +:101C4C0000012046002100F01DF80949204600F053 +:101C5C0045F808484FF480510160402101604FF471 +:101C6C008071416000F0C5F9FEDE00BF04B1004098 +:101C7C00000000000805005000F0032000F0FF00F9 +:101C8C0040B50040F0B503AF4DF804BD124A1268E0 +:101C9C00D0E90034258892096E1C6FF31F35595515 +:101CAC0000232680D0E900100488661C42F08005D1 +:101CBC006FF31F34B3EBD21F08BF02F07F05B3EBF9 +:101CCC00D21F0D554FEAD21534462A460680ECD168 +:101CDC005DF804BBF0BD00BF041000E0F0B503AF2D +:101CEC004DF804BD8AB27F2A0AD3D0E9003441F002 +:101CFC00800125886E1C6FF31F355955D10926803C +:101D0C00D0E9002003885C1C6FF31F33D15404808E +:101D1C005DF804BBF0BDD4D4E0B502AF00F056F9C9 +:101D2C006C46CDE9000120460021FFF7ABFF0349CB +:101D3C002046FFF7D3FF00F05CF9FEDE090000003F +:101D4C00DCB504AF00F042F96C46CDE90001204649 +:101D5C000421FFF797FF0D492046FFF7BFFF0C4802 +:101D6C000168090611D00021016000F02FF96C46C2 +:101D7C00CDE9000120460221FFF784FF05492046EA +:101D8C00FFF7ACFF044801210170DCBD0A00000024 +:101D9C00000100400B00000006F0032007484FF440 +:101DAC00803101604FF48051C0F83C124FF48071C7 +:101DBC0003480160034800F007B800BF04B30040BB +:101DCC000C05005009120000D0B502AF002201230F +:101DDC000021012A05D0845C013203FA04F421436A +:101DEC00F7E709B101480160D0BD00BF00E100E098 +:101DFC00F0B503AF4DF804BD1E4C1F4D264604F53F +:101E0C00C670864212D06868014655E8010F8842B8 +:101E1C0004D145E80162002AF6D102E0BFF32F8F0E +:101E2C00F2E746F8841B00F0E9F8E8E713480F21C5 +:101E3C000123416008210160114981608121C16049 +:101E4C0010490A6863F302020A6040F202214FF45F +:101E5C00822281620C49C162002101630B4942500C +:101E6C000B490C4A42500C485DF804BBBDE8F040ED +:101E7C00FFF7AABF00C0032008F003200C15004098 +:101E8C00080000066C16004021100100F4FCFFFF56 +:101E9C00F8FDFFFF094004080A120000BCB504AFAE +:101EAC004FF080400125056000F090F86C46CDE9BC +:101EBC00000120460221FFF7E5FE05492046FFF709 +:101ECC000DFF044805600448BDE8BC40FFF77CBF2B +:101EDC000C000000040300400B120000014801211B +:101EEC000160704704100040BCB504AF0A48046898 +:101EFC0000F06CF86D46CDE9000128460321FFF790 +:101F0C00C1FE06492846FFF7E9FE2046294600F0A7 +:101F1C0007F8204602B0B0BD501500401700000075 +:101F2C00F0B503AF4DF804BD0C460546D1E90001F0 +:101F3C000C260A88531C6FF31F32865420460B80E4 +:101F4C001449FFF7CBFE05F00F010820DFE801F084 +:101F5C00070D0F091521212121110B13160000204B +:101F6C000CE003200AE0062008E0012006E0022035 +:101F7C0004E0052002E0072000E00420D4E9001270 +:101F8C0013885C1C6FF31F33C85414805DF804BBBA +:101F9C00F0BDFEDE16000000E0B502AF00F016F852 +:101FAC006C46CDE9000120460021FFF76BFE03498A +:101FBC002046FFF793FE00F01CF8FEDE1800000030 +:101FCC0080B56F4600F015F8FEDED4D406490548FE +:101FDC000968C9B20029054918BF00F5805018BF1F +:101FEC000231704700D0032004ED00E002F0032022 +:101FFC00FFBEAABE62B6704772B6704740BF70474C +:10200C0020BF7047F0B503AF4DF8048DA2B3531E3B +:10201C0002F0030C032B14D20022BCF1000F2BD0C6 +:10202C008B5CBCF1010F835426D0531CBCF1020F06 +:10203C00CE5CC65420D00232895C81545DF8048B8E +:10204C00F0BDACEB020E01F10108441C6FF0030271 +:10205C0008EB0206A5180432F378EB7033792B7178 +:10206C0073796B71B379AB710EEB02030433EFD15F +:10207C000432BCF1000FD3D15DF8048BF0BDD0B5A8 +:10208C0002AF12B3531E02F0030C032B01D2002239 +:10209C000FE0ACEB020E421C6FF00303D4180433B8 +:1020AC00A17161712171E1700EEB03040434F5D15F +:1020BC001A1DBCF1000F1ABF8154BCF1010FD0BD29 +:1020CC000244BCF1020F517000D1D0BD9170D0BD53 +:1020DC00F0B503AF2DE9000B4AB3A2F1010EC2F12A +:1020EC00000C0023CC5CC55CA54224D19E451ED0BF +:1020FC0001EB030800EB030998F8014099F8015033 +:10210C00A54218D10CEB0306B41C10D098F8024071 +:10211C0099F80250A5420ED1F41C08D098F803404F +:10212C0099F80350A54206D104339A42DAD1002023 +:10213C00BDE8000BF0BD281BBDE8000BF0BDFFF7A0 +:10214C0061BF042A38BFFFF7FABFB0B502AFA2F1E6 +:10215C00040C012303EB9C0313F003030ED08E46F7 +:10216C0004465EF8045B012B44F8045B1FD1634604 +:10217C0020467146BCF10C0F04D212E01346BCF1A0 +:10218C000C0F0ED30D68103B0560032B4D6845609A +:10219C008D688560CD6801F11001C56000F11000FB +:1021AC00F0D802F00302BDE8B040FFF7C8BF4D689D +:1021BC00022B456007D1A2F1080308310830BCF1AD +:1021CC000C0FDFD2EDE78B680C318360A2F10C03AE +:1021DC000C30BCF10C0FD5D2E3E70B4611461A4676 +:1021EC00FFF74DBF1346D2B2042938BFFFF7F5BF36 +:1021FC00D0B502AFA1F1040E42EA0363012443EA15 +:10220C00024304EB9E0443EA022314F0030410D0AF +:10221C008446012C4CF8043B10D174466046BEF148 +:10222C000C0F1ED201F00301BDE8D0406046FFF751 +:10223C00D4BF0C46BEF10C0F13D2F3E7022C436053 +:10224C0007D10830A1F108048446BEF10C0F08D266 +:10225C00E8E783600C30A1F10C048446BEF10C0F4E +:10226C00E0D3C0E90033103CC0E902331030032C3A +:10227C00F7D8844601F00301BDE8D0406046FFF773 +:08228C00ACBF0022FFF7AEBF5A +:0C229400A91E0000FD1D0000A91D000097 +:04000003000018B52C +:00000001FF diff --git a/embedded-workshop-book/src/dongle.md b/embedded-workshop-book/src/dongle.md index b79ea2a..b3cfaf1 100644 --- a/embedded-workshop-book/src/dongle.md +++ b/embedded-workshop-book/src/dongle.md @@ -5,7 +5,7 @@ Next, we'll look into the radio API exposed by the `dk` HAL. But before that we' From this section on, we'll use the nRF52840 Dongle in addition to the nRF52840 DK. We'll run some pre-compiled programs on the Dongle and write programs for the DK that will interact with the Dongle over a radio link. **💬 How to find the buttons on the Dongle:** - Put the Dongle in front of you, so that the side with the parts mounted on faces up. Rotate it, so that the narrower part of the board, the surface USB connector, faces away from you. + Put the Dongle in front of you, so that the side with the parts mounted on faces up. Rotate it, so that the narrower part of the board, the surface USB connector, faces away from you. The Dongle has two buttons. They are next to each other in the lower left corner of the Dongle. The reset button (RESET) is mounted sideways, it's square shaped button faces you. Further away from you is the round-ish user button (SW1), which faces up. ✅ Install the `dongle-flash` tool by running the following command from the `tools/dongle-flash` directory. @@ -18,11 +18,11 @@ The Dongle does not contain an on-board debugger, like the DK, so we cannot use When put in bootloader mode the Dongle will run a bootloader program instead of the last application that was flashed into it. This bootloader program will make the Dongle show up as a USB CDC ACM device (AKA Serial over USB device) that accepts new application images over this interface. We'll use the `nrfutil` tool to communicate with the bootloader-mode Dongle and flash new images into it. -✅ Connect the Dongle to your computer. Put the Dongle in bootloader mode by pressing its *reset* button. - +✅ Connect the Dongle to your computer. Put the Dongle in bootloader mode by pressing its *reset* button. + When the Dongle is in bootloader mode its red LED will oscillate in intensity. The Dongle will also appear as a USB CDC ACM device with vendor ID `0x1915` and product ID `0x521f`. -You can also use the tool `usb-list`, a minimal cross-platform version of the `lsusb` tool, to check out the status of the Dongle. +You can also use the tool `usb-list`, a minimal cross-platform version of the `lsusb` tool, to check out the status of the Dongle. ✅ Run `cargo run` from `tools/usb-list` to list all USB devices; the Dongle will be highlighted in the output, along with a note if in bootloader mode. @@ -53,7 +53,7 @@ Device programmed. After the device has been programmed it will automatically reset and start running the new application. -The `loopback` application will *blink* the red LED in a heartbeat fashion: two fast blinks (LED on then off) followed by two periods of silence (LED off). The application will also make the Dongle enumerate itself as a CDC ACM device. +The `loopback` application will *blink* the red LED in a heartbeat fashion: two fast blinks (LED on then off) followed by two periods of silence (LED off). The application will also make the Dongle enumerate itself as a CDC ACM device. ✅ Run `usb-list` tool from the `tools/usb-list` directory to see the newly enumerated Dongle in the output: @@ -62,7 +62,7 @@ $ cargo run Bus 001 Device 020: ID 2020:0309 <- nRF52840 Dongle (loopback.hex) ``` -The `loopback` app will log messages over the USB interface. To display these messages on the host we have provided a cross-platform tool: `serial-term`. +The `loopback` app will log messages over the USB interface. To display these messages on the host we have provided a cross-platform tool: `serial-term`. ✅ Install it by running the following command from the `tools/serial-term` directory. @@ -79,7 +79,35 @@ deviceid=588c06af0877c8f2 channel=20 TxPower=+8dBm app=loopback.hex This line is printed by the `loopback` app on boot. It contains the device ID of the dongle, a 64-bit unique identifier (so everyone will see a different number); the radio channel that the device will use to communicate; and the transmission power of the radio in dBm. -At this point you should *not* get more output from `serial-term`. +## USB issues + +If you don't get any output from `serial-term` it could just have been that first line got lost when re-enumerating the device from bootloader mode to the loopback application. Run these *two* commands: + +``` console +$ change-channel 20 +requested channel change to channel 20 + +$ change-channel 20 +requested channel change to channel 20 +``` + +You should get *two* lines of output in `serial-term` + +``` console +$ serial-term +now listening on channel 20 +now listening on channel 20 +``` + +If that's the case you are good to go. + +If you only get one line of output then your OS may be losing some serial data -- we have seen this behavior on some macOS machines. You will still be able to work through the exercises but will miss log data every now and then. + +If you don't get *any* output from `serial-term` and/or the `change-channel` command fails then the Dongle's USB functionality is not working correctly. In this case you should use the `loopback-nousb*` programs. These have no USB functionality but you will be able to use them to do the exercises. There are four `.hex` files available. You can pick any of them but commit the number in the file name to memory; this is the radio channel the Dongle will listen to. + +## Interference + +At this point you should *not* get more output from `serial-term`. ❗If you get "received N bytes" lines in output like this: diff --git a/embedded-workshop-book/src/radio-puzzle.md b/embedded-workshop-book/src/radio-puzzle.md index a7da67a..fdca101 100644 --- a/embedded-workshop-book/src/radio-puzzle.md +++ b/embedded-workshop-book/src/radio-puzzle.md @@ -2,6 +2,8 @@ For this section you'll need to flash the `puzzle.hex` program on the Dongle. Follow the instructions from the "nRF52840 Dongle" section but flash the `puzzle.hex` program instead of the `loopback.hex` one -- don't forget to put the Dongle in bootloader mode before invoking `dongle-flash`. +> Note: If you experienced USB issues with `loopback.hex` you use the `puzzle-nousb*.hex` variants. + Like in the previous sections the Dongle will listen for radio packets -- this time over *channel 25* -- while also logging messages over a USB/serial interface. Open the `beginner/apps` folder in VS Code; then open the `src/bin/radio-puzzle.rs` file. @@ -76,4 +78,3 @@ For your reference, we have provided a complete solution in the `src/bin/radio-p If you solved the puzzle using a `Vec` buffer you can try solving it without the buffer as a stretch goal. You may find the [slice methods][slice] that let you mutate its data useful. A solution that does not use the `Vec` buffer can be found in the `radio-puzzle-solution-2` file. [slice]: https://doc.rust-lang.org/std/primitive.slice.html#methods - From 05a2c8c3d943e0d29dd6020a9d31f9e00e8a5795 Mon Sep 17 00:00:00 2001 From: Jorge Aparicio Date: Tue, 14 Jul 2020 19:34:08 +0200 Subject: [PATCH 3/5] more control flow --- embedded-workshop-book/src/dongle.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/embedded-workshop-book/src/dongle.md b/embedded-workshop-book/src/dongle.md index b3cfaf1..103830f 100644 --- a/embedded-workshop-book/src/dongle.md +++ b/embedded-workshop-book/src/dongle.md @@ -99,11 +99,11 @@ now listening on channel 20 now listening on channel 20 ``` -If that's the case you are good to go. +If that's the case you are good to go: proceed to the "Interference" section below. -If you only get one line of output then your OS may be losing some serial data -- we have seen this behavior on some macOS machines. You will still be able to work through the exercises but will miss log data every now and then. +If you only get one line of output then your OS may be losing some serial data -- we have seen this behavior on some macOS machines. You will still be able to work through the exercises but will miss log data every now and then. Proceed to the "Interference" section below. -If you don't get *any* output from `serial-term` and/or the `change-channel` command fails then the Dongle's USB functionality is not working correctly. In this case you should use the `loopback-nousb*` programs. These have no USB functionality but you will be able to use them to do the exercises. There are four `.hex` files available. You can pick any of them but commit the number in the file name to memory; this is the radio channel the Dongle will listen to. +If you don't get *any* output from `serial-term` and/or the `change-channel` command fails then the Dongle's USB functionality is not working correctly. In this case you should use the `loopback-nousb*` programs. These have no USB functionality but you will be able to use them to do the exercises. There are four `.hex` files available. You can pick any of them but commit the number in the file name to memory; this is the radio channel the Dongle will listen to. The "Interference" section below will not apply to you. ## Interference From e6dda1b037625634cb52b5358dbcb0235800683d Mon Sep 17 00:00:00 2001 From: Jorge Aparicio Date: Wed, 15 Jul 2020 14:07:59 +0200 Subject: [PATCH 4/5] move usb issues into the troubleshooting chapter --- embedded-workshop-book/src/SUMMARY.md | 3 +- embedded-workshop-book/src/dongle.md | 26 ++--------------- .../src/troubleshoot-usb-dongle.md | 29 +++++++++++++++++++ 3 files changed, 33 insertions(+), 25 deletions(-) create mode 100644 embedded-workshop-book/src/troubleshoot-usb-dongle.md diff --git a/embedded-workshop-book/src/SUMMARY.md b/embedded-workshop-book/src/SUMMARY.md index 7809594..a2ea857 100644 --- a/embedded-workshop-book/src/SUMMARY.md +++ b/embedded-workshop-book/src/SUMMARY.md @@ -56,4 +56,5 @@ - [`cargo-flash` is not working](./troubleshoot-cargo-flash.md) - [Rust analyzer is not working](./troubleshoot-rust-analyzer.md) - [`cargo-build` fails to link](./troubleshoot-cargo-build.md) - - [`dongle-flash` is not working](./troubleshoot-dongle-flash.md) \ No newline at end of file + - [`dongle-flash` is not working](./troubleshoot-dongle-flash.md) + - [Dongle USB functionality is not working](./troubleshoot-usb-dongle.md) diff --git a/embedded-workshop-book/src/dongle.md b/embedded-workshop-book/src/dongle.md index 103830f..7fb5df1 100644 --- a/embedded-workshop-book/src/dongle.md +++ b/embedded-workshop-book/src/dongle.md @@ -79,31 +79,9 @@ deviceid=588c06af0877c8f2 channel=20 TxPower=+8dBm app=loopback.hex This line is printed by the `loopback` app on boot. It contains the device ID of the dongle, a 64-bit unique identifier (so everyone will see a different number); the radio channel that the device will use to communicate; and the transmission power of the radio in dBm. -## USB issues +If you don't get any output from `serial-term` check [the USB dongle troubleshooting section][usb-issues]. -If you don't get any output from `serial-term` it could just have been that first line got lost when re-enumerating the device from bootloader mode to the loopback application. Run these *two* commands: - -``` console -$ change-channel 20 -requested channel change to channel 20 - -$ change-channel 20 -requested channel change to channel 20 -``` - -You should get *two* lines of output in `serial-term` - -``` console -$ serial-term -now listening on channel 20 -now listening on channel 20 -``` - -If that's the case you are good to go: proceed to the "Interference" section below. - -If you only get one line of output then your OS may be losing some serial data -- we have seen this behavior on some macOS machines. You will still be able to work through the exercises but will miss log data every now and then. Proceed to the "Interference" section below. - -If you don't get *any* output from `serial-term` and/or the `change-channel` command fails then the Dongle's USB functionality is not working correctly. In this case you should use the `loopback-nousb*` programs. These have no USB functionality but you will be able to use them to do the exercises. There are four `.hex` files available. You can pick any of them but commit the number in the file name to memory; this is the radio channel the Dongle will listen to. The "Interference" section below will not apply to you. +[usb-issues]: /troubleshoot-usb-dongle.html ## Interference diff --git a/embedded-workshop-book/src/troubleshoot-usb-dongle.md b/embedded-workshop-book/src/troubleshoot-usb-dongle.md new file mode 100644 index 0000000..b87c732 --- /dev/null +++ b/embedded-workshop-book/src/troubleshoot-usb-dongle.md @@ -0,0 +1,29 @@ +# Dongle USB functionality is not working + +> NOTE: this section only applies to the Beginner workshop + +If you don't get any output from `serial-term` it could just have been that first line got lost when re-enumerating the device from bootloader mode to the loopback application. Run these *two* commands: + +``` console +$ change-channel 20 +requested channel change to channel 20 + +$ change-channel 20 +requested channel change to channel 20 +``` + +You should get *two* lines of output in `serial-term` + +``` console +$ serial-term +now listening on channel 20 +now listening on channel 20 +``` + +If that's the case you are good to go, return to the ["Interference"] section. + +["Interference"]: /dongle.html#interference + +If you only get one line of output then your OS may be losing some serial data -- we have seen this behavior on some macOS machines. You will still be able to work through the exercises but will miss log data every now and then. Return to the ["Interference"] section. + +If you don't get *any* output from `serial-term` and/or the `change-channel` command fails then the Dongle's USB functionality is not working correctly. In this case you should flash one of the `loopback-nousb*` programs (repeat the procedure: put the device in bootloader mode; then run `dongle-flash`). These programs have no USB functionality but you will be able to use them to do the exercises. There are four `.hex` files available; pick one of them and flash it but take note of the number in the file name; this is the radio channel the Dongle will listen to. The Dongle will toggle the state of its green LED when it receives a packet. Return to the ["Interference"] section. From d0752da10ac4f6fb96d3b942cae507399ea2ec82 Mon Sep 17 00:00:00 2001 From: Lotte Steenbrink Date: Wed, 15 Jul 2020 14:14:18 +0200 Subject: [PATCH 5/5] embedded-workshop-book: fix links to book sections/chapters --- embedded-workshop-book/src/get-descriptor-config.md | 2 +- embedded-workshop-book/src/idle-state.md | 2 +- embedded-workshop-book/src/supporting-standard-requests.md | 4 ++-- embedded-workshop-book/src/updating-device-state.md | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/embedded-workshop-book/src/get-descriptor-config.md b/embedded-workshop-book/src/get-descriptor-config.md index 84380a0..6b8b1c5 100644 --- a/embedded-workshop-book/src/get-descriptor-config.md +++ b/embedded-workshop-book/src/get-descriptor-config.md @@ -48,7 +48,7 @@ We will not need to deal with endpoint descriptors in this workshop but they are So how should we respond to the host? As our only goal is to be enumerated we'll respond with the minimum amount of information possible. **First, check the request:** -Configuration descriptors are requested by *index*, not by their configuration value. Since we reported a single configuration in our device descriptor the index in the request must be zero. Any other value should be rejected by stalling the endpoint (see section [Dealing with unknown requests: Stalling the endpoint](#dealing-with-unknown-requests-stalling-the-endpoint) for more information). +Configuration descriptors are requested by *index*, not by their configuration value. Since we reported a single configuration in our device descriptor the index in the request must be zero. Any other value should be rejected by stalling the endpoint (see section [Dealing with unknown requests: Stalling the endpoint](./unknown-requests.md#dealing-with-unknown-requests-stalling-the-endpoint) for more information). **Next, create and send a response:** The response should consist of the configuration descriptor, followed by interface descriptors and then by (optional) endpoint descriptors. We'll include a minimal single interface descriptor in the response. Since endpoints are optional we will include none. diff --git a/embedded-workshop-book/src/idle-state.md b/embedded-workshop-book/src/idle-state.md index 7286bab..b4ba40c 100644 --- a/embedded-workshop-book/src/idle-state.md +++ b/embedded-workshop-book/src/idle-state.md @@ -55,7 +55,7 @@ You can find traces for other OSes in these files (they are in the `advanced` fo - `macos-enumeration.txt` - `win-enumeration.txt` -At this point you can double check that the enumeration works by running the [`usb-list` tool](#listing-usb-devices) while `usb-4.rs` is running. +At this point you can double check that the enumeration works by running the [`usb-list` tool](./listing-usb-devices.md) while `usb-4.rs` is running. ``` console Bus 001 Device 013: ID 1366:1015 <- J-Link on the nRF52840 Development Kit diff --git a/embedded-workshop-book/src/supporting-standard-requests.md b/embedded-workshop-book/src/supporting-standard-requests.md index abfc8b8..f3cc5bb 100644 --- a/embedded-workshop-book/src/supporting-standard-requests.md +++ b/embedded-workshop-book/src/supporting-standard-requests.md @@ -2,8 +2,8 @@ After responding to the `GET_DESCRIPTOR Device` request the host will start sending different requests. The parser in `common/usb` will need to be updated to handle these requests: -1. `GET_DESCRIPTOR Configuration`, see section [Handling GET_DESCRIPTOR Configuration Requests](#handling-get_descriptor-configuration-requests) -2. `SET_CONFIGURATION`, see section [SET_CONFIGURATION](#set_configuration) of this course material +1. `GET_DESCRIPTOR Configuration`, see the section on [Handling GET_DESCRIPTOR Configuration Requests](./get-descriptor-config.md#handling-get_descriptor-configuration-requests) +2. `SET_CONFIGURATION`, see the section on [SET_CONFIGURATION](./getting-device-configured.md#set_configuration) of this course material The starter `common/usb` code contains unit tests for these other requests as well as extra `Request` variants for these requests. All of them have been commented out using a `#[cfg(TODO)]` attribute which you can remove once you need any new variant or new unit test. diff --git a/embedded-workshop-book/src/updating-device-state.md b/embedded-workshop-book/src/updating-device-state.md index a81e5f0..29b69cb 100644 --- a/embedded-workshop-book/src/updating-device-state.md +++ b/embedded-workshop-book/src/updating-device-state.md @@ -8,6 +8,6 @@ Start tracking and updating the device state to move your request handling forwa 1. **Update the handling of the `USBRESET` event:** Instead of ignoring it, we now want it to change the state of the USB device. See section 9.1 USB Device States of the USB specification for details on what to do. -2. **Update the handling of `SET_ADDRESS` requests:** See the section on [Handling SET_ADDRESS Requests](#handling-set_address-requests) of this tutorial for details. +2. **Update the handling of `SET_ADDRESS` requests:** See the section on [Handling SET_ADDRESS Requests](./set-address.md#handling-set_address-requests) of this tutorial for details. -3. **Implement the handling of `GET_DESCRIPTOR Configuration` requests:** See the section on [Handling GET_DESCRIPTOR Configuration Requests](#handling-get_descriptor-configuration-requests) of this tutorial for details. +3. **Implement the handling of `GET_DESCRIPTOR Configuration` requests:** See the section on [Handling GET_DESCRIPTOR Configuration Requests](./get-descriptor-config.md#handling-get_descriptor-configuration-requests) of this tutorial for details.