Radiobit is composed of a dedicated Micropython-based firmware and a set of tools allowing security researchers to:
Radiobit provides the following tools:
See the corresponding README.md files for each tool of the tools directory.
Radiobit also provides many examples of what can be achieved with its firmware:
A precompiled version of the Radiobit firmware is provided in the precompiled directory, as a convenience.
If you want to try Radiobit's custom radio Python module, read the specific documentation.
Use uflash to program your Micro:Bit:
$ uflash -r precompiled/radiobit.hex yourprogramhere.py
Uflash will program your Micro:Bit and reset it once it's done !
If you want to modify the Radiobit firmware, you must follow the procedure below. This procedure has been tested on Debian, but should work on Ubuntu as well.
First, install all the required packages (Debian):
$ sudo apt-get install cmake ninja-build gcc-arm-none-eabi srecord libssl-dev
Create a virtual environment with virtualenv for Python 3.x:
$ virtualenv venv
This will create a Python3.x virtual environment in a dedicated folder named venv. You then need to activate this environment in order to install all the required tools with pip3.
$ source venv/bin/activate
Use pip to install yotta in our newly created virtual environment:
(venv)$ pip install yotta
Finally, use yotta to setup the build environment:
(venv)$ cd micropython
(venv)$ yt target bbc-microbit-classic-gcc-nosd
(venv)$ yt up
You can now uild the modified micropython firmware. Make sure you are in the micropython directory:
(venv)$ yt build
This may produce a lot of warnings (who said python developers produce clean code ?) but at last a valid binary (in Ihex format).
Your compiled firmware should be located in the build/bbc-microbit-classic-gcc-nosd/source directory, named microbit-micropython.hex.
Micropython should not be used alone (as a REPL), but combined with a Python script merged into the firmware. This is a usual way to program a Micro:Bit using CLI rather than online services.
First, you need to install uflash in your virtual environment:
(venv)$ pip install uflash
You then can use uflash to flash your Micro:Bit using the following command:
(venv)$ uflash -r build/bbc-microbit-classic-gcc-nosd/source/microbit-micropython.hex ../examples/helloworld/helloworld.py
Obviously, you must have your Micro:Bit connected to your host machine when launching the previous command, or uflash will complain.