A6 gprs/gsm

doesn't solve the problem

Hello the guys
I have an even more basic problem with my A6:
In the switched on; the red LED flashes during approximately 6 seconds then remains lit.
I see nothing on the compiler monitor (Serial COM3 in my case).
Does it mean a problem with te SIM ?
I had take off the PIN protection.
Thank you for help me.
Cris

Here is my A6 shield.

When starting to use the A6, it required to send several AT commands until it synchronizes with the used baud rate.
Here is an example of my code. I use a serial connection at 9600 bps. The function "startAT" send "AT" until the A6 answers with "OK". While doing this, it prints "AT.........." in the console.

Don't forget to include a real phone number instead of "+"

// SoftwareSerial lib allows to use digital pins for serial connection
#include <SoftwareSerial.h>

// Tx of A6 linked to pin 4
const int pinRxNano = 4;
// Rx of A6 linked to pin 2
const int pinTxNano = 2;

//Enter here the phone number
const String phoneNumber= "+";
const String messageInit = "A6 ready";

//Create serial connection on the pin
SoftwareSerial A6GSM(pinRxNano, pinTxNano);

//Function waiting for "OK", used for various purposes
void Response(){
  int a = 0;
  Serial.println();
  while(1){
    if(A6GSM.available()){
      String dataFromA6 =A6GSM.readString();
      dataFromA6.trim();
      Serial.println(dataFromA6);
      a++;
      if(dataFromA6.indexOf("OK")>0){break;}
    }
    if(a>500){a=0;break;}
    delay(200); 
  }
}

//Function used to send "AT" to A6 until it answers with "OK"
void startAT(){
  int nbAT = 0;
  while(1){
    if (nbAT==0){A6GSM.println("AT");Serial.print(".");}
    if(A6GSM.available()){
      String dataFromA6 =A6GSM.readString();
      dataFromA6.trim();
      Serial.println(dataFromA6);
      if(dataFromA6.indexOf("OK")>0){break;}
    }
    delay(200); 
    nbAT++;
    if(nbAT++>10){nbAT=0;}
  }  
}

//Function used to send a sms
void envoieSMS(String numeroEnvoi, String messageEnvoi) {
  delay(200);
  Serial.println("Selection format message SMS");
  A6GSM.println("AT+CMGF=1");
  Response();
  delay(200);
  Serial.println("Envoi message SMS");
  A6GSM.print("AT+CMGS=\"");
  A6GSM.print(numeroEnvoi);
  A6GSM.println("\"");
  delay(200);
  A6GSM.print(messageEnvoi);
  delay(200);
  A6GSM.println (char(26));
  Response();
}

void setup() {
  //GSM serial connection
  A6GSM.begin(9600);
  //Usual serial connection to display on console
  Serial.begin(9600);
  delay(200);
  Serial.println("Init");
  //AT
  startAT();
  envoieSMS(phoneNumber,messageInit);
}

void loop() {
}

This Library changes the baudrate GitHub - skorokithakis/A6lib: An ESP8266/Arduino library for communicating with the A6 GSM module. ⛺

I've been having a terrible time trying to get my A6 "mini" module (not the same as the older larger modules) to respond reliably - and I'm just trying to talk to it via a terminal and a USB FTDI TTL serial widget. I ended up buying a second A6 mini thinking the first was faulty, and had the same troubles.

After some tedious multi-day experimenting, here's what's been working for me lately:

A) Attach FTDI adapter (set to 3V3) to serial pins

B) Apply power to the module (not sure why 2A adapter is required - mine pulls 0.2A max - maybe it will need a fat capacitor on there later)

C) (Sometimes not needed:) Pull the RESET line HIGH (not LOW) for 3-4 seconds with a 1K resistor to 5V - NOT DIRECTLY TO 5V. (A reset direct to 5V makes the unit unstable/unresponsive after the restart, though it doesn't seem to do any lasting damage.)

D) Immediately start pinging the unit with "AT\r" until it responds "OK", and keep pinging it (like once a second) until after initialization is completed - if you don't, it will ignore all further input.

If you can't get a response, go back to C.

I'm starting to think my A6 isn't getting a clean reset on power-up due to the serial input still being connected/powered, but a reset with a 1K resistor seems to overcome that.

I've tried resets with a 10K and a 1N4004 diode (to drop to ~4.2V), but they aren't reliable.

