-
Notifications
You must be signed in to change notification settings - Fork 35
Hardware Compatibility
Alternatively titled "Can I use CRSF for Arduino on my development board?"
To that, I say "Yes, but..."
Your hardware MUST
meet these requirements if you wish to use CRSF for Arduino:
- Core Clock Speed: 48 MHz (or faster).
- CPU: ARM Cortex M0+ (or later).
- Flash Memory: 32 KB (or more).
- UART Baud rate: 420,000 (target
MUST
be capable of at least 400,000).
CRSF for Arduino comes with a "compatibility check" (Henceforth referred to as the "Compatibility Table") to ensure the target hardware (EG your development board) meets or exceeds the minimum requirements.
This is something of a first for any "Arduino Library", and the intention here is to set a minimum bar in-firmware for targets that do work with CRSF for Arduino and simultaneously filter out the ones that don't.
There are numerous reasons for a given target being incompatible, and most cases, it's legacy hardware with 8~16 MHz core clock and around 16 KB (or less) of flash memory. The issue with the core clock translates directly to CRSF for Arduino being unable to communicate to your receiver at the required 400K baud rate.
Memory incompatibility comes down to the simple fact that there isn't enough memory available on the target hardware for any firmware that uses CRSF for Arduino. CRSF for Arduino, at bare minimum (IE Configured to exclusively use RC Channels alone) has a memory footprint of around 20~25 KB. Even on targets with 32 KB of flash memory, this equates to 63~78 % of all available memory, which MAY NOT
be sufficient for all use cases that CRSF for Arduino is capable of.
CRSF for Arduino is compatible with a diverse range of targets that are from the following architectures:
- ESP32
- RP2040
- SAMD21, SAMD5x and SAME5x
-
STM32
- F103
- F4xx
- F7xx
- H7xx
-
Teensy 3.x
-
NB: You
SHOULD NOT
use Teensy 3.x boards for new projects, as these have been discontinued by the manufacturer.
Support for Teensy 3.x boards is limited and may be removed in the nextMAJOR
release.
Instead, youSHOULD
use Teensy 4.x or later.
-
NB: You
- Teensy 4.x
- Adafruit Feather ESP32
- Adafruit Feather ESP32-S2
- Adafruit Feather ESP32-S3 (2 MB PSRAM)
- Adafruit Feather ESP32-S3 (NO PSRAM)
- Adafruit ItsyBitsy ESP32
- Adafruit Metro ESP32-S2
- Adafruit QtPy ESP32
- Adafruit QtPy ESP32 Pico
- Adafruit QtPy ESP32-C3
- Adafruit QtPy ESP32-S2
- Adafruit QtPy ESP32-S3
- Arduino Nano ESP32
- Espressif ESP32-C3-DevKit
- Espressif ESP32-S3-DevKit
- Seeed Studio XIAO ESP32-C3
- Seeed Studio XIAO ESP32-S3
- SparkFun ESP32 RedBoard IoT
- SparkFun ESP32 Thing
- SparkFun ESP32 Thing Plus
- SparkFun ESP32-S2 Thing Plus
- Arduino Nano RP2040 Connect
- Raspberry Pi Pico RP2040
- Adafruit Feather M0 and all of its variants, including the Adafruit Feather M0 Express
- Adafruit ItsyBitsy M0 Express
- Adafruit Metro M0 Express
- Adafruit QtPy M0
- Adafruit Trinket M0
- Arduino MKR series:
- MKR 1000
- MKR Fox 1200
- MKR GSM 1400
- MKR NB 1500
- MKR VIDOR 4000
- MKR WAN 1300 and MKR WAN 1310
- MKR WIFI 1010
- MKR Zero
- Arduino Nano 33 IoT
- Arduino Zero
- Seeed Studio XIAO SAMD21
- Adafruit Feather M4 Express
- Adafruit Grand Central M4
- Adafruit ItsyBitsy M4 Express
- Adafruit Metro M4 Express
- Adafruit Metro M4 Express AirLift Lite
- Adafruit Feather M4 CAN Express
- Adafruit
- Feather F405
- Arduino
- Arduino Nicla Vision
- Arduino Opta
- Arduino Portenta H7
- Black Pill
- F103C8
- F103C8 (128 KB Flash memory variant)
- F401CC
- F411CE
- Blue Pill
- F103C6
- F103C8
- F103C8 (128 KB Flash memory variant)
- Generic STM32F103xx
- STM32F103C6
- STM32F103C8
- STM32F103CB
- STM32F103R6
- STM32F103R8
- STM32F103RB
- STM32F103RC
- STM32F103RD
- STM32F103RE
- STM32F103RF
- STM32F103RG
- STM32F103T6
- STM32F103T8
- STM32F103TB
- STM32F103V8
- STM32F103VB
- STM32F103VC
- STM32F103VD
- STM32F103VE
- STM32F103VF
- STM32F103VG
- STM32F103ZC
- STM32F103ZD
- STM32F103ZE
- STM32F103ZF
- STM32F103ZG
- Generic STM32F4xxyy
- STM32F401CB
- STM32F401CC
- STM32F401CD
- STM32F401CE
- STM32F401RB
- STM32F401RC
- STM32F401RD
- STM32F401RE
- STM32F405OE (Only available with stm32duino, and not available in PlatformIO)
- STM32F405OG (Only available with stm32duino, and not available in PlatformIO)
- STM32F405RG
- STM32F405VG (Only available with stm32duino, and not available in PlatformIO)
- STM32F405ZG (Only available with stm32duino, and not available in PlatformIO)
- STM32F407VE
- STM32F407VG
- STM32F410C8
- STM32F410CB
- STM32F410R8
- STM32F410RB
- STM32F411CE
- STM32F411RC
- STM32F411RE
- STM32F412CE
- STM32F412CG
- STM32F412RE
- STM32F412RG
- STM32F413CG
- STM32F413CH
- STM32F413RG
- STM32F413RH
- STM32F415RG
- STM32F417VE
- STM32F417VG
- STM32F423CH
- STM32F423RH
- STM32F446RC
- STM32F446RE
- Generic STM32F722xx (Only available with stm32duino, and not available in PlatformIO)
- STM32F722IC
- STM32F722IE
- STM32F722RC
- STM32F722RE
- STM32F722VC
- STM32F722VE
- STM32F722ZC
- STM32F722ZE
- Generic STM32H745xx (Only available with stm32duino, and not available in PlatformIO)
- STM32H745BG
- STM32H745BI
- STM32H745IG
- STM32H745II
- STM32H745ZG
- STM32H745ZI
- Generic STM32H750xx
- STM32H750BT
- SparkFun
- MicroMod F405
- ST
- Black F407VE
- Black F407VG
- Black F407ZE
- Black F407ZG
- Blue F407VE Mini
- Discovery F413ZH
- Disocvery F746NG
- Nucleo F401RE
- Nucleo F411RE
- Nucleo F429ZI
- Nucleo F446RE
- Nucleo F722ZE
- Nucleo F746ZG
- Nucleo F756ZG
- Nucleo F767ZI
- Nucleo H723ZG
- Nucleo H743ZI
- Teensy 3.x
- Teensy 4.x
Any receiver that uses ExpressLRS or TBS Crossfire firmwares can be used with CRSF for Arduino.