ESP32 WiPhone

The WiPhone project is an open source mobile IP phone. WiPhone is intended to be hackable, modular, cheap, and open, while remaining usable.

Public Chat
Similar projects worth following

If you'd like to buy a WiPhone later, or want the fastest way to follow along with our progress, please join our email group:

Join the project email list for:

  • First in line once WiPhone is ready to buy.
  • Project updates and plans go out to the email list first.
  • Super top secret handshake.


WiPhone Prototype
WiPhone Prototype

The WiPhone project is an open source phone capable of making free calls through the internet. It makes calls over WiFi, without the need for a cellular radio.

It's also an open source, self-contained Arduino development platform. It comes in a nice package, with a battery, power supply, and on/off circuitry, unlike most other dev boards. Once your project is done, instead of an eyesore of tangled wires, it's discreet and visually appealing.

The phone is intended to be hackable, modular, cheap, and open, while remaining usable by everyday people.


Modern smartphones are more and more a tool we don't own, we're only allowed to carry around. One that serves the interests of those who allow you to buy it in return for the tentacles that get inserted into your life. You don't own it, it owns you. It tracks you, serves you ads, and sucks away your time with mindless dopamine hits. We want a phone that's firmly in our control, optimized for the convenience of the owner, not various corporate boards, ad and tracking networks and government organizations.

We want a phone that reverses that, and puts us back in control. Maybe even fights back a little. Full control of the firmware to allow us to repurpose the phone into whatever application we want. Hardware with accessible I/O and an easy disassembly process.


  • Completely free calling, as long as you can set up an account and install a SIP/VoIP app on the devices you need to call.
  • International calls are same as local ones. No restrictions based on borders or calling plans.
  • Don’t need to deal with another country’s SIM cards or radio compatibility when traveling.
  • Keep the same address all over the world.
  • Set up your kid with a phone that lets them contact you without the distractions of a smartphone.
  • Give a pre-configured phone to an elderly relation set up with just the numbers they need.
  • Keep a spare in a bag in case your primary phone gets broken or lost. Don’t need to maintain a service plan for the backup.
  • Avoid being tracked by cell tower triangulation or IMSI catching (Stingray).
  • Load your own firmware to implement different calling protocols or completely different use-cases. The firmware is unlocked and freely modifiable.
  • Commercial phone interchange services are available if you need to call someone on a regular phone. Typical plans cost about $25/year (US or Europe providers).

Planned Features

  • polished enough normal (non-hackers) are happy to use it as an everyday phone
  • open source
  • can call other WiPhones using the internet
  • can call smartphones or computers (using an app installed on the device being called)
  • wireless firmware updates
  • Arduino compatible software
  • Espressif ESP32 processor
  • roughly 120 x 65 x 12mm
  • 320 x 240 (2.4“) LCD screen
  • spare I/O broken out to user-accessible header

JPEG Image - 80.48 kB - 02/21/2019 at 15:39


JPEG Image - 104.72 kB - 02/21/2019 at 15:38


JPEG Image - 101.54 kB - 02/21/2019 at 15:38


JPEG Image - 81.21 kB - 02/21/2019 at 15:38


JPEG Image - 90.01 kB - 02/21/2019 at 15:38


