PlatformIO upgrading target error

Hello, I recently bought RAK4631 with RAK19001 base board and Iam trying to make it working with PlatformIO. My problem is that, builded firmware wont upload to RAK4631 ref.

Processing wiscore_rak4631 (platform: nordicnrf52; board: wiscore_rak4631; framework: arduino)
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/nordicnrf52/wiscore_rak4631.html
PLATFORM: Nordic nRF52 (10.2.0) > WisCore RAK4631 Board
HARDWARE: NRF52840 64MHz, 243KB RAM, 796KB Flash
DEBUG: Current (jlink) External (jlink, stlink)
PACKAGES:
 - framework-arduinoadafruitnrf52 @ 1.10500.0 (1.5.0)
 - framework-cmsis @ 2.50700.210515 (5.7.0)
 - tool-adafruit-nrfutil @ 1.503.0 (5.3)
 - tool-bossac-nordicnrf52 @ 1.10901.201022 (1.9.1)
 - tool-openocd @ 3.1200.0 (12.0)
 - tool-sreccat @ 1.164.0 (1.64)
 - toolchain-gccarmnoneeabi @ 1.70201.0 (7.2.1)
Converting main.ino
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 13 compatible libraries
Scanning dependencies...
Dependency Graph
|-- Adafruit TinyUSB Library
|-- Wire @ 1.0
Building in release mode
Compiling .pio\build\wiscore_rak4631\lib8ec\Adafruit_TinyUSB_Arduino\arduino\Adafruit_TinyUSB_API.cpp.o
Compiling .pio\build\wiscore_rak4631\lib8ec\Adafruit_TinyUSB_Arduino\arduino\Adafruit_USBD_CDC.cpp.o
Compiling .pio\build\wiscore_rak4631\lib8ec\Adafruit_TinyUSB_Arduino\arduino\Adafruit_USBD_Device.cpp.o
Compiling .pio\build\wiscore_rak4631\lib8ec\Adafruit_TinyUSB_Arduino\arduino\Adafruit_USBH_Host.cpp.o
Compiling .pio\build\wiscore_rak4631\lib8ec\Adafruit_TinyUSB_Arduino\arduino\cdc\Adafruit_USBH_CDC.cpp.o
Compiling .pio\build\wiscore_rak4631\lib8ec\Adafruit_TinyUSB_Arduino\arduino\hid\Adafruit_USBD_HID.cpp.o
Compiling .pio\build\wiscore_rak4631\lib8ec\Adafruit_TinyUSB_Arduino\arduino\midi\Adafruit_USBD_MIDI.cpp.o
Compiling .pio\build\wiscore_rak4631\lib8ec\Adafruit_TinyUSB_Arduino\arduino\msc\Adafruit_USBD_MSC.cpp.o
Compiling .pio\build\wiscore_rak4631\lib8ec\Adafruit_TinyUSB_Arduino\arduino\msc\Adafruit_USBH_MSC.cpp.o
Compiling .pio\build\wiscore_rak4631\lib8ec\Adafruit_TinyUSB_Arduino\arduino\ports\esp32\Adafruit_TinyUSB_esp32.cpp.o
Compiling .pio\build\wiscore_rak4631\lib8ec\Adafruit_TinyUSB_Arduino\arduino\ports\nrf\Adafruit_TinyUSB_nrf.cpp.o
Compiling .pio\build\wiscore_rak4631\lib8ec\Adafruit_TinyUSB_Arduino\arduino\ports\rp2040\Adafruit_TinyUSB_rp2040.cpp.o
Compiling .pio\build\wiscore_rak4631\lib8ec\Adafruit_TinyUSB_Arduino\arduino\ports\samd\Adafruit_TinyUSB_samd.cpp.o
Compiling .pio\build\wiscore_rak4631\lib8ec\Adafruit_TinyUSB_Arduino\arduino\webusb\Adafruit_USBD_WebUSB.cpp.o
Compiling .pio\build\wiscore_rak4631\lib8ec\Adafruit_TinyUSB_Arduino\class\audio\audio_device.c.o
Compiling .pio\build\wiscore_rak4631\lib8ec\Adafruit_TinyUSB_Arduino\class\bth\bth_device.c.o
Compiling .pio\build\wiscore_rak4631\lib8ec\Adafruit_TinyUSB_Arduino\class\cdc\cdc_device.c.o
Compiling .pio\build\wiscore_rak4631\lib8ec\Adafruit_TinyUSB_Arduino\class\cdc\cdc_host.c.o
Compiling .pio\build\wiscore_rak4631\lib8ec\Adafruit_TinyUSB_Arduino\class\dfu\dfu_device.c.o
Compiling .pio\build\wiscore_rak4631\lib8ec\Adafruit_TinyUSB_Arduino\class\dfu\dfu_rt_device.c.o
Compiling .pio\build\wiscore_rak4631\lib8ec\Adafruit_TinyUSB_Arduino\class\hid\hid_device.c.o
Compiling .pio\build\wiscore_rak4631\lib8ec\Adafruit_TinyUSB_Arduino\class\hid\hid_host.c.o
Compiling .pio\build\wiscore_rak4631\lib8ec\Adafruit_TinyUSB_Arduino\class\midi\midi_device.c.o
Compiling .pio\build\wiscore_rak4631\lib8ec\Adafruit_TinyUSB_Arduino\class\msc\msc_device.c.o
Compiling .pio\build\wiscore_rak4631\lib8ec\Adafruit_TinyUSB_Arduino\class\msc\msc_host.c.o
Compiling .pio\build\wiscore_rak4631\lib8ec\Adafruit_TinyUSB_Arduino\class\net\ecm_rndis_device.c.o
Compiling .pio\build\wiscore_rak4631\lib8ec\Adafruit_TinyUSB_Arduino\class\net\ncm_device.c.o
Compiling .pio\build\wiscore_rak4631\lib8ec\Adafruit_TinyUSB_Arduino\class\usbtmc\usbtmc_device.c.o
Compiling .pio\build\wiscore_rak4631\lib8ec\Adafruit_TinyUSB_Arduino\class\vendor\vendor_device.c.o
Compiling .pio\build\wiscore_rak4631\lib8ec\Adafruit_TinyUSB_Arduino\class\video\video_device.c.o
Compiling .pio\build\wiscore_rak4631\lib8ec\Adafruit_TinyUSB_Arduino\common\tusb_fifo.c.o
Compiling .pio\build\wiscore_rak4631\lib8ec\Adafruit_TinyUSB_Arduino\device\usbd.c.o
Compiling .pio\build\wiscore_rak4631\lib8ec\Adafruit_TinyUSB_Arduino\device\usbd_control.c.o
Compiling .pio\build\wiscore_rak4631\lib8ec\Adafruit_TinyUSB_Arduino\host\hub.c.o
Compiling .pio\build\wiscore_rak4631\lib8ec\Adafruit_TinyUSB_Arduino\host\usbh.c.o
Compiling .pio\build\wiscore_rak4631\lib8ec\Adafruit_TinyUSB_Arduino\portable\chipidea\ci_hs\dcd_ci_hs.c.o
Compiling .pio\build\wiscore_rak4631\lib8ec\Adafruit_TinyUSB_Arduino\portable\chipidea\ci_hs\hcd_ci_hs.c.o
Compiling .pio\build\wiscore_rak4631\lib8ec\Adafruit_TinyUSB_Arduino\portable\microchip\samd\dcd_samd.c.o
Compiling .pio\build\wiscore_rak4631\lib8ec\Adafruit_TinyUSB_Arduino\portable\nordic\nrf5x\dcd_nrf5x.c.o
Compiling .pio\build\wiscore_rak4631\lib8ec\Adafruit_TinyUSB_Arduino\portable\raspberrypi\pio_usb\dcd_pio_usb.c.o
Compiling .pio\build\wiscore_rak4631\lib8ec\Adafruit_TinyUSB_Arduino\portable\raspberrypi\pio_usb\hcd_pio_usb.c.o
Compiling .pio\build\wiscore_rak4631\lib8ec\Adafruit_TinyUSB_Arduino\portable\raspberrypi\rp2040\dcd_rp2040.c.o
Compiling .pio\build\wiscore_rak4631\lib8ec\Adafruit_TinyUSB_Arduino\portable\raspberrypi\rp2040\hcd_rp2040.c.o
Compiling .pio\build\wiscore_rak4631\lib8ec\Adafruit_TinyUSB_Arduino\portable\raspberrypi\rp2040\rp2040_usb.c.o
Compiling .pio\build\wiscore_rak4631\lib8ec\Adafruit_TinyUSB_Arduino\tusb.c.o
Compiling .pio\build\wiscore_rak4631\src\main.ino.cpp.o
Compiling .pio\build\wiscore_rak4631\lib669\Wire\Wire_nRF52.cpp.o
Compiling .pio\build\wiscore_rak4631\FrameworkArduinoVariant\variant.cpp.o
Compiling .pio\build\wiscore_rak4631\FrameworkArduino\HardwarePWM.cpp.o
Compiling .pio\build\wiscore_rak4631\FrameworkArduino\IPAddress.cpp.o
Compiling .pio\build\wiscore_rak4631\FrameworkArduino\Print.cpp.o
Compiling .pio\build\wiscore_rak4631\FrameworkArduino\RingBuffer.cpp.o
Compiling .pio\build\wiscore_rak4631\FrameworkArduino\Stream.cpp.o
Compiling .pio\build\wiscore_rak4631\FrameworkArduino\Tone.cpp.o
Archiving .pio\build\wiscore_rak4631\libFrameworkArduinoVariant.a
Compiling .pio\build\wiscore_rak4631\FrameworkArduino\Uart.cpp.o
Compiling .pio\build\wiscore_rak4631\FrameworkArduino\WInterrupts.c.o
Compiling .pio\build\wiscore_rak4631\FrameworkArduino\WMath.cpp.o
Compiling .pio\build\wiscore_rak4631\FrameworkArduino\WString.cpp.o
Indexing .pio\build\wiscore_rak4631\libFrameworkArduinoVariant.a
Compiling .pio\build\wiscore_rak4631\FrameworkArduino\abi.cpp.o
Compiling .pio\build\wiscore_rak4631\FrameworkArduino\avr\dtostrf.c.o
Compiling .pio\build\wiscore_rak4631\FrameworkArduino\delay.c.o
Compiling .pio\build\wiscore_rak4631\FrameworkArduino\freertos\Source\croutine.c.o
Compiling .pio\build\wiscore_rak4631\FrameworkArduino\freertos\Source\event_groups.c.o
Compiling .pio\build\wiscore_rak4631\FrameworkArduino\freertos\Source\list.c.o
Compiling .pio\build\wiscore_rak4631\FrameworkArduino\freertos\Source\portable\MemMang\heap_3.c.o
Compiling .pio\build\wiscore_rak4631\FrameworkArduino\freertos\Source\queue.c.o
Compiling .pio\build\wiscore_rak4631\FrameworkArduino\freertos\Source\stream_buffer.c.o
Compiling .pio\build\wiscore_rak4631\FrameworkArduino\freertos\Source\tasks.c.o
Archiving .pio\build\wiscore_rak4631\lib669\libWire.a
Compiling .pio\build\wiscore_rak4631\FrameworkArduino\freertos\Source\timers.c.o
Compiling .pio\build\wiscore_rak4631\FrameworkArduino\freertos\portable\CMSIS\nrf52\port_cmsis.c.o
Indexing .pio\build\wiscore_rak4631\lib669\libWire.a
Compiling .pio\build\wiscore_rak4631\FrameworkArduino\freertos\portable\CMSIS\nrf52\port_cmsis_systick.c.o
Compiling .pio\build\wiscore_rak4631\FrameworkArduino\freertos\portable\GCC\nrf52\port.c.o
Compiling .pio\build\wiscore_rak4631\FrameworkArduino\hooks.c.o
Compiling .pio\build\wiscore_rak4631\FrameworkArduino\itoa.c.o
Compiling .pio\build\wiscore_rak4631\FrameworkArduino\linker\gcc_startup_nrf52.S.o
Compiling .pio\build\wiscore_rak4631\FrameworkArduino\linker\gcc_startup_nrf52840.S.o
Compiling .pio\build\wiscore_rak4631\FrameworkArduino\main.cpp.o
Compiling .pio\build\wiscore_rak4631\FrameworkArduino\new.cpp.o
Compiling .pio\build\wiscore_rak4631\FrameworkArduino\nordic\nrfx\drivers\src\nrfx_gpiote.c.o
Compiling .pio\build\wiscore_rak4631\FrameworkArduino\nordic\nrfx\drivers\src\nrfx_power.c.o
Compiling .pio\build\wiscore_rak4631\FrameworkArduino\nordic\nrfx\drivers\src\nrfx_pwm.c.o
Compiling .pio\build\wiscore_rak4631\FrameworkArduino\nordic\nrfx\drivers\src\nrfx_qspi.c.o
Compiling .pio\build\wiscore_rak4631\FrameworkArduino\nordic\nrfx\drivers\src\nrfx_spim.c.o
Compiling .pio\build\wiscore_rak4631\FrameworkArduino\nordic\nrfx\drivers\src\nrfx_spis.c.o
Compiling .pio\build\wiscore_rak4631\FrameworkArduino\nordic\nrfx\drivers\src\nrfx_timer.c.o
Compiling .pio\build\wiscore_rak4631\FrameworkArduino\nordic\nrfx\mdk\system_nrf52.c.o
Compiling .pio\build\wiscore_rak4631\FrameworkArduino\nordic\nrfx\mdk\system_nrf52840.c.o
Compiling .pio\build\wiscore_rak4631\FrameworkArduino\pulse.c.o
Compiling .pio\build\wiscore_rak4631\FrameworkArduino\pulse_asm.S.o
Compiling .pio\build\wiscore_rak4631\FrameworkArduino\rtos.cpp.o
Compiling .pio\build\wiscore_rak4631\FrameworkArduino\sysview\Config\SEGGER_SYSVIEW_Config_FreeRTOS.c.o
Compiling .pio\build\wiscore_rak4631\FrameworkArduino\sysview\SEGGER\SEGGER_RTT.c.o
Compiling .pio\build\wiscore_rak4631\FrameworkArduino\sysview\SEGGER\SEGGER_RTT_ASM_ARMv7M.S.o
Compiling .pio\build\wiscore_rak4631\FrameworkArduino\sysview\SEGGER\SEGGER_RTT_printf.c.o
Compiling .pio\build\wiscore_rak4631\FrameworkArduino\sysview\SEGGER\SEGGER_SYSVIEW.c.o
Compiling .pio\build\wiscore_rak4631\FrameworkArduino\sysview\SEGGER_SYSVIEW_FreeRTOS.c.o
Compiling .pio\build\wiscore_rak4631\FrameworkArduino\utility\AdaCallback.c.o
Compiling .pio\build\wiscore_rak4631\FrameworkArduino\utility\SoftwareTimer.cpp.o
Compiling .pio\build\wiscore_rak4631\FrameworkArduino\utility\adafruit_fifo.cpp.o
Compiling .pio\build\wiscore_rak4631\FrameworkArduino\utility\debug.cpp.o
Compiling .pio\build\wiscore_rak4631\FrameworkArduino\utility\utilities.c.o
Compiling .pio\build\wiscore_rak4631\FrameworkArduino\wiring.c.o
Compiling .pio\build\wiscore_rak4631\FrameworkArduino\wiring_analog.cpp.o
Compiling .pio\build\wiscore_rak4631\FrameworkArduino\wiring_analog_nRF52.c.o
Compiling .pio\build\wiscore_rak4631\FrameworkArduino\wiring_digital.c.o
Compiling .pio\build\wiscore_rak4631\FrameworkArduino\wiring_private.c.o
Compiling .pio\build\wiscore_rak4631\FrameworkArduino\wiring_shift.c.o
Archiving .pio\build\wiscore_rak4631\libFrameworkArduino.a
Indexing .pio\build\wiscore_rak4631\libFrameworkArduino.a
Linking .pio\build\wiscore_rak4631\firmware.elf
Checking size .pio\build\wiscore_rak4631\firmware.elf
Building .pio\build\wiscore_rak4631\firmware.hex
Advanced Memory Usage is available via "PlatformIO Home > Project Inspect"
RAM:   [          ]   2.9% (used 7176 bytes from 248832 bytes)
Flash: [=         ]   5.3% (used 43080 bytes from 815104 bytes)
Building .pio\build\wiscore_rak4631\firmware.zip
Zip created at .pio\build\wiscore_rak4631\firmware.zip
Configuring upload protocol...
AVAILABLE: jlink, nrfjprog, nrfutil, stlink
CURRENT: upload_protocol = nrfutil
Looking for upload port...
Using manually specified: COM5
Forcing reset using 1200bps open/close on port COM5
Waiting for the new upload port...
Uploading .pio\build\wiscore_rak4631\firmware.zip
Upgrading target on COM5 with DFU package D:\Documents\PlatformIO\Projects\snaduz\.pio\build\wiscore_rak4631\firmware.zip. Flow control is disabled, Single bank, Touch disabled

