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:
QuectelModemATCommandsCLI
: For interacting with Quectel modems.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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 41a4c37f3000cda9c29f1b6eb82443a05dd01936655310288e3264d0ac94050e |
|
MD5 | d89d0e35e18cba5a057193e448c3e222 |
|
BLAKE2b-256 | 7af08ee6d76b368ae93e06d1fc2de11ca0e8372b263ea298e5a1fe10fec9b3ab |
File details
Details for the file quectelatcommands-1.0.8-py3-none-any.whl
.
File metadata
- Download URL: quectelatcommands-1.0.8-py3-none-any.whl
- Upload date:
- Size: 73.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.10.15
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 353fdc86cbb612eb30e185d0ab5cc10609c4d5fbb4243fa0fba23ad4c45545b5 |
|
MD5 | 497187ed74db08721af1ed8e1ee08d9a |
|
BLAKE2b-256 | 3ed866bc39f6d9a4ec2e8fda933c9b968bd84ca5d896098826a3cd25177cd869 |