gitextract_ckfa0abd/ ├── .gitignore ├── README.md ├── doc/ │ └── README.md ├── examples/ │ ├── ble-advertiser/ │ │ ├── advertise.py │ │ └── sniffer.py │ ├── ble-conn-sniffing/ │ │ └── sniff_conn.py │ ├── esb-sample-sniff.py/ │ │ └── wireless-keyboard-sniff.py │ └── helloworld/ │ └── helloworld.py ├── micropython/ │ ├── .gitignore │ ├── AUTHORS │ ├── LICENSE │ ├── Makefile │ ├── README.md │ ├── config.json │ ├── docs/ │ │ ├── Makefile │ │ ├── accelerometer.rst │ │ ├── audio.rst │ │ ├── ble.rst │ │ ├── button.rst │ │ ├── compass.rst │ │ ├── conf.py │ │ ├── devguide/ │ │ │ ├── contributing.rst │ │ │ ├── devfaq.rst │ │ │ ├── flashfirmware.rst │ │ │ ├── hexformat.rst │ │ │ ├── installation.rst │ │ │ └── repl.rst │ │ ├── display.rst │ │ ├── filesystem.rst │ │ ├── i2c.rst │ │ ├── image.rst │ │ ├── index.rst │ │ ├── machine.rst │ │ ├── make.bat │ │ ├── microbit.rst │ │ ├── microbit_micropython_api.rst │ │ ├── micropython.rst │ │ ├── music.rst │ │ ├── neopixel.rst │ │ ├── os.rst │ │ ├── pin.rst │ │ ├── radio.rst │ │ ├── random.rst │ │ ├── speech.rst │ │ ├── spi.rst │ │ ├── tutorials/ │ │ │ ├── buttons.rst │ │ │ ├── direction.rst │ │ │ ├── gestures.rst │ │ │ ├── hello.rst │ │ │ ├── images.rst │ │ │ ├── introduction.rst │ │ │ ├── io.rst │ │ │ ├── movement.rst │ │ │ ├── music.rst │ │ │ ├── network.rst │ │ │ ├── next.rst │ │ │ ├── radio.rst │ │ │ ├── random.rst │ │ │ ├── speech.rst │ │ │ └── storage.rst │ │ ├── uart.rst │ │ └── utime.rst │ ├── examples/ │ │ ├── analog_watch.py │ │ ├── asmleds.py │ │ ├── bubble_level_2d.py │ │ ├── compass.py │ │ ├── conway.py │ │ ├── counter.py │ │ ├── digital_water.py │ │ ├── dodge_game.py │ │ ├── flame_simulation.py │ │ ├── flappybit.py │ │ ├── four_buttons.py │ │ ├── i_feel_today.py │ │ ├── led_dance.py │ │ ├── magic8.py │ │ ├── maze.py │ │ ├── music.py │ │ ├── neopixel_random.py │ │ ├── play_file.py │ │ ├── pomodoro.py │ │ ├── radio.py │ │ ├── reverb.py │ │ ├── simple_slalom.py │ │ ├── speech.py │ │ ├── tiltmusic.py │ │ ├── watch.py │ │ └── waveforms.py │ ├── inc/ │ │ ├── extmod/ │ │ │ ├── machine_mem.h │ │ │ ├── machine_pulse.h │ │ │ └── utime_mphal.h │ │ ├── genhdr/ │ │ │ ├── mpversion.h │ │ │ └── qstrdefs.generated.h │ │ ├── lib/ │ │ │ ├── iters.h │ │ │ ├── mp-readline/ │ │ │ │ └── readline.h │ │ │ ├── pwm.h │ │ │ ├── ticker.h │ │ │ └── utils/ │ │ │ ├── interrupt_char.h │ │ │ └── pyexec.h │ │ ├── microbit/ │ │ │ ├── MicroBitCustomConfig.h │ │ │ ├── filesystem.h │ │ │ ├── memory.h │ │ │ ├── microbit_image.h │ │ │ ├── microbitdal.h │ │ │ ├── modaudio.h │ │ │ ├── modmicrobit.h │ │ │ ├── modmusic.h │ │ │ ├── mpconfigport.h │ │ │ ├── mphalport.h │ │ │ └── qstrdefsport.h │ │ └── py/ │ │ ├── asmarm.h │ │ ├── asmbase.h │ │ ├── asmthumb.h │ │ ├── asmx64.h │ │ ├── asmx86.h │ │ ├── asmxtensa.h │ │ ├── bc.h │ │ ├── bc0.h │ │ ├── binary.h │ │ ├── builtin.h │ │ ├── compile.h │ │ ├── emit.h │ │ ├── emitglue.h │ │ ├── formatfloat.h │ │ ├── frozenmod.h │ │ ├── gc.h │ │ ├── grammar.h │ │ ├── lexer.h │ │ ├── misc.h │ │ ├── mpconfig.h │ │ ├── mperrno.h │ │ ├── mphal.h │ │ ├── mpprint.h │ │ ├── mpstate.h │ │ ├── mpthread.h │ │ ├── mpz.h │ │ ├── nlr.h │ │ ├── obj.h │ │ ├── objarray.h │ │ ├── objexcept.h │ │ ├── objfun.h │ │ ├── objgenerator.h │ │ ├── objint.h │ │ ├── objlist.h │ │ ├── objmodule.h │ │ ├── objstr.h │ │ ├── objstringio.h │ │ ├── objtuple.h │ │ ├── objtype.h │ │ ├── parse.h │ │ ├── parse2.h │ │ ├── parsenum.h │ │ ├── parsenumbase.h │ │ ├── persistentcode.h │ │ ├── qstr.h │ │ ├── qstrdefs.h │ │ ├── reader.h │ │ ├── repl.h │ │ ├── ringbuf.h │ │ ├── runtime.h │ │ ├── runtime0.h │ │ ├── scope.h │ │ ├── smallint.h │ │ ├── stackctrl.h │ │ ├── stream.h │ │ ├── unicode.h │ │ └── vmentrytable.h │ ├── module.json │ ├── source/ │ │ ├── extmod/ │ │ │ ├── machine_mem.c │ │ │ ├── machine_pulse.c │ │ │ └── utime_mphal.c │ │ ├── lib/ │ │ │ ├── iters.c │ │ │ ├── mp-readline/ │ │ │ │ └── readline.c │ │ │ ├── neopixelsend.s │ │ │ ├── pwm.c │ │ │ ├── sam/ │ │ │ │ ├── ReciterTabs.h │ │ │ │ ├── RenderTabs.h │ │ │ │ ├── SamTabs.h │ │ │ │ ├── debug.c │ │ │ │ ├── debug.h │ │ │ │ ├── main.c │ │ │ │ ├── reciter.c │ │ │ │ ├── reciter.h │ │ │ │ ├── render.c │ │ │ │ ├── render.h │ │ │ │ ├── sam.c │ │ │ │ └── sam.h │ │ │ ├── ticker.c │ │ │ └── utils/ │ │ │ ├── interrupt_char.c │ │ │ └── pyexec.c │ │ ├── microbit/ │ │ │ ├── display_readme.md │ │ │ ├── events.cpp │ │ │ ├── fileobj.c │ │ │ ├── filesystem.c │ │ │ ├── gccollect.c │ │ │ ├── help.c │ │ │ ├── main.cpp │ │ │ ├── microbitaccelerometer.cpp │ │ │ ├── microbitbutton.cpp │ │ │ ├── microbitcompass.cpp │ │ │ ├── microbitconstimage.cpp │ │ │ ├── microbitconstimagetuples.c │ │ │ ├── microbitdisplay.cpp │ │ │ ├── microbiti2c.cpp │ │ │ ├── microbitimage.cpp │ │ │ ├── microbitpin.cpp │ │ │ ├── microbitpinmode.c │ │ │ ├── microbitspi.cpp │ │ │ ├── microbituart.cpp │ │ │ ├── modantigravity.cpp │ │ │ ├── modaudio.cpp │ │ │ ├── modlove.cpp │ │ │ ├── modmachine.c │ │ │ ├── modmicrobit.cpp │ │ │ ├── modmusic.cpp │ │ │ ├── modmusictunes.c │ │ │ ├── modneopixel.cpp │ │ │ ├── modos.c │ │ │ ├── modradio.cpp │ │ │ ├── modrandom.cpp │ │ │ ├── modspeech.c │ │ │ ├── modthis.cpp │ │ │ ├── modutime.c │ │ │ ├── mphalport.cpp │ │ │ └── persistent.c │ │ └── py/ │ │ ├── argcheck.c │ │ ├── asmarm.c │ │ ├── asmbase.c │ │ ├── asmthumb.c │ │ ├── asmx64.c │ │ ├── asmx86.c │ │ ├── asmxtensa.c │ │ ├── bc.c │ │ ├── binary.c │ │ ├── builtinevex.c │ │ ├── builtinhelp.c │ │ ├── builtinimport.c │ │ ├── compile.c │ │ ├── compile2.c │ │ ├── emitbc.c │ │ ├── emitcommon.c │ │ ├── emitglue.c │ │ ├── emitinlinethumb.c │ │ ├── emitinlinextensa.c │ │ ├── emitnative.c │ │ ├── formatfloat.c │ │ ├── frozenmod.c │ │ ├── gc.c │ │ ├── lexer.c │ │ ├── makeqstrdata.py │ │ ├── makeqstrdefs.py │ │ ├── makeversionhdr.py │ │ ├── malloc.c │ │ ├── map.c │ │ ├── modarray.c │ │ ├── modbuiltins.c │ │ ├── modcmath.c │ │ ├── modcollections.c │ │ ├── modgc.c │ │ ├── modio.c │ │ ├── modmath.c │ │ ├── modmicropython.c │ │ ├── modstruct.c │ │ ├── modsys.c │ │ ├── modthread.c │ │ ├── moduerrno.c │ │ ├── mpprint.c │ │ ├── mpstate.c │ │ ├── mpz.c │ │ ├── nativeglue.c │ │ ├── nlrsetjmp.c │ │ ├── nlrthumb.c │ │ ├── nlrx64.c │ │ ├── nlrx86.c │ │ ├── nlrxtensa.c │ │ ├── obj.c │ │ ├── objarray.c │ │ ├── objattrtuple.c │ │ ├── objbool.c │ │ ├── objboundmeth.c │ │ ├── objcell.c │ │ ├── objclosure.c │ │ ├── objcomplex.c │ │ ├── objdict.c │ │ ├── objenumerate.c │ │ ├── objexcept.c │ │ ├── objfilter.c │ │ ├── objfloat.c │ │ ├── objfun.c │ │ ├── objgenerator.c │ │ ├── objgetitemiter.c │ │ ├── objint.c │ │ ├── objint_longlong.c │ │ ├── objint_mpz.c │ │ ├── objlist.c │ │ ├── objmap.c │ │ ├── objmodule.c │ │ ├── objnamedtuple.c │ │ ├── objnone.c │ │ ├── objobject.c │ │ ├── objpolyiter.c │ │ ├── objproperty.c │ │ ├── objrange.c │ │ ├── objreversed.c │ │ ├── objset.c │ │ ├── objsingleton.c │ │ ├── objslice.c │ │ ├── objstr.c │ │ ├── objstringio.c │ │ ├── objstrunicode.c │ │ ├── objtuple.c │ │ ├── objtype.c │ │ ├── objzip.c │ │ ├── opmethods.c │ │ ├── parse.c │ │ ├── parse2.c │ │ ├── parsenum.c │ │ ├── parsenumbase.c │ │ ├── persistentcode.c │ │ ├── qstr.c │ │ ├── reader.c │ │ ├── repl.c │ │ ├── runtime.c │ │ ├── runtime_utils.c │ │ ├── scheduler.c │ │ ├── scope.c │ │ ├── sequence.c │ │ ├── showbc.c │ │ ├── smallint.c │ │ ├── stackctrl.c │ │ ├── stream.c │ │ ├── unicode.c │ │ ├── vm.c │ │ ├── vstr.c │ │ └── warning.c │ ├── tests/ │ │ ├── README.md │ │ ├── exercise.py │ │ ├── radio_audio.py │ │ ├── sample.raw │ │ ├── test_files.py │ │ ├── test_files2.py │ │ ├── test_files3.py │ │ ├── test_image.py │ │ ├── test_music.py │ │ ├── test_pins.py │ │ ├── test_pwm.py │ │ ├── test_random.py │ │ └── test_speech.py │ └── tools/ │ ├── adduicr.py │ ├── hexlifyscript.js │ ├── hexlifyscript.py │ ├── makecombinedhex.py │ ├── makeqstrhdr.sh │ ├── makeversionhdr.py │ ├── pyboard.py │ └── upload.py ├── precompiled/ │ └── radiobit.hex └── tools/ ├── cheerson-cx10/ │ ├── README.md │ └── cxp0wn.py ├── ubit-sniffer/ │ ├── README.md │ ├── middleware/ │ │ └── ubit-sniffer-mw.py │ └── ubit-sniffer.py └── wireless-keylogger/ ├── README.md └── msft-keylogger.py