Maximum Size of tx_buf for DECT NR+ PHY Hello Sample Application?

Hello everyone,

I am currently exploring the DECT NR+ capabilities of the nRF9161 DK by modifying the DECT NR+ PHY Hello sample application. Specifically, I have created two daughter applications: one dedicated to DECT transmission and the other to DECT reception.

From my understanding of the source code, the tx_buf variable holds the transmission payload. I've attempted to modify the size of tx_buf and the corresponding tx_len. I found that I can successfully build and flash the application onto the development kits with tx_buf sizes up to 80 bytes. However, when I attempt to increase the size beyond 80 bytes, the application builds but fails to flash onto the development kits.

Is there a hidden failure check that might be causing this issue? Additionally, where can I find more information about the source code and its limitations?

Thank you for your assistance!

Parents
  • Hello, 

    are you able to provide more details to how you configure the applications and what error message you receive?

    Kind regards,
    Øyvind

  • Hi Øyvind, 

    Thanks for reply. 

    For the configuration, I am using the 
    prj.conf (default, no changes) and

    overlay-eu.conf (the three config settings below)

    CONFIG_CARRIER=1677
    CONFIG_TX_TRANSMISSIONS=1000
    CONFIG_MCS=3
     I didn't receive any error messages. Once the build process is complete I received no error messages, only warning messages which I was told are expected and can be safely ignored. 

    When I click on the Flash button and select the desired Dev Kit, nothing happens. No error messages, no flashing messages on the terminal. Even the nRF9161DK LED 5 is not blinking to indicate flash process. If I reset the dev kit, the previous application that wasn't erased from the memory is executed. 

    I can share the specific changes I made to the main.c file. I believe the issue may be caused because of how I flood the tx_buf with data. 

    #define DATA_LEN_MAX 512
    ...

    int main(void)
    {
        uint8_t tx_buf[DATA_LEN_MAX];
        size_t tx_len;
        tx_len = DATA_LEN_MAX;
        ...
        memset(tx_buf, 'A', tx_len); // Fill tx_buf with 'A's
        tx_buf[tx_len] = '\0'; // Null-terminate if needed
        LOG_INF("Data Payload: %s", tx_buf); //Test display
        while(1) {
              err = transmit(tx_handle, tx_buf, tx_len);
              if (err){
                    LOG_ERR("Transmisstion failed, err %d", err);
                    return err;
                    ...
              }
        ...
        }
        ...
    }

    I didn't make any modifications to the init, deinit or the semaphore functions in that main.c file. 

    Looking forward to your response. 

    Best regards, 
    aravicha

Reply
  • Hi Øyvind, 

    Thanks for reply. 

    For the configuration, I am using the 
    prj.conf (default, no changes) and

    overlay-eu.conf (the three config settings below)

    CONFIG_CARRIER=1677
    CONFIG_TX_TRANSMISSIONS=1000
    CONFIG_MCS=3
     I didn't receive any error messages. Once the build process is complete I received no error messages, only warning messages which I was told are expected and can be safely ignored. 

    When I click on the Flash button and select the desired Dev Kit, nothing happens. No error messages, no flashing messages on the terminal. Even the nRF9161DK LED 5 is not blinking to indicate flash process. If I reset the dev kit, the previous application that wasn't erased from the memory is executed. 

    I can share the specific changes I made to the main.c file. I believe the issue may be caused because of how I flood the tx_buf with data. 

    #define DATA_LEN_MAX 512
    ...

    int main(void)
    {
        uint8_t tx_buf[DATA_LEN_MAX];
        size_t tx_len;
        tx_len = DATA_LEN_MAX;
        ...
        memset(tx_buf, 'A', tx_len); // Fill tx_buf with 'A's
        tx_buf[tx_len] = '\0'; // Null-terminate if needed
        LOG_INF("Data Payload: %s", tx_buf); //Test display
        while(1) {
              err = transmit(tx_handle, tx_buf, tx_len);
              if (err){
                    LOG_ERR("Transmisstion failed, err %d", err);
                    return err;
                    ...
              }
        ...
        }
        ...
    }

    I didn't make any modifications to the init, deinit or the semaphore functions in that main.c file. 

    Looking forward to your response. 

    Best regards, 
    aravicha

Children
Related