Introduction: ArduinoPhone

Picture of ArduinoPhone

Note that ArduinoPhone V2.0 had been published at Jan 26, 2016, click to view more details.

Combining Arduino and other shield modules, we make a mobile phone named Arduino Phone. Meanwhile, we printed a shell for it with the 3D printer. Although it’s not such fine as you think, even a little bit clunky, it’s still very cool. That is the point this is a cell phone made by ourselves.

While, we can’t install Arduino Phone Apps limited by Arduino. So, if you want to play Angry Birds, then you need to do some big modifications on Arduino Phone. :)

Next, I will make a detailed explanation about the steps of making an Arduino Phone, including the hardware connection and software implementation.

Now, let’s begin.

Step 1: Preparing Stuffs

Picture of Preparing Stuffs

At the very beginning, we’d better prepare the materials. Of course, most of these modules can be purchased directly, such as Arduino Uno, TFT Touch Shield and GPRS Shield.

Owning to we want to put our Arduino Phone into a 3D printed shell, and in order to adapt the size of this shell, we have to DIY a charging and discharging PCB board (including two parts) and an expansion PCB board which can connect to the headphone jack of GPRS Shield.

If you want to make a shell by yourself, you can directly take Lipo Rider, or something like this, as the charge sheet. Thus, you do not need to DIY PCB board in order to meet the size of the shell.

What you need:

1.Arduino Uno

2.TFT Touch Shield

3.GPRS Shield


5.Custom ArduinoPhone Charge Circuit (or Lipo Rider)

6.Li-po battery

7.A shell (with 3D printer)

All components at here.

Step 2: Hardware Connection

Picture of Hardware Connection

After preparing the materials, we need to assemble the above electronic components to lay the foundation functional part of Arduino Phone.

1.Plug GPRS Shield into Arduino UNI, then, connect the TFT Touch Shield to GPRS.
2.Connect RTC module to Arduino UNO.
2.Plug into the power module, and connect your earphone to the headphone jack on GPRS.

Well, if you choose to use Lipo Rider, you can refer to this sort of connection.

Ok, now, we are going to get into the software program part.

Step 3: Programming and Test

Picture of Programming and Test

This Arduino Phone contains the following main functions.

1. receive & send message, letter input

2. dial & answer calls

3. real time clock display

4. A convenient and concise UI, You can switch function by sliding your finger on the screen. A standard 12 key input method for inputting message.

You can get all of the Arduino Phone code from the Github, including the dependent libraries.

-------------------------Following was updated at Dec 7, 2015------------------------

1. When you get to the github page, find a Download ZIP button, click to download the code.

2. The code you downloaded is not an Arduino library, it's a sketchbook, which is include all the library the project need.

3. Unzip the file you had downloaded from github, you will get a folder named ArduinoPhone-master.

4. Open your Arduino IDE, click File > Preferences > Sketchbook Location, browse to the folder we had mentioned above - ArduinoPhone-master. Then click OK to save it.

5. Close and re-open Arduino IDE, click File > Sketchbook > PhoneCode, then the main code of Arduino Phone is open.

6. Choose the right board and port to upload the code.

Refer to the image above.

-------------------------Above was updated at Dec 7, 2015------------------------

However, a much more difficult problem is that this Arduino Phone hasn’t physical buttons
(except the Reset button switch and GPRS). So, how to manage UI will be a challenging task.

Fortunately, TFT Touch not only provides a display function, also a touch screen function.
Thus, we can manage the UI through gesture, like left-swipe and right-swipe.

It this step, we will show how ArduinoPhone works. And the picture indicates the workflow of ArduinoPhone.

Finally, opening ArduinoPhone.ino with Arduino IDE, then uplaod source code to ArduinoPhone.

Step 4: Assembling

Picture of Assembling

In order to make it look like a phone, we printed a shell with 3D printer as shown below. Then, assemble them carefully.

This is a troublesome but interesting process. Actually, maybe it will be more interesting if you put them into other shells, such as in shoes( see the picture :) ).

We are planning to do Arduino upgraded version. If you have any ideas or are willing to help us design a more perfect UI, welcome to contact me.

Step 5: Version 2.0

Picture of Version 2.0

ArduinoPhone 2.0 had been published, which consists the below feature:

  • Even more thinner, about 20 mm
  • Support of solar and DC adopt charge
  • Much more easy to install
  • A longer standby time, more that 50 hours
  • On board MIC and Speaker, say goodbye to the earphone
  • 3D print sheel

Click ArduinoPhone 2.0 to get more info.



mohamedzreik287 (author)2017-12-14

PLZ PLZ HELP ME!! ITS NOT PROGRAMMING IT ALWAYS SHOWS error. it says no such file or directory!! PLZ HELP i have to get this done fast!!

any help is appreciated

cagrikanver (author)2017-05-18

Wow that's really a cool phone. Great work on that Arduino Phone.

Cagri Kanver (author)2017-04-18

Amazing DIY tutorial

ManjunathM10 (author)2016-08-23

can I replace the battery with solar pannel ?
thanks in advance

vernkle (author)ManjunathM102016-11-18

Solar has too much variation in power. If you put some intermediate storage such as a 1F capacitor it should work. Also by nature capacitors stop excepting power when they are fully charged, so we can eliminate a complicated charge circuit.

ManuelL62 (author)ManjunathM102016-10-02 You can use this, I think. It uses solar power or USB connection to the electric network.

Luis Doporto (author)2016-08-19


ezrasmith21 (author)2016-06-23


drakegriffin (author)2016-06-12

Great one

almandawilson (author)2016-05-02


luizamodel (author)2016-04-30

Great work

romanhank (author)2016-04-26

i like your work

Ahmet MelikA (author)2016-04-21

Hi,i did everything clearly but,i cannot communicate with phone(sending sms or making call).Here is my case:my GSM Module which i used is different from which used in above project.So i firstly connected the tft screen and then soldered the Rx of GSM Module to D0,Tx of GSM Module to D1 and GND of GSM Module to GND of Arduino but as i said although the screen works,i can't communicate.Please help me...

Jonathanrjpereira (author)2016-03-16

When are the RePhone kits going to start to ship?

rose_engler (author)2016-03-08

Hi, so a friend and I are making this phone for a school project and you laying it out like this is amazing, but we were stuck at the point where we have the screen display but the phone won't call or send messages or receive them and we do not know why! We uploaded the first code but the last step of the uploading won't work for us! PLEASE HELP we have been working on this project for quite a while and really want to see the finished product. Please emailmail me if you can we would appreciate it so much

Trigger_ijaz (author)2016-01-31

Do you have a circuit diagram for this ?,

TehseenHasan56 (author)2016-01-20

perfect (y)

Thanks man, I am glad that you like it.

Seeed Studio (author)2015-12-10

I am going to maker the v2.0 version. may publish 2 weeks later. this function will use Lipo rider for the power, and support Solar charge.

crosbiematt (author)2015-12-09

Do I need a 2g Sim can only?

Seeed Studio (author)crosbiematt2015-12-10

I didn't have a try, but I think if your card has the capability of making a phone call, it's ok.

crosbiematt (author)2015-12-06

Help! I'm pretty novice in all of this. I usually just upload sketch code in Arduino IDE. When I get to Github, it's all confusing to me. What code do I copy paste and in what order? There are seven or so different files. Any chance someone can e-mail me the entire code or direct me in what to do? I have all my supplies but I'm really stuck now:( Any help is much appreciated.:)

Seeed Studio (author)crosbiematt2015-12-06

Hi, I am sorry that I didn't make it clear in the Instructable, and I had updated it minutes ago. Please refer to Step3. Thanks.

crosbiematt (author)Seeed Studio2015-12-07

It worked great! Thanks so much

Seeed Studio (author)crosbiematt2015-12-08

Have fun! Could you please make a <I Make it> when it's finished. Thanks.

 tpmike (author)2015-11-25

Very nice work...

Seeed Studio (author) tpmike2015-11-25

I am glad that you like it, thank you very much.

Xylit0l made it! (author)2015-11-09

Thanks for pulling the code for the v2 inside github.
Do you plan do fix the 3D shell for the seeed studio parts also ?
lipo rider, battery can't fit inside.

Seeed Studio (author)Xylit0l2015-11-09

That's a good suggestion, will consider about it. Thanks.

ForM4iN (author)2015-11-05

One more Question:

Is it a problem if the Sim Card is code locked?

Seeed Studio (author)ForM4iN2015-11-05

yep, you need a non-locked sim card.

ForM4iN (author)2015-10-14

Can me pls someone tell me or send me the Code for the TFT 2.0v ?!


Seeed Studio (author)ForM4iN2015-10-21

That's my pleasure, have fun!

Seeed Studio (author)ForM4iN2015-10-14

Hi, sorry for the delay reply, was busy this few days. :). The code in github in based on TFTv1, as well as the code, you need to down TFT V2 library, and put into the libraries folder. and the code need to be modified. some function name is not the same as V1. I am planing to update it to V2 a few days later.

ForM4iN (author)Seeed Studio2015-10-15

Would be very nice if you could do it as fast as possible, because i really need this for school :D

Seeed Studio (author)ForM4iN2015-10-20

Code had been updated, not it's default to TFT v2.

ForM4iN (author)Seeed Studio2015-10-21


tramitesmexico (author)2015-10-20

A bit difficult for me, but it is a good idea!

Actually, it's not that hard. You can make it.

meikkis (author)2015-10-13

This is very coooool!!!

Seeed Studio (author)meikkis2015-10-14

Thanks :)

ForM4iN (author)2015-09-26


can you guys tell me, how i connect the groove rtc with the arduino,

because there is no pin at the arduino.

second the code will always give me a error.

What do i have to do ?

Seeed Studio (author)ForM4iN2015-10-07

Hi, I am sorry that I didn't make it clear in the instructable,

A4->SDA, A5->SCA.

ForM4iN (author)Seeed Studio2015-10-09


but sry to say that i dont really know all these short things what means


And do you know why nothing happens on the TFT shield when i put it on power?

The Code is uploaded.

Seeed Studio (author)ForM4iN2015-10-09

Hi, for the board base on Atmega328, SDA/SCL is the same pin as A4/A5.

What's the version of your TFT Shield. For version 2.0, there's something in the code need to be modify.

ForM4iN (author)Seeed Studio2015-10-10


OK thanks.

Yes it is 2.0.What do i have to do?

Seeed Studio (author)ForM4iN2015-09-27

hi, you need to solder it to the i2c pin, and vcc, gnd. because there's no grove connector on Arduino.

ForM4iN (author)Seeed Studio2015-09-28

can you also help me with the code?

do i have to connect all that stuff first? or can i just load it onto the arduino?

and do i have do have the sim card in before? cause i dont have one yet

Seeed Studio (author)ForM4iN2015-10-07

Hi, actually it's no important about the order, you can connect the stuff first or load the code first.

ForM4iN (author)Seeed Studio2015-10-07


which one is the i2c pin? is it analog in? a0 - a5?

and when does something happen on the tft?

i loaded the code but nothing happend.

do i have to connect everything first? because i only conected the gprs arduino and tft

About This Instructable




Bio: Howdy, we are application engineers in Seeedstudio. Sharing projects with maker community is awesome. Hope you like it XD
More by Seeed Studio:Diy Smart Home Assistant With Raspberry Pi and ReSpeaker Mic ArrayBuild Google Assistant on Raspberry Pi With ReSpeaker Mic ArrayDIY a Gesture Keyboard That Can Control the Media Player
Add instructable to: