/* Band Management This sketch, for the Arduino GSM shield, checks the band currently configured in the modem and allows you to change it. Please check http://www.worldtimezone.com/gsm.html Usual configurations: Europe, Africa, Middle East: E-GSM(900)+DCS(1800) USA, Canada, South America: GSM(850)+PCS(1900) Mexico: PCS(1900) Brazil: GSM(850)+E-GSM(900)+DCS(1800)+PCS(1900) Circuit: * GSM shield created 12 June 2012 by Javier Zorzano, Scott Fitzgerald This example is in the public domain. */ // libraries #include // initialize the library instance GSMBand band; void setup() { // initialize serial communications and wait for port to open: Serial.begin(9600); while (!Serial) { ; // wait for serial port to connect. Needed for Leonardo only } // Beginning the band manager restarts the modem Serial.println("Restarting modem..."); band.begin(); Serial.println("Modem restarted."); }; void loop() { // Get current band String bandName = band.getBand(); // Get and print band name Serial.print("Current band:"); Serial.println(bandName); Serial.println("Want to change the band you’re on?"); String newBandName; newBandName = askUser(); // Tell the user what we are about to do… Serial.print("\nConfiguring band "); Serial.println(newBandName); // Change the band boolean operationSuccess; operationSuccess = band.setBand(newBandName); // Tell the user if the operation was OK if(operationSuccess) { Serial.println("Success"); } else { Serial.println("Error while changing band"); } if(operationSuccess) { while(true); } } // This function offers the user different options // through the Serial interface // The user selects one String askUser() { String newBand; Serial.println("Select band:"); // Print the different options Serial.println("1 : E-GSM(900)"); Serial.println("2 : DCS(1800)"); Serial.println("3 : PCS(1900)"); Serial.println("4 : E-GSM(900)+DCS(1800) ex: Europe"); Serial.println("5 : GSM(850)+PCS(1900) Ex: USA, South Am."); Serial.println("6 : GSM(850)+E-GSM(900)+DCS(1800)+PCS(1900)"); // Empty the incoming buffer while(Serial.available()) Serial.read(); // Wait for an answer, just look at the first character while(!Serial.available()); char c= Serial.read(); if(c=='1') newBand=GSM_MODE_EGSM; else if(c=='2') newBand=GSM_MODE_DCS; else if(c=='3') newBand=GSM_MODE_PCS; else if(c=='4') newBand=GSM_MODE_EGSM_DCS; else if(c=='5') newBand=GSM_MODE_GSM850_PCS; else if(c=='6') newBand=GSM_MODE_GSM850_EGSM_DCS_PCS; else newBand="GSM_MODE_UNDEFINED"; return newBand; }