This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Mac OS & Linux support

I'm trying to get Thingy91 works under either Mac OS or Linux. Neither of Programmer nor LTE Link Monitor doesn't work. Programmer complains about that device is not in MCU mode, LTE Link Monitor do not get any response from the port. I've tried to hold SW3 before switching Thingy on. I saw MCUBOOT USB device in the list, but dfu-util doesn't report any compatible devices and running with several "-v" arguments doesn't make sense when getting output from libusb. Same for Linux. I've tried to power cycle and hold SW3 many times.

The only way when the Programmer and Monitor works is under Windows. With the first attempt I was able to update firmware & use LTE Monitor. Windows was physically run on the same machine as Linux (dual boot). I've tried to "strace" the process that do DFU-related things under Linux, but there is no glue why it doesn't work: the code tries to write firmware as base64 encoded string and got nothing back. Under Mac OS I use various kind of usb-serial devices with a speed up to 3M without any issues.

And how to get BLE work? I've updated Config.txt file on the virtual flash device to enable BLE, but after power cycling it still not available under BLE tool: it reports operation timeout when attempting to communicate to BLE device even under Windows.

PS. I use the most recent nRF Connect v3.5.0. Tried with Mac OS 10.15.7 and Ubuntu 20.04 (no permission issues while accessing /dev/ttyACMx devices).

  • The connectivity bridge will help with getting the MCUboot up and running, so that you are able to update and program the nRF9160 on the Thingy:91.

    You mean use connectivity bridge to get BLE module to get into MCUboot?

    I got running MCUboot mode either for nRF9160 (SW3) and BLE (SW4). The issue is not with MCUboot on the Thingy:91, but how it works under Linux / Mac OS. At least, it works smoothly under Windows. Under MacOS I was able to enter MCUboot as well and use command line "mcumgr", but it very slow. The thing is that Programmer app doesn't work nether on Linux nor Mac OS.

    The error with Programmer still the same as mentioned above. The Programmer complains that the board is not in MCUboot mode.

  • As described in the documentation:
    The connectivity bridge is what allows the device enter MCUboot. The nRF52840 running the Connectivity Bridge acts as a USB composite device, exposing two UART interfaces to a USB host as two CDC ACM devices. The application also provides a Bluetooth LE UART Service (Nordic UART Service (NUS)), which can be enabled by the option CONFIG_BRIDGE_BLE_ENABLE. This service can be used for a wireless connection to one of the UART interfaces does support .

    The UART ports opened are used in the following way:

    UART_0: AT-commands and logging (what you see in LTE Link Monitor), and if you enable BLE as described in documentation, it will also transfer data here.
    UART_1: Is for modem traces, and is by default disabled.

    For the Thingy:91, I'm currently focusing on getting MCUboot up and running for you in MacOS/Linux to update the nRF9160. After programming the nRF52840 with the connectivity bridge, are you able to start nRF9160 in MCUboot? If so, you should be able to update the modem firwmare and application firmware on the nRF9160 using the programmer app on Mac OS and Linux. 

  • After programming the nRF52840 with the connectivity bridge, are you able to start nRF9160 in MCUboot?

    Sorry for confusing, perhaps, we are not on the same page. I was able to flash App & modem firmware for nRF9160 only under Windows using nRF Programmer. Under Mac OS I was able to use only mcumgr cli tool to flash App for nRF9160. I will check mcumgr under Linux as well. This doesn't seem to be an MCUBoot issue on the Thingy side. Otherwise, the flashing wouldn't work at all.

  • Also it might be great to have a block diagram in the doc describing how UARTs are connected within nRF9160 and nRF52840 and exposed as USB Composite device.

    Because till the date, I tho that nRF9160 is exposing the UART from both devices.

    Even when firmware readme says: Connectivity bridge for the nrf52, I've thought that it an app for nRF9160 because all other firmware files belongs to it.

    PS. The attached file 5824.app_signed.hex I've flashed into nRF52 :) that was clear

  • rnouse said:
    Sorry for confusing, perhaps, we are not on the same page. I was able to flash App & modem firmware for nRF9160 only under Windows using nRF Programmer. Under Mac OS I was able to use only mcumgr cli tool to flash App for nRF9160. I will check mcumgr under Linux as well. This doesn't seem to be an MCUBoot issue on the Thingy side. Otherwise, the flashing wouldn't work at all.

    i'm sorry, I thought that getting MCUboot was the issue here, as you complained that your programmer app reports:   

     

    rnouse said:
    Also it might be great to have a block diagram in the doc describing how UARTs are connected within nRF9160 and nRF52840 and exposed as USB Composite device.

     The documentation does state this, both under
    https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrf/ug_thingy91.html#working-with-thingy-91

    and 

    https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrf/applications/connectivity_bridge/README.html

Related