Wisblock RAK19007 and RAK7240CV2 Gateway

I am trying to field test my RAK7240CV2 gateway to see if at different places throughout my field site it has connectivity either 1) via SIM card or 2) via line of site with another Ethernet connected RAK7240CV2 gateway

Ideally, it would be great to collect data on signal strength at different coordinates, however that is not necessary. The only thing necessary is to test if the the gateway internet connected, i.e. is able to send any sort of end node data to the cloud. I also would like a cheap option and need one that can be delivered quickly before I go into the field

I am still extremely new to this, but I was looking at the Wisblock RAK19007 kit because it is cheap and ships fast on Amazon. Would that work for my purposes?

Welcome back to the forum @CLehnen
We have two connectivity range tester and two examples for DIY tester:

1) FieldTester RAK10701

FieldTester RAK10701
RAK10701 Docs

image

Pros:

  • IP65 enclosure
  • Big RGB LCD touch screen
  • Lot of connection information provided
  • Supported by WisToolBox for setup

Cons:

  • Requires a back-end to send connection info back to the device
    • RAKwireless WisGate with WisGateOS V2 and Fieldtester extension (Only Fieldtester Plus, coming soon)
    • Cloud backup connected to TTN, Chirpstack or Helium. A few other LoRaWAN LNS are supported as well, see documentation

2) FieldTester RAK10706

FieldTester RAK10706
RAK10706 Docs

Pros:

  • Small and lightweight
  • Supports different test modes
    • Fieldtester Mode: compatible with RAK10701-L)
    • LinkCheckReq function: Works with any LoRaWAN server, no need for back-end installation
    • LoRa P2P basic test function

Cons:

  • 3D printed enclosure, not waterproof
  • Small OLED screen
  • UI control with a single button interface (less comfortable, compared with RAK10702 Fieldtester)
  • Not supported by WisToolBox for setup

3) DIY option 1:

Build a RAK10706 FieldTester with WisBlock RAK19026 Base Board.
Required components:

Pros:

  • Same functionality as RAK10706
  • Small and lightweight
  • Supports different test modes
    • Fieldtester Mode: compatible with RAK10701-L)
    • LinkCheckReq function: Works with any LoRaWAN server, no need for back-end installation
    • LoRa P2P basic test function

Cons:

  • No enclosure provided
  • Small OLED screen
  • UI control with a single button interface (less comfortable, compared with RAK10702 Fieldtester)
  • Not supported by WisToolBox for setup

4) DIY option 2:

Build a Fieldtester with WisBlock modules. No UI to change settings without USB connection and serial terminal.
Required components:

Pros:

  • Similar functionality as RAK10706
  • Small and lightweight
  • Supports different test modes
    • Fieldtester Mode: compatible with RAK10701-L)
    • LinkCheckReq function: Works with any LoRaWAN server, no need for back-end installation
    • LoRa P2P basic test function

Cons:

  • No enclosure provided
  • Small OLED screen
  • No parameter changes in the field. Requires USB connection and serial terminal for changes.
  • Not supported by WisToolBox for setup

Hello,

Thank you very much for this thorough answer! The RAK10706 looks perfect for my future testing and I will purchase it in the future to make things easier

However, in my current situation I only had limited time to order and receive the equipment I needed. These were the only items that arrived in time:

  • Base RAK19007
  • Core RAK4631
  • LoRa antenna
  • Bluetooth antenna
  • 96 Inch OLED Display Module 128x64 LCD Screen Board SSD1315
  • 3.7V 5000mAh Lithium Polymer Rechargeable Battery
  • RYS352A +3.3V UART GNSS interface

Although not the ideal equipment to make a DIY module like the list you provided, do you think it would be still possible to make a good-enough DIY tester from the equipment I have to test 1) internet connectivity of my RAK7240CV2 gateway using a SIM card and 2) if I remove the SIM card if my field deployed gateway can forward data to an Ethernet connected RAK7240CV2 gateway via line of sight?

If so, do you have any tips on how to accomplish this?

Yes, it can work, even without the GNSS module. The RAK10706 firmware I shared does not support a GNSS module with UART, it is written for the RAK12500 with I2C connection.
But for basic LinkCheckReq testing (without distances/location to gateway) it will work.

