Version 8 (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:
- option (at commands), cdc_ether (wwan)
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:
Modem Mode
The modem can be configured to be in different USB modes. Consult the AT command guide for all the modes.
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.
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: 0808c95a84d6f32e2b0d9cxxxb1172028c28460 -------------------------------- Hardware | manufacturer: Telit | model: ME910G1-WW | firmware revision: 37.00.417-P0C.410001 | supported: gsm-umts, lte | current: gsm-umts, lte | equipment id: xx7219xxxxx780 -------------------------------- System | device: /sys/devices/platform/soc@0/32c00000.bus/32e50000.usb/ci_hdrc.1/usb1/1-1/1-1.1 | physdev: /sys/devices/platform/soc@0/32c00000.bus/32e50000.usb/ci_hdrc.1/usb1/1-1/1-1.1 | drivers: option, cdc_ether | plugin: telit | primary port: ttyUSB2 | ports: ttyUSB1 (at), ttyUSB2 (at), wwan0 (net) -------------------------------- Status | unlock retries: sim-pin (3), sim-puk (10), sim-pin2 (3), sim-puk2 (10) | state: connected | power state: on | access tech: lte-cat-m | signal quality: 100% (recent) -------------------------------- Modes | supported: allowed: 2g; preferred: none | allowed: 4g; preferred: none | allowed: 2g, 4g; preferred: none | current: allowed: 2g, 4g; preferred: none -------------------------------- Bands | supported: egsm, dcs, pcs, g850, eutran-1, eutran-2, eutran-3, | eutran-4, eutran-5, eutran-8, eutran-12, eutran-13, eutran-18, | eutran-19, eutran-20, eutran-25, eutran-26, eutran-27, eutran-28 | current: egsm, dcs, pcs, g850, eutran-1, eutran-2, eutran-3, | eutran-4, eutran-5, eutran-8, eutran-12, eutran-13, eutran-18, | eutran-19, eutran-20, eutran-25, eutran-26, eutran-27, eutran-28 -------------------------------- IP | supported: ipv4, ipv6, ipv4v6, non-ip -------------------------------- 3GPP | imei: 357219xxxxxx80 | operator id: 310410 | operator name: AT&T | registration: roaming | packet service state: attached -------------------------------- 3GPP EPS | ue mode of operation: csps-2 -------------------------------- SIM | primary sim path: /org/freedesktop/ModemManager1/SIM/0 -------------------------------- Bearer | paths: /org/freedesktop/ModemManager1/Bearer/0 root@jammy-venice:~# mmcli -m 0 -b 0 ------------------------------------ General | path: /org/freedesktop/ModemManager1/Bearer/0 | type: default ------------------------------------ Status | connected: yes | suspended: no | multiplexed: no | interface: wwan0 | ip timeout: 20 ------------------------------------ Properties | apn: hologram | roaming: allowed ------------------------------------ IPv4 configuration | method: static | address: 100.77.130.8 | prefix: 28 | gateway: 100.77.130.9 | dns: 8.8.8.8, 8.8.4.4 | mtu: 1430 ------------------------------------ Statistics | start date: 2025-05-16T16:30:05Z | duration: 210 | bytes rx: 746 | bytes tx: 588 | attempts: 1 | total-duration: 210 | total-bytes rx: 746 | total-bytes tx: 588 root@jammy-venice:~#
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/28 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.