RAKwireless Unified Interface (RUI3)

A unified and simple coding experience

Develop, compile and distribute your own firmware with ease.

RUI3 Banner
We Listened

Early RAK customers expressed the desire to develop their own firmware. As a response, we developed the RAKwireless Unified Interface (RUI3).

RUI was Born

We believe that customers should have the tools necessary to unlock the full potential of their hardware. RUI3 (pronounced ar-you-ay-three) allows users to develop, compile, and distribute custom firmware across the entire suite of RAK products.

Faster Time to market

This helps accelerate product development efforts and shorten the time to market. Additionally, firmware developed using RUI3 can be distributed to end devices using WisToolBox, a software utility interface created by RAKwireless.


RUI logo
RUI3 Integrates with Popular IDEs:
RUI3 integrates smoothly with Visual Studio Code, Visual Studio IDE, Arduino and PlatformIO IDEs. Within these development environments, you can write customized firmware, compile and upload directly through the IDE.
This interface provides unprecedented freedom to those customizing their IoT solutions. The RAK API, which underpins the RUI3, abstracts away the hardware layer. All functions and features of our hardware modules are accounted for without the programmer working directly with low-level hardware protocols.
Check Icon

Visual Studio Code

Check Icon

Visual Studio IDE

Check Icon

Arduino

Check Icon

PlatformIO

Coming Soon
RUI3 IDE Integration Illustration

Portability Inspired by Arduino
Compiled RUI3 firmware can easily be deployed to different RAK hardware modules with little to no changes. The framework was inspired by Arduino, which means that experienced hardware developers can take advantage of powerful vendor-specific features while staying close to what they know.
RUI3 doesn’t implement a real-time operating system (RTOS) but does provide a task scheduler as an optional class.
A firmware development
platform that spans across multiple hardware platforms
RUI3 IDE Integration Illustration

Customizable and Flexible
Traditional firmwares from other IoT product manufacturers usually allow customization via an API or AT commands. RUI3 offers AT mode for setup. The interface also introduces Binary Mode over UART (Universal Asynchronous Receiver-Transmitter protocol). This is faster than using AT commands thanks to more efficient data structures.
The Binary Mode also offers better data integrity by using checksums and payload lengths to verify each Binary frame. Also, the user is empowered to create customizable AT commands each with a configurable permission scheme. The API unlocks functionality not usually seen in low-level hardware interfaces.
RUI3 IDE Integration Illustration

Built for the IoT of the Future; Compatible with the IoT of Today
We built RUI3 with the future of IoT in mind. Firmware generated using RUI3 is exceptionally efficient in low-power environments, surpassing the default Arduino board support package (BSP). Optimizing for the lowest current usage was paramount for our R&D team.
Of course, RUI3 supports all established IoT protocols such as LoRAWAN, LoRA P2P, BLE, and LTE/NB-IoT. You can also implement your own proprietary IoT protocol using the framework. Many modules feature Bluetooth Low Energy (BLE) support. Our proprietary LoRaWAN over-the-air (OTA) protocol is used for wireless firmware upgrades.

RUI2

RUI3


Develops custom firmware to the RAK module without needing an external microcontroller. Custom Firmware Development
yes
yes

RUI SDK is portable, scalable and compatible to popular ARM Cortex-M chipsets. ARM Cortex-M chipset compatible
yes
yes

Configurable LoRa P2P and LoRaWAN parameters like frequency, datarate and other important features. LoRa P2P and LoRaWAN
yes
yes

Parameters of operation can be set via easy to use AT Commands. Built-in AT Command
yes
yes

Works with LoRaWAN version 1.0.3 and soon to 1.0.4 as well. LoRaWAN v1.0.3
no
yes

It tracks the quality of the backhaul interfaces and switches to the most reliable connection. Supports SX1262 LoRa Transceiver
no
yes

RAK3172 goes down to 1.69uA and RAK4630 down to 4.23uA on sleep mode. Ultra Low Power Mode Implementation
no
yes

RUI3 is compiled locally for a faster coding experience. No need to upload the source code to cloud. Supports Local Compilation
no
yes

The easy-to-use coding scheme is compatible with Arduino. Removes the complication of firmware development. Arduino API compatible
no
yes

Supports common IDEs which helps users code faster in the environment of their choice. IDE - Arduino, Visual Studio, PlatformIO
no
yes

More efficient and reliable than AT commands as it uses byte arrays and is implemented with checksum. Binary Mode
no
yes

Low power devices can monitor battery status easily via a single API. Battery Status API
no
yes

Graphical tool for device configuration and firmware management compatible to RUI3. WisToolBox and WisMobi
no
yes

Wireless Firmware Update via BLE (RAK4630) and soon via LoRaWAN FUOTA. Firmware OTA Update
no
yes

RUI3 is helping power the future of IoT and increases the utility of all RAK modules.


Learning resources