TECHSHIP IS A GLOBAL SUPPLIER OF WIRELESS COMPONENTS

Register
FAQs /

Recently added

Question

How can I quickly get up and running with my Wi-Fi device using the Network Manager tool in Linux?

Solution

Using Network Manager to setup a wifi connection is quick and automatic once the configuration is in place. Install the Wi-Fi card and make sure the device shows up in your Linux system with:

lspci 

*******************

00:1e.0 SD Host controller: Intel Corporation Celeron N3350/Pentium N4200/Atom E3900 Series SDIO Controller (rev 0d)

00:1f.0 ISA bridge: Intel Corporation Celeron N3350/Pentium N4200/Atom E3900 Series Low Pin Count Interface (rev 0d)

00:1f.1 SMBus: Intel Corporation Celeron N3350/Pentium N4200/Atom E3900 Series SMBus Controller (rev 0d)

01:00.0 Network controller: Qualcomm Atheros QCA986x/988x 802.11ac Wireless Network Adapter

02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 15)

03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 15)

*******************

The Qualcomm device we have plugged in here shows up as expected. If that is not the case, make sure that the card is properly seated, pin-compatible and that the host system has correct drivers installed!

What drivers are being utilized can be found using the index in the previous code snippet:

 sudo find /sys | grep drivers.*01:00.0

/sys/bus/pci/drivers/ath10k_pci/0000:01:00.0

Here we see that the device is using the kernel built-in wifi driver ath10k which is compatible with the device used here.

Next step is to check that NM finds the device:

sudo nmcli

wlp1s0: unavailable

"Qualcomm Atheros QCA986x/988x"

wifi (ath10k_pci), 04:F3:21:4F:0A:A2, sw disabled, hw, mtu 1500

Here it is found by NM but in disabled state, activate it using:

sudo nmcli radio wifi on //activate wifi

wlp1s0: disconnected

"Qualcomm Atheros QCA986x/988x"

0 connections available

wifi (ath10k_pci), 04:F3:21:4F:0A:A2, hw, mtu 1500

sudo nmcli dev wifi //lists available wifi access points

sudo nmcli dev wifi connect 'SSID' password 'password' //connect to a network/access point

To setup an automatic connection instead of manual direct-connect follow the below steps:

nmcli con add con-name 'wifi' ifname 'wlp1s0' type wifi ssid 'SSID'

nmcli con modify 'wifi' wifi-sec.key-mgmt 'wpa-psk' //Add security layer matching the access point

nmcli con modify 'wifi' wifi-sec.psk 'password' //Add the access point password to the connection 

nmcli con up 'wifi'//Activate the connection

nmcli dev set 'wlp1s0' autoconnect yes //Set connection to autoconnect

There are also a number of different settings that can be changed to your liking. Below you can see an example of how to set which band an existing connection should use:

nmcli connection edit wifi

goto wifi //Access general wifi settings

goto band //Access band settings

set a //Sets the band to 5GHz

save //Persistent save

quit //Quit the interactive terminal

sudo systemctl restart network-manager //Restart to apply settings

More information available at: https://wiki.archlinux.org/title/NetworkManager#nmcli_examples 

Note: Tested on Ubuntu 22.04 kernel 5.19

Question

Example on how to control a Techship PC201 adapter via GPIO signals when it is assembled as a hat on a Raspberry PI4.

Solution

Example on how to control a Techship PC201 adapter via GPIO signals when it is assembled as a hat on a Raspberry PI4.

Hardware:
Assemble the PC201 adapter as a hat for the Raspberry PI4 unit and Assemble a 40-pin riser header between the PCBs.

To use signals from the GPIO socket to control the PC201 adapter, place jumper links on the PC201's pin headers mentioned below, depending on the function you want be able to control by GPIO.

Host system OS / software:
In this example we are running Raspberry Pi OS and using the raspi-gpio tool to configure and control the Raspberry PIs GPIO signals.
Configure the Raspberry Pi's GPIO 26,27 for output functionality with pull down and GPIO 16 for output functionality with no pull down.
sudo raspi-gpio set 26,27 op pd
sudo raspi-gpio set 16 op pn

