Project in progress
How to Make Calls With Arduino - CoolPhone 1/2

How to Make Calls With Arduino - CoolPhone 1/2 © CC BY-NC-SA

I decided to make my own phone that would only be used for making and receiving calls. I hope it will be as durable as the Nokia 3310.

  • 5,940 views
  • 6 comments
  • 23 respects

Components and supplies

Apps and online services

About this project


CoolPhone

Nokia n97 - It was probably my first mobile phone. I used it for listening to music and sometimes takingpictures, but mostly for making calls. I decided to make my own phone that would only be used for making and receiving calls. It will be an interesting solution for children, older people and those who have problems with using the phone for too long. I hope it will be at least half as durable as the Nokia 3310.


Arduino Nano ---- ​Official

SIM800l ----------- ​Aliexpress

Breadboard ------ ​Aliexpress

1k resistor x4 ---- ​Aliexpress

NPN transistor -- ​Aliexpress

Tact switch x3 --- ​Aliexpress

Wires --------------- ​Aliexpress

Step 1: A Few Thoughts

I planned that I would start creating this project from creating a prototype on a breadboard. After a few minutes of browsing projects with GSM modules, I decided to order the sim800l module, because it is simply the smallest, but it turned out that I did not have to order it because it fell off the laptop screen (check the video), and it already had goldpins soldered, great.

Step 2: Connecting and Powering

I connected the Arduino, GSM module, resistors and transistor to the prototype board and connected all components according to "schematic 1". Be sure to use a step-down converter or a separate battery to power this module, as it requires a 4, 2V power supply. I will use a battery from an old smartphone. After connecting the wires from the power supply, the LED should blink every second, which means that the module cannot connect to the network.

Step 3: Inserting a SIM Card

Now I put a sim card in it and the LED flashes every 3 seconds, informing that the module is connected to the network

(Check "schematic 2"). After uploading the sketch and entering "ATD+yyXXXXXXXXX;" command, the module should make the call. Then I connected three switches to the Arduino, the first to choose the number, the second to start the call and the third to end the call. I added a few lines to the earlier mentioned program and uploaded it to Arduino.

yy - your area code

XXXXXXXXX - your number

Check all AT Commands ----> here<----

Step 4: Testing

To test this prototype, I will go outside with my smartphone and connect to the CoolPhone. I wonder how much noises there will be. Let's check it! (I encourage you to watch the video above showing how this prototype works.) As you may have noticed and heard, there is a lot of noise on both devices due to the lack of signal filtering on the microphone and speaker. I consider this prototype finished and successful, so I will create a PCB based on it, which will be provided by PCBWay as usual.

Step 5: A Few Words at the End and an Interesting Promotion

I said before that I would like the CoolPhone to be at least half as durable as the Nokia 3310 and I didn't joke because I will print the case for it from a material called Calibram BT. It is a high-quality filament containing the best features of several other materials. You can read about it here. In the next project, I will show you the rest of my adventure with CoolPhone.

My Youtube: YouTube

My Facebook: Facebook

My Instagram: Instagram

Get 10 PCBs for only $5: PCBWay

Shop with 3D printing accessories: Solid 3d (-10% on all products with the code "ARTR2020")

Code

Code for CoolPhoneArduino
#include <SoftwareSerial.h>
char dane;
String Arsp, Grsp;
SoftwareSerial mySerial(10, 11); // RX, TX

int but1 = 3;
int but2 = 4;
int but3 = 5;
int onModulePin = 2;
int disc;
int call;
int number;
unsigned long nr;

const char phone_numberA[] = "WRITE YOUR NUMBER";

void setup() {
 
  Serial.begin(9600);
  mySerial.begin(4800);
   Serial.println("Starting...");

  pinMode(but1, INPUT);
  pinMode(but2, INPUT);
  pinMode(but3, INPUT);


  Serial.println("Press a button");

}

void loop() {
call = digitalRead(but1);
number = digitalRead(but2);
disc = digitalRead(but3);

if(call == HIGH)
{
 delay(200);
 Serial.println("making call");
 String cmd;
 cmd = "ATD";
 cmd += ("+48");
 cmd += nr;
 cmd += ";";
 mySerial.println(cmd); 
}

if(number == HIGH)
{
 delay(200);
 Serial.println("nr choosed");
 nr = WRITE YOUR NUMBER;  
}

if(disc == HIGH)
{
 delay(200);
 Serial.println("disconnected");
 mySerial.println("ATH");  
}
    
   if(mySerial.available())
  {
    Grsp = mySerial.readString();
    Serial.println(Grsp);
  }

  if(Serial.available())
  {
    Arsp = Serial.readString();
    mySerial.println(Arsp);
  }
  
  

}

Schematics

Schematic 1
Coolphone fritzing 6tsvoxfyfo
Schematic 2
Coolphonefull fritzing yh6xdfepzp

Comments

Similar projects you might like

AutoSteri

Project tutorial by David Bershadsky

  • 5,667 views
  • 4 comments
  • 18 respects

Smart Pull-Up Bar

Project tutorial by Nikolaos Babetas

  • 3,115 views
  • 9 comments
  • 14 respects

BristleBot - IoT Data Visualization

Project in progress by Iva Jerabkova

  • 1,972 views
  • 0 comments
  • 5 respects

DIY RFID DOOR LOCK System

Project tutorial by DIY Projects Lab

  • 13,182 views
  • 1 comment
  • 10 respects
Add projectSign up / Login