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.6.tar.gz (74.4 kB view details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

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

File metadata

  • Download URL: quectelatcommands-1.0.6.tar.gz
  • Upload date:
  • Size: 74.4 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.6.tar.gz
Algorithm Hash digest
SHA256 d207d34012f3d9d70b9002bdbabf5df799218a38f537928d462ebde98269f92a
MD5 e2b7cc384839da8bda7d028d2ab3138a
BLAKE2b-256 149befc03ada4cbb8894107a03dc43ac81dd863e2e2b3db25d9e559637f6de1e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quectelatcommands-1.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 a39a89b8350d66da675b9706a7411c98fba9deb5861010bb6cf3b6f6f7297e73
MD5 899c2644694bb359a5831aa81e298b5a
BLAKE2b-256 8e605fcd36629676f51627be1cba2a52d7dff476a6b83515deca9f2d38c644d0

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