Failed to upgrade target. Error is: WriteFile failed (PermissionError(13, 'The device does not recognize the command.', None, 22))
Traceback (most recent call last):
  File "C:\Users\%USER\.platformio\packages\tool-adafruit-nrfutil\site-packages\nordicsemi\__main__.py", line 296, in serial
    dfu.dfu_send_images()
  File "C:\Users\%USER\.platformio\packages\tool-adafruit-nrfutil\site-packages\nordicsemi\dfu\dfu.py", line 235, in dfu_send_images
    self._dfu_send_image(HexType.APPLICATION, self.manifest.application)
  File "C:\Users\%USER\.platformio\packages\tool-adafruit-nrfutil\site-packages\nordicsemi\dfu\dfu.py", line 206, in _dfu_send_image
    self.dfu_transport.send_firmware(firmware)
  File "C:\Users\%USER\.platformio\packages\tool-adafruit-nrfutil\site-packages\nordicsemi\dfu\dfu_transport_serial.py", line 213, in send_firmware
    self.send_packet(pkt)
  File "C:\Users\%USER\.platformio\packages\tool-adafruit-nrfutil\site-packages\nordicsemi\dfu\dfu_transport_serial.py", line 241, in send_packet
    self.serial_port.write(bytearray(pkt.data))
  File "C:\Users\%USER\.platformio\packages\tool-adafruit-nrfutil\site-packages\serial\serialwin32.py", line 317, in write
    raise SerialException("WriteFile failed ({!r})".format(ctypes.WinError()))
serial.serialutil.SerialException: WriteFile failed (PermissionError(13, 'The device does not recognize the command.', None, 22))

Possible causes:
- Selected Bootloader version does not match the one on Bluefruit device.
    Please upgrade the Bootloader or select correct version in Tools->Bootloader.
- Baud rate must be 115200, Flow control must be off.
- Target is not in DFU mode. Ground DFU pin and RESET and release both to enter DFU mode.
==================================================================================== [SUCCESS] Took 14.38 seconds ====================================================================================
 *  Terminal will be reused by tasks, press any key to close it. 

I tryed like everything- change COM or cable, re-flash firmware (with RUI3 firm. its working fine), run vscode in administrator mode. Also iam seeing RAK as USB with 3 files inside ( CURRENT.UF2, INDEX, INFO_UF2) and the green LED is dimming on and off, the blue LED stays off, so it should mean that there is no issue with DFU mode.

firmware build from INFO_UF2:

      UF2 Bootloader 0.4.2 lib/nrfx (v2.0.0) lib/tinyusb (0.10.1-293-gaf8e5a90) lib/uf2 
      (remotes/origin/configupdate-9-gadbb8c7)
      Model: WisBlock RAK4631 Board
      Board-ID: WisBlock-RAK4631-Board
      Date: Dec  1 2021
      SoftDevice: S140 7.2.0

