868 MHz Wio-WM1110 Dev Kit

TTN version: TTNv3 / TTS SANDBOX
Frequency: Europe 863-870 MHz (SF9 for RX2 – recommended)
Activation: OTAA
Device Class: Class A
LoRaWAN: 1.0.4
Last revision: December 14, 2024

WM1110 Dev Kit is based on Wio-WM1110 Wireless Module, integrates Semtech’s LoRa® transceiver and a multi-purpose radio front-end for geolocation. The LoRa® transceiver provides low-power, high-sensitivity network coverage, while GNSS (GPS/Beidou) and Wi-Fi scanning offer all-round location coverage. While also providing connectivity options for a variety of peripherals. See complete specification here.

Prepare

  • Wio-WM1110 Dev Kit
  • PC + USB cable Type-C
  • J-Link Debug Programmer

 

Get Started with Wio-WM1110 Dev Kit

  1. Follow the instructions provided on this website: Get Started with Wio-WM1110 Dev Kit and try the first tutorial: Running a First Test
  2. If you get the error “.text section is larger than specified size” or “.rodata section is larger than specified size” when running Build and Run, follow the fix below.
  3. To get LoRaWAN 1.0.4 up and running, follow the instructions below.

 

Section is larger than specified size – error fix

  1. Right-click on the project name and select Edit Section Placement.
  2. Change line
    <ProgramSection alignment="4" load="Yes" name=".text" size="0x4" />
    to
    <ProgramSection alignment="4" load="Yes" name=".text" />
  3. Change line
    <ProgramSection alignment="4" load="Yes" name=".rodata" size="0x4" />
    to
    <ProgramSection alignment="4" load="Yes" name=".rodata" />
  4. Save the changes and run Build and Run again.

 

Activation

Over The Air Activation (OTAA) – the most secure and recommended activation method for end devices. Devices perform a join procedure with the network, during which a dynamic device address is assigned and security keys are negotiated with the device.

Activation By Personalization (ABP) – requires hardcoding the device address as well as the security keys in the device. ABP is less secure than OTAA and also has the downside that devices can not switch network providers without manually changing keys in the device.

See the documentation for more information on activation.

 

Over The Air Activation (OTAA)

Add Wio-WM1110 Dev Kit into The Things Stack

  1. Create an account on The Things Network if you don’t have one.
  2. Login on The Things Network.
  3. Click on your username and choose Console.
  4. Select a network cluster.
Add application
  1. Go to applications.
  2. Click on button + Add application.
  3. Write something into Application ID.
  4. Click on button Create application.
Add end device
  1. In your application click on button + Register end device.
  2. Input Method – Choose Enter end device specifics manually.
  3. Frequency plan – Europe 863-870 MHz (SF9 for RX2 – recommended)
  4. LoRaWAN version – LoRaWAN Specification 1.0.4
  5. Regional Parameters version – RP002 Regional Parameters 1.0.4
  6. Click on Show advanced activation, LoRaWAN class and cluster settings
  7. Activation mode – Over the air activation (OTAA)
  8. Additional LoRaWAN class capabilities – None (class A only)
  9. Deselect – Use network’s default MAC settings
  10. Rx2 data rate = 3
  11. Rx2 frequency = 869,525 MHz
  12. JoinEUI – 0000000000000000
  13. Click on Confirm.
  14. DevEUI – Generate
  15. AppKey – Generate
  16. End device ID – here you can name your device
  17. After registration – View registered end device
  18. Click on button Register end device
  19. Click on Settings
  20. Network layer – Expand
  21. Click on Advanced MAC settings
  22. Desired Rx1 delay = 1
  23. Rx1 data rate offset = 0
  24. Add Frequency = 868100000
  25. Add Frequency = 868300000
  26. Add Frequency = 868500000
  27. Add Frequency = 867100000
  28. Add Frequency = 867300000
  29. Add Frequency = 867500000
  30. Add Frequency = 867700000
  31. Add Frequency = 867900000
  32. Adaptive data rate (ADR) – Dynamic mode
  33. Click on button Save changes

 

Sending “Hello LoRa!” to TTS

  1. In TTS -> Applications -> YourAppName -> YourEndDeviceName -> Payload formatters -> Uplink change Formatter type to Custom Javascript formatter and to Formatter code copy and paste code bellow:
    function Decoder(bytes, port) { 
       return {
              mydata: String.fromCharCode.apply(null, bytes) // Decode plain text
       };
    }
  2. Save changes
  3. Open file located at …\nRF5_SDK_17.1.0_ddde560\examples\peripheral\Seeed_Wio_WM1110_Dev_Board\apps\common\lorawan_key_config.h
  4. Replace LORAWAN_DEVICE_EUI, LORAWAN_JOIN_EUI and LORAWAN_APP_KEY with keys in TTS. Keys are in TTS -> Applications -> YourAppName -> YourEndDeviceName -> Activation information.
  5. In the SEGGER Embedded Studio File -> Open Solution… -> …\nRF5_SDK_17.1.0_ddde560\examples\peripheral\Seeed_Wio_WM1110_Dev_Board-master\pca10056\blank\ses_lorawan -> open wm1110_dev_kit_pca10056.emProject
  6. Edit Section Placement as discussed in section above “Section is larger than specified size – error fix“.
  7. Right-click on the project name and select Options.
  8. In Code -> Library -> Library I/O change None to RTT.
  9. Click OK.
  10. In main_lorawan.c replace the static void on_modem_alarm( void ) function with the new function below:
    static void on_modem_alarm( void )
    {
        uint8_t app_data_size = 0;
    
        // Encode "Hello LoRa" into the app_data_buffer
        const char* message = "Hello LoRa";
        app_data_size = strlen(message); // Get the length of the message
        memcpy(app_data_buffer, message, app_data_size); // Copy message into buffer
    
        // Send the frame
        send_frame(app_data_buffer, app_data_size, LORAWAN_CONFIRMED_MSG_ON);
    
        // Schedule next packet transmission
        ASSERT_SMTC_MODEM_RC(smtc_modem_alarm_start_timer(APP_TX_DUTYCYCLE));
    }
  11. Save changes
  12. Click on Build -> Compile main_lorawan.c
  13. Click on Target -> Connect J-Link
  14. Click on Build -> Build and Run
  15. In TTS -> Applications -> YourAppName -> YourEndDeviceName -> Live data you should every minute see this: