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).

  • I've updated nRF52840 with the image above, the reflash Modem and App from the latest version 09.23 (that was rebuild with latest SDK). Also have updated nRF Connect to 3.6.0. 

    Under Linux I can use LTE Link Monitor, but the Programmer still doesn't work. BLE app doesn't work as well. By the way, the app has tried to open the same device for BLE. Even if I swapped files (ttyACM0 <> ttyACM1) it doesn't work. Just curious, why there are two serial ports, but the LTE Link app communicates at 115200, but BLE app has tried to communicate at 1M.

    On Mac OS everything is the same. After reboot from Linux, I was able to open port in terminal program to enter AT commands, I've tried to enter MCUBoot and re-flash -- it doesn't work. After the reset I got the same state of serial port: even terminal program has stopped to work.

    Summarizing: BLE still doesn't work, Programmer works under Windows only, LTE Link Monitor works under Linux. On Mac OS none of the above works properly :(

  • Hello, 
     

    rnouse said:
    I've updated nRF52840 with the image above, the reflash Modem and App from the latest version 09.23 (that was rebuild with latest SDK). Also have updated nRF Connect to 3.6.0. 

    Did you update the modem and app before updating to v3.6.0 of nRF Connect for Desktop?

     

    rnouse said:
    BLE app doesn't work as well. By the way, the app has tried to open the same device for BLE. Even if I swapped files (ttyACM0 <> ttyACM1) it doesn't work. Just curious, why there are two serial ports, but the LTE Link app communicates at 115200, but BLE app has tried to communicate at 1M.

     The BLE app does function with the Thingy:91 running Connectivity_bridge.  

     

    rnouse said:
    On Mac OS everything is the same. After reboot from Linux, I was able to open port in terminal program to enter AT commands, I've tried to enter MCUBoot and re-flash -- it doesn't work. After the reset I got the same state of serial port: even terminal program has stopped to work.

     What is failing? What is the error? Are you still getting "Please make sure device is in MCUboot mode"? Or does it fail during flashing?

    -Øyvind

  • I did reflash rF52840 several times. The last one was using the latest nRF Connect Desktop and updated Programmer (v1.4.6).

    I've also tried to flash Connectivity Bridge app, but it didn't help: 

    The error in BLE App still the same.

    The error in Programmer under either Linux or Mac OS complains about MCUboot mode.

    I'm confused about UART_0 and UART_1. What the purpose of second port? And why some apps opens the same port at different speeds? E.g. under Linux LTE Link opens ttyACM0 as well as BLE App, but with different speeds. Documentation doesn't explain that.

    I thought that one port belongs to nRF9160 and another to nrf52840. There is only one serial port being exposed on nRF9160 Feather.

    The option BLE_ENABLED in Config.txt has only sense for Connectivity Bridge app? 

  • However, I can use mcumgr to update firmware under Mac OS, but seems pretty slow (e.g. 9600):

    $ ~/go/bin/mcumgr --conntype=serial --connstring=/dev/tty.usbmodem14101 image upload thingy91_fw_2020-04-29_bc7ade8b/images_dfu_bin/thingy91_nrf52_connectivity_bridge_dfu_2020-04-29_bc7ade8b.bin

    310.19 KiB / 310.19 KiB [======================================================================] 100.00% 998 B/s 5m18s
    Done

  • 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. Connectivity Bridge does not allow the usage of the BLE app. Please open a new ticket for this issue.

    As explained earlier, let's focus on the MCUboot and the programmer app issue on your side. What it is the current status of MCUboot? Are you able to put the nRF9160 into MCUboot mode and update both modem firmware and the application firmware? 

Related