The A6 GSM & GPRS module, manufactured by Ai-Thinker, is a compact and cost-effective communication module designed to enable devices to connect to GSM networks. It supports voice calls, SMS messaging, and GPRS data transmission, making it an ideal choice for IoT applications, remote monitoring, and control systems. The module operates on quad-band frequencies, ensuring compatibility with GSM networks worldwide.
The following table outlines the key technical details of the A6 GSM & GPRS module:
Parameter | Specification |
---|---|
Manufacturer | Ai-Thinker |
Part ID | A6 Quad-band GPRS/GSM |
Operating Voltage | 3.3V to 4.2V (Typical: 4.0V) |
Operating Current | Idle: ~3mA, Active: ~250mA, Peak: ~2A |
Frequency Bands | GSM 850/900/1800/1900 MHz (Quad-band) |
Communication Protocols | GSM, GPRS (Class 10) |
Data Rate (GPRS) | Uplink: 85.6 kbps, Downlink: 85.6 kbps |
Operating Temperature | -40°C to +85°C |
Dimensions | 22.8mm x 16.8mm x 2.5mm |
The A6 module has a total of 24 pins. Below is the pinout and description:
Pin Number | Pin Name | Description |
---|---|---|
1 | VCC | Power supply input (3.3V to 4.2V) |
2 | GND | Ground |
3 | TXD | UART Transmit (connect to RX of microcontroller) |
4 | RXD | UART Receive (connect to TX of microcontroller) |
5 | NET | Network status indicator (blinks to show status) |
6 | RST | Reset pin (active low) |
7 | MIC+ | Microphone positive input |
8 | MIC- | Microphone negative input |
9 | SPK+ | Speaker positive output |
10 | SPK- | Speaker negative output |
11-24 | NC | Not connected |
Below is an example of how to send an SMS using the A6 module with an Arduino UNO:
A6 Pin | Arduino UNO Pin |
---|---|
VCC | 5V (via a 4.0V regulator) |
GND | GND |
TXD | Pin 10 (SoftwareSerial RX) |
RXD | Pin 11 (SoftwareSerial TX) |
#include <SoftwareSerial.h>
// Define RX and TX pins for SoftwareSerial
SoftwareSerial A6Serial(10, 11); // RX = Pin 10, TX = Pin 11
void setup() {
// Initialize serial communication with the A6 module
A6Serial.begin(9600); // A6 module default baud rate is 9600
Serial.begin(9600); // For debugging via Serial Monitor
// Wait for the module to initialize
delay(5000);
Serial.println("Initializing A6 module...");
// Send AT command to check communication
A6Serial.println("AT");
delay(1000);
while (A6Serial.available()) {
Serial.write(A6Serial.read()); // Print A6 response to Serial Monitor
}
// Set SMS text mode
A6Serial.println("AT+CMGF=1"); // Set SMS mode to text
delay(1000);
// Send SMS
A6Serial.println("AT+CMGS=\"+1234567890\""); // Replace with recipient's phone number
delay(1000);
A6Serial.println("Hello from A6 GSM module!"); // SMS content
delay(1000);
A6Serial.write(26); // Send Ctrl+Z to indicate end of message
delay(5000);
Serial.println("SMS sent!");
}
void loop() {
// Continuously check for incoming data from the A6 module
if (A6Serial.available()) {
Serial.write(A6Serial.read());
}
}
Module Not Responding to AT Commands
No Network Connection
High Power Consumption
SMS Not Sending
Can the A6 module be used for internet access?
AT+HTTP
to configure HTTP requests.What is the maximum distance for UART communication?
Does the module support 5V logic?
How do I reset the module?