Updating RAK4631 to RUI3: no stable COM

Hello, I’m just getting started with the RAK modules

I bought a basic RAK4631 Meshtastic kit and a RAK272S and I wanted to set up a P2P link between these two modules. Communication between the two RAK modules doesn’t seem possible, although it appears to work if I use the RUI3 system on the RAK4631.

I followed the guide Updating the RAK4631 Arduino BSP to RUI3 (RAK4631-R WisBlock LoRaWAN Module DFU | Firmware & Bootloader Update). I am using Windows. The Bootloader Update via USB was successful, as well as the Firmware Update via USB for steps 1, 2, and 3. However, after that, when the RAK4631 is connected, Windows no longer detects the COM port. If I press the RESET button on the RAK4631, the COM port appears, but only for a few seconds.

How can I get a stable COM port recognized by Windows?

Welcome to RAK forum @lolo_b ,

RAK4631 Meshtastic should be able to RAK3272S via P2P as long as the parameters are the same (frequency, coding rate, spreading factor, etc.). You can use radiolib or sx126x-arduino library.

With regards to your upgrading to RUI3, were you able to send AT command? Also, what OS did you use during conversion?

Thanks for your answer. I’ll try using the RAK4631 with Meshtastic again.

When I upgraded to RUI3, I wasn’t able to send AT commands using RAK_SERIAL_PORT_TOOL_V1.2.1.

I’ll run some new tests this week or over the weekend, and I’ll keep you updated.

If the AT commands are not received, then your conversion failed. If you can still see it as COM port, you can try again to upload a FW. Otherwise, you will need external tool like Jlink or RAKDAP1 to upload the RUI3 firmware.

Hello again.
For the RAK4631, I have restored the initial configuration and downloaded the example: /**

  • @file LoRaP2P_TX.ino
  • @author rakwireless.com
  • @brief Transmitter node for LoRa point to point communication
  • @version 0.1
  • @date 2020-08-21
  • @copyright Copyright (c) 2020
  • @note RAK4631 GPIO mapping to nRF52840 GPIO ports
    */
    Seems to be working.

My problem now is programming the RAK3272S. I use the Arduino IDE and an ESP-01 adapter connected to my computer (Windows 11). AT commands seem to be working:

My issues are the radiolib or sx126x-arduino library.

example of error with radiolib: In file included from c:\Users\Utilisateur\Documents\Arduino\libraries\RadioLib\src/RadioLib.h:118,
from C:\Users\Utilisateur\AppData\Local\Temp.arduinoIDE-unsaved2026022-12512-1gcjorh.h1jy\Arduino_Serial\Arduino_Serial.ino:2:
c:\Users\Utilisateur\Documents\Arduino\libraries\RadioLib\src/protocols/LoRaWAN/LoRaWAN.h:487:28: error: ‘const LoRaWANBand_t AS923_2’ redeclared as different kind of entity
487 | extern const LoRaWANBand_t AS923_2;
| ^~~~~~~

and for SX126x-Arduino:
WARNING: library SX126x-Arduino claims to run on esp32, nordicnrf52, esp8266, nrf52, mbed_rp2040, rp2040 architecture(s) and may be incompatible with your current board which runs on stm32 architecture(s).
In file included from c:\Users\Utilisateur\Documents\Arduino\libraries\SX126x-Arduino\src/boards/mcu/board.h:49,
from c:\Users\Utilisateur\Documents\Arduino\libraries\SX126x-Arduino\src/SX126x-Arduino.h:20,
from c:\Users\Utilisateur\Documents\Arduino\libraries\SX126x-Arduino\src/SX126x-RAK4630.h:1,
from C:\Users\Utilisateur\AppData\Local\Temp.arduinoIDE-unsaved2026022-12512-1gcjorh.h1jy\Arduino_Serial\Arduino_Serial.ino:2:
c:\Users\Utilisateur\Documents\Arduino\libraries\SX126x-Arduino\src/radio/sx126x/sx126x.h:465:21: error: ‘RADIO_GET_STATUS’ conflicts with a previous declaration
465 | RADIO_GET_STATUS = 0xC0,
| ^~~~
In file included from C:\Users\Utilisateur\AppData\Local\Arduino15\packages\rak_rui\hardware\stm32\4.2.3/variants/WisDuo_RAK3272-SiP_Board/stm32wlxx_hal_conf.h:296,
from C:\Users\Utilisateur\AppData\Local\Arduino15\packages\rak_rui\hardware\stm32\4.2.3/cores/STM32WLE/external/STM32CubeWL/Drivers/STM32WLxx_HAL_Driver/Inc/stm32wlxx_hal.h:30,
from C:\Users\Utilisateur\AppData\Local\Arduino15\packages\rak_rui\hardware\stm32\4.2.3/cores/STM32WLE/external/STM32CubeWL/Drivers/CMSIS/Device/ST/STM32WLxx/Include/stm32wlxx.h:265,
from C:\Users\Utilisateur\AppData\Local\Arduino15\packages\rak_rui\hardware\stm32\4.2.3/variants/WisDuo_RAK3272-SiP_Board/PortNames.h:33,
from C:\Users\Utilisateur\AppData\Local\Arduino15\packages\rak_rui\hardware\stm32\4.2.3/variants/WisDuo_RAK3272-SiP_Board/PinNames.h:5,
from C:\Users\Utilisateur\AppData\Local\Arduino15\packages\rak_rui\hardware\stm32\4.2.3/variants/WisDuo_RAK3272-SiP_Board/variant.h:14,
from C:\Users\Utilisateur\AppData\Local\Arduino15\packages\rak_rui\hardware\stm32\4.2.3/variants/WisDuo_RAK3272-SiP_Board/pin_define.h:4,

I try severals codes proposed by chatgpt, Claude, gemini and grok but always the same issues. Could you give the right code compatible with our example LoRaP2P_TX.ino for RAK4631?

RAK3272 uses RUI3. You can use this quick start guide. The SX126x-Arduino will not run on RAK3272. It is based on STM32WL.

Hello, thanks!

It works! I adapted the Kongduino RUI3 LoRa P2P example to be RX-only. Communication between the RAK4631 and RAK3272 is working well.