Hands-on with the unPhone: A Compact Educational Gadget for the Internet of Things and More

This open-hardware Espressif ESP32-S3-powered device is definitely not a phone, but it is a great platform for experimentation.

The unPhone is, as its name suggests, not a phone. It's just as well it's not, really: despite its phone-like shape and comfort in the hand, it has neither a speaker nor a microphone with which you could make calls.

What it does have is an open source design and firmware, running on an Espressif ESP32-S3 microcontroller hidden behind its full-color touchscreen — and a low-power long-range LoRa radio module that can reach up to 60 miles or more, even while relying on a simple hidden copper coil as its antenna.

The unPhone is not a phone, that much is clear. It's both more than a phone, and less than — and serves as the heart of a hands-on education in the Internet of Things (IoT), developed by Hamish Cunningham at the University of Sheffield in the UK. And now, it's available to buy off-the-shelf — but is it worth it?

The hardware

  • Microcontroller: Espressif ESP32-S3-WROOM-1, 8MB PSRAM
  • Storage: 8MB flash, microSD card (16GB included)
  • Display: 3.5" 320×480 Color LCD resistive touchscreen (gloss)
  • Radios: ESP32-S3 (Wi-Fi, Bluetooth), HopeRF RFM950 (LoRa 868MHz, 915MHz tunable)
  • Sensors: Accelerometer, magnetometer
  • IO: 3× Push button switches, RGB LED, IR LED, vibration motor
  • Expansion: 4× GPIO, I2C, SPI, expansion header to expansion board (6× ADC, UART, 1× GPIO, 2× FeatherWing)
  • Software: ESP-IDF, Arduino IDE, Visual Studio with PlatformIO Core, CircuitPython
  • License: Hardware Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International, Software GNU Affero General Public License 3

The unPhone looks and feels, unsurprisingly, like a phone — albeit one from a decade or so ago. The largely-plastic chassis, with a front panel made from PCB, is held in place by four bolts; take these away and the single board that makes the device work is revealed.

The version of the unPhone on review is, technically, the unPhone9 — the number being incremented for each prototype leading up to it. The project began on a breadboard, later known as the unPhone0, and was developed by Cunningham and colleagues at the University of Sheffield with BitFIXit's Gareth Coleman and Pimoroni's Gee Bartlett and Paul Beech — who have taken on the task of producing and selling the retail variant of the device.

The front, like a phone, is dominated by a 3.5" 320×480 color LCD panel with a resistive touch layer and an extremely glossy finish that can make the gadget difficult to use in bright sunlight. To the right of the screen, when held in landscape orientation, is a trio of tactile push-button switches marked with square, circle, and triangle symbols, just above a side panel that provides a software-driven on-off switch, reset button, RGB and infrared LEDs, and a USB Type-C connector carrying both data and power. There's also a vibration motor hidden within, though no speaker or microphone.

That power goes to a 1,200mAh lithium battery held in a reasonably tight-fitting section of the plastic rear case — a downgrade from the 1,400mAh mentioned in the documentation provided on the unPhone site, but still good for around six hours of active use thanks to the decision to use a low-power Espressif ESP32-S3-WROOM-1 module rather than a high-performance application-class system-on-chip like you'd find in a phone. This is located on the board next to a HopeRF RFM950 LoRa transceiver — which gives the device long-range low-power radio connectivity on top of the Wi-Fi and Bluetooth Low Energy (BLE) available from the ESP32-S3.

Beyond the 8MB of flash in the microcontroller module, pre-programmed with a simple demo firmware that tests the display and shows off a few basic functions, there's a microSD card slot for storage — with just enough of a gap in the cut-out to make it possible to accidentally slide the card in above the actual metal slot and lose it within the case, so be careful if you're swapping cards around.

With its thick plastic case, relatively small screen, and hardware buttons, you'd not think of the unPhone as a phone for long — but it's solidly built, feels pleasingly weighty and robust in the hand, and is easily taken apart and reassembled should you, for instance, need to retrieve a lost microSD card.

An educational platform

The unPhone is more than the sum of its parts: the project came about as a desire to deliver a platform for teaching the core concepts behind the Internet of Things. As a result, Cunningham and colleagues have been working on course materials to go long with it — building the unPhone into a curriculum that includes a freely-accessible "IoT book" running to around 300 pages.

Not every page of the book is about the unPhone. Indeed, the IoT book — properly titled "Mi Casa su Botnet?", a tongue-in-cheek reference to the oft-overlooked security of Internet of Things devices — meanders through a wide range of topics from the Digital PDP-10 minicomputer and blinking an LED with a breadboarded ESP32 to machine learning, real-time operating systems, and a separate educational platform for automated aquaponics dubbed WaterElf.

For those with prior experience, it's possible to skip the background and jump straight to the meat in Chapter 11, unPhone Yourself, which introduces the hardware and demonstrates how to program it in C++ using the Arduino IDE with the ESP32 core and the unPhone library. Appendices offer a look at other approaches, including using Espressif's ESP-IDF at the command line, either natively or through a Docker container, using PlatformIO through Microsoft Visual Studio Code with the ESP-IDF or Arduino plugins, and programming the unPhone with CircuitPython — a port that, at the time of writing, was in a very early state.

Those coming at the topic from a blank slate will benefit from beginning at the beginning, where they will be walked through everything from setting up a GitLab account — though you'll need to skip the section on making sure to use your University of Sheffield email account unless you're actually a student there — to getting your build environment set up. You'll also need additional hardware: students attending the course in-person receive a hardware kit that includes a Feather-format ESP32-S3 board, solderless breadboard, and various components, which are not included as part of the unPhone.

The courseware produced for the unPhone is not only freely available, but open: Cunningham publishes the book under the Creative Commons Attribution Share-Alike Non-Commercial 4 license. This extends to all other aspects of the project, too: a section in the book walks through the unPhone's schematics, though based on the earlier unPhone6v2, while all source code is published to GitLab under the GNU Affero General Public License 3.

Room for experimentation

The courseware won't get you far, though. While it covers a course around 100 hours in length, only a small section focuses on the unPhone itself — and it quickly skims over programming the device, demonstrating how to use the library to initialize the hardware, use the RGB and IR LEDs, check the status of the power switch, access the touchscreen display, read the accelerometer, handle power management, and how to send a short message to The Things Network over the LoRa radio.

Beyond this, the reader is left looking at example code — including a slick user interface demo written in LVGL, which sadly makes no actual use of the unPhone's features beyond the touchscreen — to figure out how to use the device. This, more than anything else, highlights a split audience for the gadget: those using it as part of a university course, where the IoT book is backed by in-person tutoring, and those who have picked it up at retail for a little self-directed experimentation.

It's this latter audience that is most likely to feel let down by the unPhone, as they struggle through the gulf between a four-line code fragment demonstrating the blind transmission of a single message to The Things Network and actually using the radio for useful two-way communication. For beginners, then, the unPhone is perhaps not the best device; but for those with either the prior experience or tenacity to stick with it, there's a lot to like.

The color touchscreen means the unPhone can be adapted into a controller for a range of projects, in a slick self-contained handheld form factor. Wi-Fi and Bluetooth can be used for local communication, while the LoRa radio is there should you need something longer range — tested by Cunningham himself at a range of 60 miles.

Perhaps the best feature, though, is that nothing is proprietary. The unPhone is made up of off-the-shelf components cleverly connected, and while the unPhone library is available it's not the only way to use the device: if you'd rather just pull in the base libraries for the parts you want to use and ignore the rest, you're welcome to do so.

Should you need more than the base hardware, there's room for expansion too. The board has unpopulated 0.1" general-purpose input/output pin headers to one side, which can be soldered and the wires exposed to the outside world through a break-out section of the case. At the other side, next to the battery connector, is a zero-insertion force (ZIF) socket for a flat flexible cable (FFC) — designed for use with a bundled breakout board good for hosting two FeatherWing-format breakout boards and your choice of components on a small prototyping area.


The unPhone is not a phone, but that's clear from the name. It is, however, a great platform for experimenting with phone-like interfaces to the Internet of Things — so long as you don't need audio — and can turn its hand to anything an ESP32-S3 can do. If you wanted to use it as a handheld Bluetooth controller for a robot, you can. If you'd like to run a retro-computing emulator on there, nothing will stop you. If you want to follow Cunningham's course, whether you're enrolled at the University of Sheffield or not, you can do that too.

It's not without its downside, though. The plastic resistive layer over the screen is glossy and easily scratched compared to a glass-covered capacitive screen, making the unPhone hard to use outdoors — a shame, given its built-in battery. A bigger issue for those outside Europe is the radio: while it can be flipped in firmware between 868MHz and 915MHz modes, the coil antenna is tuned specifically for 868MHz — making it less well-suited to North American deployments.

Despite this, there's a lot to like about the unPhone. There's no razzle-dazzle breakthrough hardware in there, and everything it does has been done before — but having it all present in one compact handheld package is a treat. The bundled expansion board provides room for growth, too, and Coleman is currently working on porting the Meshtastic firmware to the unPhone for off-grid LoRa-based mesh networking.

More information on the unPhone is available on the official website, while the courseware is available on a dedicated sub-site. The commercial version of the unPhone is available to order via Pimoroni at $147.64 — though be aware of the potential issues surrounding the LoRa radio module, mentioned above, if you're planning to order it from a country outside Europe.

Gareth Halfacree
Freelance journalist, technical author, hacker, tinkerer, erstwhile sysadmin. For hire: freelance@halfacree.co.uk.
Latest articles
Sponsored articles
Related articles
Latest articles
Read more
Related articles