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

Uploaded Source

Built Distribution

quectelatcommands-1.0.4-py3-none-any.whl (72.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: quectelatcommands-1.0.4.tar.gz
  • Upload date:
  • Size: 73.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.4.tar.gz
Algorithm Hash digest
SHA256 7d5975ddf0603392e9086d9c2e6a316c39a424a73982826afee978ef2cfb0a53
MD5 7940f59aaf83b8944cda155a4932b1e4
BLAKE2b-256 9bbd4d8a27814c04d7d6329a2bb460e28faf1fca4b088ca91c2b52a9059f3c26

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for quectelatcommands-1.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 02acd625b283c519fa58b3125525b8b598fa682e432daf42975deb7cae5097d0
MD5 21fe9709ebbe6646f4b1475cf6c97c5e
BLAKE2b-256 7b6bc8d59c1ebc3c0ecd97f615b5afec4734f11a4a748daa3e46cfc9eb6215a6

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