Skip to main content

RUI banners

The RAKwireless Unified Interface V3 (RUI3) is designed to help IoT developers make their IoT products faster. It is compatible with RAK LPWAN modules and supports the standard AT Commands and the Binary Mode. The Binary mode is an improved version of the AT command with its efficient byte-array-based protocol and implementation of checksum. RUI3 also allows you to create your own custom firmware using RUI3 APIs that are compatible with popular IDEs like Arduino and Visual Studio. With custom firmware, you will not need any external host microcontroller or microprocessor, which can save you cost, circuit board space, and current consumption.

RUI3 v3.0.0 Release Note

Added

No.FeatureReference
1Provide RF test to the following AT commands: AT+TRSSI, AT+TTONE, AT+TTX, AT+TRX, AT+TCONF, AT+TTH, AT+TOFF, AT+CERTIFAT Command Manual
2Support AT+FSNBinary Command Manual
3Add api.lorawan.precv() for one-time P2P receivingLoRaWAN
4Enhance nRF52840 bootloader:
   - Add ATR command in bootloader to restore factory default
   - Typing rui within 1 sec after POR can enter DFU mode to recover a dead system
-
5BLE Beacon API change: Add api.ble.beacon.ibeacon.power.set(param)BLE
6Add an example for analog APIArduino API
7Add an example for LoRaWAN OTAALoRaWAN
8Add an example for LED breathingArduino API
9Add AT+LPSENDAT Command Manual
10Add api.lorawan.registerRecvCallback()LoRaWAN
11Add api.lorawan.registerJoinCallback()LoRaWAN
12Add api.lorawan.registerSendCallback()LoRaWAN
13Add low power design for AT+AUTOSLEEP-
14Add api.lorawan.dcs.set()LoRaWAN
15Add api.lorawan.addmulc(), api.lorawan.rmvmulc(), & api.lorawan.lstmulc()LoRaWAN
16Support API mode and operating mode switchingRUI3 Serial Operating Modes
17Support BLE pairingBLE
18Support NFC-
19Support spiffs filesystem-
20Support FSK in LoRaWAN P2P modeAT Command Manual
AT Binary Command Manual
21Support encryption in LoRaWAN P2P modeAT Command Manual
Binary Command Manual
22Add example code into RUIv3 SDK-
23Add AT+SLEEP commandAT Command Manual
24Add AT+RETY commandAT Command Manual
25Support Arduino standard library - SPIArduino API
26Add AT+TTH, AT+TTX, AT+TRX, & AT+TCONFAT Command Manual
27Support upgrading bootloader by nrfutil-
28Add AT+RETY, AT+LPSEND, AT+ARSSI, AT+LINKCHECK, AT+NWM, AT+PFREQ, AT+PSF, AT+PBW, AT+PCR, AT+PPL, AT+PTP, AT+P2P, AT+PSEND, AT+PRECV, AT+ENCRY, AT+ENCKEYAT Command Manual
29Implement Serial.printf()Arduino API
30Add AT+CHS, AT+CHE, AT+ARSSI, AT+BGWAT Command Manual
31AT+BAUD, AT+HWMODEL, & AT+HWID AT commandsAT Command Manual
32AT+CHE AT commandAT Command Manual
33Support transparent mode-
34Support recovery mode (Add CLI into RUI v3 bootloader)-
35Add AT+MASK AT commandAT Command Manual
36Add AT command AT+RECVAT Command Manual
37Add asynchronous event log for Class A/B/C DownlinkAT Command Manual
38Add asynchronous event log for join processAT Command Manual
39Support customized AT command registrationCustom Mode
40Support read/write private user data from/to flashSystem
41Support LoRaWAN Class B mode for WisBlock RAK4631WisBlock RAK4631
42Support LoRaWAN multicast group for WisBlock RAK4631WisBlock RAK4631
43Create a unified driver layer (UDRV) for all RAK hardware products-
44Support the following WisBlock Sensor: RAK1901, RAK1902, RAK1903, RAK1904, RAK1906, & RAK1910WisBlock Sensor
45Compatible with Arduino APIArduino API
46Add proprietary RUI API for BLE/LoRaWANLoRaWAN
BLE
47Enhance the power consumption in sleep mode for WisBlock RAK4631WisBlock RAK4631
48Upgrade to Nordic SDK 17.0.2 with BLE stack S140 7.2.0-
49Support BLE Configuration/Beacon service/UART service/Customized service for WisBlock RAK4631-
50Support Arduino IDE/Visual Studio IDE for WisBlock RAK4631WisBlock RAK4631
51Support DFU over USB/BLE/UART for WisBlock RAK4631WisBlock RAK4631
52Support LoRaWAN Class A/C mode for WisBlock RAK4631WisBlock RAK4631
53Support AT commands over USB/BLE/UARTWisBlock RAK4631

Changed

No.FeatureReference
1Removed the following APIs:
   - api.ble.setting.advertiseSlow.get()
   - api.ble.setting.advertiseSlow.set()
   - api.ble.setting.advertiseFast.get()
   - api.ble.setting.advertiseFast.set()
-
2Change the delimiter of AT+ARSSI=? from , to :AT Command Manual
3Rename all the examples-
4Change the default setting of AT+DCS to be 1AT Command Manual
5Remove the one-time function command AT+PRECV=?, just like AT+SLEEPAT Command Manual
6Update LoRaWan_P2P example-
7Update LoRaWan_Class_B example-
8Rearch API mode:
   - Remove Src & Dst fields
   - Change the order of Flag & Frame Type fields
   - Use the number of set bits as checksum instead of CRC32
Binary Command Manual
9Rearch example folders-
10Temporarily remove AT+AUTOSLEEP (AT+LPM) command-
11BLE Beacon API change:
   - Change api.ble.beacon.payload(byte array) to api.ble.beacon.ibeacon.uuid.set()
   - Split api.ble.beacon.majorminor(param1, param2) into api.ble.beacon.ibeacon.majo.set(param) & api.ble.beacon.ibeacon.minor.set(param)
BLE
12Change the default setting of LoRaWAN confirm mode to be ON-
13Modify BLE UART example to support AT CMDBLE UART
14Remove api.system.flash.get() & api.system.flash.set()-
15Modify the class RAKBleService to support customized 128-bit BLE UUIDBLE
16Add asynchronous event for AT+CFMAT Command Manual
17Redesign API mode:
   - Always reply return code even if the request is write/execution and result is OK.
   - Don't support AT? anymore because its output is for human, but not for machine.
-
18Remove *#include "Arduino.h"* in every example-
19Add api.ble.beacon.custom.payload.set() to support customized payload for BLE BeaconBLE
20Remove sensor examples from SDK-
21Remove BLE HID from SDK-
22Remove AT+DELBONDS-
23Remove api.lorawan.recv()-
24Set the default value of AT+CFM to be offAT Command Manual
25Rewrite delay function to avoid wasting MCU time-
26Reduce bootloader size and align the start address of bootloader with legacy RAK4631 bootloader-
27Separate AT+BUILDINFO into two AT commands AT+BUILDTIME & AT+REPOINFOAT Command Manual
AT Command Manual
28Change the design of serial lock AT+LOCK & AT+PWORDAT Command Manual
AT Command Manual
29Enhance the design of the following AT commands to fix coexistence issueL: AT+MASK, AT+CHE, & AT+CHSAT Command Manual
30Serial.begin() will only supports unsigned integer baud rateArduino API
31Enhance customized AT command registrationCustom Mode
32Change AT+NWKID to AT+NETID because it describes network identifier (NetID) of 3 octets, rather than another network identifier (NwkID) of 7 bitsAT Command Manual
33Change the unit of the following AT commands from milli-seconds to seconds:
   - AT+JN1DL
   - AT+JN2DL
   - AT+RX1DL
   - AT+RX2DL
AT Command Manual
34Add AT_BUSY_ERROR handling for AT+BAND, AT+MASK, & ATRAT Command Manual
AT Command Manual
AT Command Manual
35Refine LoRaWAN initialization flow to reduce flash writing-
36Remove AT+JN2DL= & AT+RX2DL= commands because of jn2dl=jn1dl+1 & rx2dl=rx1dl+1-
37Change AT command output format-
38Change the behavior of the following AT commands:
   - AT+NJM
   - AT+SEND
   - AT+ADR
   - AT+PNM
-
39Rename the AT command AT+RESTORE to ATRAT Command Manual
40Support the Arduino library instead of a built-in sensor APIRUI3 Supported IDE

Fixed

Daily Build No. / Bug No.Description
Bug #529868 MHz CLASS B OTAA at+bfreq format is not correct
Bug #606P2P at+ppl should get AT_PARAM_ERROR instead of AT_ERROR
Bug #613[AT COMMAND]: Continuous input AT+JOIN will cause AT_ERROR
Bug #509Can't begin again after Serial.end()
-Fix AT+LPSEND bugs: wrong return code & 512 bytes limitation
Bug #598Arduino Application Scenario with SmartFarm issue
Bug #536868 MHz CLASS B OTAA / ABP mode downlink with pgslot issue
-Fix Class B multicast group default value
Bug #453lorawan nwm.set not working
Bug #601RUI API arssi cannot receive value
-Fix AT+BGW can't work issue
Bug #584[API Mode]: ATCMD handler's execution command to ATZ, ATDFU, ATR, AT+BOOT, not response frame and no function also
Bug #571[API Mode]: Command ID 32:AT+CLASS set value BCD:0
Bug #583[API Mode]: at+recv=? could not get the latest received data
Bug #561868 MHz OTAA Class C, set appkey during join will get AT_ERROR
Bug #581[API Mode]: ATCMD handler for PSF, PCR, PTP command response frame's byte-order of payload length is incorrect
Bug #582[API Mode]: ATCMD Handler AT+PPL=? command ID get value error
Bug #572[API Mode]: command ID 35:AT+JN1DL and 36:AT+JN2DL input/output length improper - it should be 1 byte, but not 4 bytes as now
-Add the default multicast group parameters for default B mode
Bug #570868 MHz ABP when gateway set rx2dr to 4, end device cannot receive downlink
-Fix min(), max(), & yield()
-Fix api.lorawan.addmulc(), api.lorawan.rmvmulc(), & api.lorawan.lstmulc()
-Tune the base current for one-time sleep (5 uA) & auto sleep (20 uA)
Bug #538915 MHz CLASS B OTAA/ABP issue
Bug #548P2P Preamble Length setting 2 or 65535 will not receive message
Bug #549P2P show receive error when receive second p2p message
Bug #565LoRa Auto-Join Failed will cause system hang
Bug #540[BLE SCANNER]: The advertisement displayed on the console side has a header but no content
-Fix the usage of byte array in BLE examples
-Fix the byte order of AT+DADDR
-Fix AT+AUTOSLEEP can't work when changing its setting from zero to non-zero
-Fix duplicated LoRaWAN RX data logs
-Fix AT+CHE & AT+CHS bugs
-Fix CFlist for AT+CHS when the band is AU915 & US915
Bug #521at+cfm=0 send a confirmed uplink
Bug #508Multicast cannot receive a message after changing the frequency
Bug #507Multicast downlink message print multiple times
Bug #509Can't begin again after Serial.end()
Bug #444lorawan multicast C++ wrapper not implement
Bug #448lorawan arssi C++ wrapper not implement
Bug #506868 MHz Class B description of S0/S1/S2/S3 state
Bug #527atr do not reset multicast list
-Create two instance of HardwareSerial that is Serial4 (USB) & Serial6 (BLE)
-Fix api.lorawan.ver()
-Fix api.lorawan.arssi()
-Fix ABP downlink bug
-Fix AT+LINKCHECK, AT+SNR, & AT+RSSI bugs
-Fix the input range of periodicity
-Fix the input range of AT+PWORD: Forbid zerolength password
-Fix the maximum number of argument of AT+CHE
-Fix the input range of AT+SEND to be 2-500 digits
-Fix write part of AT+DCS
-Fix Arduino Wire library implementation to be compatible with Adafruit libraries
Bug #450lorawan jn1dl & rx1dl RUI-API can input number > 15
Bug #453lorawan nwm.set not working
Bug #452RUI-API restore default not implement
Bug #451api.lorawan.band.get() return value not as same as at+band
Bug #447CLIVER & APIVER C++ warpper not implement
-Add parameter sanity check for AT+PGSLOT
-Fix api.lorawan.ver.get()
-Fix api.lorawan.join() always failure issue
-Fix the wrong unit of the following api:
   - api.lorawan.jn1dl.set()
   - api.lorawan.jn1dl.get()
   - api.lorawan.jn2dl.get()
   - api.lorawan.rx1dl.set()
   - api.lorawan.rx1dl.get()
   - api.lorawan.rx2dl.get()
-Enhance Arduino compatibility
-Fix api.lorawan.ver.get()
-Fix api.lorawan.dr.set()
-Fix the wrong mask value when input AT+MASK=0
-Fix the typo of api.lorawan.nwskey to be api.lorawan.nwkskey
Bug #417P2P AT+PCR coding rate issue are asymmetric
Bug #418P2P part of all descriptions
-Fix AT+BAT always display 0.0 issue
Bug #410JN2DL/RX2DL against the spec
Bug #411at+baud is not working properly and return AT_PARAM_ERROR
-Fix DR10 - DR13 issues of LoRaWAN multicast feature
-Fix Nordic soft device assertion failed issue
Bug #406at+jn1dl & at+rx2dl input range only 0-15
Bug #407at+multicast issue
-Fix hardware watchdog timeout after software reset issue
-Fix USB enumeration failure issue after calling api.system.sleep.all()
Bug #402Cannot input too many command at same time
Bug #404rx1dl should be the same as gateway setting after connected to gateway in OTAA mode
Bug #403rx1dl, rx2dl, jn1dl, & jn2dl should be ranged in 0-15
Bug #390at+class can only setting once ( A ---> C ---x---> A)
-Fix the format of AT+ADDMULC
-Fix system stability issue caused by ATZ command
-Fix LoRaWAN multicast downlink message
Bug #397at+rx2fq show at error if input randomly
Bug #393at+rx2dr error code not as same as document
Bug #400at+adr default value not same as document
-Fix AT+RX2DR command
Bug #394at+band default value 4 switch to 5 will show at error
Bug #395at+band switch to 2 and then can not switch to other band
Bug #388Get the random number after setting devaddr (at+daddr)
Bug #389at+send error code not as same as document
Bug #390at+class can only setting once ( A ---> C ---x---> A)
Bug #392AT+DR range should be 0-7 not 0-5
Bug #391AT+DR=asdfklaskjdf can be accepted
Bug #396at+txp set 8-15 will show at error in EU868
Bug #399Device address not the same as the gateway in ABP mode
Bug #397at+rx2fq show at error if input randomly
Bug #398Command atdfu should rename to at+boot
Bug #393at+rx2dr error code not the same as document
-Fix Class A/B/C downlink
Bug #377Arduino IDE verify code will encounter error until open log function