Skip to main content

A Python package for Quectel AT Commands

Project description

Quectel AT Commands Python Library

A Python library for interacting with Quectel modems and GNSS devices using AT commands. This package provides classes for managing and sending AT commands for modem and GNSS configurations, as well as command-line interfaces (CLIs) for quick access.


This package simplifies interaction with Quectel modems and GNSS modules by providing Python classes and CLI tools for managing configurations and sending AT commands.

Modem source documentation

ECx00x&EG800K&EG810M&EG91xN&EG950A Series - AT Commands Manual
LTE Standard Module Series
Version: 1.3
Date: 2024-09-27
Status: Released

Gnss source documentation

EC2x&EG9x&EG2x-G&EM05 Series - GNSS Application Note
LTE Standard Module Series
Version: 1.3
Date: 2020-09-04
Status: Released

Source code organization :

Whether for modem or gnss, the class methods are numbered according to the chapters in the documentation.

class QuectelModemATCommands:
    # Extract
    def generalCommands201DisplayProductIdentificationInformation(
        self,
    ) -> tuple[bool, list[str]]:
        """
        General commands 201: Display product identification information.

        :return: Tuple containing the status of the command and the response.
        :rtype: tuple[bool, list[str]]
        """
        return self.sendCommand("ATI")

generalCommands201DisplayProductIdentificationInformationgeneralCommands201DisplayProductIdentificationInformatio is the method name:

  • generalCommands is the chapter name in the documentation.
  • 201 corresponds to chapter 2.1 in the documentation.
  • DisplayProductIdentificationInformation is the title of the chapter in the documentation : "Display product identification information".
## Installation
Install the package using `pip`:

```bash
pip install quectelatcommands

Usage

This package provides two main classes and corresponding CLI tools:

  1. QuectelModemATCommandsCLI: For interacting with Quectel modems.
  2. QuectelGnssATCommandsCLI: For GNSS (Global Navigation Satellite System) configurations.

Python API

QuectelModemATCommands

This class allows you to send AT commands to a Quectel modem for various configurations and operations.

Example:

from quectelatcommands import QuectelModemATCommands

# Initialize with default port and baudrate
modem = QuectelModemATCommands("/dev/ttyUSB2", 115200)

# Open connection
modem.open()

# Send a command to display product identification information
status, response = modem.generalCommands201DisplayProductIdentificationInformation()
print(response if status else "Error sending command")

# Close connection
modem.close()

Available Methods in QuectelModemATCommands (Examples):

  • generalCommands201DisplayProductIdentificationInformation: Displays modem information.
  • packetDomainCommands1015PacketDataCounterWrite: Configures packet data counters.
  • statusControlCommands40314RiSignalOutputCarrier: Sets the RI signal output carrier type.

Refer to the class documentation for a full list of available AT commands.

QuectelGnssATCommands

This class provides GNSS-specific AT commands for configuring output ports, enabling or disabling NMEA sentence acquisition, and more.

Example:

from quectelatcommands import QuectelGnssATCommands

# Initialize with default port and baudrate
gnss = QuectelGnssATCommands("/dev/ttyUSB1", 115200)

# Open connection
gnss.open()

# Configure the output port for NMEA sentences
status, response = gnss.configureGnss2201ConfigureOutputPortOfNmeaSentencesWrite("usbnmea")
print(response if status else "Error sending command")

# Close connection
gnss.close()

Available Methods in QuectelGnssATCommands (Examples):

  • configureGnss2201ConfigureOutputPortOfNmeaSentencesWrite: Sets the output port for NMEA sentences.
  • configureGnssEnableDisableNmeaSentencesAcquisition: Enables or disables NMEA sentence acquisition.

Refer to the class documentation for a complete list of available commands.

Command-Line Interface (CLI)

The package provides two CLI commands, modem-cli and gnss-cli, for quick command execution without writing a script.

Modem CLI (modem-cli)

Example Usage:

quectelModemATCommandsCLI --help

Output:

Usage: quectelModemATCommandsCLI [OPTIONS] COMMAND [ARGS]...

  CLI for interacting with the Quectel modem via AT commands.

Options:
  -p, --port TEXT         Serial port to use.  [default: /dev/ttyUSB2]
  -b, --baudrate INTEGER  Baudrate to use.  [default: 115200]
  -t, --timeout INTEGER   Timeout for serial communication.  [default: 1]
  --help                  Show this message and exit.

Commands:
  call-related-commands           Group for call related commands.
  free-at-command                 Free AT command.
  general-command                 Group for general AT commands.
  hardware-related-commands       Group for hardware related commands.
  network-service-commands        Group for network services commands.
  packet-domain-commands          Group for packet domain commands.
  phonebook-commands              Group for phonebook commands.
  serial-interface-control        Group for serial interface control...
  short-message-service-commands  Group for short message service commands.
  sim-related-commands            Group for SIM related commands.
  status-control-commands         Group for status control commands.

GNSS CLI (gnss-cli)

Example Usage:

quectelGnssATCommandsCLI configure-gnss --help

Output:

Usage: quectelGnssATCommandsCLI configure-gnss [OPTIONS] COMMAND [ARGS]...

  Configure GNSS 20201.

Options:
  --help  Show this message and exit.

Commands:
  configure-agnss-positioning-protocols
                                  Configure AGNSS...
  configure-agps-positioning-mode
                                  Configure AGPS...
  configure-nmea-output-frequency
                                  Configure NMEA output...
  configure-odp-mode              Configure ODP mode.
  configure-output-port-of-nmea-sentences
                                  Configure output port...
  configure-output-type-of-beidou-nmea-sentences
                                  Configure output type...
  configure-output-type-of-galileo-nmea-sentences
                                  Configure output type...
  configure-output-type-of-glonass-nmea-sentences
                                  Configure output type...
  configure-output-type-of-gps-nmea
                                  Configure output type...
  configure-plane-mode-used-by-mo-agps-session
                                  Configure plane mode...
  configure-supl-protocol-version
                                  Configure SUPL...
  configure-supported-gnss-constellations
                                  Configure supported...
  enable-disable-acquisition-of-nmea-sentences
                                  Enable/disable...
  enable-disable-dpo-mode         Enable/disable DPO mode.
  enable-disable-gnss-extended-ggsv
                                  Enable/disable GNSS...
  enable-disable-gnss-to-run-automatically
                                  Enable/disable GNSS to...

Requirements

This library requires the following dependencies:

  • pyserial: For handling serial communication with the Quectel modem/GNSS devices.
  • click: For building the command-line interfaces.

License

This project is licensed under the GNU General Public License v3.0. See the LICENSE file for more details.

Additional Information

For more details on the AT commands used by this library, please refer to the official Quectel AT command documentation provided by Quectel for your specific modem or GNSS device model.

Troubleshooting

If you encounter issues with serial communication:

  • Ensure the correct permissions are set on the serial device (e.g., /dev/ttyUSB2).
  • Verify the serial port and baud rate match those required by your Quectel device.

Known Limitations

Given the large number of possible AT commands, the classes are not fully tested. If you find bugs, don't hesitate to correct them by submitting a PR.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

quectelatcommands-1.0.8.tar.gz (74.9 kB view details)

Uploaded Source

Built Distribution

quectelatcommands-1.0.8-py3-none-any.whl (73.0 kB view details)

Uploaded Python 3

File details

Details for the file quectelatcommands-1.0.8.tar.gz.

File metadata

  • Download URL: quectelatcommands-1.0.8.tar.gz
  • Upload date:
  • Size: 74.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.15

File hashes

Hashes for quectelatcommands-1.0.8.tar.gz
Algorithm Hash digest
SHA256 41a4c37f3000cda9c29f1b6eb82443a05dd01936655310288e3264d0ac94050e
MD5 d89d0e35e18cba5a057193e448c3e222
BLAKE2b-256 7af08ee6d76b368ae93e06d1fc2de11ca0e8372b263ea298e5a1fe10fec9b3ab

See more details on using hashes here.

File details

Details for the file quectelatcommands-1.0.8-py3-none-any.whl.

File metadata

File hashes

Hashes for quectelatcommands-1.0.8-py3-none-any.whl
Algorithm Hash digest
SHA256 353fdc86cbb612eb30e185d0ab5cc10609c4d5fbb4243fa0fba23ad4c45545b5
MD5 497187ed74db08721af1ed8e1ee08d9a
BLAKE2b-256 3ed866bc39f6d9a4ec2e8fda933c9b968bd84ca5d896098826a3cd25177cd869

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page