wiki:expansion/gw16162

Version 6 (modified by Tim Harvey, 4 days ago) ( diff )

added pinout details about GW16162 and CMB100 PonOff and EM_OFF

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.

  • Review the CMB100 module here
  • Review the GW16162 product page and ordering options here

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

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+GW16FB0 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

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
      
  • 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
      

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 

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.

Note: See TracWiki for help on using the wiki.