Skip to content

RC ~ General

Luke edited this page Nov 29, 2018 · 24 revisions

NOTES

  • only atheros chipsets support RC via EZ-WBC. (Supported WiFi Adapters)
  • recommended and tested baud rate for RC is 115200
  • CTS protection must be enabled in EZ-WBC settings

General Description of RC control via EZ-Wifibroadcast

WifiBroadcast is cabable of direct control of your model by transmitting your control data alongside the HD-video stream. This potentially means that only a single HF-Link between ground and aircraft is required for all your needs. Essentially there are two ways in which EZ-WBC facilitates RC control, rc via mavlink (ardupilot) or rc via a serial protocol (iNAV, Betaflight, Cleanflight).

  • If you have a flight controller which can be controlled by MAVLink RC_CHANNELS_OVERRIDE messages then that is the recommended solution. Since the RC_CHANNELS_OVERRIDE is an implimentation of the bi-directional MAVLink telemetry protocol both Telemetry and RC can happily co-exist on the very same transmission medium. RC with Ardupilot

  • If your flight controller cannot be controlled by MAVLink RC_CHANNELS_OVERRIDE messages you can still use EZ-WBC for RC control. You must have a flight controller that accepts one of the following uninverted serial receiver protocols: MSP, SUMD (Graupner/JR), IBUS (FlySky), SRXL / XBUS Mode B (Multiplex). RC with iNAV

If you meet any of these requirements you can eliminate your old radio receiver. As described in this wiki you will configure software and hardware and then plug-in a supported usb joystick (or transmitter) into the GroundPi. The inputs will be sent to the AirPi and forwarded on to your flight controller.

One HF-Link for all aspects of operations: Video + Telemetry + Control

  • Only single HF-Link (WiFi) required
  • weight savings
  • cost savings
  • simplicity
  • EZ-WBC rc control longer range than video

Input Devices / Joysticks

In order to allow control of your model the user needs some sort of usb joystick which will provide input to the GroundPi. For this HID-compatible USB-Joysticks and traditional RC transmitters (with usb/hid ability) can be used as input device. For the sake of simplicity this input device will be referred to as joystick in the following. The joystick simply connects via USB to the GroundPi and gets recognized automatically by the system. All standard HID-compatible joysticks can be used, however we recommend using a decent quality joystick with good quality gimbals and a narrow stick dead-band. Best results have been reported using RC transmitters with a USB-port (normaly used for flight simulators) can be used. NOTE: if possible disable the rf transmission function on your RC transmitter so that it does not interfere with EZ-WBC.

The following joysticks are known to work well with EZ-WifiBroadcast:

Setting up R/C over Wifibroadcast with a Joystick

The R/C link from ground Pi to air Pi uses MSP (MultiWii Serial Protocol). This is also what is being output on the air Pi serial port. To use it with other protocols, you can use an Arduino with code by Anemostec to convert the R/C data from MSP to PPM for example.

Be careful, RTH or autopilot is recommended!

1. Configure R/C general parameters in wifibroadcast-1.txt

On TX and RX Pi:

  • set ENABLE_RC=Y
  • set CTS_PROTECTION=Y

On TX Pi:

  • For the onboard Pi serial port leave default RC_FC_SERIALPORT=/dev/serial0, if using an external USB2Serial adapter, set RC_SERIALPORT=/dev/ttyUSB0
  • Set the FC_RC_BAUDRATE= parameter according to your flightcontrol. 19200 is the minimum required.

2. Configure joystick related settings in joyconfig.txt on RX Pi

  • Axis mapping to ROLL, PITCH, THROTTLE, etc. may need to be changed.

  • #define AXIS0_INITIAL=sets the initial values for the controls. This is necessary, as it is currently not possible to detect the stick positions until they have been moved. For yaw, roll, pitch you probably want 1500, for throttle 1000.

3. Enable R/C RSSI in osdconfig.txt on RX Pi

  • uncomment the #define RC_RSSI line (Remove the “//” in front of the line)

4. Wiring

Connect the serial port RX pin of your flight control to the serial port TX pin on the Raspberry. The Pi uses 3.3V logic level on the serial ports, make sure your flight control also uses 3.3V, or it might not reliably detect the serial signal (See https://pinout.xyz/ for pinout).

5. Testing

  • Connect Joystick or Taranis in Joystick mode (Taranis needs to be powered before connecting)
  • Do a ground test for correct packet reception and signal:
    • increase distance to the aircraft until you are at the end of the video range. R/C control should now still work, you should not see lots of Lost packets in the RSSI display in the upper right corner.
  • If everything works as expected, fly. Be careful, this feature has not been tested much, RTH or autopilot is recommended

SBUS is a serial protocol, why is it not supported?

SBUS indeed is a serial protocol. However it has an inverted signal and a non-standard baudrate of 100.000 baud. The RaspberryPi serial port can not be configured to this non-standard baudrate, nor can the signal be inverted. Therefore SBUS sadly is not possible as of now. There is a slight chance that this could be possible with a software-serial but again the above mentioned limitations apply: complex coding / higher CPU load.

There is a prototype implementation of SBUS readily available but it is not 100% bug free. It needs work. If you are a skilled coder and want to have a try just open an issue on the repository. We are happy to share the code.

Home

General

Hardware Setup

Software Setup

RC Control

Ground Stations

Expert Settings

Extensions / AddOns

  • HDMI-in cards
  • WebCams
  • Video Switcher
  • Thermal (FLIR, Seek)
  • 360° cameras

Community-HUB

Developer's Corner


Links

Known Issues

Clone this wiki locally