Skip to content

pkurucz/Raven-X

 
 

Repository files navigation

Raven-X Long Range System

A no-comprimises long range 400 MHz RC and Telemetry radio system.

Main Features:

  • True 1 Watt RF output on both the TX and RX side.
  • Telemetry (uplink) range equal to RC (downlink) range
  • Antenna SWR measurement to detect bad/broken antennas (both TX and RX)
  • Intergrated emergency backup LiPo for beeper and low power beacon transmissions (SF12 LORA position transmissions)
  • OTA firmware updates directly from the TX module
  • All settings configurable via Wifi

Telemetry Formats Supported:

  • EagleTree Vector Opentelemetry
  • Ardupilot MSPv2

Long term TODOs:

  • WS2811/12b/13 LED support. Drives 100's of LEDs and uses the parralel output modes of FastLED for persistance of vision pixel painting. Use WS2813 leds for pixel painting because of their faster refresh rate.
    • Potential: Pixel painting animation update rate calculated from GPS speed passed via telemetry
  • Wifi based position beaconing
    • Potential: Pass neighbor position data back via the telemetry uplink
  • Ground station support
    • Overlay OSD for neighbor position data
    • Pan/Tilt Servo output

The software for this project is based on the hard work of the raven project.

This project differs from Raven in that it is geared toward the Semtech SX1262 transceiver. Additionaly changes were made the over the air data formats and timings to increase the robustness of both the downlink and uplink paths.


Hardware Details

TX:

Mini RX:

Groundstation:


Original text from the Raven Project:

Raven is completely open source a long range system (LRS) based on LoRa which also supports peer to peer communications (so for example, flight controllers in aircrafts can talk directly to each other).

Main features

  • Long Range support using LoRa for the main RC link between TX and RX.
  • Full telemetry, integrated with the radio (voice alerts with OpenTX, etc...).
  • Supports 7 different bands: 147Mhz, 169Mhz, 315Mhz, 433Mhz, 470Mhz, 868Mhz and 915Mhz.
  • Up to 20 channels.
  • Support for P2P for aircraft to aircraft communication (either direct or via pilots on the ground). Allows, for example, displaying a radar in the OSD, automatically choosing a free VTX channel or automatically following another aircraft.
  • OLED screens, both on the TX and RX with channel monitor, telemetry viewer and full configuration (requires at least one button on the board).
  • Bluetooth MSP bridge using the same serial port as the RC link (works with all the existing Betaflight/iNAV configurators with support for Bluetooth).
  • Support for OTA updates over Bluetooth (iOS and Android apps coming soon).
  • Model ID with 64 memory slots.
  • Fully configurable from the radio using CRSF scripts (crossfire.lua and device.lua).
  • Low latency. 250Hz between radio and TX as well as between TX and flight controller. Air protocol is limited to 100Hz for now, but will support up to 150hz with telemetry or 200hz without telemetry in the near future.
  • Multiple RX protocols supported (SBUS+SmartPort, FPort, MSP, CRSF, ...).
  • Support for backup batteries (useful for missing aircraft recovery).

Raven TX on a Q X7

Compiling Raven

Raven is built on top of esp-idf, but it includes it as a submodule, so you should only need to install the Xtensa toolchain

Raven you should install and configure it. Make sure to install version 3.0 by running git checkout v3.0 (their instructions will give you the development version, not a stable one). Download the required submodules by running git submodule init followed by git submodule update -r in the same directory that you have cloned the esp-idf repository (i.e. no need to clone the master esp-idf repository).

Then, clone the Raven repository by running git clone --recursive https://github.com/RavenLRS/raven.git. Don't forget the --recursive option, since Raven uses submodules.

From the directory where you've cloned Raven, run PORT=<port> TARGET=<target> make erase flash to flash a new module. For updating a board which is already running Raven, omit the erase part to avoid wiping your configuration. The erase is only needed for new boards, since they might come with some pre-flashed app that can interfere with Raven.

Run make without any arguments to print the help, which includes additional instructions about the port naming as well as the valid list of targets. Targets use the following naming convention:

  • [board-name]_tx: Raven with support for working as TX only (connected to the radio).
  • [board-name]_rx: Raven with support for working as RX only (connected to the flight controller or the servos/ESCs).
  • [board-name]_txrx: Raven with support for both TX and RX, controlled by an option. Note that type of build is mostly used for development and troubleshooting. Most of the time you should flash the TX or the RX variants.

If you want to see the debug logs, you can use the builtin esp-idf monitor by running PORT=<port> TARGET=<target> make monitor.

Hardware setup

A typical setup of 100mw TX and RX for 433Mhz or 868/916Mhz costs $20-30. All popular ESP32 boards with LoRa are supported and can be used as both TX and RX.

Getting started

Check the documentation to get up and running in no time!

Releases

No releases published

Packages

No packages published

Languages

  • C 74.5%
  • C++ 17.4%
  • Objective-C 4.9%
  • Assembly 2.7%
  • Makefile 0.4%
  • Shell 0.1%