I've got a SIM800L module on a board here also, and it's a lot easier to get talking - though they've screwed up the pin spacing for insertion into a 0.1" breadboard - the left/right rows of pins are 0.85" apart, rather than 0.9" - which is just stupid.

Hi, this is my first time here; I have been trying to set my A6 and it has been horribly frustrating too... Tinkerbear: Can you help me with a scheme or code, please: its not very clear to me. Thank you !!

jdrodriguezmo:
Hi, this is my first time here; I have been trying to set my A6 and it has been horribly frustrating too... Tinkerbear: Can you help me with a scheme or code, please: its not very clear to me. Thank you !!

What have you tried, and what happened? I haven't worked on any software yet, just managed to chat with it via a terminal session. Should be possible with the Serial Monitor in Arduino as well.

Hi Everybody ,

I try the A6 module , works fine via U_RxD and U_TxD 115200 Baud.
With ATD command work the voice call , but no sound both direction.
This is an "development board" from Aliexpress , 3,5mm 4 pole Yack female connector included.
I try connect Samsung headset with pushbutton volume control , maybe not recognized to the mic and speaker?

What possible problem ?
Thanks :slight_smile:
nernoe

Please, help me. I have been trying this tutorial GSM A6 with Arduino–Making a call & sending SMS | alselectro but the module A6-Mini doesn't work :frowning: :frowning: ...

Im Sorry - Translator used ...
I have a clone from the ali -A6 mini - and I started testing via a USB / RS232 adapter to my laptop, Power via adapter. - (no external power).
I tested in the "teraterm" application,
The module sent after the start and set of information ..last + CREG "1
Unfortunately, he did not respond to my command - after a few days I came to that.

The module has baudrate set to AUTO. At the beginning of the communication, it detects the reception rate .. the default 115200 is primarily for TX.
By transmitting AT, the current rhythm is detected, and the module is adaptive.

After using the "ralterm" application, it responded to the first AT.

In the "terraterm" when using the "paste" AT cr lf several times in a row (8x - 15x), the module started to respond. (Baudrate 112500 or 9600 ).

In the "realterm", a sequence of characters is sent at once, but in the "terrater" each character is sent immediately - module A6 is not able to recognize the baudrate.

Then I connected arduino nano- I use softwareserial to 9600 baudrate ..

At the beginning of the loop, I am sending the AT and waiting for the OK - the module will start responding after 9 AT sending.
Then the communication to 9600 - ok.

But another problem - when using a breadboard, the module shines but does not communicate. When connecting via wires (DUPONT) it always runs .... I have not done so yet ....

I have easy program for detect phone number -for opening gate.

P.s. I only have GND, Vcc to +5, Tx to 7 and RX to 8 (not connect PWR pin)

Problems getting the A6 to work. I'm using Elecrow shield on a Uno.

Before destroying something are the following points correct:

  1. With the Uno, SoftwareSerial is required at 11500 baud.

  2. power_key must be connected to +5V for a couple of seconds. The Elecrow board as a push button to do this. It is also tied to D7 which does nothing. Am I correct that the full 5V are needed so an Arduino output is not adequate. Is it also OK to permanently hardwire this connection so there is no need to press a button?

  3. The Uno has an insufficient power supply for the A6. A separate 2A source is needed.

Thanks

Take a look at the page in my signature. Whilst it's not A6 specific it does answer a lot of your questions.

Hello,

I had a bad experience with au Uno+A6 modem in its board version (not new A6 Arduino Shield as you own), regarding SoftwareSerial issues (impossible to get any reply back from AT commands sent...):
did you meet these problems (or any other) with your Uno+A6 shield ?

Please let us know :slight_smile:

Have a good day.

Lou.

Here's a website where someone managed to work the A6+Uno Combo.

JAG Electronics

Why can not I connect to the A6 module through the serial port pin 0 and 1?

I am trying to use A6 module to post data to IBM watson IoT. Which is the best place to get an example?

Hello everyone,

I have problem with my GSM A6 Module, the program runs well but when I unplug and plug the power supply of the module and arduino board, it does not work again ! until I upload a sketch which use serial monitor to communicate with the module by AT command, and then I upload again my program to work again ! it is problem of synchronization between arduino and the module at the beginning when powered up ? what would make the module works olnly one tme until it is powered off ? please can you help me guys !
thankx !

this is the program based on a youtube channel :

#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 11); // RX-Pin10, TX-Pin11
unsigned char Buff[250];
unsigned char BuffIndex;
boolean Act = false;

void setup()
{
//Serial.begin(4800);
mySerial.begin(9600);
pinMode(9, OUTPUT);
digitalWrite(9,HIGH);
//Serial.println("GSM Tutorial, Valetron Systems @www.raviyp.com ");
delay(3000);
mySerial.println("AT+CMGF=1");
delay(3000);
mySerial.println("AT+CNMI=2,2,0,0,0");
memset(Buff, '\0', 250); // Initialize the string
BuffIndex=5;
}

void SMS_Marche() {

mySerial.println("AT+CMGF=1");
//mySerial.write(0x0D); // hex equivalent of Carraige return
//mySerial.write(0x0A); // hex equivalent of newline
delay(1000);
mySerial.print("AT+CMGS="mynumber");
mySerial.print(char(34)); // "
mySerial.print(char(13)); // CR
mySerial.print('\r'); // hex equivalent of newline
delay(1000);
mySerial.println("Moteur en marche");
//mySerial.write(0x0D); // hex equivalent of Carraige return
//mySerial.write(0x0A); // hex equivalent of newline
delay(500);
mySerial.println(char(26)); //ctrl_z
//mySerial.write(0x0D); // hex equivalent of Carraige return
//mySerial.write(0x0A); // hex equivalent of newline
}

void SMS_Arret() {

mySerial.println("AT+CMGF=1");
//mySerial.write(0x0D); // hex equivalent of Carraige return
//mySerial.write(0x0A); // hex equivalent of newline
delay(1000);
mySerial.print("AT+CMGS="mynumber");
mySerial.print(char(34)); // "
mySerial.print(char(13)); // CR
mySerial.print('\r'); // hex equivalent of newline
delay(1000);
mySerial.println("Moteur en Arret");
//mySerial.write(0x0D); // hex equivalent of Carraige return
//mySerial.write(0x0A); // hex equivalent of newline
delay(500);
mySerial.println(char(26)); //ctrl_z
//mySerial.write(0x0D); // hex equivalent of Carraige return
//mySerial.write(0x0A); // hex equivalent of newline
}

void loop()
{

while(1)
{
if(mySerial.available()>0)
{
Buff[BuffIndex] = mySerial.read();

if((Buff[BuffIndex-1] == 'O') && (Buff[BuffIndex] == 'n'))
{
//Serial.print('\n');
//Serial.write(Buff[BuffIndex-1]);
//Serial.write(Buff[BuffIndex]);
Act=true;
if(Act==true)
{
SMS_Marche();
digitalWrite(9,LOW);
Act=false;
}
}

if( (Buff[BuffIndex-2] == 'O') && (Buff[BuffIndex-1] == 'f') && (Buff[BuffIndex] == 'f'))
{
//Serial.print('\n');
//Serial.write(Buff[BuffIndex-2]);
//Serial.write(Buff[BuffIndex-1]);
//Serial.write(Buff[BuffIndex]);
Act=false;
if(Act==false)
{
SMS_Arret();
digitalWrite(9,HIGH);
Act=true;
}
}

BuffIndex++;
if(BuffIndex>250)
{
BuffIndex=5;
}
}
}

delay(10);
}

Sir i have A6 GSM module and Arduino , please send me code for auto answeing a any call

I have this expirience with Goouuu Tech Mini IOT-GA6 GPRS GSM Module. In all cases Im using arduino IDE Serial monitor and Arduino is connected to PC with USB

  1. G6 with CP2102 module. 5V->VCC, GND->GND, RX->TX, TX->RX. PWR not conected. No problems. Module is replying to AT commands, calls and SMS are working. Notice, that as a power source Im using TTL (USB).

  2. G6 with Arduino UNO. ARD-5V->VCC, ARD-GND->GND, RX->PIN2, TX->PIN3. PWR not conected. Sometimes there are problems. I think it is beacouse Im using SoftwareSerial at 115200.

  3. G6 with Arduino UNO and external 2A source for G6. source-5V->VCC, source-GND->GND, RX->PIN2, TX->PIN3. PWR not conected. Communication is almost not possible beacouse of comunication errors.

  4. MY FINAL SOLUTION G6 with Arduino UNO and external 2A source for BOTH. source-5V->G6-VCC->ARD-VIN, source-5V-GND->G6-GND->ARD-GND, RX->PIN2, TX->PIN3. PWR not conected. Works perfectly with almost no errors. Im not very experienced, but I thing the key is to have common GND for Arduino and G6. Not sure if its OK to have external power source and USB connected to PC. Maybe I was lucky and nothing happened.