Software
This section describes how to set up the software environment required to program and operate the drone.
Follow the steps according to your operating system to ensure everything works correctly.
Core Tools
These are system-level tools that are installed once and can be reused across multiple projects. They are not specific to Crazyflie, but are required to build, flash, and manage embedded software in general.
System Package Manager
The system package manager is responsible for installing and maintaining development tools. It ensures that required software can be installed in a reliable and reproducible way.
-
Install WSL(1) by running PowerShell as administrator:
- Windows Subsystem for Linux
wsl --install -
Restart your computer.
-
On first launch, create a Linux username and password.
-
Install the Xcode Command Line Tools:
xcode-select --install -
Install Homebrew:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" -
Add Homebrew to your
PATH(1):- Homebrew must be added to your
PATHso that tools installed with Homebrew are correctly found by the system.
echo 'export PATH="/opt/homebrew/bin:/opt/homebrew/sbin:$PATH"' >> ~/.zprofile - Homebrew must be added to your
-
Reload the shell configuration:
source ~/.zprofile -
Verify the installation:
brew --version
ARM Toolchain
The ARM toolchain is used to compile the firmware that runs on the Crazyflie microcontroller. Without it, the code cannot be built or flashed to the drone.
Important
All commands below must be executed inside the WSL terminal. Copying from Windows applications and pasting into the WSL terminal usually does not work, so you may need to type the commands manually.
-
Initialize the WSL terminal:
wsl -
Update the package list:
sudo apt update -
Install Make:
sudo apt install make -
Verify the Make installation:
make --version -
Install the ARM embedded toolchain:
sudo apt install gcc-arm-none-eabi -
Verify the ARM embedded toolchain:
arm-none-eabi-gcc --version -
Install the native GCC toolchain:
sudo apt install gcc -
Verify the GCC installation:
gcc --version -
Close the WSL terminal:
exit
-
Install the ARM embedded toolchain:
brew install gcc-arm-embedded -
Verify the installation:
arm-none-eabi-gcc --version -
Install GNU Core Utilities:
brew install coreutils -
Verify the installation:
gdate --version
Crazyflie Tools
These tools are specific to the Crazyflie ecosystem and are required to communicate with the drone and flash it firmware.
Python
Python is required because the Crazyflie Client and related utilities are written in Python. It is not used directly to program the firmware, but it is essential for running the tools that communicate with the drone.
Important
Even if you already have Python installed on your computer, we strongly recommend following the steps below and installing Python 3.11, a stable version and fully compatible with all Crazyflie tools. Newer versions (3.12+) may work in some cases, but they have not been thoroughly tested and can still cause issues with certain dependencies.
-
Download and install Python 3.11 from its official website.
-
Make sure to check the [✓] Add python.exe to PATH box during installation.
-
Verify the installation:
python --version
If the command prints Python 3.11.x, the installation was successful.
-
Install Python 3.11 using Homebrew:
brew install python@3.11 -
Add Python 3.11 to PATH:
brew link --force --overwrite python@3.11 -
Verify the installation:
python3 --version
Crazyflie Client
The Crazyflie Client is the main desktop application used to communicate with the drone and flash it firmware. It provides a graphical interface for interacting with the Crazyflie during development and testing.
-
Install the Crazyflie Client:
pip install cfclient -
Launch the client:
cfclient
Important
If you are using Windows, you must restart your computer to make sure the Crazyflie Client can be called from the WSL.
-
Install the Crazyflie Client:
python3 -m pip install cfclient -
Launch the client:
cfclient