Version 9 (modified by 3 days ago) ( diff ) | ,
---|
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
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
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:
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.