With a RAK10706 you will get in addition the distances/location of the tester and gateways and the option to write the test results to the SD card on the device.

For a quick test, you can assemble the RAK19007, RAK4631 and the display and flash the firmware.
But the RAK10706 firmware is for RUI3 based RAK4631’s, so you need to change the bootloader as shown in our Documentation Center => Updating RAK4631 to RUI3

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?

If you downloaded only the INO file, that is not enough.
You need all .INO, .cpp and .h files from that repo:

Thank you very much! That seems to have worked following these steps:

  • 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.
  • 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
  • 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 and unzip the .ino repo:
  • Rename unzipped folder to “RUI3-Signal-Meter-P2P-LPWAN” (to match .ino file name)
  • In Arduino IDE:
    • Install libraries:
      • RUI3-Arduino-Library
      • nRF_SSD1306
    • 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.

I received this as the final output:

...
2025-05-01 07:16:13,232 Serial: Streaming Data: len:4020 offset:327680 crc:0xD21FA3E6
2025-05-01 07:16:14,311 Image sent in 14.02082633972168s
Device programmed.
CompletedProcess
...

So it looks like it worked

Now I guess I am confused how I actually see if packets are actually reaching the cloud from my device. The end goal is to verify if my gateway can forward packets via 1) LTE (very sparse in this area) and/or 2) line of sight to an Ethernet connected gateway at my remote site.

Here is what I see locally on WisGate:

And I see something similar on WisDM with my device showing online (as I am currently testing the gateway via WiFi)

So the gateway is connected to the cloud but doesn’t seem to be receiving packets from my end device. Is there another step I am missing? And once I am doing the field testing, will I need to add another step on the backend, like TTN, to view packets later via WiFi that were successfully sent to the cloud via LTE and/or line of sight? Thank you for your patience, I am new to this and trying to understand it

Did you register the RAK10706 with its DevEUI, AppEUI and AppKey on the LoRaWAN server? Your screen shot shows zero end devices.
Here is a guide: LoRaWAN server configuration for RAK10706 signal meter
The guide doesn’t cover the usage of the internal LoRaWAN server. There is a separate guide for WisGate OS2: Add Devices

Hello, thank you. I set my gateway as a packet folder and followed this (except I used the url recommended when I set up my gateway in TTN): Connect RAK7240 in Packet Forwarder Mode | The Things Stack for LoRaWAN

My device is still not showing up (I don’t see any packets received) but I can now see my gateway live on TTN

Many things to check.

  1. LoRaWAN region must be setup same on the end device, gateway and LNS

  2. If US915 or AU915, make sure you set the same subband on all devices

  3. DevEUI, AppEUI and APPKey of the device are the same in the LNS application

  4. Check if the device is sending its join request
    On the gateway, go to Overview => Packet capture and check if you see the join request from the device

There should be a join request (yellow icon) and a join accept (green icon)

Hello,

Great, thank you! Looks like I am very close then. I can see the device trying to join but it is being refused:

I am not sure how to troubleshoot that further

It should all be US915. I not sure how to double check that on my end device, but everywhere else (WisGate and TTN) those are set correctly.

Same with the DevEUI, AppEUI and AppKey’s of my device, they are the same on the device and on TTN. DevEUI I got from reading the physical chip, JoinEUI I set as 0000000000000000 default, and AppKey I autogenerated using TTN

Something is wrong with the connection between your gateway and the LNS:

Connection between your gateway and the LNS has a problem.

Thank you. I am trying to switch from packet forwarding to a basics station in case that helps. I am using a Starlink so perhaps it is blocking something when set-up for packet forwarding.

I do see that my gateway is online on TTN as both a packet forwarder and now as a basics station

I tried switching both gateways to a basics station but I am still having the same issue. Connected on TTN but showing only join attempts, no join successes on WisGate. Do you have any other ideas to try?

I am hiking out for a field test today in case I can see any interaction between the gateways or between the field gateway and TTN in its current state.

Do you see the Join requests in TTN?
If you don’t see them there, then there is still a problem.

It should look like this in TTN:

If you see a “Accept join-request” and then errors, the errors should help to find the problem.
If there is no “Accept join-request” the connection between your gateway and TTN doesn’t work as it should.

