To do list

There’s a number of things needed to transform our Yattaphone – as it is now – into a real substitute of a mobile phone. Here are some:

  • Join the phone audio: at the moment, the audio in/out of the 4G card is on one jack, while the audio in/out of the Raspberry is on another jack. We need to join the two, so that the user can hear the phone calls and the mp3 playback on the same earphone.
  • Reduce the size of the phone: it is far too big. We need to find solutions to reduces its thickness.
  • Complete the calls interface:
    • we need an interface to send and read SMSs
    • we need to split the call and the incoming calls managements: currently the phone rings only when the calls interface is open
    • we need to graphically improve the interface
  • Change the graphical interface of the the system. Presently we use the pre-installed LXDE. It is not a adequate to the touchscreen day by day use. We need to find something else. Gnome? Phosh? Plasma?
  • Change the virtual keyboard. Currently, we use Florence. It’s not bad, but it cannot be enlarged enough.
  • Design a new case: it needs some air slot and a closing mechanism.

If you have suggestions and/or want to contribute to the project, join us.

The external case

Once you have built a Yattaphone, and have made sure the sotware works, you will need an external case, to enclosure it, to protect it and keep it together. This is our first case, kindly printed out by mr Sig.

If you have a 3D printer, you can download the SCAD design. It was made with Openscad. It has exactly the measures of the Power Bank and of the display described in the hardware section.

Join the Project

Excited by the Yattaphone Project? Join it.

The community is organized around a mailing list. You can subscribe here:

On the mailing list, we discuss the next steps of the project (see the todo list) but also other possible Raspberry phone solutions. Moreover, we use the list to exchange news and views about new developments in the Linux for mobile phones world.


Once you have built your Yattaphone, you need to connect it to the internet and have a software that lets you make phone calls.

The connection script

Prior to running the script that you can find hereafter, you need to install some packages (in order to do that, connect the Raspberry to internet using WiFi or an Ethernet cable).

sudo apt-get update && sudo apt-get install libqmi-utils udhcpc

Next, you can insert in the 4G Board a SIM and connect to the internet through the following script:

sudo qmicli -d /dev/cdc-wdm0 –dms-set-operating-mode=’online’

#Check the signal
sudo qmicli -d /dev/cdc-wdm0 –dms-get-operating-mode
sudo qmicli -d /dev/cdc-wdm0 –nas-get-signal-strength
sudo qmicli -d /dev/cdc-wdm0 –nas-get-home-network

#Reconfigure the network interface for raw-ip protocol
sudo qmicli -d /dev/cdc-wdm0 -w
#this confirms the name of the network interface, typically wwan0
sudo ip link set wwan0 down
#change the wwan0 to the one returned above if different

echo ‘Y’ | sudo tee /sys/class/net/wwan0/qmi/raw_ip
sudo ip link set wwan0 up

#NOTE: replace “” with the APN of your own SIM network and PASSWORD with your own password
sudo qmicli -p -d /dev/cdc-wdm0 –device-open-net=’net-raw-ip|net-no-qos-header’ –wds-start-network=”apn=’’,username=’pi’,password=’PASSWORD,ip-type=4″ –client-no-release-cid

#configure the IP address and the default route with udhcpc
sudo udhcpc -i wwan0
ip a s wwan0
sleep 2
ip r s

If you wish, you can download this script here.

Note: sometimes it does not immediately work and you have to run it several times before it actually gets your Raspberry on the internet.

The phone calls interface

Next, you need an interface to make the calls. Here it is:

You can download it here.

It is a Python 3 script.
Note: in order to run it, you need to install all the needed Python 3 modules: threading, time, tkinter, RPi.GPIO, serial and pygame.

Then you can run the script:


The C button Calls.

The A button Answers.

The O button hangs up.

The SMS button shows all the SMSs stored in the SIM memory.

The M button is for debug, it reads the serial. If everything works, you don’t need it, as the serial is checked (and its content displayed) once a second. Each time a point is printed out.
Note: if you do not see a new point in line every second, it means that it is not working and it is not checking the serial.


The privacy I deserve

to be written


The first thing we need is a Raspberry Pi.

The minimal requirement is a RPi 3B, but a 3B+ is also good and a 4 is actually recommended. Once you will have a working phone, you will want to get a decent interface, and in order to have that you will need a lot of resources. Keep in mind, though, that this comes at a price: a better phone consumes more, so you will need to get a bigger and a heavier battery.

That’s why we’ll use here a RPi 3B+. Here it is:

First you need to make sure you have a Raspberri Pi OS (Raspbian) fresh install. You can download it here:

and follow the installation instructions.

The 4G Card

Now, you need a 4G board for Raspberry. You can find here a good one here:

Pay attention to the names and choose the right one for you:

  • SIM7600A-H 4G HAT: mainly applicable in North America (US, CA)
  • SIM7600E-H 4G HAT, SIM7600E LTE Cat-1 HAT: mainly applicable in Europe, Southeast Asia, West Asia, Africa, China, South Korea
  • SIM7600CE 4G HAT: mainly applicable in China
  • SIM7600G-H 4G HAT: the global version

Prior to installing it, you need to move the jumper down one step, from the position B to C. This is how the jumper is positioned on the board when you receive it:

Move it down one step. Then you have to insert you SIM card in its slot on the back of the card, on the upper right corner.

You may also want to add a SD memory card in order to store SMSs (otherwise they will be stored in the limited amount of memory provided by the SIM card).

Next, you can put together the board and the raspberry, through the 40 pins HAT interface (the black solid parallelepiped).

In order to use it, you will also need to connect the board via USB to the Raspberry. Warning: don’t plug the “USB TO UART” input but the “USB” one.

You don’t need to install drivers. In the software section, you will find the code needed to connect the card to the internet and the python interface to make phone calls.

The Touchscreen

Next, you need a display. We chose the 5.5inch Capacitive Touch Screen AMOLED (with protection case), a 1080×1920 display with HDMI Interface and 170° Viewing Angle.

This display has various pros. It has an excellent resolution, a wide viewing angle, a good touch response and it has a perfect size for a smartphone. Moreover, it is shipped with excellent connectors, that allow to connect the Raspberry to the screen without cables. Also, it is shipped even with a protection case, which is quite an important thing when it comes to build a phone from scratch (this case will add further protection to our yattacase, that you can find here).

If you want something less expensive, you can opt for a 5 inch HDMI Capacitive Touch Screen Monitor (800×480 HD LCD) Display:
It is smaller but it works. The problem is that you will need to design and print with a 3d printer a specific case, as the one designed here will not work.

On the contrary you should avoid the purchase of displays that work on the HAT connector, like this one:
They work perfectly but they are incompatible with the 4G card.

The audio card (with issue)

Next, you need to install an audio card, in order to let the phone ring when it receives a call. Currently I installed the Audio DAC HAT Sound Card, that you can find here:

It has built-in speakers and microphone.

Note: this card is for the software audio. The audio of the phone calls gets through the input/output audio jack you can find on the edge of the 4G card. You will need to plug an earphone to hear that.

The installation is very straightforward: just connect the board though the HAT interface and follow these instructions to install the drivers:

At first it works fine. But there’s an issue: the HAT again. Once you actually let the card play an audio, you lose control over the 4G card. As of now, this is an unresolved problem. I am quite confident that there is a solution. Otherwise, we will need to find a different solution for audio.

The Battery

Now that you have a device able to make and receive calls, connect to the internet over the 4G net, that has a beautiful display and that can ring, you need to power it. How? With a Power Bank.

Here you can find my favourite solution:

It has a 26,800 mAh capacity (more that enough to let the Yattaphone work for an entire day), with 2 inputs and 2 outputs. Moreover, it has a solar cell on one side. Of course, you cannot really rely on that to power the phone, but it helps. And if you get lost in the forest, you just need to wait a few hours to collect enough power to make the one phone call that will save your life.

A less powerful but much smaller and lighter solution is this one:

It is very nice and it has exactly the same size of a Rasperry. But beware: if you go for this one, which has a capacity of 2,500 mA, forget the big display. You will need something much less power-consuming.

Now that everything is set up, it’s time to pass to the software section. Follow me.


Hello world!

Welcome to WordPress. This is your first post. Edit or delete it, then start writing!