issues running SLM on a custom nrf9151 board

Before developing our custom board, we connected our MCU to the DK via pins 26, 27 and after disabling VCOM0 via the DK configurator, we were able to communicate using AT commands and develop the firmware for our MCU.

After receiving our custom boards that incorporate the nrf9151 and our MCU, connected via the same pins as before, we weren't able to get the SLM to run properly. We initially tried to simply program the precompiled SLM. when that didn't work we compiled it from source and tried to debug it. This revealed that we probably never start the main application and we might be stuck in the bootloader.

Other simpler examples, such as the hello world and at client, work well.

What could be the cause of our SLM issues

Parents
  • Hello, 

    Are you able to provide more details about what is actually failing? Can you include application logs from Serial LTE Modem running on the custom board? 

    How are you building the SLM application? I.e. what board files are you using? 

    Other simpler examples, such as the hello world and at client, work well.

    What tests have you done with AT client? Does it connect to a network and receive an IP address?

    Have you had a hardware review of your board design? You can register a new private ticket and include board files, and then our HW experts can review the board free of charge.

    Kind regards,
    Øyvind

Reply
  • Hello, 

    Are you able to provide more details about what is actually failing? Can you include application logs from Serial LTE Modem running on the custom board? 

    How are you building the SLM application? I.e. what board files are you using? 

    Other simpler examples, such as the hello world and at client, work well.

    What tests have you done with AT client? Does it connect to a network and receive an IP address?

    Have you had a hardware review of your board design? You can register a new private ticket and include board files, and then our HW experts can review the board free of charge.

    Kind regards,
    Øyvind

Children
  • We tried running the SLM with the DK board files, because when working with EVBs it worked fine. However in our board there's no external flash.

    We ran the code in debug mode and never hit the breakpoint in the main function, so the SLM is not really running.

    The AT Client example runs fine as is and we're able to connect to the network and get an IP address. Can the AT Client be used in a production setting? can we use it to send DTLS UDP messages? testing the example that worked well with the SLM on the DK does not completely work with the AT Client.

    Is there a simple board definition that I can use for our custom board?

    Thanks

  • I recommend going through our Developer Academy courses to understand how to develop for a custom board. Please go to our Developer Academy and complete our fundamental courses.

    Kind regards,
    Øyvind

  • We have some progress with our custom board, but still no success.

    We are now quite sure the SLM runs, but we have no UART access to communicate with it.

    We've enabled logging for both mcuboot and the SLM, however UART output stops when we enter the main application. We can see the logs for the boot process, but when it jumps to the main app the output stops.

    We know the main app is running because we were able to debug it, as well as get logs via RTT, but not via UART.

    These are the logs we see via RTT (app only):

    * Booting nRF Connect SDK v2.9.0-7787b2649840 *
    * Using Zephyr OS v3.7.99-1f8f3dc29142 *
    [00:00:00.251,678] <inf> at_cmd_custom: Custom AT commands enabled with 64 entries.
    [00:00:00.257,415] <inf> fs_nvs: 2 Sectors of 4096 bytes
    [00:00:00.257,415] <inf> fs_nvs: alloc wra: 0, fe8
    [00:00:00.257,446] <inf> fs_nvs: data wra: 0, 0
    [00:00:00.505,035] <inf> slm: lib_modem init: 0
    [00:00:00.505,126] <inf> mcuboot_util: Image index: 0, Swap type: none
    [00:00:00.505,126] <inf> slm: Serial LTE Modem
    [00:00:00.591,979] <inf> nrf_cloud_info: Device ID: 50343959-3733-4cd2-8042-0f0f802d7c4c
    [00:00:00.597,290] <inf> nrf_cloud_info: IMEI:      359404230287071
    [00:00:00.689,300] <inf> nrf_cloud_info: UUID:      50343959-3733-4cd2-8042-0f0f802d7c4c
    [00:00:00.695,281] <inf> nrf_cloud_info: Modem FW:  mfw_nrf91x1_2.0.2
    [00:00:00.695,312] <inf> nrf_cloud_info: Protocol:          MQTT
    [00:00:00.695,34HTTPS

    And these are the logs via UART (only mcuboot)

    * Booting MCUboot v2.1.0-dev-12e5ee106034 *
    * Using nRF Connect SDK v2.9.0-7787b2649840 *
    * Using Zephyr OS v3.7.99-1f8f3dc29142 *
    I: Starting bootloader
    I: Primary image: magic=unset, swap_type=0x1, copy_done=0x3, image_ok=0x3
    I: Secondary image: magic=unset, swap_type=0x1, copy_done=0x3, image_ok=0x3
    I: Boot source: none
    I: Image index: 0, Swap type: none
    I: Bootloader chainload address offset: 0x10000
    I: Jumping to the first image slot

    we tried both UART0 and UART2 (as suggested by the docs) to no avail.

    Running the same code on the DK works as expected and the UART communication seamlessly continues after the boot and we can use the AT commands.

    Running examples with no mcuboot (like the at_client) on our custom board, also works well.

    It feels like we're almost there, but no matter what we try we can't make it work.

    Your help will be very appreciated.

    Thanks

Related