Example Code for Arduino-Interfacing via AT Commands (Debugging Code)

Last revision 2026/01/23

This guide details the process of interfacing Arduino with SIM808 using AT commands, including hardware and software setup, sample code for debugging, and enabling bidirectional data transfer between USB port and SIM808 module.

Hardware Preparation

Software Preparation

instruction

SIM808 mainboard is using Arduino Leonardo. This microcontroller has two serial ports. Serial0 (Serial) is used to communicated with USB port; Serial1 is used to communicated with SIM808 GSM module.

Since USB port does not directly connect to the SIM808 port. We need upload a debug code to setup the communication

DFR0355 communication mechanism

Preparations

  1. Install the SIM card in the sim slot on the back of the board
    • Make sure your SIM card is available, and you can put the SIM card into the socket or get it out by sliding the metal lock.
  2. Install the GPS & GSM antennas on the board
  3. Connect with PC and power supply(there are three ways to supply the power)
    • Through 7~23V power supply jack
    • Through VIN pin on board
    • Remove the jumper on NO BAT, and connect a 3.7V Lithium Battery to BAT jack
    • After connecting the board to PC by an USB cable, the board shows up as Leonardo automatically if you have installed the Arduino by .exe file, or you will need to install the driver manually
      DFR0355_Leonardo
  4. BOOT SIM808 by pressing the BOOT white button for 2 seconds if the NET indicator LED is OFF.
  5. Upload the Debugging Code above to Leonardo.

Sample Code

/*
 * The sketch here will make Leonardo exchange
 * data between the USB serial port and SIM808 module.
*/

void setup() {
  Serial.begin(115200); //initialize Serial(i.e. USB port)
  Serial1.begin(115200); //initialize Serial1
}

void loop() {
  //If Serial1 receive data, print out to Serial
  while (Serial1.available()) {
    Serial.write(Serial1.read());
  }
  //If Serial receive data, print out to Serial1
  while (Serial.available()) {
    Serial1.write(Serial.read());
  }
  delay(1);  //delay for a short time to
  // avoid unstable USB communication
}

Result

Successful upload will enable bidirectional data transfer between USB port and SIM808 module. Serial Monitor will display SIM808 responses when AT commands are sent.

Additional Information

  • This code is required for all AT command-based interactions with the SIM808 module
  • Ensure Serial Monitor baud rate is set to 115200 with "Carriage Return" line ending
  • Click to download AT instruction

Was this article helpful?

TOP