Skip to content


Repository files navigation

CRSF for Arduino

GitHub release (latest by date) GitHub license
Quality Control
Conventional Commits

Written and developed by

Cassandra "ZZ Cat" Robinson


CRSF for Arduino brings the Crossfire Protocol to the Arduino ecosystem.
This library enables you to connect either a TBS Crossfire or ExpressLRS receiver to your development board, giving you access to telemetry and up to 16 11-bit proportional RC channels over a tried-and-true serial protocol.

The Crossfire Protocol (better known as CRSF) is used by both Team BlackSheep (in their Crossfire and Tracer receivers) and ExpressLRS. The latter of the two are well-known in the FPV drone community for their ultra low latency and long range control link.
By pairing CRSF for Arduino with an ExpressLRS transmitter and receiver, you have a control link between your RC handset and your development project that is robust in tough RF environments.


CRSF for Arduino's documentation is now live.
Feel free to peruse the Wiki at your leisure.
For new users, it is strongly recommended that you read the documentation in its entirety.


CRSF for Arduino comes packaged with these features:

  • 16 11-bit proportional RC channels.
  • Diverse modern hardware support from the following architectures:
    • ESP32, RP2040, SAMD21, SAMD5x, SAME5x, STM32, and Teensy 4.x.
  • Flight Modes, both custom and standard.
    • Standard Flight Modes are based on the Flight Modes from Betaflight 4.3.
    • Custom Flight Modes use text-based strings that you can assign custom names to for your bespoke purposes.
    • Both Standard and Custom Flight Modes can be sent as Telemetry back to your controller.
  • Event-driven API.
  • Fully configurable.
    • CRSF for Arduino can be tailored to suit the needs of your individual projects.
  • Telemetry.
    • Attitude.
    • Barometric Altitude.
    • Battery.
    • Flight Modes.
    • GPS.

Software license

As always, I believe in freedom and I want to pass that freedom onto you. Which is why I am proud to license CRSF for Arduino to you under the GNU GPL v3.


I give credit where credit is due. Because CRSF for Arduino isn't entirely my own idea, but built on the shoulders of giants. Here is a list of credits to those what helped to make this possible:


If you would like to contribute to the development to CRSF for Arduino, here is what you can do:

  1. Read my code of conduct and contribution guidelines;
  2. Fork CRSF for Arduino;
  3. Make your contribution to the codebase;
  4. Submit your changes in your fork as a Pull Request back to CRSF for Arduino.

Your contributions are very welcome, and if it benefits the project and community, it will be merged into the Main-Trunk.