Programming on Windows, and as example i took some BLE example:

/**

   @file ble_uart.ino

   @author Bernd Giesecke ([email protected])

   @brief BLE example shows how to implement UART over BLE

   @version 0.1

   @date 2020-07-27

   @copyright Copyright (c) 2020

   @note RAK4631 GPIO mapping to nRF52840 GPIO ports

   RAK4631    <->  nRF52840

   WB_IO1     <->  P0.17 (GPIO 17)

   WB_IO2     <->  P1.02 (GPIO 34)

   WB_IO3     <->  P0.21 (GPIO 21)

   WB_IO4     <->  P0.04 (GPIO 4)

   WB_IO5     <->  P0.09 (GPIO 9)

   WB_IO6     <->  P0.10 (GPIO 10)

   WB_SW1     <->  P0.01 (GPIO 1)

   WB_A0      <->  P0.04/AIN2 (AnalogIn A2)

   WB_A1      <->  P0.31/AIN7 (AnalogIn A7)

 */

#include <Arduino.h>

#include <bluefruit.h>

#include <Wire.h>

// Forward declarations for functions

void ble_connect_callback(uint16_t conn_handle);

void ble_disconnect_callback(uint16_t conn_handle, uint8_t reason);

/**

   @brief  BLE UART service

   @note   Used for BLE UART communication

*/

