Arduino Uno R3 cannot detect GPRS Shield SIM900 I am new to Arduino which I got only this week for my project which sends sms from my windows     application.
I have Arduino Uno R3 and GPRS Shield (Simcom) Sim900  (S2-1040S-Z0912)
I am currently following this guide &gt; https://educ8s.tv/arduino-gsm-shield/
As of the moment I have problem connecting the Sim900 to Arduino (I think Arduino cannot detect Sim900). The Arduino is working properly as my PC detected it. Also I confirm that the SIM900 is working properly as I can call the Sim inside and it is ringing (also the led on the device is blinking almost every 3 secs or so)
I found this, but I'm planning to use USB powered only as I only need the SMS feature so I am stacking the SIM900 on top of the Arduino.
How to communicate the Arduino board with SIM900?
I am using this library http://www.tinyosshop.com/datasheet/GSM_GPRS_GPS_Shield_GSMSHIELD.rar
and below is the sketch:
#include &quot;SIM900.h&quot;
#include &lt;SoftwareSerial.h&gt;
#include &quot;sms.h&quot;
SMSGSM sms;

int numdata;
boolean started=false;
char smsbuffer[160];
char n[20];

char sms_position;
char phone_number[20];
char sms_text[100];
int i;

void setup()
{
    Serial.begin(9600);
    
    if (gsm.begin(9600)) 
    {
        Serial.println(&quot;\nstatus=READY&quot;);
        started=true;
    } 
    else 
        Serial.println(&quot;\nstatus=IDLE&quot;);

    if(started) 
    {
        if (sms.SendSMS(&quot;214&quot;, &quot;?15001&quot;))
        {
          Serial.println(&quot;\nSMS sent OK.&quot;);
        }
        else
        {
          Serial.println(&quot;\nError sending SMS.&quot;);
        }      
    }
};

void loop()
{
    if(started) 
    {
        sms_position=sms.IsSMSPresent(SMS_UNREAD);
        if (sms_position) 
        {
            Serial.print(&quot;SMS postion:&quot;);
            Serial.println(sms_position,DEC);
            sms.GetSMS(sms_position, phone_number, sms_text, 100);
            Serial.println(phone_number);
            Serial.println(sms_text);
        }      
        delay(2000);
    }
};

and here is the output
Trying to force the baud-rate to 9600

1200
2400
4800
9600
19200
38400
57600
115200
ERROR: SIM900 doesn't answer. Check power and serial pins in GSM.cpp

status=IDLE

What I have tried so far:
I tried the sketch with SoftwareSerial mySerial(7, 8); and SoftwareSerial mySerial(9, 10) which i found on other tutorials but didn't work.
I tried modifying GSM.cpp and modify the value of _GSM_TXPIN_  and _GSM_RXPIN_  to 7, 8 and 9, 10 but didn't work.
Found that the pin on my Arduino is RX=0 and TX=1, and SIM900 is TX=0 and RX=1, tried the SoftwareSerial code above but with 0, 1 and GSM.cpp with 0, 1 but still not working.
I am currently still trying every other sketch i find on the internet but nothing works.
EDIT:
This is the link for the module i bought
https://www.lazada.com.ph/products/sim900-gsm-shield-i267689740-s379728457.html?mp=1
I cant find the link for the datasheet of this specific module so I will try to include the picture of the module
After many trials, I found the solution to my problem, thanks to @Majenko for mentioning the jumpers.
I am still stacking the SIM900 module on top of Arduino.
Switching the jumpers from D1 and D0 to D8 and D7 solved the problem (see green square on the pic)
I don't know why it needs to be on D8 and D7 since on board it says TX=0 and RX=1 and vise-versa for Arduino

Then used the below sketch from this tutorial &gt; https://lastminuteengineers.com/sim900-gsm-shield-arduino-tutorial/
#include &lt;SoftwareSerial.h&gt;

//Create software serial object to communicate with SIM900
SoftwareSerial mySerial(7, 8); //SIM900 Tx &amp; Rx is connected to Arduino #7 &amp; #8

void setup()
{
  //Begin serial communication with Arduino and Arduino IDE (Serial Monitor)
  Serial.begin(9600);
  
  //Begin serial communication with Arduino and SIM900
  mySerial.begin(9600);

  Serial.println(&quot;Initializing...&quot;);
  delay(1000);

  mySerial.println(&quot;AT&quot;); //Handshaking with SIM900
  updateSerial();
  mySerial.println(&quot;AT+CSQ&quot;); //Signal quality test, value range is 0-31 , 31 is the best
  updateSerial();
  mySerial.println(&quot;AT+CCID&quot;); //Read SIM information to confirm whether the SIM is plugged
  updateSerial();
  mySerial.println(&quot;AT+CREG?&quot;); //Check whether it has registered in the network
  updateSerial();
}

void loop()
{
  updateSerial();
}

void updateSerial()
{
  delay(500);
  while (Serial.available()) 
  {
    mySerial.write(Serial.read());//Forward what Serial received to Software Serial Port
  }
  while(mySerial.available()) 
  {
    Serial.write(mySerial.read());//Forward what Software Serial received to Serial Port
  }
}

With this, it displays correct output on serial monitor based on the tutorial and I can confirm that its working as well on my windows form application as it can send sms from the application.