Package: kaspersmicrobit
Kasper's micro:bitSo you finishedPython for kids? Wouldn't it be awesome to use yourBBC micro:bitas awireless game controllerfor your own DIY games? You can do it with
this python package! Pair yourmicro:bitto your computer with bluetooth anduse buttons A
and B or the accelerometer to control your game. Like it? Give us a :star: on github!Kasper's microbit is a python package to make a connection to a BBC micro:bit by means of the Bluetooth LE GATT services
exposed by the micro:bit.Watch the full videoon youtubeGetting startedInstall kaspersmicrobit:$pipinstallkaspersmicrobitCopythis hex fileto the micro:bit and run your first program:importtimefromkaspersmicrobitimportKaspersMicrobitdefpressed(button):print(f"button{button}pressed")withKaspersMicrobit.find_one_microbit()asmicrobit:microbit.buttons.on_button_a(press=pressed)time.sleep(10)Learn moreVisithttps://kaspersmicrobit.readthedocs.io:Try theaccelerometer, or theled displayLearnto make your own .hex filesSimple examples, learn how to use each service offered by the micro:bitFull Api documentationCombining KaspersMicrobitwith tkinterorwith pygameOr take a look at theexamplesdirectory.Micro:bit versions, operating systems, Bluetooth pairingBelow you can find which combinations of operating systems and microbit versions have been known to work.micro:bit v2.xNo pairing requiredJust works pairingWindows:heavy_check_mark::heavy_check_mark:Linux:heavy_check_mark::heavy_check_mark:MacOS:heavy_check_mark::grey_question:I don't have a mac to test kaspersmicrobit on. Let me knowhere (#5)if it works or not!
Thanks@RyanNorgefor testing a micro:bit v2.x on MacOS in "No pairing required" modemicro:bit v1.xNo pairing requiredJust works pairingWindows:heavy_check_mark::x:Linux:heavy_check_mark::heavy_check_mark:MacOS:grey_question::grey_question:TroubleshootingUpgrade to the latest version$pipinstall--upgradekaspersmicrobitBluetooth connectionFirst try turning the micro:bit off and on again.If you are not using the "with"-block, but calling .connect() yourself, always make sure that in any case you
call .disconnect() when you don't need the connection anymore (for instance when you exit your application)No pairing requiredIf the hex file was created with the setting"No pairing required"then the micro:bit should not be paired with the operating systemJust works pairingDon't use pairing with a micro:bit v1 on windows, use"No pairing required"instead.For other versions: try to remove the micro:bit from the paired Bluetooth devices and pairing it your computer again.See also:https://support.microbit.org/helpdesk/attachments/19075694226The micro:bit shows a sad face and error 020This means the micro:bit is out of memory. You probably have enabled too many Bluetooth services in MakeCode. Or maybe
your MakeCode program is too large. Because the micro:bit v1 has less memory than the v2, this has a higher chance to
occur on v1 micro:bits.
See also:the micro:bit error codestkinter "main thread is not in main loop"When combining kaspersmicrobit with tkinter (the window library used inPython for kids)
you could bump into the TK error "main thread is not in main loop". This is probably because you call TK code from
within a callback function that you registered to be called when a button press occurs or new accelerometer data is
present (or some other notification). The callback is executed on a different thread and tkinter does not like this.
There are at least 2 solutions for this:don't call tkinter code in a callbackwrap the callback withkaspersmicrobit.tkinter.do_in_tkinter(tk, your_callback)this makes sure that your callback
will be executed on the tk thread, avoiding the error