Problem with RUI nRF Wisblock 4631 Compilation

Hello,

I am working with the RAK4631 and RAK5860 on the 5005 baseboard, programming the setup via the Arduino IDE. A key objective for my project is to minimize the power consumption of the entire system. I have successfully reduced the power usage of the RAK5860 by driving the ‘WB_IO1’ pin low to power it down. However, I am now looking to put the RAK4631 into a sleep mode.

I’ve noticed there are several commands related to entering low power mode, such as ‘AT+SLEEP’, which I intend to use for managing the sleep state via a timer. But it appears that this requires switching processor cores for execution. While programming for the RAK5860, I’ve been using the nRF board selection. Yet, I believe to utilize the ‘AT+SLEEP’ command, I need to select the RUI nRF 4631 board. Please correct me if this understanding is wrong.

However, I face an issue when I switch to the RUI nRF 4631 board and attempt to compile the LED breathing example; the compilation consistently fails. Here is the error message I encounter. I can confirm that the port is correctly selected. I believe I entered bootloader mode by double tapping the reset, so I’m not too sure what’s going on.

2024-03-24 13:47:05,443 Using board at serial port: COM4
2024-03-24 13:47:05,447 Sending Application image.
2024-03-24 13:47:09,051 No trigger interface found for device with serial number: 9F5DB9B136131E35, Product ID: 0x002A and Vendor ID: 0x239A

2024-03-24 13:47:09,051 Serial: Waiting 500 ms for device to enter bootloader 1/10 time
2024-03-24 13:47:09,564 Serial: Waiting 500 ms for device to enter bootloader 2/10 time
2024-03-24 13:47:10,079 Serial: Waiting 500 ms for device to enter bootloader 3/10 time
2024-03-24 13:47:10,591 Serial: Waiting 500 ms for device to enter bootloader 4/10 time
2024-03-24 13:47:11,104 Serial: Waiting 500 ms for device to enter bootloader 5/10 time
2024-03-24 13:47:11,615 Serial: Waiting 500 ms for device to enter bootloader 6/10 time
2024-03-24 13:47:12,127 Serial: Waiting 500 ms for device to enter bootloader 7/10 time
2024-03-24 13:47:12,634 Serial: Waiting 500 ms for device to enter bootloader 8/10 time
2024-03-24 13:47:13,149 Serial: Waiting 500 ms for device to enter bootloader 9/10 time
2024-03-24 13:47:13,657 Serial: Waiting 500 ms for device to enter bootloader 10/10 time
2024-03-24 13:47:14,170 Serial: Device is either not in bootloader mode, or using an unsupported bootloader.
2024-03-24 13:47:15,179 Serial: No ping response
2024-03-24 13:47:16,187 Serial: No ping response
...................
CompletedProcess(args=['C:\\Users\\katak\\AppData\\Local\\Arduino15\\packages\\rak_rui\\tools\\pc-nrfutil\\v6.1.3/nrfutil', '-v', '-v', '-v', 'dfu', 'serial', '--package', 'C:\\Users\\katak\\AppData\\Local\\Temp\\arduino\\sketches\\E3387AB73D6BA8E52AEF85DF8A376257/Arduino_Led_Breathing.ino.zip', '-p', 'COM4', '-b', '115200'], returncode=1)
Traceback (most recent call last):
  File "nordicsemi\__main__.py", line 1545, in <module>
  File "click\core.py", line 1137, in __call__
  File "click\core.py", line 1062, in main
  File "click\core.py", line 1668, in invoke
  File "click\core.py", line 1668, in invoke
  File "click\core.py", line 1404, in invoke
  File "click\core.py", line 763, in invoke
  File "nordicsemi\__main__.py", line 1063, in serial
  File "nordicsemi\__main__.py", line 980, in do_serial
  File "nordicsemi\dfu\dfu.py", line 127, in dfu_send_images
  File "nordicsemi\dfu\dfu.py", line 88, in _dfu_send_image
  File "nordicsemi\dfu\dfu_transport_serial.py", line 214, in open
pc_ble_driver_py.exceptions.NordicSemiException: No ping response after opening COM port
[34764] Failed to execute script '__main__' due to unhandled exception!

Good night,

First you need to be sure what kind of bootloader you have in your RAK4631:

  1. RAK4631-R: it is with RUI supported
  2. RAK4631: it is with Arduino BSP supported

Yes, when you do a double tapping, but it must to be applied fast, because a sinlge tapping it is only a reboot. When your bootloader is working fine, after a success double tapping, in the windows environment, you will see your micro-controller as a windows drive with a drive letter.

All this process is described in the paper: RAK4631-R WisBlock LPWAN Module

You have a similar for the Arduino BSP (it can be a, for example, VSCode/PlatformIO, not only a Arduino IDE): RAK4631 WisBlock LPWAN Module.

Both docs has a good description what is each one and in the RAK4631-R doc has a step-by-step how to make a 4631-R become a 4631, and how to back to a factory configuration if you need to remake the bootloader.

Try to do theses steps that I can help you in the next steps…

Cláudio

After reading your suggestions, let my clarify a little:

After looking at my device, I’m technically using the RAK4630 but I think it’s basically the same as the RAK4631 Arduino BSP version. It makes sense why using the nRF board selection works no problem in comparison to the RUI nRF board.

At the end of the day, I just want to be able to have controllability over the power consumption of the 4630. The only way I’ve seen so far is through the use of the associated AT commands, like AT+SLEEP: AT Commands

In order to use an AT+SLEEP for example, would I need to convert to the 4630 (aka 4631) to 4631-R? or can I just use the commands without converting anything? Hope this clarifies a little.

Best,
Alexi

Let´s go :slight_smile:

The ATs command support is possible in the RAK4631-R, it means that it has RUI or RUI3 support , both designed to have support for Lower Power WAN - LPWAN, with sleep and deep sleep options.

The RAK4631 don´t support AT command, but you can work with AWS FreeRTOS (it is free :slight_smile: ), to create Task control and define each Task (it can be a function ) will be put in “blocked” or " suspend": FreeRTOS API description

Take a look how to control the tasks in the FreeRTOS in the figure below

Is It better now?

Cláudio

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.