Skip to content

RUI3 SDK release 3.6.0b_183

Pre-release
Pre-release
Compare
Choose a tag to compare
@ianlo-rak ianlo-rak released this 04 Oct 14:02
· 35 commits to main since this release

[3.6.0b] - 2022-10-4

Added

  • RUI-404: Support of Apollo3
  • RUI-95: Support of AT over UART (Apollo 3)
  • RUI-123: Support of AT over BLE (Apollo 3)
  • RUI-125: Support of Binary mode over UART (Apollo 3)
  • RUI-403: Support LoRa functionality for Apollo3
  • RUI-584: Arduino IDE integration (Apollo3)

Changed

Fixed

[3.5.2b] - 2022-9-23

Added

  • RUI-539: Trigger callback and display the event on BLE connection/disconnection
  • Add API: api.ble.registerCallback(Event event,BLE_HANDLER callback)
  • RUI-567: P2P configuration APIs
  • Add API: api.lora.iqInver.get()
  • Add API: api.lora.iqInver.set(bool iqInver)
  • Add API: api.lora.syncword.get()
  • Add API: api.lora.syncword.set(uint32_t syncword)
  • Add API: api.lora.rfFrequency.get()
  • Add API: api.lora.rfFrequency.set(uint32_t frequency)
  • Add API: api.lora.txOutputPower.get()
  • Add API: api.lora.txOutputPower.set(uint8_t power_level)
  • Add API: api.lora.bandwidth.get()
  • Add API: api.lora.bandwidth.set(uint32_t bandwidth)
  • Add API: api.lora.speradingFactor.get()
  • Add API: api.lora.speradingFactor.set(uint8_t sf)
  • Add API: api.lora.codingrate.get()
  • Add API: api.lora.codingrate.set(uint8_t cr)
  • Add API: api.lora.preambleLength.get()
  • Add API: api.lora.preambleLength.set(uint16_t length)
  • Add API: api.lora.symbolTimeout.get()
  • Add API: api.lora.symbolTimeout.set(uint32_t time)
  • Add API: api.lora.fixLengthPayload.get()
  • Add API: api.lora.fixLengthPayload.set(bool enable)
  • RUI-686: P2P configuration AT commands
  • Add AT_CMD: AT+IQINVER
  • Add AT_CMD: AT+SYNCWORD
  • Add AT_CMD: AT+RFFREQUENCY
  • Add AT_CMD: AT+TXOUTPUTPOWER
  • Add AT_CMD: AT+BANDWIDTH
  • Add AT_CMD: AT+BANDWIDTH
  • Add AT_CMD: AT+CODINGRATE
  • Add AT_CMD: AT+PREAMBLELENGTH
  • Add AT_CMD: AT+SYMBOLTIMEOUT
  • Add AT_CMD: AT+FIXLENGTHPAYLOAD
  • RUI-612: Add write functionality to Firmware Version API
  • Add AT_CMD: AT+FIRMWAREVER
  • Add API: api.system.firmwareVer.get()
  • Add API: api.system.firmwareVer.set(String version)

Changed

  • RUI-484: Support detection of RAK5010 and RAK5010-M versions
  • RUI-612: Add write functionality to Firmware Version API
  • Remove API: api.system.firmwareVersion.get()

Fixed

  • RUI-414: RAK_REGION_AS923-2, RAK_REGION_AS923-3 and RAK_REGION_AS923-4 are not defined in RAKLorawan.h
  • RUI-582: [BLE] LPM issue -The system cannot enter low power after BLE Stop.

[3.5.1b] - 2022-9-8

Added

  • RUI610: Add write functionality to CLI Version API
  • Add API: api.system.cliVer.get()
  • Add API: api.system.cliVer.set(String version)
  • RUI611: Add write functionality to Hardware Model Version API
  • Add API: api.system.hwModel.get()
  • Add API: api.system.hwModel.set(String model)

Changed

  • RUI610: Add write functionality to CLI Version API
  • Remove API: api.system.cliVersion.get()
  • RUI611: Add write functionality to Hardware Model Version API
  • Remove API: api.system.modelId.get()

Fixed

  • RUI-655: [AT_CMD] [CN470] "AT+MASK=10ff" should return "AT_PARAM_ERROR"
  • RUI-656: [AT_CMD] [CN470] "AT+MASK=?" default value should be "0FFF"
  • RUI-665: [AT_CMD] When not in the band of US915, AU915, CN470, "AT+CHS=?" should not be available.
  • RUI-735: PC detects that the device name of RAK3401 is "Rak4631 Serial COM"
  • RUI-739: System_Serial_Lock example compile fail

[3.5.1] - 2022-9-2

Added

  • Support RAK3401
  • Add AT+BOOTVER

Changed

  • RUI-557: Full BW set for LoRa
  • RUI-629: Class C high power consumption
  • RUI-632: To support all ADC, not only ADC1, ADC2
  • RUI-661: [DEV]Enable ADC3/ADC4/ADC
  • RUI-690: Adding AT cmds in system level & Bootloader/ Application need to add AT cmds function.
  • LCTT timer optimization processing, during operation, only one LCTT timer runs
  • Disable detect UART/I2C pin for going into boot mode
  • Disable AT+LPM=2
  • Disable Scheduler for all model
  • Release AT commnad version 1.5.7
  • Release API version 3.2.2

Fixed

  • RUI-554: RAK3172 UART baudrate support 2400 bps
  • RUI-635: [Doxygen_ATCMD] According to Doxygen AT+PSF range is 5~12,but I run "AT+PSF=5" response " AT_PARAM_ERROR"
  • RUI-639: [AT_CMD] After ATZ, RX2FQ should keep the last validated setting.
  • RUI-640: [AT_CMD] Input the long data at once, UART will lose data.
  • RUI-651: at+join=1:0:10:5 does not retry to connect after the first trial
  • RUI-652: [AT_CMD] After the baud rate is set to 4800, it can not be restored to 115200.
  • RUI-663: [ClassB] The device failed to receive beacon when AT+LPM=1
  • RUI-667: [AT_CMD] Preamble Length = {5-65535}, "AT+P2P=470MHz:7:20000:0:65550:14" should return AT_PARAM_ERROR
  • RUI-668: [AT_CMD] "AT+PRECV=?" and "AT+RMVMULC=?", Command without query should return AT_PARAM_ERROR
  • RUI-685: [AT_CMD] "AT+ADDMULC=" Input incorrect parameters should not be written successfully.
  • RUI-703: [LCTT] If AT+LPM=1 by default, the LCTT test fails
  • RUI-709: [AT+CMD]AT+SLEEP causes the device to crash
  • RUI-732: [Bootloader]RAK3172 Entering AT Command in Boot mode will print twice AT not support
  • RUI-740: [Lora]RAK4631 ClassC cannot receive downlink data
  • RUI-735: PC detects that the device name of RAK3401 is "Rak4631 Serial COM"
  • RUI-739: System_Serial_Lock example compile fail

[3.5.0] - 2022-07-15

Added

  • Support RAK5010.
  • RUI-145: [DEV] Implementation on Scheduler API for RAK3172
  • Add AT+TIMEREQ.
  • Add AT+DEBUG.
  • Add AT+LPM.
  • Add Wire1 instance for Arduino Wire library.
  • For RAK4630/RAK5010, add AT+BLEMAC.
  • Add AWS MQTT SSL example.
  • Add RUI3-Power-Test example.

Changed

  • Enhance SPI master performance.
  • Open the source of UHAL layer.
  • Optimize LINK ADR logic,reject LINK ADR when ADR is closed
  • Optimizing logical processing for querying multicast groups
  • Use timer for Smart Farm example.
  • Add delay 10s for BLE Configuration example, or user can't see the logs.
  • RUI-630: [Doc]add AT+VER=?can read that the device is in Boot mode