View all 71 files

  • Testing the Keypad Mold

    stupid14 hours ago 0 comments

    Our prototype keypad mold arrived and we made some test parts, and also learned a few things about handling silicone.

    Some pics of the mold:

    Top Surface of Assembled Mold
    Top Surface of Assembled Mold

    This mold is a very simple clamshell type that's only going to be used for manual testing. We just want to figure out if the keypad geometry is correct before moving to a production mold, and also get a few parts to use in the latest batch of testing phones. We will fill it by hand using a syringe.

    Views of the inner surfaces. One side for the buttons, and the other side makes the inner features, including the little pips that push the dome contacts and close the electrical circuit.

    Button Side
    Keypad Inner Surface

    We also had some silicone compatible dye on hand, so later pours were tinted blue. The keypad will probably be black in production, but we didn't have any black dye.

    Before using the dye in a casting we made a few small test batches to make sure it would cure correctly. The supplier said it should work, but since we bought the dye and silicone from different places we wanted to test it first.

    The silicone is a 2 part condensation cure type. The first rubber hardness we tried was Shore 50A, which turned out to be too soft.

    We also learned a few tricks to make the process go smoother.

    This particular mold has some critical features on both sides that form natural bubble traps. Button surfaces tend to trap air on the outside, and the pips that press the dome contacts trap air on the inside. So we have to be careful when filling to mold to eliminate bubbles. Since the silicone is thick and not prone to running, we could fill the bubble trap areas using the syringe before closing the mold and pouring the reminder through the main sprue. There were likely still a few bubbles caused by this method, but they all end up in areas we don't care about.

    Filling Bubble-Trap Areas
    Filling Bubble-Trap Areas

    Another trick was to vacuum degas the syringe after loading it with silicone. It's almost impossible to mix silicone by hand without introducing bubbles, but the degas step pulls them back out.

    The pour process:

    Some results:
    This first one was not degassed. As you can see, there were lots of bubbles:

    Next pour went better. We degassed, were careful to fill the critical areas of the mold, and used the blue dye we had tested earlier:

    Some shots of the keypad in the prototype phone:

    The buttons weren't pressing the dome contacts enough to easily make the electrical contact, so we added some foam underneath. With the foam it works better, but is still a little soft. Later we will try some harder silicone. We will also need to modify the shape of the mold to add more silicone near the dome contacts so that the production parts make better contact.:

    Result after using the blue dye:

  • Another Hackaday Blog Writeup

    stupid02/06/2019 at 15:26 0 comments

    On the main page right now (2019/02/06):

    The WiFi Phone That Respects Your Right To Repair

  • Keypad

    stupid01/21/2019 at 02:55 0 comments

    Got some samples in today for the production keypad buttons. We went with dome contacts. These will be positioned over gold plated fingers on the main PCB, and they are held in position with a clear plastic overlay.

    WiPhone Button Array
    WiPhone Button Array

    Also sent out a little mold for the keypad. This is not the production mold, just a quick/cheap one to confirm the keypad geometry works. Should arrive later this week and we can make a few samples by squirting silicone into the mold using a syringe.

    WiPhone Keypad Mold
    WiPhone Keypad Mold
    WiPhone Keypad Mold - Bottom
    WiPhone Keypad Mold - Bottom

  • GUI, Software and Electronics Improvements

    stupid10/19/2018 at 03:44 0 comments

    We've been dialing a lot of things in on the motherboard. The biggest noticeable change is the GUI. It looks much more polished now. We're almost ready to start carrying the phone around for daily use.

    For complete details, read the full post on the WiPhone blog:

    WiPhone Boot Screen
    WiPhone Boot Screen

  • Daughter Boards

    stupid10/08/2018 at 10:10 0 comments

    What's an electronics project without an attempt at modularity? As part of our project goals, we want a phone that can be easily modified and expanded, but still remains something you could actually use every day. How do we balance those requirements?

    For complete details, read the full post on the WiPhone blog:

  • Capacitive Button Panel Testing

    stupid09/21/2018 at 09:38 0 comments

    Original post on the WiPhone blog:

    We wanted to see if it was possible to eliminate the physical buttons on the front of the phone by using a capacitive button panel.

    It has a few advantages:

    • At this point in time, it's what people expect (it looks good)
    • If we do it right, it could be easy to let people swap out a PCB with a different button layout, opening up the ability to adapt the hardware to different purposes.
    • Potentially longer design life, due to no moving parts


    • Somewhat risky. Physical button panel examples are everywhere, but you don't generally see capacitive button panels as dense as we need. There's probably a reason for that, so we expect to have issues with crosstalk/inadvertent triggering of neighboring buttons.

    We made a test panel, shown above, that has buttons of approximately the size and pitch we need for the phone. Overall, the test panel works OK. It is, in fact, easy to accidentally trigger neighboring buttons. But it was interesting enough we'll go ahead and make another panel using our current button layout and see how it performs in the phone.

  • Prototype 2 Assembly Video

    stupid09/18/2018 at 12:56 0 comments

    We wanted to post an assembly video showing how the mechanical parts of the phone go together. It's already a pretty simple process, and should get even easier once we have a single-piece keypad.

    At this stage it's still more of a prototye 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. Once we have a list of those we will evaluate what's possible to fix, and incorporate the improvements into the next version.

    We've been playing around with the phone for a few weeks, mostly debugging electronics and software. Once we get the bug situation under control we will start carrying the phones around and collecting improvement opportunities for UI, software, electronics, and hardware.

  • All Components Are Here

    stupid09/07/2018 at 09:26 0 comments

    We have all the components on hand now.

    WiPhone Components
    WiPhone Components

    Parts List:

    Back Panel - FR4, cut to the correct profile
    Motherboard - 4 layers, hand assembled
    Frame - Aluminum, CNC cut and clear anodized
    Front Panel - 2mm thick polycarbonate, CNC cut
    Screws - M2x4, 4x
    ON/OFF Button - Silicone, artisinal hand carved (OK, actually hand-snipped with a pair if dikes)
    Antenna - Whip antenna, we may change to chip or trace antenna after we do some signal strength optimization
    Keypad - Hard plastic, CNC cut. Eventually this will likely be a single cast silicone part.
    Battery - LiPo pouch.

    As the perceptive among you may have noticed, the parts have been assembled and our project pic updated. Later we will post more info, but for now we can say that everything fits with only minor issues. And the overall build looks and feels great, especially given how few revisions there have been.

    Shell, Partially Assembled

  • GUI Screenshots

    stupid08/18/2018 at 01:16 3 comments

    Some shots of the current state of the user interface. Implemented so far:

    • make a call
    • receive a call
    • address book
    • wifi scanning
    • wifi credentials management
    • SIP account management
    • boot screen

  • Populated Motherboard

    stupid08/17/2018 at 01:30 0 comments

    Now with wires and little square things all over it:

    Populated WiPhone Motherboard
    Populated WiPhone Motherboard

View all 17 project logs

Enjoy this project?



Arsenijs wrote 08/16/2018 at 09:57 point

Hello from one open-source phone to another =)

  Are you sure? yes | no

stupid wrote 08/16/2018 at 14:43 point

We should schedule a call to congratulate each other directly on such great projects :).

  Are you sure? yes | no

fabian wrote 09/18/2018 at 15:57 point

interesting, imagine ssh + terminal and usb C host for normal keyboard.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates