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.2.0 Release Note

March 24, 2022
3.2.0

Added

No.FeatureReference
1Support RAK3372RAK3172 Evaluation Board
2Integrate low-power UART with AT+SLEEPAT Command Manual
3Support AT+ALIASBinary Command Manual
4Support AT command permission changeSyatem
5AT+CHS supports EU868AT Command Manual
6Add AT+CW command-
7Add api.system.flash.get() and api.system.flash.set()Arduino API

Changed

No.FeatureReference
1Add low-power mode for RAK3372-
2Enable LoRa class B for RAK3372-
3Enhance AT+CERTIF command for LCTAT Command Manual
4AT command format change:
   1. Don't use space in the output response format
   2. No data type in the async event.
   3. Use : for in/output format and , to dived different groups or sub-groups
   4. Command name must show at the begging of every response.
   5. Remove the redundancy such as space and string, which is not the value.
   6. Make every response in a single line.
-
5Rewrite Arduino Interrupt exampleArduino API
6Change Serial2 to be Serial for RAK3172-E example-
7Remove BLE dependent code from System Powersave example-
8Enhance power-consumption of Smart Farm example-
9For RAK3172, use RAM2 to avoid RAM shortage-
10Remove the wrong design about wakeup source pin-
11Assign WB_IO1 as another wakeup source for System Powersave example-
12Optimize the power consumption of Smart Farm example-
13Update variant.h for the following modules:
   - RAK4630
   - RAK3172
   - RAK3172-SiP
-
14For RAK4631, rewrite the GPIO driver as event based driver-
15For RAK4631, add workaround in UDRV Powersave for Smart Farm example-
16Use a compilation flag to turn off Transparent Mode-
17Remove 5s delay in all the examples-
18Remove LED operation in Smart Farm example-
19Refine Smart Farm example to avoid program stuck in some condition-
20For RAK4630, add one more UART console for it-
21For RAK4630, disable NFC by default-
22Remove RF test related RUI API-
23Add AT command max length restriction-
24Simplify the BLE UART example-
25Disable FS related RUI API by default-
26Add example annotation. Indentation modification-

Fixed

Daily Build No. / Bug No.Description
Bug #663US915 at+chs join process and return AT_ERROR
Bug #667[RAK4631] US915/AU915 AT+CHS: Single Channel Mode doesn't work
Bug #668[RAK3172] [DailyBuild.44]: DUT uplink in unexpected channels (US915)
Bug #670[RAK3172] [DailyBuild.44]: DUT response to confirmed downlink messages from unknown NS
Bug #639RX2 and RXC abnormal in DR 10~13
Bug #645DUT use confirmed uplink message type to response [Fpending = 1] and [Confirmed downlink] events
Bug #675[RAK3172] [DailyBuild.49]: After changing the RX2 frequency by RXParamSetupReq, downlinks via RXC will be failed
Bug #669[RAK3172] [DailyBuild.44]: During processing continuous confirmed downlink, +BC: FAILED (259) message appears
-Fix Smart_Farm example:
   1. Fix the wrong usage of api.lorawan.rx2dl.get() because of unit change.
   - 2. Remove BLE dependent code from Smart Farm example, so it can be compiled successfully on RAK3172-E.
-Fix typo and refine RAKUnifiedApi.h
-Fix RAK3372 I2C can't change frequency
Bug #678[RAK3172] [DailyBuild.60]: Downlink via RX_B didn't work
Bug #512AnalogRead() return should be 0~1023
-Fix timer bug inside LoRaMacNode
Bug #680[RAK3172]``[DailyBuild.60]: In class B, while uplink event engaging into beacon reserved period, DUT console return AT_ERROR
Bug #671[RAK3172] [DailyBuild.44]: Can't pass LCTT test cases
Bug #541After manually enter DFU Mode, uploading firmware failed
Bug #681[RAK3172] [beta 1]: The payload length of API mode exceeds 13bytes and cannot be received
Bug #682[RAK3172] [beta 1]: Sometimes, the response handler was not invoked
-For RAK4630, rewrite UDRV/UHAL RTC to support wakeup by LoRa
-For RAK3172, fix UHAL ADC bug that causes flash cannot be accessed anymore
-For RAK3172, fix the crash caused by long at command input
Bug #634JOIN FAILED (3) appeared in continuous join events
-For RAK4630, fix LoRa downlink cannot work anymore if api.system.setup() is called
-Fix can't print floating point issue for Arduino IDE
-Fix hard-coding in all examples
-Fix variant.h according to RAK5005-O page of online document center
-For RAK4630, fix the RX sensitivity issue by powering on antenna switch
Bug #622AT+BFREQ command return unexpected beacon frequency
-For RAK4630, reduce the power consumption by disable LoRa interrupt
-Fix multi-line input problem
-Fix the ambiguity caused by the default value of api.system.sleep()
-Fix AT Command buffer size for RAK3172
Bug #708BLE UART cant modify ADV_NAME
Bug #713BLE ADV name have error code
Bug #714BLE System crash
-Fix SDK can't be decompressed for Visual Studio
Bug #728[HW:RAK3172]: Unexpected power consumption result after remove CH340 from DUT
Bug #683AU915 CLASS A OTAA AT+CHS with AT_ERROR issue
-Fix NFC examples can't compile on Arduino IDE
Bug #727[HW:RAK3172SIP]: Use Serial with Arduino IDE to do FW upgrade (rc1.76 to rc1.76), after re-powering join procedure shows TX timeout message
-Fix Custom ATCMD example's ATCMD permission
Bug #700NFC received lack NLEN(2Bytes) and not type 4/2 tag(t2t/t4t) config?
Bug #736[HW:RAK3172]``[api.system.sleep.setup()]: wake-up from powersaving mode, system will stop if there is any input from serial_1
Bug #749[HW:RAK3172]``[Arduino Example: Arduino_Interrupt]: attachInterrupt() fail
Bug #750[HW:RAK3172]``[Arduino Example: Arduino_Interrupt]: board crashe when use IO2
Bug #742Arduino export binary can't run
Bug #696Arduino IDE export Hex file no bootload
Bug #737[HW:RAK3172]``[Serial.lock()]: Can only lock a serial which is in AT CMD mode, but doxygen does not show it
Bug #738[HW:RAK3172]``[Serial.lock()]: When a serial port is locked, both two serial ports will be locked and can be unlocked from either serial port
Bug #745[HW:RAK4631]: System_Powersave crash
Bug #660US915 CLASS C with ABP mode when disable gateway frame-counter issue
Bug #730[Document error]``[Serial.readBytesUntil()]: Serial.begin(11500, CUSTOM_MODE)
Bug #731[Document error]``[Serial.readBytesUntil()]: if (Serial.available > 0)
Bug #732[HW:RAK3172]``[Serial.readBytesUntil()]: Get inputs form Win11 Tera Term, the API returns without matching either the terminator character or the length
Bug #695RuiV3 release not support NFC
-Fix all the wrong usage of fallback handler in UHAL UART
-Fix RF test related to the following command:
   - AT+CW
   - AT+TRSSI
   - AT+TTONE
   - AT+TTX
   - AT+TRX
   - AT+TCONF
   - AT+TTH
   - AT+TOFF
-Fix AT+PWORD when password length is less than 8
-Fix AT+PRECV in API mode: Check network working mode before executing commands
-Fix unable to exit P2P receiving mode normally
Bug #769[ATCMD] 2.16_AT+ALIAS: AT+ALIAS= will cause AT_ERROR and empty previous value
Bug #778[ATCMD] 6.8_AT+LPSEND : Out of range input of <port> and <ack> field, expected return is AT_PARAM_ERROR, but gets OK
Bug #779[ATCMD] 6.9_AT+RETY : Out of range input than the upper bound, expected return id AT_PARAM_ERROR, but get AT_ERROR
Bug #784[ATCMD] 7.8_AT+RX1DL: The value range of AT+RX1DL (AT+RX2DL) in ATCMD DOC is 114 (215), however, the LoRaWAN SPEC defines the range = 115 (216)
Bug #767The serial port defaults to CUSTOM_MODE in Arduino, but not in RUI
Bug #742Arduino export binary can't run
Bug #696Arduino IDE export Hex file no bootload
Bug #747[HW:RAK3172]``[Arduino Example: Arduino_Advance_IO]: Compile error
Bug #748[HW:RAK3172]``[Arduino Example: Arduino_Digital]: Compile error
Bug #751[HW:RAK3172]``[Arduino Example: Arduino_Serial]: Serial is not re-enabled after executing Serial.end(), unable to upload later
Bug #752[HW:RAK3172]``[Arduino Example: Arduino_Time]: delayMicroseconds() cause the board to crash
Bug #753[HW:RAK3172]``[Arduino Example: LoRaWan_P2P]: Board crash when run example
Bug #763[HW:RAK4631]``[Arduino Example: System_FS]: COM port disappear
Bug #755[HW:RAK3172]``[Arduino Example: System_ATCMD_Permission]: API CHANGE_ATCMD_PERM cannot be used in AT+DEVADDR, AT+NETID, and AT+HWID
Bug #740LoRa & BLE system crash
Bug #764Serial.readString function compile error
Bug #754[HW:RAK3172]``[Arduino Example: System_Serial_Lock]: api.system.pword.set(password) is not working
Bug #775[ATCMD] 4.3_AT+BAUD:
   - Perform AT+BAUD=921600, then ATZ
   - DUT operates in [Baud Rate 115200] after ATZ
   - However, AT+BAUD=? will return 921600
Bug #782[ATCMD] 7.1_AT+ADR:
   - Input ATZ -> wait 10 sec
   - Input ADR=? -> wait 200 ms
   - Input AT+ADR=1 will return AT_ERROR
-Fix FSK mode parameter range
Bug #773[ATCMD] 4.2_AT+PWORD: AT+PWORD= will cause AT_ERROR
Bug #757P2P AT+PBR & AT+PFDEV AT_PARAM_ERROR and SW stuck issue
Bug #778[ATCMD] 6.8_AT+LPSEND : Out of range input of <port> and <ack> field, expected return is “AT_PARAM_ERROR”, but get “OK”
Bug #808[RAK4631]: AT+NWM=0 Fail
Bug #793[RAK4631]: AT+NWM=0 Fail
Bug #772[ATCMD] 4.1_AT+LOCK: After lock ATCMD port by AT+LOCK=, then re-power DUT and DUT would be in an unlocked status
-Fix using the wrong linker script problem for Arduino IDE
-Fix the hang issue of Smart Farm example that is built by the Arduino IDE
-Fix naming inconsistency of UART_MODE