BLEUart g_BleUart;

/** Flag if BLE UART client is connected */

bool g_BleUartConnected = false;

/**

   @brief Arduino setup function. Called once after power on or reset

*/

void setup()

{

    // Initialize built in green LED

    pinMode(LED_BUILTIN, OUTPUT);

    digitalWrite(LED_BUILTIN, HIGH);

    // Initialize Serial for debug output

    Serial.begin(115200);

    // Wait for USB Serial to be ready or terminal to be connected

    time_t timeout = millis(); // Timeout in case the system runs on its own

    // Waiting for Serial

    while (!Serial)

    {

        if ((millis() - timeout) < 5000)

        {

            // Blink the LED to show that we are alive

            delay(100);

            digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));

        }

        else

        {

            // Timeout while waiting for USB Serial

            break;

        }

    }

    Serial.println("================================");

    Serial.println("RAK4631 BLE UART example");

    Serial.println("================================");

    // Config the peripheral connection with maximum bandwidth

    // more SRAM required by SoftDevice

    // Note: All config***() function must be called before begin()

    Bluefruit.configPrphBandwidth(BANDWIDTH_MAX);

    Bluefruit.configPrphConn(92, BLE_GAP_EVENT_LENGTH_MIN, 16, 16);

    Bluefruit.begin(1, 0);

    // Set max power. Accepted values are: -40, -30, -20, -16, -12, -8, -4, 0, 4

    Bluefruit.setTxPower(4);

    // Set the BLE device name

    Bluefruit.setName("RAK4631_UART");

    Bluefruit.Periph.setConnectCallback(ble_connect_callback);

    Bluefruit.Periph.setDisconnectCallback(ble_disconnect_callback);

    // Configure and Start BLE Uart Service

    g_BleUart.begin();

    // Set up and start advertising

    // Advertising packet

    Bluefruit.Advertising.addFlags(BLE_GAP_ADV_FLAGS_LE_ONLY_GENERAL_DISC_MODE);

    Bluefruit.Advertising.addTxPower();

    Bluefruit.Advertising.addName();

    /* Start Advertising

     - Enable auto advertising if disconnected

     - Interval:  fast mode = 20 ms, slow mode = 152.5 ms

     - Timeout for fast mode is 30 seconds

     - Start(timeout) with timeout = 0 will advertise forever (until connected)

     For recommended advertising interval

     https://developer.apple.com/library/content/qa/qa1931/_index.html

    */

    Bluefruit.Advertising.restartOnDisconnect(true);

    Bluefruit.Advertising.setInterval(32, 244); // in unit of 0.625 ms

    Bluefruit.Advertising.setFastTimeout(30);   // number of seconds in fast mode

    Bluefruit.Advertising.start(0);             // 0 = Don't stop advertising after n seconds

}

