SBUS to Teensy 4.1 reader

I'm attempting to use my RC controller (crossfire nano rx and micro tx with a Taranis Q7X) to control servos and dc motors via an Arduino UNO (although I have ordered a teensy 4.1 which will be here soon). My receiver is outputting Ni-SBUS but I am having difficulties finding code that will work in reading it. I am quite new to Arduino so any help is appreciated.

hi,

There is 'some' information about how S-bus works out there.

This is what I gathered myself.
Futaba S-Bus.pdf (128.4 KB)

hope that helps...

A while ago I tried doing the same thing and found this thread. I'm not sure if the library is still supported though.

I'm getting a "warning: overflow in implicit constant conversion [-Woverflow]
Serial.begin (100000, 8E2);"

which I assume is because the Arduino UNO isn't a 32-bit board. unless you have something else to add I think I will have to just wait until my teensy arrives and test on that.

strange...I tried to compile the example code in the IDE for a Uno board and it compiled with no errors; so not sure why ur getting this error on your side.

maybe in ur case, try changing "100000" to "100000UL" and see if it compiles alright now.

hope that helps...

I've tried 2 different desktops, both with "100000" and "100000UL" and am getting the same error message on both. however, i can technically upload the code to the Arduino as its a warning, not an error. sadly the code does not work despite that.

I'm attempting to use my RC controller (crossfire nano rx and micro tx with a Taranis Q7X) to control servos and dc motors via a teensy 4.1. My receiver is outputting Ni-SBUS but I am having difficulties finding code that will work in reading it. I am quite new to SBUS so any help is appreciated.

My teensy 4.1 arrived but I still can't find any working code. it just comes up with the error "cannot compile for teensy 4.1". I've reinstalled Arduino IDE, teensyduino and used multiply different peoples code but can't find one that works

Since 'Nothing' is working may I suggest that you go back to starting with the basics...

Assuming you have correctly wired up the receiver SBUS to your teeny's Serial1 port via a suitable interface,if, on your teeny u load a basic sketch like this one, do you see the receiver output in the Serial monitor?

#define HWSERIAL Serial1 // set this to the hardware serial port you wish to use

void setup() {
  Serial.begin(115200); // For serial Monitor
  HWSERIAL.begin(100000, 8E2); // Sbus
}

void loop() {
  int incomingByte;

  if (HWSERIAL.available() > 0) {
    incomingByte = HWSERIAL.read();
    Serial.print("UART received: ");
    Serial.println(incomingByte, HEX);
  }
}