GPIO 27 - Controlling the MC201 adapters power IC enable signal
(Ensure J7 have a jumper link between pin 2-3 on PC201 PCB)
Enable signal on:
sudo raspi-gpio set 27 dh
Enable signal Off:
sudo raspi-gpio set 27 dl

Some modems will not boot up after power supply is enabled if not the wireless disable signal is also set to high/normal mode state.

GPIO 16 - Controlling the miniPCIe sockets Wireless Disable signal
(Ensure J4 have a jumper link on PC201 PCB)
Wireless disable Off: (normal operational mode)
sudo raspi-gpio set 16 dh
Wireless disable on: (wireless disabled mode)
sudo raspi-gpio set 16 dl

GPIO 26 Controlling the miniPCIe sockets Hardware Reset signal
(Ensure J8 have a jumper link on PC201 PCB)
Activate reset signal:
sudo raspi-gpio set 26 dh
Release reset signal:
sudo raspi-gpio set 26 dl

For detailed information of the GPIO control signals routing please refer to the Techship PC201 adapter hardware guide.

For details about cellular modem behaviour to control signals, timings, etc. please refer to the modem manufacturers hardware guide.

Question

How do you configure a wifi network using IW and IP utilities with wpa_supplicant in Linux?

Solution


IW is a configuration utility for wireless devices and supports most if not all drivers implemented officially in the Linux kernel. It can be used to setup and connect to wifi networks as well as configure access points/hotspots on supported modems. It replaces the older iwconfig utility which is not recommended for use.
The IP utility is a routing tool that is used to configure network interfaces on your linux host and to configure bridges between devices.  

To list all wireless devices the command iw dev or /sbin/iw dev can be used and the response could look something like this:
 

phy#0

        Interface wlp1s0

                ifindex 4

                wdev 0x1

                addr 04:f0:21:3f:0a:a3

                type managed

                txpower 23.00 dBm

                multicast TXQ:

                        qsz-byt qsz-pkt flows   drops   marks   overlmt hashcol tx-bytes        tx-packets

                        0       0       0       0       0       0       0       0               0

 

 

To make sure that the device is up and running issue:
ip link show wlp1s0

In this case, the wireless device is wlp1s0 and for which command return the following:

 

4: wlp1s0: UP> mtu 1500 qdisc noqueue state DOWN mode DORMANT group default qlen 1000

    link/ether 04:f2:24:3d:2b:d9 brd ff:ff:ff:ff:ff:ff

 

If the device is not active and 'UP' it can be set active using:

sudo ip link set wlp1s0 up

 

To see if the device  is connected to a network or not, issue:

iw wlp1s0 link

 

Connected to b3:fa:d4:32:64:12 (on wlp1s0)

        SSID: Techship

        freq: 5200

        RX: 4602636 bytes (28600 packets)

        TX: 17664 bytes (150 packets)

        signal: -53 dBm

        rx bitrate: 360.0 MBit/s VHT-MCS 8 40MHz short GI VHT-NSS 2

        tx bitrate: 6.0 MBit/s

 

        bss flags:      short-slot-time

        dtim period:    3

        beacon int:     100

 

If not, it simply returns 'Not connected'

 

To see available wifi networks in range use the scan function of the modem:

iw wlp1s0 scan

 

********************SNIPPET*******************