/**

   @brief  Callback when client connects

   @param  conn_handle: Connection handle id

*/

void ble_connect_callback(uint16_t conn_handle)

{

    (void)conn_handle;

    g_BleUartConnected = true;

    Serial.println("BLE client connected");

}

/**

   @brief  Callback invoked when a connection is dropped

   @param  conn_handle: connection handle id

   @param  reason: disconnect reason

*/

void ble_disconnect_callback(uint16_t conn_handle, uint8_t reason)

{

    (void)conn_handle;

    (void)reason;

    g_BleUartConnected = false;

    Serial.println("BLE client disconnected");

}

/**

   @brief Arduino loop. Runs forever until power off or reset

*/

void loop()

{

    // Forward anything received from USB Serial to BLE UART

    if (Serial.available() && g_BleUartConnected)

    {

        g_BleUart.print(Serial.readString());

    }

    // Forward anything received from BLE UART to USB Serial

    if (g_BleUart.available())

    {

        Serial.print(g_BleUart.readString());

    }

}

platformio.ini:

[env:wiscore_rak4631]
platform = nordicnrf52
board = wiscore_rak4631
framework = arduino

project structure:

Thanks

Tested on different PC also with windows and same issue, platformIO was patched by this manual (https://github.com/RAKWireless/WisBlock/tree/master/PlatformIO). I installed embeded platform nordicnrf52, downloaded RAK_PATCH.zip extracted it to /.platformio/RAK_PACTH file and executed python file rak_patch .

And also tryed by command prompt with generated firmware.zip:

PS C:\RAK4631 Bootloader to RUI v3> .\adafruit-nrfutil.exe --verbose dfu serial --package .\firmware.zip --port COM5 -b 115200 --touch 1200
Upgrading target on COM5 with DFU package C:\RAK4631 Bootloader to RUI v3\firmware.zip. Flow control is disabled, Dual bank, Touch 1200
Touched serial port COM5
Opened serial port COM5
Starting DFU upgrade of type 4, SoftDevice size: 0, bootloader size: 0, application size: 120228
Sending DFU start packet
Sending DFU init packet
Sending firmware file

Failed to upgrade target. Error is: WriteFile failed (PermissionError(13, 'The device does not recognize the command.', None, 22))
Traceback (most recent call last):
  File "__main__.py", line 296, in serial
  File "dfu\dfu.py", line 235, in dfu_send_images
  File "dfu\dfu.py", line 206, in _dfu_send_image
  File "dfu\dfu_transport_serial.py", line 213, in send_firmware
  File "dfu\dfu_transport_serial.py", line 241, in send_packet
  File "serial\serialwin32.py", line 317, in write
serial.serialutil.SerialException: WriteFile failed (PermissionError(13, 'The device does not recognize the command.', None, 22))

Possible causes:
- Selected Bootloader version does not match the one on Bluefruit device.
    Please upgrade the Bootloader or select correct version in Tools->Bootloader.
- Baud rate must be 115200, Flow control must be off.
- Target is not in DFU mode. Ground DFU pin and RESET and release both to enter DFU mode.

So after like 10 hours of troubleshooting this, I tryed to flash bootloader from github (Releases · RAKWireless/WisBlock · GitHub) from this mention (RAK4631 Quick Start Guide | RAKwireless Documentation Center) and it starts working. Previous bootloader was from there ( https://downloads.rakwireless.com/#RUI/RUI3/Bootloader%20Upgrade/), I dont know if there is some difference between them because they are the same versions but by documentation it shouldnt.

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