Ruby Development SDKs

Ruby does support development of additional components by third parties and hobbyists, on top of existing core functionality.
Ruby exposes C/C++ language SKDs that are used to develop and add custom components.
In this development section you'll find all the information you need on how to get the SDKs, how to use them and deploy custom components to Ruby.

There are 3 types of plugins you can add:
  • OSD Plugins:
    These plugins enhance the on screen display on the Ruby controller. You can add your own gauges, instruments or telemetry information to be displayed on the OSD. See the OSD plugins SDK documentation for info on how to write such a plugin.
    There is also an OSD plugin tutorial on how to write such a plugin.

  • Hardware Plugins:
    These plugins enable the addition of new, custom hardware peripherals to the Ruby controller and vehicles. You can add for example microcontrollers that extend the input capabilities, that provide RC control, camera control, flight management and more. See the Hardware plugins SDK documentation for info on how to write such a plugin.

  • Core Plugins:
    These plugins are used to add custom radio streams and functionalities to the Ruby system. For example, if you have a custom video camera that provides a custom video stream (i.e. a USB camera), you can write a plugin that can handle that (on the controller side and the vehicle side). Or if you have custom aplications that requires you to do additional processing and transfer data between the two ends (vehicle and controller), like for AI and vision applications, or for controlling a custom gimbal, you can use this SDK to do that. See the Core plugins SDK documentation for info on how to write such a plugin.

Ruby Development/Customizations/Extensions

We are actively adding new functionalities to Ruby and improving existing ones, but, if our priorities do not match yours or you need something new or something changed, new functionalities can be added to Ruby or existing ones can be changed to match one's needs. There are two ways to customize and extend the Ruby platform:
  • Using the public SDKs:
    Anyone can use the public SDKs to add new functionalities to Ruby. You can keep those new functionalities private or you can share them with the community if you feel there is a positive benefit for anyone.

  • On Demand development:
    Contact us if you need new functionalities or customizations to existing ones or (re)branding and you'd like us to develop them for you. We, as developers of Ruby, have the best knowledge on how to improve, expand or customize anything on the Ruby platform. We have a portofolio of very satisfied, well known customers in the FPV/UAV world that can attest to that. Our development rates are very competitive and accessible to a broad range of businesses and individuals.

You can see a list of available plugins written by third parites, plugins that you can use right away, here: Plugins Library

The process of developing and using custom plugins is as follows:
  • Have a working Raspberry Pi board, connected to the internet;
  • Download the development tools (compilers, linkers, libraries) by running this command on the Raspberry PI:
    sudo apt install cmake gcc-arm-none-eabi libnewlib-arm-none-eabi build-essential
  • Download the development SDKs;
  • Write your custom code and compile the plugin on the Raspberry Pi;
  • Deploy it to your Ruby controller by using a USB memory stick;
  • If you are satisfied with the results, you can also make the plugin public for general use.

Contribute to community:
If you write a cool plugin and you want to share it with the community, drop us a message and we will add it to the public list of plugins.