BSS d0:21:f9:32:64:bb(on wlp1s0)

        last seen: 7092.798s [boottime]

        TSF: 1755910453320 usec (20d, 07:45:10)

        freq: 5220

        beacon interval: 100 TUs

        capability: ESS Privacy SpectrumMgmt ShortSlotTime RadioMeasure (0x1511)

        signal: -71.00 dBm

        last seen: 1704 ms ago

        Information elements from Probe Response frame:

        SSID: Techship

        Supported rates: 6.0* 9.0 12.0* 18.0 24.0* 36.0 48.0 54.0

        DS Parameter set: channel 44

        Country: SE     Environment: Indoor/Outdoor

                Channels [36 - 36] @ 23 dBm

                Channels [40 - 40] @ 23 dBm

                Channels [44 - 44] @ 23 dBm

                Channels [48 - 48] @ 23 dBm

                Channels [52 - 52] @ 23 dBm

                Channels [56 - 56] @ 23 dBm

                Channels [60 - 60] @ 23 dBm

                Channels [64 - 64] @ 23 dBm

                Channels [100 - 100] @ 30 dBm

                Channels [104 - 104] @ 30 dBm

                Channels [108 - 108] @ 30 dBm

                Channels [112 - 112] @ 30 dBm

                Channels [116 - 116] @ 30 dBm

                Channels [120 - 120] @ 30 dBm

                Channels [124 - 124] @ 30 dBm

                Channels [128 - 128] @ 30 dBm

                Channels [132 - 132] @ 30 dBm

                Channels [136 - 136] @ 30 dBm

                Channels [140 - 140] @ 30 dBm

        RSN:     * Version: 1

                 * Group cipher: CCMP

                 * Pairwise ciphers: CCMP

                 * Authentication suites: PSK

                 * Capabilities: 1-PTKSA-RC 1-GTKSA-RC (0x0000)

        BSS Load:

                 * station count: 4

                 * channel utilisation: 19/255

                 available admission capacity: 31250 [32us]

 

********************SNIPPET*******************

 

Make sure that the country parameter is correct, if not you can set the country code with the following:
sudo iw reg set SE

This ensures that the modem follows country-specific frequency regulations!

 

To connect to a password protected network (e.g. WPA version 1,2 or 3) a configuration file called wpa_supplicant.conf that handles the security protocol is needed:
 

wpa_passphrase SSID >> /etc/wpa_supplicant.conf

enter wifi password and hit enter

 

The generated output would look something like this:

network={

        ssid="Techship"

        #psk="password"

        psk=5abc7d89f8e9d8c7aa6b8c7d223e520d26a13e932bf0acb1d4580461d6d2ba8d

 

}

 If sudo privileges aren't enough; login as root with: sudo -s and issue the above again.

When the file has been created it can be run in the background using:

sudo wpa_supplicant -B -D wext -i wlan0 -c /etc/wpa_supplicant.conf

 

Then check once more if the connection was successful with:
 iw wlp1s0 link

 

The last step is to request an IP adress from the host server via DHCP client:

dhclient wlp1s0

 

Issue ip addr show wlp1s0 to check assigned ip address and

if you have recieved one you are ready to surf!

 

For further information and features see:

en:users:documentation:iw [Linux Wireless] (kernel.org)
wpa_supplicant - ArchWiki (archlinux.org)
networking:iproute2 [Wiki] (linuxfoundation.org)

 

P.S.
For basic applications the use of Network Manager is simpler, mostly automatic and included in most common distributions of Linux, see the below FAQ for more info!

https://techship.com/faq/wifi-linux-network-manager-quick-start-guide/

Note: Tested on Ubuntu 22.04 kernel 5.19

Question

Example on how to control a Techship MC201 adapter via GPIO signals when it is assembled as a hat on a Raspberry PI4.

Solution

Example on how to control a Techship MC201 adapter via GPIO signals when it is assembled as a hat on a Raspberry PI4.

Hardware:
Assemble the MC201 adapter as a hat for the Raspberry PI4 unit and Assemble a 40-pin riser header between the PCBs.

To use signals from the GPIO socket to control the MC201 adapter, place jumper links on the MC201's pin headers mentioned below, depending on the function you want be able to control by GPIO.

Host system OS / software:
In this example we are running Raspberry Pi OS and using the raspi-gpio tool to configure and control the Raspberry PIs GPIO signals.
Configure the Raspberry Pi's GPIO pins 16,22,26,27 for output functionality with no pull down.
sudo raspi-gpio set 16,22,26,27 op pn

GPIO 27 - Controlling the MC201 adapters power IC enable signal
(Ensure J7 have a jumper link between pin 2-3 on MC201 PCB)
Enable signal on:
sudo raspi-gpio set 27 dh
Enable signal Off:
sudo raspi-gpio set 27 dl

GPIO 22 - Controlling the M.2 sockets Full Card Power Off signal
(Ensure J2 have a jumper link between pin 1-2 on MC201 PCB)
Power on card:
sudo raspi-gpio set 22 dh
Power off card:
sudo raspi-gpio set 22 dl

GPIO 16 - Controlling the M.2 sockets Wireless Disable signal
(Ensure J4 have a jumper link between pin 1-2 on MC201 PCB)
Wireless disable Off:
sudo raspi-gpio set 16 dh
Wireless disable on:
sudo raspi-gpio set 16 dl

GPIO 26 Controlling the M.2 sockets Hardware Reset signal
(Ensure J8 have a jumper link on MC201 PCB)
Activate reset signal:
sudo raspi-gpio set 26 dh
Release reset signal:
sudo raspi-gpio set 26 dl

For detailed information of the GPIO control signals routing please refer to the Techship MC201 adapter hardware guide.

For details about cellular modem behaviour to control signals, timings, etc. please refer to the modem manufacturers hardware guide.

Question

How is the active antenna feature enabled on the Sierra Wireless EM7590 module?

Solution

The active GNSS antenna feature on the Sierra Wireless EM7590 module sets 3.3V on the GNSS antenna port.

First, make sure that the GNSS feature is enabled. This can be checked by using the following command:

AT!CUSTOM?

If GNSS is enabled, the return of this command will contain:

		"GPSENABLE"          0x01

If GNSS isn't enabled, it can be enabled with the following commands:

AT!ENTERCND="A710"
AT!CUSTOM="GPSENABLE",1

The EM7590 also supports configuring the GNSS receiver path to the AUX antenna port. However, the active antenna feature is only available on the dedicated GNSS antenna port so make sure the receiver path is set to the dedicated GNSS port if you wish to utilize the active GNSS antenna feature. This setting also be checked with the same command as before:

AT!CUSTOM?

If the return doesn't contain:

		"GPSSEL"             0x01

Then the GNSS receiver path is set to the dedicated GNSS antenna port.

If the above criteria is met, the active GNSS antenna feature can be enabled by sending the following command:

AT+WANT=1

Please refer to the EM7590 AT Command Guide for more details about the commands mentioned in this FAQ,

Question

How can we send an SMS with AT commands?

Solution

Sending an SMS with AT commands is a relatively simple procedure and requires only two commands.

First, you want to set the module to text mode using the following command:

AT+CMGF=1

After that, you want to set the number that will receive your SMS. This is done with the following command:

AT+CMGS="+46#########"

Then you will be greeted by an ">" marker. This is where you write your SMS. When you are done with your SMS, hit ctrl+Z simultaneously and your SMS will be sent!

Question

The status LED on my adapter doesn't show any activity when the Telit FN990 module is powered on, why?

Solution

By default, the blink functionality of the status LED pin (M.2 pin 10) is set to off. However, this functionality can be enabled by using the following AT command:

AT#WWANLED=,[,[,]]

Here, the argument is an integer denoting which state this command should configure the status LED pin for. The following options are available for the argument:

0 : Low power mode
1 : Offline
2 : No service
3 : In Service, Roaming
4 : Data Active

This command can only be used to configure the status LED functionality for one particular state at a time.

The argument enables or disables the blinking functionality. Here, 1 enables the functionality while 0 disables it.

The and arguments are used to set the blinking pattern. These arguments are integers that specificity how many 10th's of a second the respective durations should be.

Please refer to the FN990 Family AT Commands Reference Guide for further information about this command.

Question

The SIM card isn't detected on the FN990 module when it is inserted in the primary SIM card slot on the MU201 adapter. How can this issue be resolved?

Solution

The SIM detect signal on the FN990 module series is active low while the SIM slot on the MU201 adapter pulls this signal high when a SIM card is inserted. Therefore the polarity of the SIM detect signal on the FN990 module has to be changed in order to detect the SIM card.

The command sequence below can be used to configure the FN990 module to detect SIM cards inserted in the primary SIM card slot on the MU201 adapter.

AT#SIMDET=0
AT#HSEN=0,0
AT#SIMINCFG=1,1
AT#REBOOT

Please refer to the FN990 Family HW Design Guide, the FN990 Family AT Commands Reference Guide and the M.2 key B to USB3 Adapter Series Hardware Guide for further information.

If you are still experiencing SIM detection issues after following this guide, please submit a support ticket. A support ticket can be created by clicking the following link: https://techship.com/support/new/

Question

How to configure and save a "User Profile" using AT-commands on selected Telit modems.

Solution

Sometimes you might want to store some settings to be automatically loaded on startup, without having to configure your modem or make a script.
Fortunately Telit has made it easy to do this, by creating a "User Profile", and this FAQ will guide you through on how to set this up.

For this example, we'll make some configurations to the GPS settings of the module, but you can choose whichever settings you like.

First, send the AT command:

AT&V0?

You will get a long list with info, but the one I want you to check is the last one:

DEFAULT PROFILE                : &Y0=user profile 1 

Make note of the "Y0" - This might be different on your setup, but don't worry, we'll change this in the next step.

Send the following AT command:

AT&P0

This sets the modem to a custom user profile. (There are 2 user profiles available, "0" and "1". We are using "0" here.)

Now check that we have updated the profile with the AT command:

AT&V0?

And now it should say at the bottom:

DEFAULT PROFILE                : &P0=user profile 1 

Great! Now we're editing our user profile, so go ahead and type your settings:

AT$GPSP=1
AT$GPSANTPORT=3
AT$GPSACP
AT$GPSNMUN=1
AT$GPSNMUN=1,1,1,1,1,1,1
AT$GPSSAV

To save these settings, it's not enough to only type "AT$GPSSAV", we need to save some of the settings to our profile!

Type the following AT command to do a "save profile":

AT&W

Now do a reboot with:

AT#REBOOT 

And when it's up and running again type:

AT$GPSNMUN?

And it should say:

$GPSNMUN: 1,1,1,1,1,1,1

More info regarding the different modes and settings can be found in the AT Command Guide here.

Related products
Telit LM960 LTE CAT-18, GPS, mPCIe
Telit LM960A18 HW1.1 LTE CAT-18 mPCIe
Telit LM960A18 LTE CAT-18 mPCIe
Telit LM960A9-P mPCIe
Telit FN990A40 5G sub6 M.2
Telit FN990A28 5G sub6 M.2
Telit LE910C4-NF LTE CAT-4 mPCIe
Telit LE910C1-WWXD LTE Cat-1 mPCIe
Telit LE910C4-WWXD LTE Cat-4 mPCIe
Telit LE910C4-WWX LTE Cat-4 mPCIe SIM
Telit LE910C1-WWXD LTE Cat-1 LGA
Telit LE910C1-SAXD LTE Cat-1 LGA
Telit LE910-NA V2 LTE CAT-4, S.SKU, mPCIe
Telit LE910C1-SAD LTE Cat-1 LGA
Telit LE910C1-NAD LTE Cat-1 LGA
Telit LE910C4-NFD LTE Cat-4 LGA
Telit LE910C1-NFD LTE Cat-1 LGA
Telit LE910C4-WWX LTE Cat-4 LGA
Telit LE910C1-WWX LTE Cat-1 LGA
Telit LE910C4-WWX LTE Cat-4 mPCIe
Telit LE910C1-WWX LTE Cat-1 mPCIe
Telit LE910C4-LA LTE CAT-4 mPCIe w/ Simholder
Telit LE910C1-SVX LTE Cat-1 LGA
Telit LE910C1-SAX LTE Cat-1 LGA
Telit LE910C1-EUX LTE Cat-1 LGA
Telit LE910C4-LA LTE CAT-4 mPCIe
Telit LE910C4-AP LTE CAT-4 LGA
Telit LE910C1-EUX LTE CAT-1 mPCIe
Telit LE910C1-LA LTE CAT-1 mPCIe
Telit LE910C4-EU LTE CAT-4 LGA
Telit LE910C4-CN LTE CAT-4 mPCIe SIM
Telit LE910C4-CN LTE CAT-4 mPCIe
Telit LE910C4-AP LTE CAT-4 mPCIe SIM
Telit LE910C4-EU LTE CAT-4 mPCIe
Telit LE910C4-EU LTE CAT-4 mPCIe SIM
Telit LE910C4-NF LTE CAT-4 mPCIe SIM
Telit LE910C1-NF LTE CAT-1 mPCIe
Telit LE910C1-EU LTE CAT-1 mPCIe SIM
Telit LE910C1-AP LTE CAT-1 mPCIe SIM
Telit LE910C1-SA CAT-1 LGA
Telit LE910C1-NF S.SKU LTE CAT-1 mPCIe SIM
Telit LE910C1-NF S.SKU LTE CAT-1 LGA
Telit LM940A11 LTE CAT-11, GPS, mPCIe
Telit LM940A11, HW Rev. 2, LTE CAT-11, GPS, mPCIe
Telit LN920A13-WW LTE Cat-13 M.2
Telit LN920A12-WW HW 1.1 LTE Cat-12 M.2
Telit LN920A6-WW HW 1.1 LTE Cat-6 M.2
Telit LN920A6-WW Cat-6 M.2
Telit LN920A12-WW Cat-12 M.2
Telit FN980 HW 2.1 5G M.2 sub-6
Telit FN980 5G M.2 sub-6
Telit FN980m 5G M.2
Telit ME310G1-W3 LTE Cat-M LGA
Telit ME310G1-WWV Cat-M1/NB2 LGA
Telit ME310G1-W2 Cat-M/NB2 LGA
Telit ME310G1-W1 CAT-M1/NB-IoT S.SKU LGA
Telit ME310G1-WW CAT-M1/NB-IoT S.SKU LGA
Telit ME910G1-WWV LGA
Question

How to collect initial diagnostics data and logs for Fibocom cellular modules needed when requesting Techship technical support?

Solution

In order to ease the troubleshooting of technical problems and understand your end-product or application and its usage scenario we ask you to please provide the following information when creating a technical support ticket at: techship.com/technical_support/ 
 
Please give a detailed problem description and in what precise circumstances it is present. 
 
Describe the host system: 
-Hardware (system board, processor architecture, other peripheral devices...) 
-Operating system with detailed versions (E.g. Windows version and build, Linux distribution, kernel version) 
-Drivers used and versions (Linux: out-of-tree vendor drivers or in-kernel drivers?) 
 
Details from the cellular module label: 
-Model 
-SKU/BOM or P/N code 
IMEI number 
 
For Linux systems, capture terminal logs from commands: 
uname -a 
lsusb 
lsusb -t 
ifconfig -a 
ls -l /dev/serial/by-id 
ls -l /sys/bus/usb-serial/devices 
dmesg 
 
The cellular module logs can be acquired by accessing one of the USB enumerated serial (COM) interfaces or physical UART serial interfaces accepting AT commands. In Windows device manager they are generally found as modem infterface or serial and ports interface types). 
 
Send AT commands to module and capture the text output: 
Test that you get a OK reply: 
AT 
Enable AT command echo: 
ATE1 
Verbose error reporting: 
AT+CMEE=2 
Module model: 
AT+CGMM 
Firmware version: 
AT+CGMR 
IMEI Code: 
AT+CGSN 
USB endpoint configuration: 
AT+GTUSBMODE? 
Serial port configuration: 
AT+GTUSBMODE=? 
Operational mode: 
AT+CFUN? 
Selected network access techniques: 
AT+WS46? 
List network operator info: 
AT+COPS? 
Network registration status: 
AT+CREG? 
AT+CGREG? 
AT+CEREG? 
Signal strength: 
AT+CSQ 
Signal quality parameters: 
AT+CESQ 
List APN details: 
AT+CGDCONT? 
List Packet switch enable/disable status: 
AT+CGATT? 
List PDP profiles status: 
AT+CGACT? 
List bearers and IP addresses: 
AT+CGCONTRDP= 
AT+CGPADDR= 
Check Temperaure: 
AT+MTSM? 
Check SIM status: 
AT+GTUSIM? 
Selected radio access technology: 
AT+GTRAT? 
Selected RAT and active frequency band(s): 
AT+GTACT 
 
For modems supporting 5G 
List CA information: 
AT+GTCAINFO?