Skip to content

bitcraze Crazyflie 2.1 Main Application MCU

Support for the main application MCU of the bitcraze Crazyflie 2.1 board.

General information

The Crazyflie 2.1 is an open source flying development platform produced by bitcraze. It has two onboard microcontrollers, an nRF51822 used for radio communication and power management and an STM32F405 (this board definition) used for running the main application.

Pinout

The pinout is part of the Board Datasheet. The Board Schematics show which pins are connected to the motors, LEDs, etc.

MCU

MCUSTM32F405RG
FamilyARM Cortex-M4
VendorST Microelectronics
PackageLQFP64
RAM192 KiB (128 KiB RAM + 64 KiB CCMRAM)
Flash1024 KiB
Frequencyup to 168 MHz (running at 168 MHz)
FPUyes
Timers14 (12× 16bit, 2× 32bit [TIM2 + TIM5])
ADCs3× 16 channel 6 to 12-bit
UARTs6
SPIs3
I2Cs3
Vcc2.0 V - 3.6 V
MCU DatasheetMCU Datasheet
MCU Reference ManualMCU Reference Manual

Flash the board

Prerequisites:

  • the Crazyflie NRF firmware runs on the NRF instructions
  • the original Crazyflie bootloader runs on the STM32 instructions
  • dfu-util is installed
  • the Crazyflie’s battery is disconnected

To flash the board:

  • navigate to the folder of the app you want to flash
  • Hold down the power button on the Crazyflie
  • connect via usb to your computer
  • keep holding down the button for four seconds until the blink rate changes (the mcu is now in DFU mode)
  • flash the board by running BOARD=bitcraze-crazyflie21-main make all flash

STDIO

By default, STDIO is implemented via the native USB interface. In order to use STDIO over UART connect your UART adapter as follows:

PIN boardUART adapter
PC10 (TX)RX
PC11 (RX)TX
GNDGND

Now flash the board with stdio over UART:

USEMODULE=stdio_uart BOARD=bitcraze-crazyflie21-main make all flash

Known Issues

  • timer_set(): the callback is never called for timeouts of only one tick.