Serial Terminal in nRF Connect for Desktop Linux version not working poolside

You may ask what poolside means. It means at my community pool, where I don't have Internet access via Wi-Fi for my laptop.

I wish to run some AT commands like AT%NCELLMEAS at a few locations. In particular, my house is between two cell towers: closer to one. At the house, I only see signals from the networks using the close tower. I wish to head down my street in the direction of the weaker tower and see how my results change at various points along the way. Both in Linux and Windows I cannot start the simple (but generally excellent; simple is a relative term) Serial Terminal without Wi-Fi. In Linux, if I start Serial Terminal at home where I have Internet access, but then close the lid of my laptop, putting it into standby mode, I lose the entire nRF Connect for Desktop and sub-applications when I try to resume. So, it is useless. Please fix it so that it will optionally start without an Internet connection. I do not wish to use any other terminal than Serial Terminal, because they all suck relative to Serial Terminal.

Using Windows, I haven't trekked down to the pool yet, but it appears that as long as I stick with using the same USB port that I use when I bring up Serial Terminal with Wi-Fi, I may be able to put the laptop in and out of suspend with no Wi-Fi and have a working terminal. Of course, it would be nicest if the option existed to use Serial Terminal without an Internet connection in both the Linux and Windows case.

Thank you for considering my request.

Burt Silverman

  • I made some progress. It helps to have nrfutil in the PATH, in both Linux and Windows cases. With that, I think Windows works completely. Linux may need the Internet to start up nRF Connect for Desktop. Maybe it will take more than one time for the Serial Terminal to find the board (or dongle, if using our custom board). I think I can then put the laptop into suspend and resume successfully, with no Internet.

    Can you verify my findings, and see if there are any improvements you should do? Like telling the user to put nrfutil into his PATH, etc. Thank you.

    Burt

  • Here is an example of something bad in Linux when I disconnected the dongle (the program crashed):

    Error occurred in handler for 'serialport:is-open': Error: PORT_NOT_FOUND
        at zxe (/tmp/.mount_nrfconMPmc5U/resources/app.asar/dist/main.js:640:5753)
        at /tmp/.mount_nrfconMPmc5U/resources/app.asar/dist/main.js:445:6842
        at WebContents.<anonymous> (node:electron/js2c/browser_init:2:82809)
        at WebContents.emit (node:events:518:28)
    Error occurred in handler for 'serialport:is-open': Error: PORT_NOT_FOUND
        at zxe (/tmp/.mount_nrfconMPmc5U/resources/app.asar/dist/main.js:640:5753)
        at /tmp/.mount_nrfconMPmc5U/resources/app.asar/dist/main.js:445:6842
        at WebContents.<anonymous> (node:electron/js2c/browser_init:2:82809)
        at WebContents.emit (node:events:518:28)
    Error occurred in handler for 'serialport:open': Error: FAILED
        at Hxe (/tmp/.mount_nrfconMPmc5U/resources/app.asar/dist/main.js:640:4645)
        at async WebContents.<anonymous> (node:electron/js2c/browser_init:2:82793)
    (node:7283) UnhandledPromiseRejectionWarning: Error: PORT_NOT_FOUND
        at c8 (/tmp/.mount_nrfconMPmc5U/resources/app.asar/dist/main.js:640:6269)
        at WebContents.<anonymous> (/tmp/.mount_nrfconMPmc5U/resources/app.asar/dist/main.js:640:8038)
        at WebContents.emit (node:events:530:35)
    (Use `nrfconnect --trace-warnings ...` to show where the warning was created)
    (node:7283) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see nodejs.org/.../cli.html. (rejection id: 1)
    (node:7283) UnhandledPromiseRejectionWarning: Error: PORT_NOT_FOUND
        at c8 (/tmp/.mount_nrfconMPmc5U/resources/app.asar/dist/main.js:640:6269)
        at WebContents.<anonymous> (/tmp/.mount_nrfconMPmc5U/resources/app.asar/dist/main.js:640:8038)
        at WebContents.emit (node:events:530:35)
    (node:7283) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see nodejs.org/.../cli.html. (rejection id: 2)
    Segmentation fault (core dumped)
    burt@T420s:~/Downloads$

  • Argh, I cannot trust the Linux version--you never know when it will get a Seg fault if Wi-Fi is off and you use suspend.

    Note that I am using Ubuntu 24.04 but I don't know if that is the issue; it might be orthogonal to the real problem.

    Burt

  • Hi Burt,

    I have reproduced the same on my end. The Serial Terminal requiers internet access when it starts. I have contacted the team working on this to have it addressed, but for now, that is unfortunately how it is.

  • Thank you, Einar. Also, please see if you can replicate my finding under Linux that even if you have Internet access when starting the program, but then shut off the Internet link, and then you remove the USB cable used for UART, you can crash the nrfconnect appimage program. This is significant: on Windows I can start Serial Terminal with Internet at my house and then continue to use it when I go somewhere without Internet access, but that method is not reliable with Linux.

Related