Fixed

  • RUI-335: EU868 CLASS A +EVT:SEND_CONFIRMED_FAILED
  • RUI-392: [UART] UART transmission takes a lot of time.
  • RUI-508: [Firmware] Buffer overflow condition occurs inside service_lora_lstmulc function
  • RUI-490: Variable overflow problem for "last_dlink_data_size" parameter
  • RUI-489: Inside At_Restore function, else if (ret = -UDRV_BUSY) only has one equal operator
  • RUI-488: [RUI API] service_lora_trssi(int16_t *rssiVal) function returns pointer
  • RUI-480: [Firmware] There is only one equal operator inside if statement
  • RUI-479: [Firmware] There is only one equal operator inside if statement
  • RUI-456: [RUI_API] When IO_1 is triggered, just WakeUP and then continue Sleep again
  • RUI-491: [BLE] Compared to BLE SPEC, the range of advertising intervals is too different.
  • RUI-493: [BLE] Advertise Tx Power set functional fail.
  • RUI-503: [RUI API] api.ble.uart.start() will system crash
  • RUI-492: [BLE] Advertise interval set functional fail.
  • RUI-515: [BLE] Setting up Advertising data will crash if there is no pre-action.
  • RUI-446: no analogOversampling function on rak3172(rak5811)
  • RUI-433: no analogOversampling function on rak4631(rak5811)
  • RUI-533: [RUI API] [SensorHub] After Uploading Data for a while, connect USB debug port to PC and crash happened.
  • RUI-439: The program will get stuck at 100 lines on rak3172(rak1901)
  • RUI-458: [RUI_ATCMD]Baud rate is not saved after power failure
  • RUI-517: [BLE] BLE_Beacon_Custom_Payload example program note error
  • Fix LoRa P2P example's bug.
  • RUI-428: Parameter problem of the analogReference() function on rak3172(rak19006)
  • RUI-427: Parameter problem of the analogReference() function on rak4631(rak19006)
  • RUI-471: api.system.sleep.lora(10000); puts everything into sleep. Loop() is not continuing after call
  • RUI-459: [RUI_ATCMD]AT+LOCK and AT+PWORD can be queried, inconsistent with the document,and the return value of AT+LOCK is not standard
  • RUI-460: [RUI_ATCMD]The AT+SLEEP range is incorrect
  • RUI-457: [RUI_ATCMD]AT+APM=1 should be return AT_PARAM_ERROR(AT+APM/AT+ATM/ATZ/ATR/AT+BOOT)
  • RUI-514: [NBIOT]BG96 AT Command cannot be used. The NBIOT function cannot be tested
  • RUI-477: [RUI API] To modify txpower with “api.ble.settings.txPower.set(power)” in beacon mode is not work.
  • RUI-454: [RUI_API] RUI3 - RAK5010 Doxygen LPS22HB / pressure (MIKKIBAR) error ,it should be pressure(MILLIBAR)
  • RUI-453: [RUI_API] Undefined reference to `rak1901::deinit()'
  • RUI-436: rak2305 needs to add delay before it can run normally on rak4631
  • RUI-432: "SERIAL_PORT_HARDWARE "is not defined on rak4631(rak5802)
  • RUI-424: The default band for low-frequency nodes is 4
  • RUI-390: [SPI] SPI transmission takes a lot of time.
  • RUI-379: classC ABP mode sends AT+JOIN=1:0:7:5 is reported AT_ERROR
  • RUI-516: [BLE] The api.ble.settings.broadcastName.get() will fail after setting the advertising data.
  • RUI-513: [BLE] Advertising set Advertising data to Complete Local Name fail.
  • RUI-570: When there is Code in the Void loop, the device will sleep automatically.
  • RUI-597: [RUI API] About RAK5010, can't use RUI API to get BG96's response.
  • RUI-595: [NBIOT]5010 Maximum number of sent bytes supported
  • RUI-591: [NBIOT] Example RAK5010_Access_HTTP_Server commmand "AT+QHTTPREADFILE=" always response ERROR:730
  • RUI-583: [NBIOT] BG96 bg96_write funtion appears unknown "⸮"
  • RUI-581: [classB]AT+CLASS=? B:S3 status display error
  • RUI-579: Because powering on BG96 is slow, we have at least 60s time to keep it on. However, every activity on AT command should restart the 60s timer.
  • RUI-577: RAK5010 naming is not correct in Arduino IDE
  • RUI-571: [NBIOT] BG96 command cannot be used after baud rate is changed
  • RUI-569: [NBIOT]BG96 command? will return ATCELL: Send a command to LTE module
  • RUI-558: The behavior of RAK4631, RAK5010 and RAK3172 is inconsistent when they reboot after entering boot mode.
  • RUI-550: [classB]Sending data during beacon search returns AT_BUSY_ERROR, device stuck
  • RUI-549: [classB]AT_ERROR is reported when data is sent in ClassB mode
  • RUI-547: [classB]The device in ClassB mode cannot receive downlink data
  • RUI-546: [classB] Pingslot Open window does not print PS:Done
  • RUI-544: [AT+CMD]AT command return 'AT_ERROR' should be 'AT_PARAM_ERROR'
  • RUI-442: The code compiles properly, downloads to Core and doesn't execute on rak3172(rak14000)
  • RUI-430: rak18000 compiler error::PDM.h: No such file or directory on rak4631
  • RUI-429: rak12500 UART interface cannot communicate properly on rak4631
  • RUI-407: Beacon search failed to print twice +EVT: BC FAILED (zengtao 643)
  • RUI-402: [RUI API] Execute RAK12500 Official Uart example, it prints an error value and is not a search step
  • RUI-596: RAK3172 randomly goes into boot mode when production or testing
  • RUI-637: [Doxygen_ATCMD] Send Long Packet Data with hexadecimal "ABCDEF" should be work.
  • RUI-617: ATCELL+QFUPL is too hard to use.

[3.4.2] - 2022-05-18

Added

Changed

  • RUI-345: TX1 used as recovery pin causes problems on RAK3172/RAK4631 if a module is used that uses RX1/TX1
    • Add a new way to enter DFU mode: double clicking on reset button.
    • Remove button DFU mechanism that is triggered by UART1 TX pin.
  • Enable NFC.
  • Use single bank DFU instead of dual bank DFU to prevent factory default & user data being erased.

Fixed

  • RUI-377: AT+SLEEP command not working if AT+PRECV=0 is used.
  • RUI-347: [RUI API]If join network fails, the join packet is not sent again, even if api.lorawan.join is called again.
  • Fix I/O interrupt for RAK3172
  • RUI-405: Arduino BSP to support right code size after compilation
  • RUI-391: Arduino BSP reports wrong code size after compilation
  • Fix BLE crash after single clicking reset button.
  • Fix an issue that RAK12007 could not be displayed
  • Fix AT command permission of non-writable AT commands.

[3.4.1] - 2022-05-14

Added

  • Add RUI3-Sensor-Node example.

Changed

  • The maximum clock of SPI master is changed from 8MHz to 32MHz.
  • Change RUI BLE API name from api.ble.customer.xxx to api.ble.custom.xxx because "customer" is typo.
  • Force RUI sleep API to go back to sleep on any interrupt until the specified time period passed by.

Fixed

  • Fix erasing user config accidentally by RAK3172 bootloader.
  • RUI-377: AT+SLEEP command not working if AT+PRECV=0 is used.
  • RUI-372: Missing dtostrf declaration
  • RUI-239: [Dev]Refine the checksum mechanism of user configuration for RAK4631
  • RUI-371: RAK3172 Battery Measurement without AT+CLIVER command issue

[3.4.0] - 2022-05-08

Added

  • Support AS923-2/AS923-3/AS923-4.

Changed

  • If AT+PRECV=65534 is typed, the device will be set as RX mode until AT+PRECV=0 is typed.
  • If api.lorawan.precv(65534) is called, the device will be set as RX mode until api.lorawan.precv(0) is called.
  • If AT+PRECV=65533 is typed, the device will be set as RX mode, but still can do TX without typing AT+PRECV=0.
  • If api.lorawan.precv(65533) is called, the device will be set as RX mode, but still can do TX without calling api.lorawan.precv(0).
  • Enhance LoRa/LoRaWAN examples.
  • Temporarily disable NFC feature for RAK4630.

Fixed

  • Fix Arduino compatibility issues about I2C/SPI/UART/GPIO.
  • For RAK4630, fix AT+SLEEP crash issue.
  • Fix small input value issue of AT+SLEEP/api.system.sleep.all()/api.system.sleep.cpu()
  • RUI-239: [Dev]Refine the checksum mechanism of user configuration for RAK4631
  • RUI-334: BLE disconnect issue when over DFU upgrades
  • Workaround api.system.battery.get() by looking up a mapping table.

[3.3.1] - 2022-05-03

Added

Changed

  • Don't do GPIO de-initialization when sleeping.

Fixed

  • For RAK4631, delay 20 ms before calling pm_init().

[3.3.0] - 2022-04-29

Added

  • Support NFC when RUI3 SDK is used to customize firmware.
  • Add api.ble.stop().
  • Add api.system.timer.create()/api.system.timer.start()/api.system.timer.stop().

Changed

Fixed

  • Bug #838: ble stop, crash

[3.2.0] - 2022-03-24

Added

  • Support RAK3372.
  • Integrate low power UART with AT+SLEEP.
  • Support AT+ALIAS
  • Support AT command permission change.
  • AT+CHS supports EU868.
  • Add AT+CW command.
  • Add api.system.flash.get()/api.system.flash.set().

Changed

  • Add low power mode for RAK3372.
  • Enable LoRa class B for RAK3372.
  • Enhance AT+CERTIF command for LCT.
  • AT command format change:
    • Don't use space in the output response format
    • No data type in the async event.
    • Use ":" for in/output format and "," to dived different groups or sub-groups
    • command name must show at the begging of every response.
    • remove the redundancy such as space and string, which is not the value.
    • make every response in a single line.
  • Rewrite Arduino Interrupt example.
  • Change Serial2 to be Serial for RAK3172-E example.
  • Remove BLE dependent code from System Powersave example.
  • Enhance power-consumption of Smart Farm example.
  • For RAK3172, use RAM2 to avoid RAM shortage.
  • Remove the wrong design about wakeup source pin.
  • Assign WB_IO1 as another wakeup source for System Powersave example.
  • Optimize the power consumption of Smart Farm example.
  • Update variant.h for RAK4630/RAK3172/RAK3172-SiP
  • For RAK4631, Rewrite GPIO driver as event based driver.
  • For RAK4631, Add workaround in UDRV Powersave for Smart Farm example.
  • Use a compilation flag to turn off Transparent Mode.
  • Remove 5s delay in all the examples.
  • Remove LED operation in Smart Farm example.
  • Refine Smart Farm example to avoid program stuck in some condition.
  • For RAK4630, add one more UART console for it.
  • For RAK4630, disable NFC by default.
  • Remove RF test related RUI API.
  • Add AT command max length restriction.
  • Simplify the BLE UART example.
  • Disable FS related RUI API by default.
  • Add example annotation. Indentation modification.

Fixed

  • Bug #663: US915 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 uplnik in unexpected channels (US915)
  • Bug #670: [RAK3172] [DailyBuild.44] DUT response to confirmed downlink messages from unknown NS
  • Bug #639: RX2 and RXC abnormal in DR 10~13
  • Bug #645: DUT use confirmed uplink message type to response [Fpending = 1] and [Confirmed downlink] events.
  • Bug #675: [RAK3172] [DailyBuild.49] After change 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:
    • Fix the wrong usage of api.lorawan.rx2dl.get() because of unit change.
    • 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 #512: AnalogRead() 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 #541: After manually enter DFU Mode, uploading firmware failed
  • Bug #681: [RAK3172] [beta 1] API mode的payload長度超過13bytes無法接收
  • 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 #634: "JOIN 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 RX sensitivity issue by powering on antenna switch.
  • Bug #622: AT+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 #708: BLE Uart cant modify ADV_NAME
  • Bug #713: BLE ADV name have error code
  • Bug #714: BLE 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 #683: AU915 CLASSA 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 #700: NFC 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 #742: arduino export binary can't run
  • Bug #696: Arduino IDE export Hex file no bootload
  • Bug #737: [HW:RAK3172][Serial.lock()] we can only lock a serial which is in AT CMD mode, but doxygen does not show it.
  • Bug #738: [HW:RAK3172][Serial.lock()] when we lock a serial port, both two serial ports will be locked, and we can unlock both of them from either serial ports
  • Bug #745: [HW:RAK4631] System_Powersave crash
  • Bug #660: US915 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 teraterm, the API returns without matching either the terminator character or the length.
  • Bug #695: RuiV3 release not support NFC
  • Fix all the wrong usage of fallback handler in UHAL UART.
  • Fix RF test related 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 “” and “” field, expected return is “AT_PARAM_ERROR”, but get “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 #767: The serial port defaults to CUSTOM_MODE in Arduino, but not in RUI
  • Bug #742: arduino export binary can't run
  • Bug #696: Arduino 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 can not use in AT+DEVADDR, AT+NETID, AT+HWID
  • Bug #740: LoRa & BLE system crash
  • Bug #764: Serial.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 perform 'ATZ', DUT operate in [Baud Rate 115200] after 'ATZ', however, 'AT+BAUD=?' will return 921600.
  • Bug #782: [ATCMD]7.1_AT+ADR: Input 'ATZ' -> wait 10 seconds -> Input 'ADR=? -> wait 200ms -> 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 #757: P2P AT+PBR & AT+PFDEV AT_PARAM_ERROR and SW stuck issue
  • Bug #778: [ATCMD]6.8_AT+LPSEND : out of range input of “” and “” 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, DUT would be in un-locked status.
  • Fix using wrong linker script problem for Arduino IDE.
  • Fix the hang issue of Smart Farm example that is built by Arduino IDE.
  • Fix naming inconsistency of UART_MODE.

[3.1.0] - 2021-12-20

Added

  • Support Button DFU via UART1 TX pin.

Changed

  • Change AT+MASK behavior from 8 to be 8+1 for US915/AU915.
  • Remove power-consuming auto hello mechanism.
  • Change the behavior of AT+JN1DL/AT+JN2DL/AT+RX1DL/AT+RX2DL
  • Change the default port of transport mode from 130 to 1.
  • Change the output format of AT+LTIME.
  • Change the output format of LoRaWAN asynchronous event.
  • Change AT+DEUI to be AT+DEVEUI. Besides, change AT+DADDR to be AT+DEVADDR.
  • Modify AT+SN/AT+FSN/AT+FACTORY design.
  • Change transparent mode AT command from AT+PAM to ATD.
  • Remove the command name in all the reply content.
  • Change the delimiter of AT command from ',' to ':'.
  • Modify AT CMD handler of AT+JN1DL/AT+JN2DL/AT+RX1DL/AT+RX2DL/AT+RX2FQ for API mode.

Fixed

  • Bug #637: AT+LSTMULC will cause un-recoverable/un-stoppable print event
  • Bug #627: RX2 parameter may not be updated by NS via RXParamSetReq.
  • Bug #626: Over-length uplink frame will cause unexpected uplink event
  • Bug #621: Join process was stopped while 500kHz channels were all disabled.
  • Fix can't wakeup from external wakeup source problem.
  • Bug #628: DUT won't actively trigger a uplink event after receiving a confirmed downlink message.
  • Fix AT+BUILDTIME
  • Bug #512: AnalogRead() return should be 0~1023

[3.0.0] - 2021-10-25

Added

  • Provide RF test AT commands
    • AT+TRSSI
    • AT+TTONE
    • AT+TTX
    • AT+TRX
    • AT+TCONF
    • AT+TTH
    • AT+TOFF
    • AT+CERTIF
  • Support AT+FSN
  • Add api.lorawan.precv() for one-time P2P receiving.
  • Enhance nRF52840 bootloader: 1. Add ATR command in bootloader to restore factory default. 2. Typing "rui" within 1s after POR can enter DFU mode to recover a dead system.
  • Add a mechanism for factory to flash the default keys & IDs.
  • BLE Beacon API change:
    • Add api.ble.beacon.ibeacon.power.set(param)
  • Add an example for analog API.
  • Add an example for LoRaWAN OTAA.
  • Add an example for LED breathing.
  • Add AT+LPSEND.
  • Add api.lorawan.registerRecvCallback()
  • Add api.lorawan.registerJoinCallback()
  • Add api.lorawan.registerSendCallback()
  • Add low power design for AT+AUTOSLEEP.
  • Add api.lorawan.dcs.set()
  • Add api.lorawan.addmulc()/api.lorawan.rmvmulc()/api.lorawan.lstmulc()
  • Support API mode and operating mode switching.
  • Support BLE pairing.
  • Support NFC
  • Support spiffs filesystem.
  • Support FSK in LoRaWAN P2P mode.
  • Support encryption in LoRaWAN P2P mode.
  • Add example code into RUIv3 SDK.
  • Add AT+SLEEP command.
  • Add AT+RETY command.
  • Support Arduino standard library - SPI.
  • Add AT+TTH/AT+TTX/AT+TRX/AT+TCONF.
  • Support upgrading bootloader by nrfutil.
  • 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.
  • Implement Serial.printf().
  • Add AT+CHS/AT+CHE/AT+ARSSI/AT+BGW
  • AT+BAUD/AT+HWMODEL/AT+HWID AT commands.
  • AT+CHE AT command.
  • Support transparent mode.
  • Support recovery mode. (Add CLI into RUI v3 bootloader.)
  • Add AT+MASK AT command.
  • Add AT command AT+RECV.
  • Add asynchronous event log for Class A/B/C Downlink.
  • Add asynchronous event log for join process.
  • Support customized AT command registration.
  • Support read/write private user data from/to flash.
  • Support LoRaWAN Class B mode for WisBlock RAK4631
  • Support LoRaWAN multicast group for WisBlock RAK4631
  • Create a unified driver layer (UDRV) for all RAK hardware products
  • Support WisBlock Sensor RAK1901/RAK1902/RAK1903/RAK1904/RAK1906/RAK1910
  • Compatible with Arduino API
  • Add proprietary RUI API for BLE/LoRaWAN
  • Enhance power consumption in sleep mode for WisBlock RAK4631
  • Upgrade to Nordic SDK 17.0.2 with BLE stack S140 7.2.0
  • Support BLE Configuration/Beacon service/UART service/Customized service for WisBlock RAK4631
  • Support Arduino IDE/Visual Studio IDE for WisBlock RAK4631
  • Support DFU over USB/BLE/UART for WisBlock RAK4631
  • Support LoRaWAN Class A/C mode for WisBlock RAK4631
  • Support AT commands over USB/BLE/UART

Changed

  • Remove api.ble.setting.advertiseSlow.get()/api.ble.setting.advertiseSlow.set()/api.ble.setting.advertiseFast.get()/api.ble.setting.advertiseFast.set()
  • Change the delimiter of AT+ARSSI=? from ',' to ':'
  • Rename all the examples
  • Change the default setting of AT+DCS to be 1.
  • Remove AT+PRECV=? because it is an one-time function, just like AT+SLEEP.
  • Update LoRaWan_P2P example
  • Update LoRaWan_Class_B example
  • Rearch API mode: 1. Remove Src & Dst fields. 2. Change the order of Flag & Frame Type fields. 3. Use the number of set bits as checksum instead of CRC32.
  • Rearch example folders.
  • Temporarily remove AT+AUTOSLEEP(AT+LPM) command.
  • 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)
  • Change the default setting of LoRaWAN confirm mode to be ON.
  • Modify BLE UART example to support AT CMD.
  • Remove api.system.flash.get() & api.system.flash.set().
  • Modify the class RAKBleService to support customized 128-bit BLE UUID.
  • Add asynchronous event for AT+CFM.
  • 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.
  • Remove '#include "Arduino.h"' in every example.
  • Add api.ble.beacon.custom.payload.set() to support customized payload for BLE Beacon.
  • Remove sensor examples from SDK
  • Remove BLE HID from SDK
  • Remove AT+DELBONDS
  • Remove api.lorawan.recv()
  • Set the default value of AT+CFM to be off.
  • Rewrite delay function to avoid wasting MCU time.
  • Reduce bootloader size and align the start address of bootloader with legacy RAK4631 bootloader.
  • Separate AT+BUILDINFO into 2 AT commands AT+BUILDTIME & AT+REPOINFO.
  • Change the design of serial lock AT+LOCK & AT+PWORD.
  • Enhance the design of AT+MASK/AT+CHE/AT+CHS to fix coexistence issue.
  • Serial.begin() will only supports unsigned integer baudrate.
  • Enhance customized AT command registration.
  • Change AT+NWKID to AT+NETID because it describes network identifier (NetID) of 3 octets, rather than another network identifier (NwkID) of 7 bits.
  • Change the unit of AT+JN1DL/AT+JN2DL/AT+RX1DL/AT+RX2DL from milli-seconds to seconds.
  • Add AT_BUSY_ERROR handling for AT+BAND, AT+MASK & ATR.
  • Refine LoRaWAN initializaiton flow to reduce flash writing.
  • Remove AT+JN2DL= & AT+RX2DL= commands because jn2dl=jn1dl+1 & rx2dl=rx1dl+1.
  • Change AT command output format.
  • Change the behavior of AT+NJM/AT+SEND/AT+ADR/AT+PNM.
  • Rename the AT command AT+RESTORE to ATR.
  • Support Arduino library instead of built-in sensor API.

Fixed

  • Bug #529: 868Mhz 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: 1. wrong return code 2. 512 bytes limitation
  • Bug #598: Arduino Application Scenario with SmartFarm issue
  • Bug #536: 868Mhz CLASS B OTAA / ABP mode dowlink with pgslot issue
  • Fix ClassB 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|1|2} mismatch with get return value {ASCII:A|B|C}
  • Bug #583: [API Mode] at+recv=? could not get the latest received data
  • Bug #561: 868 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 bytes, but not 4 bytes as now
  • Add the default multicast group parameters for default B mode
  • Bug #570: 868 ABP when gateway set rx2dr to 4, end device can not receive downlink
  • Fix min()/max()/yield()
  • Fix api.lorawan.addmulc()/api.lorawan.rmvmulc()/api.lorawan.lstmulc()
  • Tune the base current for one-time sleep (5uA) & auto sleep (20uA).
  • Bug #538: 915Mhz 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] CONSOLE端顯示廣告有標頭無內容
  • 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 can not receive message after change Freq.
  • Bug #507: Multicast downlink message print multiple times
  • Bug #509: Can't begin again after Serial.end()
  • Bug #444: lorawan multicast C++ warpper not implement
  • Bug #448: lorawan arssi C++ warpper not implement
  • Bug #506: 868Mhz 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 zero length 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 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 softdevice 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: can not 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 ramdomly
  • 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 accept
  • Bug #396: at+txp set 8-15 will show at error in eu868
  • Bug #399: device address not as same as gateway in ABP mode
  • Bug #397: at+rx2fq show at error if input ramdomly
  • Bug #398: command atdfu should rename to at+boot
  • Bug #393: at+rx2dr error code not as same as document
  • Fix Class A/B/C downlink.
  • Bug #377: Arduino IDE verify code will encounter error until open log function