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. | Feature | Reference |
---|---|---|
1 | Provide RF test to the following AT commands: AT+TRSSI , AT+TTONE , AT+TTX , AT+TRX , AT+TCONF , AT+TTH , AT+TOFF , AT+CERTIF | AT Command Manual |
2 | Support AT+FSN | Binary Command Manual |
3 | Add api.lorawan.precv() for one-time P2P receiving | LoRaWAN |
4 | Enhance 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 | - |
5 | BLE Beacon API change: Add api.ble.beacon.ibeacon.power.set(param) | BLE |
6 | Add an example for analog API | Arduino API |
7 | Add an example for LoRaWAN OTAA | LoRaWAN |
8 | Add an example for LED breathing | Arduino API |
9 | Add AT+LPSEND | AT Command Manual |
10 | Add api.lorawan.registerRecvCallback() | LoRaWAN |
11 | Add api.lorawan.registerJoinCallback() | LoRaWAN |
12 | Add api.lorawan.registerSendCallback() | LoRaWAN |
13 | Add low power design for AT+AUTOSLEEP | - |
14 | Add api.lorawan.dcs.set() | LoRaWAN |
15 | Add api.lorawan.addmulc() , api.lorawan.rmvmulc() , & api.lorawan.lstmulc() | LoRaWAN |
16 | Support API mode and operating mode switching | RUI3 Serial Operating Modes |
17 | Support BLE pairing | BLE |
18 | Support NFC | - |
19 | Support spiffs filesystem | - |
20 | Support FSK in LoRaWAN P2P mode | AT Command Manual AT Binary Command Manual |
21 | Support encryption in LoRaWAN P2P mode | AT Command Manual Binary Command Manual |
22 | Add example code into RUIv3 SDK | - |
23 | Add AT+SLEEP command | AT Command Manual |
24 | Add AT+RETY command | AT Command Manual |
25 | Support Arduino standard library - SPI | Arduino API |
26 | Add AT+TTH , AT+TTX , AT+TRX , & AT+TCONF | AT Command Manual |
27 | Support upgrading bootloader by nrfutil | - |
28 | Add 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+ENCKEY | AT Command Manual |
29 | Implement Serial.printf() | Arduino API |
30 | Add AT+CHS , AT+CHE , AT+ARSSI , AT+BGW | AT Command Manual |
31 | AT+BAUD , AT+HWMODEL , & AT+HWID AT commands | AT Command Manual |
32 | AT+CHE AT command | AT Command Manual |
33 | Support transparent mode | - |
34 | Support recovery mode (Add CLI into RUI v3 bootloader) | - |
35 | Add AT+MASK AT command | AT Command Manual |
36 | Add AT command AT+RECV | AT Command Manual |
37 | Add asynchronous event log for Class A/B/C Downlink | AT Command Manual |
38 | Add asynchronous event log for join process | AT Command Manual |
39 | Support customized AT command registration | Custom Mode |
40 | Support read/write private user data from/to flash | System |
41 | Support LoRaWAN Class B mode for WisBlock RAK4631 | WisBlock RAK4631 |
42 | Support LoRaWAN multicast group for WisBlock RAK4631 | WisBlock RAK4631 |
43 | Create a unified driver layer (UDRV) for all RAK hardware products | - |
44 | Support the following WisBlock Sensor: RAK1901, RAK1902, RAK1903, RAK1904, RAK1906, & RAK1910 | WisBlock Sensor |
45 | Compatible with Arduino API | Arduino API |
46 | Add proprietary RUI API for BLE/LoRaWAN | LoRaWAN BLE |
47 | Enhance the power consumption in sleep mode for WisBlock RAK4631 | WisBlock RAK4631 |
48 | Upgrade to Nordic SDK 17.0.2 with BLE stack S140 7.2.0 | - |
49 | Support BLE Configuration/Beacon service/UART service/Customized service for WisBlock RAK4631 | - |
50 | Support Arduino IDE/Visual Studio IDE for WisBlock RAK4631 | WisBlock RAK4631 |
51 | Support DFU over USB/BLE/UART for WisBlock RAK4631 | WisBlock RAK4631 |
52 | Support LoRaWAN Class A/C mode for WisBlock RAK4631 | WisBlock RAK4631 |
53 | Support AT commands over USB/BLE/UART | WisBlock RAK4631 |
Changed
No. | Feature | Reference |
---|---|---|
1 | Removed the following APIs: - api.ble.setting.advertiseSlow.get() - api.ble.setting.advertiseSlow.set() - api.ble.setting.advertiseFast.get() - api.ble.setting.advertiseFast.set() | - |
2 | Change the delimiter of AT+ARSSI=? from , to : | AT Command Manual |
3 | Rename all the examples | - |
4 | Change the default setting of AT+DCS to be 1 | AT Command Manual |
5 | Remove the one-time function command AT+PRECV=? , just like AT+SLEEP | AT Command Manual |
6 | Update LoRaWan_P2P example | - |
7 | Update LoRaWan_Class_B example | - |
8 | Rearch 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 |
9 | Rearch example folders | - |
10 | Temporarily remove AT+AUTOSLEEP (AT+LPM) command | - |
11 | BLE 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 |
12 | Change the default setting of LoRaWAN confirm mode to be ON | - |
13 | Modify BLE UART example to support AT CMD | BLE UART |
14 | Remove api.system.flash.get() & api.system.flash.set() | - |
15 | Modify the class RAKBleService to support customized 128-bit BLE UUID | BLE |
16 | Add asynchronous event for AT+CFM | AT Command Manual |
17 | Redesign 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. | - |
18 | Remove *#include "Arduino.h"* in every example | - |
19 | Add api.ble.beacon.custom.payload.set() to support customized payload for BLE Beacon | BLE |
20 | Remove sensor examples from SDK | - |
21 | Remove BLE HID from SDK | - |
22 | Remove AT+DELBONDS | - |
23 | Remove api.lorawan.recv() | - |
24 | Set the default value of AT+CFM to be off | AT Command Manual |
25 | Rewrite delay function to avoid wasting MCU time | - |
26 | Reduce bootloader size and align the start address of bootloader with legacy RAK4631 bootloader | - |
27 | Separate AT+BUILDINFO into two AT commands AT+BUILDTIME & AT+REPOINFO | AT Command Manual AT Command Manual |
28 | Change the design of serial lock AT+LOCK & AT+PWORD | AT Command Manual AT Command Manual |
29 | Enhance the design of the following AT commands to fix coexistence issueL: AT+MASK , AT+CHE , & AT+CHS | AT Command Manual |
30 | Serial.begin() will only supports unsigned integer baud rate | Arduino API |
31 | Enhance customized AT command registration | Custom Mode |
32 | Change AT+NWKID to AT+NETID because it describes network identifier (NetID) of 3 octets, rather than another network identifier (NwkID) of 7 bits | AT Command Manual |
33 | Change the unit of the following AT commands from milli-seconds to seconds: - AT+JN1DL - AT+JN2DL - AT+RX1DL - AT+RX2DL | AT Command Manual |
34 | Add AT_BUSY_ERROR handling for AT+BAND , AT+MASK , & ATR | AT Command Manual AT Command Manual AT Command Manual |
35 | Refine LoRaWAN initialization flow to reduce flash writing | - |
36 | Remove AT+JN2DL= & AT+RX2DL= commands because of jn2dl=jn1dl+1 & rx2dl=rx1dl+1 | - |
37 | Change AT command output format | - |
38 | Change the behavior of the following AT commands: - AT+NJM - AT+SEND - AT+ADR - AT+PNM | - |
39 | Rename the AT command AT+RESTORE to ATR | AT Command Manual |
40 | Support the Arduino library instead of a built-in sensor API | RUI3 Supported IDE |
Fixed
Daily Build No. / Bug No. | Description |
---|---|
Bug #529 | 868 MHz CLASS B OTAA at+bfreq format is not correct |
Bug #606 | P2P at+ppl should get AT_PARAM_ERROR instead of AT_ERROR |
Bug #613 | [AT COMMAND]: Continuous input AT+JOIN will cause AT_ERROR |
Bug #509 | Can't begin again after Serial.end() |
- | Fix AT+LPSEND bugs: wrong return code & 512 bytes limitation |
Bug #598 | Arduino Application Scenario with SmartFarm issue |
Bug #536 | 868 MHz CLASS B OTAA / ABP mode downlink with pgslot issue |
- | Fix Class B multicast group default value |
Bug #453 | lorawan nwm.set not working |
Bug #601 | RUI 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 #561 | 868 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 #570 | 868 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 #538 | 915 MHz CLASS B OTAA/ABP issue |
Bug #548 | P2P Preamble Length setting 2 or 65535 will not receive message |
Bug #549 | P2P show receive error when receive second p2p message |
Bug #565 | LoRa 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 #521 | at+cfm=0 send a confirmed uplink |
Bug #508 | Multicast cannot receive a message after changing the frequency |
Bug #507 | Multicast downlink message print multiple times |
Bug #509 | Can't begin again after Serial.end() |
Bug #444 | lorawan multicast C++ wrapper not implement |
Bug #448 | lorawan arssi C++ wrapper not implement |
Bug #506 | 868 MHz Class B description of S0/S1/S2/S3 state |
Bug #527 | atr 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 #450 | lorawan jn1dl & rx1dl RUI-API can input number > 15 |
Bug #453 | lorawan nwm.set not working |
Bug #452 | RUI-API restore default not implement |
Bug #451 | api.lorawan.band.get() return value not as same as at+band |
Bug #447 | CLIVER & 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 #417 | P2P AT+PCR coding rate issue are asymmetric |
Bug #418 | P2P part of all descriptions |
- | Fix AT+BAT always display 0.0 issue |
Bug #410 | JN2DL/RX2DL against the spec |
Bug #411 | at+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 #406 | at+jn1dl & at+rx2dl input range only 0-15 |
Bug #407 | at+multicast issue |
- | Fix hardware watchdog timeout after software reset issue |
- | Fix USB enumeration failure issue after calling api.system.sleep.all() |
Bug #402 | Cannot input too many command at same time |
Bug #404 | rx1dl should be the same as gateway setting after connected to gateway in OTAA mode |
Bug #403 | rx1dl, rx2dl, jn1dl, & jn2dl should be ranged in 0-15 |
Bug #390 | at+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 #397 | at+rx2fq show at error if input randomly |
Bug #393 | at+rx2dr error code not as same as document |
Bug #400 | at+adr default value not same as document |
- | Fix AT+RX2DR command |
Bug #394 | at+band default value 4 switch to 5 will show at error |
Bug #395 | at+band switch to 2 and then can not switch to other band |
Bug #388 | Get the random number after setting devaddr (at+daddr ) |
Bug #389 | at+send error code not as same as document |
Bug #390 | at+class can only setting once ( A ---> C ---x---> A) |
Bug #392 | AT+DR range should be 0-7 not 0-5 |
Bug #391 | AT+DR=asdfklaskjdf can be accepted |
Bug #396 | at+txp set 8-15 will show at error in EU868 |
Bug #399 | Device address not the same as the gateway in ABP mode |
Bug #397 | at+rx2fq show at error if input randomly |
Bug #398 | Command atdfu should rename to at+boot |
Bug #393 | at+rx2dr error code not the same as document |
- | Fix Class A/B/C downlink |
Bug #377 | Arduino IDE verify code will encounter error until open log function |