Examples
IBUS Basic Example
Atmel AVR
/*!
* @file ibus_basic.ino
*/
#include <SerialIO.h>
rc_channels_t channelData;
ibus receiver(&Serial);
void setup() {
receiver.begin();
}
void loop() {
receiver.processIncoming();
receiver.getChannel(&channelData);
// `channelData` now contains the latest RC channel values
// You can use them by accessing the channelData e.g. channelData.channel1 to channelData.channel16
}
RP2040
/*!
* @file ibus_basic.ino
*/
/*
# Sample platformio.ini file:
# ---------------------------
[platformio]
default_envs = ws-rp2040-zero
[env:ws-rp2040-zero]
platform = https://github.com/maxgerhardt/platform-raspberrypi.git
board = waveshare_rp2040_pizero
framework = arduino
board_build.core = earlephilhower
monitor_speed = 115200
lib_deps =
https://github.com/Witty-Wizard/SerialIO
*/
#include <SerialIO.h>
#define IBUS_TX_PIN 0
#define IBUS_RX_PIN 1
rc_channels_t rcdata;
// On RP2040 or Arduino ESP32 you need to specify the TX and RX pins
ibus receiver(&Serial1, IBUS_RX_PIN, IBUS_TX_PIN,
true); // RP2040 requires the TX_PIN so to not hang up the mcu
void setup() {
// setup ibus receiver
receiver.begin();
Serial.begin(115200);
}
void loop() {
static unsigned long last_millis = millis();
receiver.processIncoming();
receiver.getChannel(&rcdata);
if (millis() > last_millis + 100) {
Serial.printf("RC: %4d %4d %4d %4d %4d %4d %4d %4d %4d %4d %4d %4d %4d %4d",
rcdata.channel1, rcdata.channel2, rcdata.channel3,
rcdata.channel4, rcdata.channel5, rcdata.channel6,
rcdata.channel7, rcdata.channel8, rcdata.channel9,
rcdata.channel10, rcdata.channel11, rcdata.channel12,
rcdata.channel13, rcdata.channel14);
Serial.println();
last_millis = millis();
}
}
Crossfire Basic Example
Atmel AVR
/*!
* @file crsf_basic.ino
*/
#include <SerialIO.h>
rc_channels_t channelData;
crsf receiver(&Serial);
void setup() {
receiver.begin();
}
void loop() {
// setup crsf receiver
receiver.processIncoming();
receiver.getChannel(&channelData);
// `channelData` now contains the latest RC channel values
// You can use them by accessing the channelData e.g. channelData.channel1 to channelData.channel16
}
RP2040
/*!
* @file crsf_basic.ino
*/
/*
# Sample platformio.ini file:
# ---------------------------
[platformio]
default_envs = ws-rp2040-zero
[env:ws-rp2040-zero]
platform = https://github.com/maxgerhardt/platform-raspberrypi.git
board = waveshare_rp2040_pizero
framework = arduino
board_build.core = earlephilhower
monitor_speed = 115200
lib_deps =
https://github.com/Witty-Wizard/SerialIO
*/
#include <SerialIO.h>
#define CRSF_TX_PIN 0
#define CRSF_RX_PIN 1
rc_channels_t rcdata;
// On RP2040 or Arduino ESP32 you need to specify the TX and RX pins
crsf receiver(&Serial1, CRSF_RX_PIN, CRSF_TX_PIN,
true); // RP2040 requires the TX_PIN so to not hang up the mcu
void setup() {
// setup crsf receiver
receiver.begin();
Serial.begin(115200);
}
void loop() {
static unsigned long last_millis = millis();
receiver.processIncoming();
receiver.getChannel(&rcdata);
if (millis() > last_millis + 100) {
Serial.printf("RC: %4d %4d %4d %4d %4d %4d %4d %4d %4d %4d %4d %4d %4d %4d",
rcdata.channel1, rcdata.channel2, rcdata.channel3,
rcdata.channel4, rcdata.channel5, rcdata.channel6,
rcdata.channel7, rcdata.channel8, rcdata.channel9,
rcdata.channel10, rcdata.channel11, rcdata.channel12,
rcdata.channel13, rcdata.channel14);
Serial.println();
last_millis = millis();
}
}
SBUS Basic Example
Atmel AVR
/*!
* @file sbus_basic.ino
*/
#include <SerialIO.h>
rc_channels_t channelData;
sbus receiver(&Serial);
void setup() {
receiver.begin();
}
void loop() {
// setup sbus receiver
receiver.processIncoming();
receiver.getChannel(&channelData);
// `channelData` now contains the latest RC channel values
// You can use them by accessing the channelData e.g. channelData.channel1 to channelData.channel16
}
RP2040
/*!
* @file sbus_basic.ino
*/
/*
# Sample platformio.ini file:
# ---------------------------
[platformio]
default_envs = ws-rp2040-zero
[env:ws-rp2040-zero]
platform = https://github.com/maxgerhardt/platform-raspberrypi.git
board = waveshare_rp2040_pizero
framework = arduino
board_build.core = earlephilhower
monitor_speed = 115200
lib_deps =
https://github.com/Witty-Wizard/SerialIO
*/
#include <SerialIO.h>
#define SBUS_TX_PIN 0
#define SBUS_RX_PIN 1
rc_channels_t rcdata;
// On RP2040 or Arduino ESP32 you need to specify the TX and RX pins
sbus receiver(&Serial1, SBUS_RX_PIN, SBUS_TX_PIN,
true); // RP2040 requires the TX_PIN so to not hang up the mcu
void setup() {
// setup sbus receiver
receiver.begin();
Serial.begin(115200);
}
void loop() {
static unsigned long last_millis = millis();
receiver.processIncoming();
receiver.getChannel(&rcdata);
if (millis() > last_millis + 100) {
Serial.printf("RC: %4d %4d %4d %4d %4d %4d %4d %4d %4d %4d %4d %4d %4d %4d",
rcdata.channel1, rcdata.channel2, rcdata.channel3,
rcdata.channel4, rcdata.channel5, rcdata.channel6,
rcdata.channel7, rcdata.channel8, rcdata.channel9,
rcdata.channel10, rcdata.channel11, rcdata.channel12,
rcdata.channel13, rcdata.channel14);
Serial.println();
last_millis = millis();
}
}