Thank you very much! This was very helpful, I had been heading in the wrong direction unfruitfully for the past few hours. Your solution worked very smoothly
I got this far without an issue:
- Create Folder & Download Files
- Create a folder:
C:\RAK4631 Bootloader to RUI v3
.
- Download & unzip these files into the folder:
- adafruit-nrfutil.exe
- rui3_nrf52840_bootloader
- Connect RAK4631-R via USB
- Check COM port via Device Manager (
Windows + X > Device Manager > Ports
).
- If not detected, double-click the reset button on the WisBlock Base.
- Bootloader Upgrade
- Open Command Prompt as Administrator.
- Navigate to the folder:
cd C:\RAK4631 Bootloader to RUI v3\
- Run this command (replace
<COM#>
with your actual port number):
adafruit-nrfutil.exe --verbose dfu serial --package rui3_nrf52840_bootloader_latest.zip --port COM<COM#> -b 115200 --singlebank --touch 1200
- After upgrade, note the new COM port number (e.g., COM31 to COM32).
- Download Firmware Files
- Download & place these files in the same folder:
- nrfutil.exe]
- rui3_rak4631_latest
- Firmware Update
- In Command Prompt (Administrator), navigate to the folder:
cd C:\RAK4631 Bootloader to RUI v3\
- Run this command (replace
<COM#>
with your actual port number):
nrfutil.exe dfu serial -pkg rui3_rak4631_latest.zip -p COM<COM#>
- Download Signal Meter Code
- Download the
.ino
file:
RUI3-Signal-Meter-P2P-LPWAN.ino
- Upload Code via Arduino IDE
- File > Open > Navigate to the downloaded
.ino
file.
- Double-click the restart button on the board.
- Tools > Board > WisBlock Boards > Connect the correct COM port for RAK4631.
- Upload the script.
However when I tried to upload the script I got this error:
C:\RAK4631 Bootloader to RUI v3\RUI3-Signal-Meter-P2P-LPWAN\RUI3-Signal-Meter-P2P-LPWAN.ino: In function 'void send_packet(void*)':
C:\RAK4631 Bootloader to RUI v3\RUI3-Signal-Meter-P2P-LPWAN\RUI3-Signal-Meter-P2P-LPWAN.ino:53:3: error: 'MYLOG' was not declared in this scope
53 | MYLOG("APP", "Send packet");
| ^~~~~
C:\RAK4631 Bootloader to RUI v3\RUI3-Signal-Meter-P2P-LPWAN\RUI3-Signal-Meter-P2P-LPWAN.ino:72:3: error: 'MYLOG' was not declared in this scope
72 | MYLOG("APP", "Not joined, don't send packet");
| ^~~~~
C:\RAK4631 Bootloader to RUI v3\RUI3-Signal-Meter-P2P-LPWAN\RUI3-Signal-Meter-P2P-LPWAN.ino: In function 'void handle_display(void*)':
C:\RAK4631 Bootloader to RUI v3\RUI3-Signal-Meter-P2P-LPWAN\RUI3-Signal-Meter-P2P-LPWAN.ino:90:3: error: 'rak1921_clear' was not declared in this scope
90 | rak1921_clear();
| ^~~~~~~~~~~~~
C:\RAK4631 Bootloader to RUI v3\RUI3-Signal-Meter-P2P-LPWAN\RUI3-Signal-Meter-P2P-LPWAN.ino:92:3: error: 'rak1921_write_header' was not declared in this scope
92 | rak1921_write_header(line_str);
| ^~~~~~~~~~~~~~~~~~~~
C:\RAK4631 Bootloader to RUI v3\RUI3-Signal-Meter-P2P-LPWAN\RUI3-Signal-Meter-P2P-LPWAN.ino:106:7: error: 'g_custom_parameters' was not declared in this scope
106 | if (g_custom_parameters.test_mode == 1)
| ^~~~~~~~~~~~~~~~~~~
C:\RAK4631 Bootloader to RUI v3\RUI3-Signal-Meter-P2P-LPWAN\RUI3-Signal-Meter-P2P-LPWAN.ino:111:5: error: 'rak1921_write_line' was not declared in this scope
111 | rak1921_write_line(0, 0, line_str);
| ^~~~~~~~~~~~~~~~~~
C:\RAK4631 Bootloader to RUI v3\RUI3-Signal-Meter-P2P-LPWAN\RUI3-Signal-Meter-P2P-LPWAN.ino:124:5: error: 'rak1921_display' was not declared in this scope
124 | rak1921_display();
| ^~~~~~~~~~~~~~~
C:\RAK4631 Bootloader to RUI v3\RUI3-Signal-Meter-P2P-LPWAN\RUI3-Signal-Meter-P2P-LPWAN.ino:135:5: error: 'rak1921_write_line' was not declared in this scope
135 | rak1921_write_line(0, 0, line_str);
| ^~~~~~~~~~~~~~~~~~
C:\RAK4631 Bootloader to RUI v3\RUI3-Signal-Meter-P2P-LPWAN\RUI3-Signal-Meter-P2P-LPWAN.ino:148:5: error: 'rak1921_display' was not declared in this scope
148 | rak1921_display();
| ^~~~~~~~~~~~~~~
C:\RAK4631 Bootloader to RUI v3\RUI3-Signal-Meter-P2P-LPWAN\RUI3-Signal-Meter-P2P-LPWAN.ino:166:4: error: 'rak1921_write_line' was not declared in this scope
166 | rak1921_write_line(0, 0, line_str);
| ^~~~~~~~~~~~~~~~~~
C:\RAK4631 Bootloader to RUI v3\RUI3-Signal-Meter-P2P-LPWAN\RUI3-Signal-Meter-P2P-LPWAN.ino:236:4: error: 'rak1921_write_line' was not declared in this scope
236 | rak1921_write_line(3, 0, line_str);
| ^~~~~~~~~~~~~~~~~~
C:\RAK4631 Bootloader to RUI v3\RUI3-Signal-Meter-P2P-LPWAN\RUI3-Signal-Meter-P2P-LPWAN.ino:239:4: error: 'rak1921_display' was not declared in this scope
239 | rak1921_display();
| ^~~~~~~~~~~~~~~
C:\RAK4631 Bootloader to RUI v3\RUI3-Signal-Meter-P2P-LPWAN\RUI3-Signal-Meter-P2P-LPWAN.ino:248:4: error: 'rak1921_write_line' was not declared in this scope
248 | rak1921_write_line(0, 0, line_str);
| ^~~~~~~~~~~~~~~~~~
C:\RAK4631 Bootloader to RUI v3\RUI3-Signal-Meter-P2P-LPWAN\RUI3-Signal-Meter-P2P-LPWAN.ino:254:4: error: 'rak1921_display' was not declared in this scope
254 | rak1921_display();
| ^~~~~~~~~~~~~~~
C:\RAK4631 Bootloader to RUI v3\RUI3-Signal-Meter-P2P-LPWAN\RUI3-Signal-Meter-P2P-LPWAN.ino:263:4: error: 'rak1921_write_line' was not declared in this scope
263 | rak1921_write_line(0, 0, line_str);
| ^~~~~~~~~~~~~~~~~~
C:\RAK4631 Bootloader to RUI v3\RUI3-Signal-Meter-P2P-LPWAN\RUI3-Signal-Meter-P2P-LPWAN.ino:269:4: error: 'rak1921_display' was not declared in this scope
269 | rak1921_display();
| ^~~~~~~~~~~~~~~
C:\RAK4631 Bootloader to RUI v3\RUI3-Signal-Meter-P2P-LPWAN\RUI3-Signal-Meter-P2P-LPWAN.ino:279:4: error: 'rak1921_write_line' was not declared in this scope
279 | rak1921_write_line(0, 0, line_str);
| ^~~~~~~~~~~~~~~~~~
C:\RAK4631 Bootloader to RUI v3\RUI3-Signal-Meter-P2P-LPWAN\RUI3-Signal-Meter-P2P-LPWAN.ino:362:4: error: 'rak1921_display' was not declared in this scope
362 | rak1921_display();
| ^~~~~~~~~~~~~~~
C:\RAK4631 Bootloader to RUI v3\RUI3-Signal-Meter-P2P-LPWAN\RUI3-Signal-Meter-P2P-LPWAN.ino: In function 'void send_cb_lpw(int32_t)':
C:\RAK4631 Bootloader to RUI v3\RUI3-Signal-Meter-P2P-LPWAN\RUI3-Signal-Meter-P2P-LPWAN.ino:437:3: error: 'MYLOG' was not declared in this scope
437 | MYLOG("APP", "LMC status %d\n", RAK_LORAMAC_STATUS_OK);
| ^~~~~
C:\RAK4631 Bootloader to RUI v3\RUI3-Signal-Meter-P2P-LPWAN\RUI3-Signal-Meter-P2P-LPWAN.ino: In function 'void setup()':
C:\RAK4631 Bootloader to RUI v3\RUI3-Signal-Meter-P2P-LPWAN\RUI3-Signal-Meter-P2P-LPWAN.ino:479:45: error: 'SW_VERSION_0' was not declared in this scope
479 | sprintf(line_str, "RUI3_Tester_V%d.%d.%d", SW_VERSION_0, SW_VERSION_1, SW_VERSION_2);
| ^~~~~~~~~~~~
C:\RAK4631 Bootloader to RUI v3\RUI3-Signal-Meter-P2P-LPWAN\RUI3-Signal-Meter-P2P-LPWAN.ino:479:59: error: 'SW_VERSION_1' was not declared in this scope
479 | sprintf(line_str, "RUI3_Tester_V%d.%d.%d", SW_VERSION_0, SW_VERSION_1, SW_VERSION_2);
| ^~~~~~~~~~~~
C:\RAK4631 Bootloader to RUI v3\RUI3-Signal-Meter-P2P-LPWAN\RUI3-Signal-Meter-P2P-LPWAN.ino:479:73: error: 'SW_VERSION_2' was not declared in this scope
479 | sprintf(line_str, "RUI3_Tester_V%d.%d.%d", SW_VERSION_0, SW_VERSION_1, SW_VERSION_2);
| ^~~~~~~~~~~~
C:\RAK4631 Bootloader to RUI v3\RUI3-Signal-Meter-P2P-LPWAN\RUI3-Signal-Meter-P2P-LPWAN.ino:484:13: error: 'init_rak1921' was not declared in this scope
484 | has_oled = init_rak1921();
| ^~~~~~~~~~~~
C:\RAK4631 Bootloader to RUI v3\RUI3-Signal-Meter-P2P-LPWAN\RUI3-Signal-Meter-P2P-LPWAN.ino:488:3: error: 'rak1921_write_header' was not declared in this scope
488 | rak1921_write_header(line_str);
| ^~~~~~~~~~~~~~~~~~~~
C:\RAK4631 Bootloader to RUI v3\RUI3-Signal-Meter-P2P-LPWAN\RUI3-Signal-Meter-P2P-LPWAN.ino:517:3: error: 'MYLOG' was not declared in this scope
517 | MYLOG("APP", "No OLED found");
| ^~~~~
C:\RAK4631 Bootloader to RUI v3\RUI3-Signal-Meter-P2P-LPWAN\RUI3-Signal-Meter-P2P-LPWAN.ino:521:7: error: 'init_status_at' was not declared in this scope
521 | if (!init_status_at())
| ^~~~~~~~~~~~~~
C:\RAK4631 Bootloader to RUI v3\RUI3-Signal-Meter-P2P-LPWAN\RUI3-Signal-Meter-P2P-LPWAN.ino:523:3: error: 'MYLOG' was not declared in this scope
523 | MYLOG("APP", "Failed to initialize Status AT command");
| ^~~~~
C:\RAK4631 Bootloader to RUI v3\RUI3-Signal-Meter-P2P-LPWAN\RUI3-Signal-Meter-P2P-LPWAN.ino:525:7: error: 'init_interval_at' was not declared in this scope
525 | if (!init_interval_at())
| ^~~~~~~~~~~~~~~~
C:\RAK4631 Bootloader to RUI v3\RUI3-Signal-Meter-P2P-LPWAN\RUI3-Signal-Meter-P2P-LPWAN.ino:527:3: error: 'MYLOG' was not declared in this scope
527 | MYLOG("APP", "Failed to initialize Send Interval AT command");
| ^~~~~
C:\RAK4631 Bootloader to RUI v3\RUI3-Signal-Meter-P2P-LPWAN\RUI3-Signal-Meter-P2P-LPWAN.ino:529:7: error: 'init_test_mode_at' was not declared in this scope
529 | if (!init_test_mode_at())
| ^~~~~~~~~~~~~~~~~
C:\RAK4631 Bootloader to RUI v3\RUI3-Signal-Meter-P2P-LPWAN\RUI3-Signal-Meter-P2P-LPWAN.ino:531:3: error: 'MYLOG' was not declared in this scope
531 | MYLOG("APP", "Failed to initialize Test Mode AT command");
| ^~~~~
C:\RAK4631 Bootloader to RUI v3\RUI3-Signal-Meter-P2P-LPWAN\RUI3-Signal-Meter-P2P-LPWAN.ino:535:7: error: 'get_at_setting' was not declared in this scope
535 | if (!get_at_setting())
| ^~~~~~~~~~~~~~
C:\RAK4631 Bootloader to RUI v3\RUI3-Signal-Meter-P2P-LPWAN\RUI3-Signal-Meter-P2P-LPWAN.ino:537:3: error: 'MYLOG' was not declared in this scope
537 | MYLOG("APP", "Failed to read saved custom settings");
| ^~~~~
C:\RAK4631 Bootloader to RUI v3\RUI3-Signal-Meter-P2P-LPWAN\RUI3-Signal-Meter-P2P-LPWAN.ino:541:10: error: 'g_custom_parameters' was not declared in this scope
541 | switch (g_custom_parameters.test_mode)
| ^~~~~~~~~~~~~~~~~~~
C:\RAK4631 Bootloader to RUI v3\RUI3-Signal-Meter-P2P-LPWAN\RUI3-Signal-Meter-P2P-LPWAN.ino:548:4: error: 'rak1921_write_line' was not declared in this scope
548 | rak1921_write_line(0, 0, line_str);
| ^~~~~~~~~~~~~~~~~~
C:\RAK4631 Bootloader to RUI v3\RUI3-Signal-Meter-P2P-LPWAN\RUI3-Signal-Meter-P2P-LPWAN.ino:551:4: error: 'rak1921_display' was not declared in this scope
551 | rak1921_display();
| ^~~~~~~~~~~~~~~
C:\RAK4631 Bootloader to RUI v3\RUI3-Signal-Meter-P2P-LPWAN\RUI3-Signal-Meter-P2P-LPWAN.ino:553:7: error: 'MODE_LINKCHECK' was not declared in this scope; did you mean 'MLME_LINK_CHECK'?
553 | case MODE_LINKCHECK:
| ^~~~~~~~~~~~~~
| MLME_LINK_CHECK
C:\RAK4631 Bootloader to RUI v3\RUI3-Signal-Meter-P2P-LPWAN\RUI3-Signal-Meter-P2P-LPWAN.ino:556:7: error: 'MODE_CFM' was not declared in this scope
556 | case MODE_CFM:
| ^~~~~~~~
C:\RAK4631 Bootloader to RUI v3\RUI3-Signal-Meter-P2P-LPWAN\RUI3-Signal-Meter-P2P-LPWAN.ino:559:7: error: 'MODE_P2P' was not declared in this scope
559 | case MODE_P2P:
| ^~~~~~~~
C:\RAK4631 Bootloader to RUI v3\RUI3-Signal-Meter-P2P-LPWAN\RUI3-Signal-Meter-P2P-LPWAN.ino:567:7: error: 'g_custom_parameters' was not declared in this scope
567 | if (g_custom_parameters.send_interval != 0)
| ^~~~~~~~~~~~~~~~~~~
C:\RAK4631 Bootloader to RUI v3\RUI3-Signal-Meter-P2P-LPWAN\RUI3-Signal-Meter-P2P-LPWAN.ino:586:2: error: 'MYLOG' was not declared in this scope
586 | MYLOG("APP", "Start testing");
| ^~~~~
C:\RAK4631 Bootloader to RUI v3\RUI3-Signal-Meter-P2P-LPWAN\RUI3-Signal-Meter-P2P-LPWAN.ino: In function 'void set_cfm()':
C:\RAK4631 Bootloader to RUI v3\RUI3-Signal-Meter-P2P-LPWAN\RUI3-Signal-Meter-P2P-LPWAN.ino:606:2: error: 'MYLOG' was not declared in this scope
606 | MYLOG("APP", "Found CFM Mode");
| ^~~~~
C:\RAK4631 Bootloader to RUI v3\RUI3-Signal-Meter-P2P-LPWAN\RUI3-Signal-Meter-P2P-LPWAN.ino: In function 'void set_linkcheck()':
C:\RAK4631 Bootloader to RUI v3\RUI3-Signal-Meter-P2P-LPWAN\RUI3-Signal-Meter-P2P-LPWAN.ino:631:2: error: 'MYLOG' was not declared in this scope
631 | MYLOG("APP", "Found LinkCheck Mode");
| ^~~~~
C:\RAK4631 Bootloader to RUI v3\RUI3-Signal-Meter-P2P-LPWAN\RUI3-Signal-Meter-P2P-LPWAN.ino: In function 'void set_p2p()':
C:\RAK4631 Bootloader to RUI v3\RUI3-Signal-Meter-P2P-LPWAN\RUI3-Signal-Meter-P2P-LPWAN.ino:657:2: error: 'MYLOG' was not declared in this scope
657 | MYLOG("APP", "Found P2P Mode");
| ^~~~~
exit status 1
Compilation error: 'MYLOG' was not declared in this scope
Do you have any advice on how to overcome this issue?