Skip to main content

Command Palette

Search for a command to run...

How to Check Signal Strength Linux Terminal EC20 Module

Updated
7 min read

Checking the signal strength of your EC20 module through the Linux terminal is a useful skill. Whether you’re troubleshooting connectivity or optimizing your setup, knowing how to get this information quickly can save you time. In this article, I’ll guide you step-by-step on how to check signal strength using the Linux terminal on your EC20 module.

You don’t need to be a Linux expert to follow along. I’ll explain the commands and tools in simple terms, so you can understand what’s happening behind the scenes. By the end, you’ll be able to monitor your EC20 module’s signal strength efficiently and make better decisions about your network connection.

Understanding the EC20 Module and Signal Strength

The Quectel EC20 is a popular 4G LTE module used in many embedded systems and IoT devices. It connects to cellular networks and provides internet access. Signal strength is a key factor that affects the quality and speed of your connection.

Signal strength is usually measured in dBm (decibel-milliwatts). The closer the value is to zero, the stronger the signal. For example, -60 dBm is a strong signal, while -110 dBm is very weak. Knowing this helps you decide if you need to move your device or adjust antennas.

The EC20 module supports standard AT commands, which are instructions sent via the terminal to communicate with the module. These commands can retrieve signal strength and other network information.

Preparing Your Linux Environment

Before checking signal strength, you need to ensure your Linux system can communicate with the EC20 module. Here’s what you should do:

  • Connect the EC20 module to your Linux device via USB or serial interface.
  • Identify the device port by running ls /dev/ttyUSB* or dmesg | grep tty. The EC20 usually appears as /dev/ttyUSB2 or similar.
  • Install necessary tools like minicom or screen to send AT commands. You can install minicom using:

    sudo apt-get install minicom
    
  • Set permissions if needed, so your user can access the serial port:

    sudo usermod -a -G dialout $USER
    

    Then log out and back in to apply changes.

Once your environment is ready, you can start sending commands to the EC20 module.

Using AT Commands to Check Signal Strength

AT commands are the most direct way to get signal strength from the EC20 module. Here’s how to do it:

  1. Open a terminal and start minicom on the EC20 port:

    minicom -D /dev/ttyUSB2
    
  2. Send the signal strength command:

    AT+CSQ
    
  3. Interpret the response. The module replies with something like:

    +CSQ: 15,99
    

    The first number (15) is the signal strength in a scale from 0 to 31. The second number (99) is the bit error rate, which is often ignored.

  4. Convert the value to dBm using this formula:

    dBm = -113 + (2 * CSQ)
    

    For example, if CSQ is 15:

    dBm = -113 + (2 * 15) = -83 dBm
    

This value tells you the signal strength. The closer to zero, the better.

Other Useful AT Commands

  • AT+CESQ – Provides extended signal quality information.
  • AT+QCSQ – Quectel-specific command for detailed signal stats.
  • AT+CREG? – Shows network registration status.

You can try these commands in minicom to get more detailed info about your connection.

Using Linux Tools to Monitor Signal Strength

Besides AT commands, some Linux tools can help you check signal strength on the EC20 module.

Using mmcli with ModemManager

If your system uses ModemManager, you can use mmcli to query the modem:

  1. List modems:

    mmcli -L
    
  2. Get modem info:

    mmcli -m 0
    
  3. Check signal quality:

    mmcli -m 0 --signal-get
    

This command returns signal strength in dBm and other parameters. It’s a user-friendly way to monitor your EC20 module without manually sending AT commands.

Using qmicli for Qualcomm-based Modules

The EC20 is Qualcomm-based, so qmicli can be used:

  1. Install libqmi tools:

    sudo apt-get install libqmi-utils
    
  2. Check signal strength:

    sudo qmicli -d /dev/cdc-wdm0 --nas-get-signal-info
    

This command returns detailed signal info including RSSI, RSRP, and RSRQ values, which are useful for LTE networks.

Automating Signal Strength Checks

If you want to monitor signal strength regularly, you can automate the process with a simple script.

Example Bash Script Using AT Commands

#!/bin/bash
PORT="/dev/ttyUSB2"

# Send AT+CSQ and read response
echo -e "AT+CSQ\r" > $PORT
sleep 1
RESPONSE=$(cat $PORT)

# Extract CSQ value
CSQ=$(echo $RESPONSE | grep -oP '\+CSQ: \K[0-9]+')

# Calculate dBm
if [[ $CSQ =~ ^[0-9]+$ ]]; then
  DBM=$(( -113 + 2 * CSQ ))
  echo "Signal strength: $DBM dBm"
else
  echo "Failed to read signal strength"
fi

This script sends the AT command, reads the response, and calculates the signal strength in dBm. You can run it periodically with cron or systemd timers.

Using mmcli in Scripts

You can also use mmcli in scripts:

#!/bin/bash
SIGNAL=$(mmcli -m 0 --signal-get | grep 'rssi' | awk '{print $2}')
echo "Signal strength: $SIGNAL dBm"

This is simpler if you have ModemManager managing your EC20 module.

Troubleshooting Common Issues

Sometimes, checking signal strength may not work as expected. Here are common problems and fixes:

  • No response from AT commands: Make sure you are using the correct serial port and that the module is powered on.
  • Permission denied errors: Check user permissions for the serial device.
  • mmcli shows no modems: Ensure ModemManager is running and the EC20 module is recognized.
  • qmicli errors: Confirm you are using the correct device path (usually /dev/cdc-wdm0).

If you face persistent issues, reboot your system and reconnect the module. Also, check kernel logs with dmesg for hardware detection messages.

Improving Signal Strength

If your signal strength is weak, consider these tips:

  • Reposition your device or antenna to get better line-of-sight to the cell tower.
  • Use an external antenna compatible with the EC20 module.
  • Avoid interference from metal objects or electronic devices.
  • Check network coverage in your area using carrier maps.

Better signal strength means faster and more reliable connections.

Summary Table: Signal Strength Interpretation

CSQ ValueSignal Strength (dBm)Description
0-113 dBmNo signal
10-93 dBmPoor signal
20-73 dBmGood signal
30-53 dBmExcellent signal
31-51 dBm or betterMaximum signal

Use this table to quickly understand the signal quality based on the CSQ value.

Conclusion

Checking the signal strength of your EC20 module via the Linux terminal is straightforward once you know the right commands and tools. Using AT commands like AT+CSQ gives you direct access to signal data, while tools like mmcli and qmicli provide more detailed and automated options.

Setting up your Linux environment properly and understanding how to interpret signal values will help you maintain a strong and stable connection. Whether you’re troubleshooting or optimizing your setup, these methods empower you to monitor your EC20 module’s signal strength effectively.

By following the steps and tips in this article, you can confidently check and improve your cellular connection on Linux systems using the EC20 module.

FAQs

How do I find the correct serial port for my EC20 module?

You can list connected serial devices using ls /dev/ttyUSB* or check kernel messages with dmesg | grep tty. The EC20 typically appears as /dev/ttyUSB2 or similar.

What does the AT+CSQ command return?

AT+CSQ returns two numbers: signal strength (0-31) and bit error rate. The signal strength can be converted to dBm using the formula -113 + 2*CSQ.

Can I check signal strength without AT commands?

Yes, tools like mmcli (ModemManager) and qmicli (libqmi) allow you to query signal strength without manually sending AT commands.

What is a good signal strength value for LTE?

A signal strength around -70 dBm or better is considered good for LTE. Values closer to -50 dBm indicate excellent signal quality.

Why does my AT command not respond?

This may be due to incorrect port selection, permission issues, or the module not being powered on. Verify your setup and permissions before retrying.

More from this blog

L

LinuxBloke | Linux Tips, Tricks & Troubleshooting

672 posts