OURphone Is a Fully Open Source Smartphone Based on Linux
As smartphone technology has progressed in the last decade, it has become increasingly difficult for the average hobbyist to meaningfully change the hardware in any way due to how small and complex the internal components have gotten. This is why Evan Robinson wanted to design the Open source, Upgradeable, Repairable smartphone, or the OURphone. The aim was to make a device with enough features to function as a smartphone from around 2010, except all of the code and electronics would be available for anyone to see.
The mainboard for the OURphone started life as a Raspberry Pi 3 Model B since it contains a quad core 1.2GHz 64-bit CPU and 1GB of RAM and has built-in WiFi and Bluetooth.. And because it is a cell phone, after all, Robinson selected the Waveshare SIM7600G-H 4G HAT to handle the aspects of external network and GPS communication. No modern cell phone is complete without the large, central touch screen, which is why he went with a 4-inch 480x800 HDMI screen from Waveshare that could easily interface with the Pi. Finally, the phone senses the world through an external 5MP Raspberry Pi Camera Module and a single microphone element.
After connecting the Waveshare 4G LTE HAT to the Pi's GPIO pins, Robinson then attached the microphone, GSM antenna, and GPS modules to it. From here, he set up a relay to control power going to the speaker amplifier as well as the 10k potentiometer for adjusting the volume. Power comes from a pair of Li-ion battery cells wired in parallel which get charged by a USB charge controller and whose voltage gets boosted from 3.7V to 5V by a buck/boost converter.
At first, the assembled bundle of electronic components that was quite bulky, and since he did not want to design a custom PCB, getting it to fit inside of a handheld case would be a challenge. So instead, Robinson began by creating new USB cables with thinner wire and modified the plugs for the USB devices to be soldered directly into the Pi. Fitting the Waveshare 4G HAT meant cutting off the two external USB ports with a rotary cutting tool and then hot-gluing the PCB antenna securely into place.
The phone's case was custom-designed to accommodate Robinson's arrangement of the components. It features a large, rectangular hole at the top for the LCD screen, a pair of speaker grills, and openings for connecting power, the camera, and other USB devices. The entire case was cut from a sheet of MDF board to lower cost, although heat dissipation proved to be large downside.
Apart from the screen and cellular module, phones are also defined by their software experience. To get all of the modules working, Robinson devised a series of Python and shell scripts that automatically enable and configure features such as calling, SMS messaging, contact storage, photos, GPS, and more. Other scripts, such as the location-provider.py file, present real-time coordinates coming from the GPS module for use in other applications.
Although it worked well, Robinson states that his phone could use some improvements — mainly when it comes to the UI and audio. The current iteration relies entirely on the Raspberry Pi desktop environment and windowed apps which should be replaced by a touchscreen-first experience. Additionally, some crackling and other audio issues could be fixed by shielding the speaker and microphone cables. To read more about how the OURphone was built, you can check out Robinson's write-up.