The ESP32-Based VoIP WiPhone

Alasdair Allan
3 min readAug 22, 2018

Remember Nokia? Or rather, do you remember Nokia before Apple, before the iPhone changed everything? Seems like a lot of us do and the launch of the “reimagined” Nokia 3310 last year, followed earlier this year by the Nokia 8110, was a big thing for them. Retro, not so smart, phones are apparently now fairly cool.

It was Chris Anderson that coined the phrase “the peace dividend of the smartphone war” arguing that “…when giants battle, we all win,” and it’s that smartphone war that made building your own phone a possibility, and there have been any number of people that have done so; from Matt Biddulph’s “cellphone from parts,” Avishek Hardin’s lightweight Arduino-powered GSM handset, through to Adafruit’s box-like Ardui-o-Phone, and the ArduPhone, an off-the-shelf Arduino-compatible cellphone from freetronics.

But surprisingly, what you don’t see—considering the number of GSM-based self-build handsets—are that many Voice over IP (VoIP) phones. Phones built to connect to Wi-Fi and VoIP systems, instead of the cell phone network. Enter the WiPhone, an open source IP phone built around the now ubiquitous Espressif Systems ESP32 module.

The WiPhone prototype. (📷: Andriy Makukha)

Most large companies have moved their desk phones to IP-based networks, and apart from the fact they now plug into an Ethernet jack, if you work for one of these you probably haven’t noticed a lot of difference. But it is also pretty easy for you as an individual to get a PSTN, a ‘real’ telephone number from a VoIP provider, that people can dial from their normal phones.

At that point, not only can you call other people with VoIP phones over the Internet, but people can call you from their normal phone, and of course—although usually not for free—you too can call out to normal phones.

The WiPhone is a really rather neatly put together project, which is intended to be “…hackable, modular, cheap, and open.”

Benchmarking the WiPhone’s graphics hardware. (📹: Andriy Makukha)

Built around the ESP32, the phone uses a 2.4-inch screen, driving the 320×240 pixel display over SPI and the TFT_eSPI library. While the keypad used by the phone is provided by the SN7326 keypad controller over I2C.

More information about the WiPhone is available on the project’s page, and code can be found in the project’s GitHub repos.

Update: Looks like a lot of work has been done on the WiPhone recently, with the phone progressing through to a second prototype ready for real world testing. Although the project is also experimenting with capacitance touch buttons to try and take the phone entirely solid state.

ESP32 WiPhone Prototype 2 Assembly. (📹: ESP32 WiPhone)

“…still more of a prototype model than a production unit. The main purpose of this version is to give us something to actually use. Real world use is important for finding all the little issues that show up once a design moves from pictures on a screen to reality.”

WiPhone Prototype 2. (📷: Andriy Makukha)

If anything the new case of Prototype 2 makes the WiPhone look even more like the “reimagined” Nokia 3310, or at least the original, than it did before. Which is no bad thing.