Can you try to connect your gateway through a different connection than Starlink?

Hello,

Thank you. I am back from the field and will go out once more tomorrow. Unfortunately I can only do this testing on roaming Starlink WiFi. In the field I am testing if LTE works for my gateway (LTE does reach basecamp where I am using the Starlink WiFi) or if line of sight to an ethernet connected gateway works, but note that this ethernet connected gateway is connected to a residential Starlink as well.

Unfortunately I do not see “Accept join-request” in the data stream:

Here is the output if I click on the gateway connected:

{
  "name": "gs.gateway.connection.stats",
  "time": "2025-05-04T16:44:21.052673556Z",
  "identifiers": [
    {
      "gateway_ids": {
        "gateway_id": "gc-oficina",
        "eui": "<removed for privacy>"
      }
    }
  ],
  "data": {
    "@type": "type.googleapis.com/ttn.lorawan.v3.GatewayConnectionStats",
    "connected_at": "2025-05-04T16:21:20.761142607Z",
    "protocol": "semtechws/lbslns",
    "last_status_received_at": "2025-05-04T16:21:21.044514658Z",
    "last_status": {
      "versions": {
        "station": "2.0.6(linux/std)",
        "firmware": "",
        "package": "",
        "platform": "linux - Firmware  - Protocol 2"
      },
      "advanced": {
        "features": "rmtsh gps",
        "model": "linux"
      }
    },
    "gateway_remote_address": {
      "ip": "<removed for privacy>"
    }
  },
  "origin": "ip-10-101-12-60.us-west-1.compute.internal",
  "context": {
    "tenant-id": "CgN0dG4="
  },
  "visibility": {
    "rights": [
      "RIGHT_GATEWAY_LINK",
      "RIGHT_GATEWAY_STATUS_READ"
    ]
  },
  "unique_id": "01JTE2YCNW9K7R62CPM12CK8B8"
}

Does it still seem like there is an issue between my gateway and TTN if I am seeing the gateway successfully connecting on the TTN data feed despite no join requests?

I am noticing something odd when I download the packet capture sessions on WisGate, the AppEUIs and DevEUIs keep changing even though I only have the one device here, and none of the DevEUIs match the DevEUI physically printed on the board itself:

[{"airTime":330,"appEui":"5542C38000000000","codeRate":"4/5","crcStatus":"NO_CRC","dataRate":"SF12BW500","devAddr":"","devEui":"000000000000C361","fPort":-255,"frameCount":-255,"freq":927500000,"logObject":{"codr":"4/5","data":"AAAAAACAw0JVYcMAAAAAAAAAAAAAAAA=","datr":"SF12BW500","fType":0,"freq":927500000,"ipol":false,"mode":"on_gps","modu":"LORA","ncrc":true,"powe":26,"prea":10,"rfch":0,"size":23,"tmst":1333664153},"macDataFrame":{"MHDR":{"MType":"JOIN_REQUEST","Major":0,"RFU":0},"MIC":"00000000"},"modulation":"LORA","payloadSize":-255,"rssi":-255,"snr":-255,"timestamp":1746403566.438054,"txPower":26,"type":"JOIN_REQUEST","renderKey":"1746403566.43805410"},
{"airTime":330,"appEui":"5542C30000000000","codeRate":"4/5","crcStatus":"NO_CRC","dataRate":"SF12BW500","devAddr":"","devEui":"0000000000001E59","fPort":-255,"frameCount":-255,"freq":926900000,"logObject":{"codr":"4/5","data":"AAAAAAAAw0JVWR4AAAAAAAAAAAAAAAA=","datr":"SF12BW500","fType":0,"freq":926900000,"ipol":false,"mode":"on_gps","modu":"LORA","ncrc":true,"powe":26,"prea":10,"rfch":0,"size":23,"tmst":1205664167},"macDataFrame":{"MHDR":{"MType":"JOIN_REQUEST","Major":0,"RFU":0},"MIC":"00000000"},"modulation":"LORA","payloadSize":-255,"rssi":-255,"snr":-255,"timestamp":1746403438.4079127,"txPower":26,"type":"JOIN_REQUEST","renderKey":"1746403438.40791279"},
{"airTime":330,"appEui":"5542C28000000000","codeRate":"4/5","crcStatus":"NO_CRC","dataRate":"SF12BW500","devAddr":"","devEui":"000000000000F451","fPort":-255,"frameCount":-255,"freq":926300000,"logObject":{"codr":"4/5","data":"AAAAAACAwkJVUfQAAAAAAAAAAAAAAAA=","datr":"SF12BW500","fType":0,"freq":926300000,"ipol":false,"mode":"on_gps","modu":"LORA","ncrc":true,"powe":26,"prea":10,"rfch":0,"size":23,"tmst":1077664182},"macDataFrame":{"MHDR":{"MType":"JOIN_REQUEST","Major":0,"RFU":0},"MIC":"00000000"},"modulation":"LORA","payloadSize":-255,"rssi":-255,"snr":-255,"timestamp":1746403310.4083393,"txPower":26,"type":"JOIN_REQUEST","renderKey":"1746403310.40833938"},
{"airTime":330,"appEui":"5542C20000000000","codeRate":"4/5","crcStatus":"NO_CRC","dataRate":"SF12BW500","devAddr":"","devEui":"0000000000002969","fPort":-255,"frameCount":-255,"freq":925700000,"logObject":{"codr":"4/5","data":"AAAAAAAAwkJVaSkAAAAAAAAAAAAAAAA=","datr":"SF12BW500","fType":0,"freq":925700000,"ipol":false,"mode":"on_gps","modu":"LORA","ncrc":true,"powe":26,"prea":10,"rfch":0,"size":23,"tmst":949664196},"macDataFrame":{"MHDR":{"MType":"JOIN_REQUEST","Major":0,"RFU":0},"MIC":"00000000"},"modulation":"LORA","payloadSize":-255,"rssi":-255,"snr":-255,"timestamp":1746403182.4336529,"txPower":26,"type":"JOIN_REQUEST","renderKey":"1746403182.43365297"},
{"airTime":330,"appEui":"5542C18000000000","codeRate":"4/5","crcStatus":"NO_CRC","dataRate":"SF12BW500","devAddr":"","devEui":"000000000000AD01","fPort":-255,"frameCount":-255,"freq":925100000,"logObject":{"codr":"4/5","data":"AAAAAACAwUJVAa0AAAAAAAAAAAAAAAA=","datr":"SF12BW500","fType":0,"freq":925100000,"ipol":false,"mode":"on_gps","modu":"LORA","ncrc":true,"powe":26,"prea":10,"rfch":0,"size":23,"tmst":821664210},"macDataFrame":{"MHDR":{"MType":"JOIN_REQUEST","Major":0,"RFU":0},"MIC":"00000000"},"modulation":"LORA","payloadSize":-255,"rssi":-255,"snr":-255,"timestamp":1746403054.3952627,"txPower":26,"type":"JOIN_REQUEST","renderKey":"1746403054.39526276"},
{"airTime":330,"appEui":"5542C10000000000","codeRate":"4/5","crcStatus":"NO_CRC","dataRate":"SF12BW500","devAddr":"","devEui":"0000000000007039","fPort":-255,"frameCount":-255,"freq":924500000,"logObject":{"codr":"4/5","data":"AAAAAAAAwUJVOXAAAAAAAAAAAAAAAAA=","datr":"SF12BW500","fType":0,"freq":924500000,"ipol":false,"mode":"on_gps","modu":"LORA","ncrc":true,"powe":26,"prea":10,"rfch":0,"size":23,"tmst":693664224},"macDataFrame":{"MHDR":{"MType":"JOIN_REQUEST","Major":0,"RFU":0},"MIC":"00000000"},"modulation":"LORA","payloadSize":-255,"rssi":-255,"snr":-255,"timestamp":1746402926.4007156,"txPower":26,"type":"JOIN_REQUEST","renderKey":"1746402926.40071565"},
{"airTime":330,"appEui":"5542C08000000000","codeRate":"4/5","crcStatus":"NO_CRC","dataRate":"SF12BW500","devAddr":"","devEui":"0000000000009A31","fPort":-255,"frameCount":-255,"freq":923900000,"logObject":{"codr":"4/5","data":"AAAAAACAwEJVMZoAAAAAAAAAAAAAAAA=","datr":"SF12BW500","fType":0,"freq":923900000,"ipol":false,"mode":"on_gps","modu":"LORA","ncrc":true,"powe":26,"prea":10,"rfch":0,"size":23,"tmst":565664239},"macDataFrame":{"MHDR":{"MType":"JOIN_REQUEST","Major":0,"RFU":0},"MIC":"00000000"},"modulation":"LORA","payloadSize":-255,"rssi":-255,"snr":-255,"timestamp":1746402798.423021,"txPower":26,"type":"JOIN_REQUEST","renderKey":"1746402798.4230214"},
{"airTime":330,"appEui":"5542C00000000000","codeRate":"4/5","crcStatus":"NO_CRC","dataRate":"SF12BW500","devAddr":"","devEui":"0000000000004709","fPort":-255,"frameCount":-255,"freq":923300000,"logObject":{"codr":"4/5","data":"AAAAAAAAwEJVCUcAAAAAAAAAAAAAAAA=","datr":"SF12BW500","fType":0,"freq":923300000,"ipol":false,"mode":"on_gps","modu":"LORA","ncrc":true,"powe":26,"prea":10,"rfch":0,"size":23,"tmst":437664252},"macDataFrame":{"MHDR":{"MType":"JOIN_REQUEST","Major":0,"RFU":0},"MIC":"00000000"},"modulation":"LORA","payloadSize":-255,"rssi":-255,"snr":-255,"timestamp":1746402670.5823512,"txPower":26,"type":"JOIN_REQUEST","renderKey":"1746402670.58235123"},
{"airTime":330,"appEui":"5542BF8000000000","codeRate":"4/5","crcStatus":"NO_CRC","dataRate":"SF12BW500","devAddr":"","devEui":"0000000000006E08","fPort":-255,"frameCount":-255,"freq":927500000,"logObject":{"codr":"4/5","data":"AAAAAACAv0JVCG4AAAAAAAAAAAAAAAA=","datr":"SF12BW500","fType":0,"freq":927500000,"ipol":false,"mode":"on_gps","modu":"LORA","ncrc":true,"powe":26,"prea":10,"rfch":0,"size":23,"tmst":309664266},"macDataFrame":{"MHDR":{"MType":"JOIN_REQUEST","Major":0,"RFU":0},"MIC":"00000000"},"modulation":"LORA","payloadSize":-255,"rssi":-255,"snr":-255,"timestamp":1746402542.3843179,"txPower":26,"type":"JOIN_REQUEST","renderKey":"1746402542.38431792"},
{"airTime":330,"appEui":"5542BF0000000000","codeRate":"4/5","crcStatus":"NO_CRC","dataRate":"SF12BW500","devAddr":"","devEui":"000000000000B330","fPort":-255,"frameCount":-255,"freq":926900000,"logObject":{"codr":"4/5","data":"AAAAAAAAv0JVMLMAAAAAAAAAAAAAAAA=","datr":"SF12BW500","fType":0,"freq":926900000,"ipol":false,"mode":"on_gps","modu":"LORA","ncrc":true,"powe":26,"prea":10,"rfch":0,"size":23,"tmst":181664280},"macDataFrame":{"MHDR":{"MType":"JOIN_REQUEST","Major":0,"RFU":0},"MIC":"00000000"},"modulation":"LORA","payloadSize":-255,"rssi":-255,"snr":-255,"timestamp":1746402414.3973114,"txPower":26,"type":"JOIN_REQUEST","renderKey":"1746402414.39731141"}]

Unless you are using a custom application code which is changing the AppEUI, I have no explanation why there would be different AppEUI’s. The LoRaWAN drivers are not changing the AppEUI, DevEUI or any other credentials by itself.

Hmmm… this is very odd then. I was just using this .ino sketch unmodified:

Now I am trying to tweak it to hardcode in DevEUI (to match the physical one written on my card), AppEUI and Appkey to overcome this issue, but I am getting this issue from the unmodified .ino

That is my code and I am sure I am not changing any of the credentials in my code.
The code relies 100% on a setup through AT commands.