GW16162 Telit CMB100 Cellular Modem
The Gateworks GW16162 is a B-key M.2 form factor modem for use on Gateworks SBCs that uses the Telit CMB100 module.
This is M.2 Cellular Modem that Gateworks sells with a variety of different Telit CMB100 modules.
- GW16162-1-A - LTE CAT4
- GW16162-2-A - 5G NR RedCap
- GW16162-3-A - LTE CATM1/NB2
- GW16162-4-A - CAT1 BIS
Note, Use GW16140 M.2 Adapter on Mini-PCIe slots.
M.2 B-Key pins
The following pins are connected on the GW16162:
- M2.7 USB_DP
- M2.9 USB_DM
- M2.6 FULL_CARD_POWER_OFF# (3.3V I/O inverted to CMB_EOFF) (see below)
- M2.8 W_DISABLE1# (3.3V I/O inverted to CMB_PON) (see below)
- M2.2,4,70,72,74 VDD_3P3
- M2.3,5,11,27,33,39,45,51,57,71 GND
SIM
There is an onboard 4FF nanoSIM slot for SIM support
If doing a large official project, it may be best to get a SIM directly from AT&T, Verizon, etc especially for proper certification, etc.
A MNO, mobile network operator, owns the equipment. A MVNO, mobile virtual network operator, leases network access wholesale from an MNO (example, Hologram) Hologram MVNO SIMs may be a great option to consider for quick projects, etc.
Antenna
The following antenna was used for all certifications.
Other antennas can be used if they meet the same requirements.
Certified Antenna:
Atel-Cab T-AT305, antenna gain all bands 2.14dBi.
See more info here: Link
Certifications
- ATT Certifications
- CATM1/CAT4: Link
Verizon and AT&T have indicated that customers who follow Telit guidelines, implement the module similarly to Telit PTCRB-tested configuration, and use the same antenna should generally be able to leverage Telit certifications. However, both carriers reserve the right to require spot OTA testing.
If a customer uses an antenna with a cable of 20 cm or longer, the carriers typically do not require OTA testing. Verizon may still request conducted testing to verify transmit power and receive sensitivity.
The carriers have introduced restrictions on LTE-only certifications. AT&T is no longer accepting new Cat 1 or higher LTE-only certifications, including Cat 1 bis. AT&T is accepting devices with 5G and LTE fallback, as well as Cat M1 devices. Verizon will accept Cat 1 and Cat 1 bis certifications through January 2028 but is no longer accepting Cat 4 or higher LTE-only devices. Verizon also accepts Cat M1 devices.
More information on certification requirements including antenna guidelines can be found in the CMB100 Hardware Users Guide which is available through the Telit Download Zone (account required): Link
Drivers
All drivers should already be included on Gateworks default Ubuntu builds on Gateworks SBCs.
Drivers:
- qmi_wwan (wwan), option (at commands)
Modem Power On sequence
The CMB100 will not power on by default by design without toggling a the pOnOff pin
To turn on the CMB100 the pOnOff input on connector pin 19 must be pulled high for at least 6 seconds then released.
The pOnOff pin is connected to the M.2 B-Key pin 8 W_DISABLE1# signal though an inverter. Because this signal is an active-low wireless disable it is usually driven high by default by the board/firmware on Gateworks boards so you need to drive it low for 6 seconds then high to get the CMB100 to power on.
To power off the CMB100 gracefully drive W_DISABLE1# signal high for at least 3 seconds.
To unconditionally shut down the CMB100 drive FULL_CARD_POWER_OFF# low.
The following table shows the GPIO mapping for these two signals on various Gateworks products with an M.2 B-Key sockets:
| board | socket | signal name | uboot gpio | linux gpio | GW16162 pin | CMB100 M.2 pin | Notes |
|---|---|---|---|---|---|---|---|
| GW820x+GW16FB01 | FSA1 | wdisable1# | fsa1_wdisable1# | 8 W_DISABLE1# | PonOff | inverted | |
| FSA1 | crdpwroff# | fsa1_crdpwroff# | 6 FULL_CARD_POWER_OFF# | EM_OFF | inverted | ||
| FSA2 | fsa_wdisable1# | fsa2_wdisable1# | 8 W_DISABLE1# | PonOff | inverted | ||
| FSA2 | crdpwroff# | fsa2_crdpwroff# | 6 FULL_CARD_POWER_OFF# | EM_OFF | inverted | ||
| GW740x | M2 J13 | M2SKT_WDIS# | m2skt_wdis1#.gpio-hog GPIO4_18 | gpio-114 | 8 W_DISABLE1# | PonOff | inverted |
| M2 J13 | M2SKT_OFF# | m2skt_off#.gpio-hog GPIO4_2 | gpio-98 | 6 FULL_CARD_POWER_OFF# | EM_OFF | inverted | |
| GW740x+GW1614{0,1,7} | J10 PCIE1 | M2SKT_WDIS# | pcie3_wdis#.gpio-hog GPIO2_14 | gpio-46 | 8 W_DISABLE1# | PonOff | inverted |
| J12 PCIE2 | M2SKT_WDIS# | pcie2_wdis#.gpio-hog GPIO2_18 | gpio-50 | 8 W_DISABLE1# | PonOff | inverted | |
| J11 PCIE3 | M2SKT_WDIS# | pcie3_wdis#.gpio-hog GPIO2_13 | gpio-45 | 8 W_DISABLE1# | PonOff | inverted |
- On the GW16FB0 make sure that SW1.7-10 are in the 'off' position to configure the w_disable1# and full_card_power_off# signals to be driven and at 3.3V
Examples:
- GW820x+GW16FB0 in FSA1:
- toggle GPIO to power on CMB100 in U-Boot:
setenv preboot "$preboot; gpio clr fsa1_wdisable1#; sleep 6; gpio set fsa1_wdisable1#" saveenv
- toggle GPIO to power on CMB100 in U-Boot:
- GW740x in J13 M.2 socket:
- toggle GPIO to power on CMB100 in U-Boot:
setenv preboot "$preboot; gpio clr m2_wdis1#.gpio-hog; sleep 6; gpio set m2_wdis1#.gpio-hog" saveenv
- toggle GPIO to power on CMB100 in U-Boot:
- GW730x in any Mini-PCIe socket with a M.2 adapter:
- Note, the WDIS signal from the CPU is routed to all the Mini-PCIe sites. Thus, if there are other radios in the system, they will all receive the WDIS signal at the same time as the GW16162:
setenv preboot "$preboot; gpio clr pci_wdis#.gpio-hog; sleep 6; gpio set pci_wdis#.gpio-hog"
- Note, the WDIS signal from the CPU is routed to all the Mini-PCIe sites. Thus, if there are other radios in the system, they will all receive the WDIS signal at the same time as the GW16162:
Software / Getting Started
lsusb should show: (may change depending on variant)
ID 1bc7:110b Telit Wireless Solutions Telit ME910
Verify the modem is detected with the lsusb command. Then use modem manager to bring the modem up with the following example:
mmcli -m 0 # Look for a large output of information about the modem mmcli -m 0 --enable mmcli --modem 0 --simple-connect="apn=hologram" #replace hologram with actual APN for SIM used dhclient wwan0
- apt-get update
- apt-get install isc-dhcp-client
A fully connected modem shown below with mmcli -m 0 as an example:
root@noble-venice:~# mmcli -m 0
----------------------------------
General | path: /org/freedesktop/ModemManager1/Modem/0
| device id: 0f4dfb041510f387acb25f63b3c13ad3379b96c6
----------------------------------
Hardware | manufacturer: Telit
| model: LE910C4-WWXD
| firmware revision: 25.30.608 1 [Nov 14 2023 07:00:00]
| carrier config: default
| h/w revision: 1.00
| supported: gsm-umts, lte
| current: gsm-umts, lte
| equipment id: xx559662xxx82
----------------------------------
System | device: /sys/devices/platform/soc@0/32f10108.usb/38200000.usb/xhci-hcd.0.auto/usb1/1-1/1-1.1
| physdev: /sys/devices/platform/soc@0/32f10108.usb/38200000.usb/xhci-hcd.0.auto/usb1/1-1/1-1.1
| drivers: qmi_wwan, option
| plugin: telit
| primary port: cdc-wdm0
| ports: cdc-wdm0 (qmi), ttyUSB0 (ignored), ttyUSB1 (at),
| ttyUSB2 (at), wwan0 (net)
----------------------------------
Status | lock: sim-pin2
| unlock retries: sim-pin (3), sim-puk (10), sim-pin2 (3), sim-puk2 (10)
| state: connected
| power state: on
| access tech: lte
| signal quality: 91% (recent)
----------------------------------
Modes | supported: allowed: 2g; preferred: none
| allowed: 3g; preferred: none
| allowed: 4g; preferred: none
| allowed: 2g, 3g; preferred: 3g
| allowed: 2g, 3g; preferred: 2g
| allowed: 2g, 4g; preferred: 4g
| allowed: 2g, 4g; preferred: 2g
| allowed: 3g, 4g; preferred: 4g
| allowed: 3g, 4g; preferred: 3g
| allowed: 2g, 3g, 4g; preferred: 4g
| allowed: 2g, 3g, 4g; preferred: 3g
| allowed: 2g, 3g, 4g; preferred: 2g
| current: allowed: 2g, 3g, 4g; preferred: 4g
----------------------------------
Bands | supported: egsm, dcs, pcs, g850, utran-1, utran-4, utran-6, utran-5,
| utran-8, utran-2, eutran-1, eutran-2, eutran-3, eutran-4, eutran-5,
| eutran-7, eutran-8, eutran-9, eutran-12, eutran-13, eutran-14,
| eutran-18, eutran-19, eutran-20, eutran-25, eutran-26, eutran-28,
| utran-19
| current: egsm, dcs, pcs, g850, utran-1, utran-4, utran-6, utran-5,
| utran-8, utran-2, eutran-1, eutran-2, eutran-3, eutran-4, eutran-5,
| eutran-7, eutran-8, eutran-9, eutran-12, eutran-13, eutran-14,
| eutran-18, eutran-19, eutran-20, eutran-25, eutran-26, eutran-28,
| utran-19
----------------------------------
IP | supported: ipv4, ipv6, ipv4v6
----------------------------------
3GPP | imei: 355596620004182
| enabled locks: fixed-dialing
| operator id: 310260
| operator name: T-Mobile
| registration: roaming
| packet service state: attached
----------------------------------
3GPP EPS | ue mode of operation: csps-2
| initial bearer path: /org/freedesktop/ModemManager1/Bearer/0
| initial bearer ip type: ipv4
----------------------------------
SIM | primary sim path: /org/freedesktop/ModemManager1/SIM/0
| sim slot paths: slot 1: /org/freedesktop/ModemManager1/SIM/0 (active)
| slot 2: none
----------------------------------
Bearer | paths: /org/freedesktop/ModemManager1/Bearer/1
root@noble-venice:~#
root@noble-venice:~# mmcli -m 0 -b 1
------------------------------------
General | path: /org/freedesktop/ModemManager1/Bearer/1
| type: default
------------------------------------
Status | connected: yes
| suspended: no
| multiplexed: no
| interface: wwan0
| ip timeout: 20
------------------------------------
Properties | apn: hologram
| roaming: allowed
------------------------------------
IPv4 configuration | method: static
| address: 10.300.185.109
| prefix: 30
| gateway: 10.300.185.111
| dns: 8.8.8.8, 8.8.4.4
| mtu: 1500
------------------------------------
Statistics | start date: 2025-08-08T22:56:19Z
| duration: 240
| attempts: 1
| total-duration: 240
If the DHCP dhclient command doesn't auto-populate wwan0, it may be required to manually configure the IP address and routing of wwan0, an example is below:
ifconfig wwan0 100.77.130.8/30 route add default gw 100.77.130.9 wwan0 echo "nameserver 8.8.8.8" > /etc/resolv.conf root@jammy-venice:~# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 100.77.130.9 0.0.0.0 UG 0 0 0 wwan0 100.77.130.0 0.0.0.0 255.255.255.240 U 0 0 0 wwan0
Troubleshooting
View more troubleshooting steps on the main Gateworks modem wiki here: wireless/modem
Please also contact Gateworks support.
Modem Mode
The modem can be configured to be in different USB modes. Consult the AT command guide for all the modes. Mode 0 should be fine which should be the default.
Mode shown:
AT#USBCFG?
Another modem configuration that may need to be looked at is called FWAUTOSIM, which is automatic carrier switching by SIM. For this example, FWAUTOSIM was 0, meaning no automatic switching.
