The drivers do not add the modem device ID (05c6:90b2) until mainline kernel 4.17.

If for some reason you don't have all the drivers enabled above or have them static, you may find the /dev/ttyUSB devices enumerate in a different order. You can use a variety of ways to determine which device is which:

mmcli -m 0 will report details about detected modems and what devices they are on

ls -d /sys/bus/usb/drivers/ftdi_sio/*/ttyUSB* will tell you which tty is attached to the ftdi_sio driver to attach the Bluetooth HCI_UART to

ls -d /sys/bus/usb/drivers/option/*/ttyUSB* will tell you which tty's are attached to the option driver for the modem.

Note, because this modem uses raw-ip, the IP from the provider will not automatically be applied to the interface. The provider will give an IP and then it must manually be applied to the wwan0 interface.

3 different examples of how to connect, testing done on a Newport family board : (set APN env var appropriately)

CAT M1 SIM Support

Note that the CAT M1 modem may require a CATM1 SIM from the carriers. These SIMs are typically different than the standard LTE SIMs (used in your phone) but depends on the provider.

Gateworks has tested and recommends at this time a SIM from Hologram. The Hologram SIM does not have to be specific to CATM1. Obtain a SIM here: ​https://hologram.io/

The following Verizon SIM has been tested and is available ​here. Note this SIM will not automatically work with the GW16126 because the GW16126 is not end device certified with Verizon. Customers will need to work with their particular cellular carrier to get test SIMs that will work properly with the modem. Certification should also be discussed at the same time.

One may also want to disable system updates that may run in the background on the OS that is being used to avoid any overages on the SIM data plan.

u-blox NINA-B301 BLE module

Bluetooth HCI (GW16126)

The standard GW16126 comes the nRF52840 pre-programmed by Gateworks with ​Zephyr Project​hci_uart offering a bluetooth HCI UART host controller. The Open-Source Zephyr Project provides a small scalable real-time operating system (RTOS) well suited for small ARM processors such as the one in the nRF52840 and its ​hci_uart sample code implements a BLE HCI via the H4 UART protocol with the following:

1mbps baudrate

8bits, no parity, 1 stop bit

hardware flow control required

To use the GW16126 bluetooth HCI with Linux you need the following:

Linux 4.10+ kernel with the following:

FTDI UART support (CONFIG_USB_SERIAL_FTDI_SIO)

HCI UART with H4 (CONFIG_BT_HCIUART and CONFIG_BT_HCIUART_H4) in order to provide a bluetooth HCI over UART

Zephyr Project Firmware

While the nRF52840 comes pre-programmed with firmware to make it a ​fully featured Bluetooth HCI you could develop your own firmware and re-program it if desired.

The ​Zephyr Project is a scaleable real-time operating system (RTOS) supporting multiple hardware architectures, optimized for resource constrained devices, and built with security in mind. The Zephyr Project supports the Nordic nRF58240 within the u-blox NINA-B3 BLE module and can be modified to give it a personality of its own. Some examples within the Zephyr Project that are suited for the GW16123 out of the box are:

Programming the nRF58240

Programming the nRF58240

While the nRF52840 comes pre-programmed with firmware to make it a ​fully featured Bluetooth HCI you could develop your own firmware and re-program it if desired. The device can be programmed via SWD using the FT231X CBUS pins as follows:

CBUS1 - SWDIO

CBUS2 - SWDCLK

To program you can use OpenOCD with the sysfsgpio interface as long as you have a kernel that supports GPIO in the ftdi-sio driver (Linux 4.20+).

The following will create a gw16126.cfg OpenOCD interface file specifying SWD and mapping the SWCLK/SWDIO pins to the FT231X CBUS2/CBUS1 pins:

Create an OpenOCD interface file for the GW16126 that defines the Linux gpio signals for SWD: