Eine leistungsstarke und leichtgewichtige ESP32-Bibliothek zur nativen Verarbeitung des CRSF-Protokolls (Crossfire). Diese Bibliothek ermöglicht das vollständige Frame-Parsing von Steuerbefehlen sowie das Senden individueller Telemetriedaten.
- ⚡ Echtzeit-Parsing: Schnelle und effiziente Verarbeitung eingehender CRSF-Frames.
- 📡 Telemetrie-Unterstützung: Senden von Telemetriedaten (z. B. Akkuspannung, GPS, RSSI) zurück zum Sender.
- 🛠️ Hardware-Serial-Kompatibilität: Optimiert für die Verwendung der ESP32 Hardware-UARTs.
- 🧩 Einfache Integration: Modulare Struktur für den schnellen Einsatz in eigenen Projekten (z. B. Flight Controller, RC-Receiver, Custom-Projekte).
- Mikrocontroller: ESP32 (S2, S3, C3 etc.)
- Empfänger: Jeder CRSF-kompatible RC-Empfänger (z. B. TBS Crossfire, ExpressLRS / ELRS)
- Verbindung: UART-Verbindung (TX/RX) zwischen ESP32 und dem Empfänger.
Füge die Bibliothek zu deiner platformio.ini hinzu (sobald im Repository oder Registry registriert):
lib_deps =
Ziege-One/CRSF_ESP32- Lade dieses Repository als
.zip-Datei herunter. - Navigiere in der Arduino IDE zu Sketch -> Bibliothek einbinden -> .ZIP-Bibliothek hinzufügen....
- Wähle die heruntergeladene Datei aus.
Hier ist ein einfaches Beispiel, wie du die Kanäle des Empfängers auslesen kannst:
#include <Arduino.h>
#include <CRSF_ESP32.h>
// Definiere die UART-Pins für den ESP32
#define CRSF_RX_PIN 16
#define CRSF_TX_PIN 17
CRSF_ESP32 crsf;
void setup() {
Serial.begin(115200);
// Initialisiere das CRSF-Protokoll auf Serial2
crsf.begin(Serial2, CRSF_RX_PIN, CRSF_TX_PIN);
Serial.println("CRSF Parser gestartet...");
}
void loop() {
// Aktualisiere und verarbeite eingehende Daten
crsf.update();
if (crsf.isLinkUp()) {
// Kanäle auslesen (1-basiert oder 0-basiert, je nach deiner API)
int roll = crsf.getChannel(1);
int pitch = crsf.getChannel(2);
Serial.printf("Roll: %d | Pitch: %d\n", roll, pitch);
}
delay(10); // Kurze Pause zur Entlastung
}Hinweis: Weitere und detailliertere Beispiele findest du im Ordner examples/.
Dieses Projekt ist unter der GPL-3.0-Lizenz lizenziert. Weitere Details findest du in der LICENSE Datei.
Beiträge, Fehlerberichte und Feature-Wünsche sind herzlich willkommen!
- Forke das Projekt.
- Erstelle einen Feature-Branch.
- Committe deine Änderungen.
- Pushe den Branch.
- Öffne einen Pull Request.