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.
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.
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.
#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 “wap.tim.it” 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=’wap.tim.it’,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
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 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.
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).
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.
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.
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.