Introduction: ArduinoPhone 2.0 - an Open Source Mobile Phone
More than 2 years ago I had made an instructable - ArduinoPhone.
ArduinoPhone was big and it's difficult for the beginner to make one. As there's a step to make the charge circuit.
And I had heard so many voice that when will you make ArudinoPhone 2.0 for this 2 years. I think I really should make it someday.
It's lucky that I have got some free time for the past month, so I spend about 3 weekend to design it. And now it's done. Before you read about the steps, let's view some featured of ArduinoPhone2.0.
- 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
Step 1: What Do We Need
Let's prepare some stuff first.
Electronic modules:
Others:
- Switch
- Button
- DC Jack input connector
- 3D printer and the material
Step 2: Hack in Seeeduino GPRS
There's some pins on Seeeduino GPRS conflict with TFT Touch Shield.
Here we need to cut a line on the PCB of Seeeduino GPRS, as shown in the Image.
And do some soldering, connect the pin to D3 of Seeeduino GPRS.
Remove R_D7 and R_D8(On the back of the board), and connect R_RX, R_TX together.
Step 3: Connect the Audio Board
We need a MIC and a speaker to make a call.
Here we will use Xadow Audio to act as mic and speaker.
You need to do some soldering here. As shown at the above image
Step 4: Hardware Connection
There's a button, to power on/off the screen. Connect it to D2 and GND.
As the power supply, we need to do some solder as well, we will connect 5V and GND to Seeeduino GPRS, and 5V will cross a switch to shut down all the system.
To charge the Li-battery, there's a barrel jack input, connect it to the input port of Lipo Rider, then we can use a 5V adopt to charge the system.
Step 5: Software Works
Seeeduino GPRS was in Arudino Leonardo bootloader. So if you had ever used Arudino, it's easy for you to make this step. If not please put hand on www.arduino.cc to getting started.
Click here to get more info about the board.
Click hereto download the code.
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 namedArduinoPhone-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(Arduino Leonardo) and port to upload the code. Refer to the image above.
After finished this step, you should get the UI of ArduinoPhone 2.0. If not please make sure if the code had been uploaded well.
Step 6: Test It
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 simple UI, You can switch function by sliding your finger on the screen. A standard 12 key input method for inputting message.
Step 7: 3D Print a Shell
Attachments
Step 8: Assembly Exploded Figure
There is an assembly exploded figure to give you a clear mind to do the assembly.
Then let's go to the next step.
Step 9: Fix the Solar Panel
Put the solar panel in the groove of the bottom shell,
Pass the electric wire through the small hole. Paste the solar panel.
Step 10: Fix Seeeduino GPRS
There are 3 fix palces on the back of the bottom shell, its diameter is 3mm,and the thickness is 1mm.Fix Seeeduino GPRS on the back of the top shell with 3 screws.
Step 11: Fix the Other Modules
fix the Lipo Rider、 Xadow Audio、 Xadow GSM Breakout
Following the picture to find the right fix places ,then fix the Lipo Rider、 Xadow Audio、 Xadow GSM Breakout on the bottom shell.
Step 12: Make It Better
It's an open source project.
So far Arduino Phone 2.0 is still simple and crude, it only has the capacity to make the basic communication. But I believe that it will grow up better and better with the help of the community. And this is why people like open source and the community.
If you get a better idea, or you had made some improvement in the code, please give me pull request in Github. I am really appreciate that.
Cheers。