Building and Flashing

Get Bluetooth dependencies

Compiling with bluetooth support requires the nRF51_SDK and S130 packages.

Just after cloning the repository:

./tools/fetch_dependencies.sh

will download the zips and unpack them. If you want to download manually from the Nordic semiconductor website, you will find the details in nrf51_sdk/readme and s130/readme.

Compiling

To compile arm-none-eabi- tools from https://launchpad.net/gcc-arm-embedded should be in the path. On Ubuntu, you can install the tools:

sudo apt-get install gcc-arm-none-eabi gdb-arm-none-eabi binutils-arm-none-eabi

Sofdivece flashing currently requires nrfjprog, can be found on Nordic’s website.

Flash the softdevice:

make flash_softdevice_jlink

Compilation options can be saved in config.mk. Main targets:

make                    # Make with BLE support
make BLE=0              # Make without BLE support

make cload              # Flash firmware over radio

make flash              # Flash firmware with jtag
make factory_reset      # Erase device and flash softdevice, bootloaders, and firmware for Crazyflie 2.0
make factory_reset_21   # Erase device and flash softdevice, bootloaders, and firmware for Crazyflie 2.1
                        # The Crazyflie 2.1 needs to be powered by battery only for this to work

Platforms

The NRF firmware can be build for different platforms. The platform is passed in as an argument to make

make PLATFORM=cf2

Currently supported platforms are:

  • cf2 (default)
  • tag
  • bolt
  • flapper
  • cf21bl