A push-to-talk radio on a round 1.46-inch ESP32-S3 touchscreen. Hold the big button and speak, and the board it is paired with plays your voice; let go, and you hear theirs. The two boards talk straight to each other over ESP-NOW, on Wi-Fi's radio: no router, no phone and no account anywhere.
The face is a drawn picture with ordinary widgets over it, so every part of it can be found and changed. The button's red and green glow are two pictures, shown while "this board is talking" and "the other board is talking" are true. The meters round the rim are two arcs bound to the microphone's level and the speaker's. PAIR, LOCK and the cog are buttons with one action each, and the BOOT button on the edge of the board talks too. At the top of the face a curved window, drawn into the picture, holds the radio's status: the Two-way radio widget itself - the small handset mark, in the colour of what the link is doing - on the face's centre line, four link-quality bars to its left and the battery to its right, and under them what the radio says of itself, on one line that scrolls round when it is longer than the window.
The four bars are link quality: not how strong the signal is, but whether what is sent is arriving. They are full when everything gets through with signal to spare, fall as the other board gets further away, fall faster once packets are being lost, and are empty when it does not answer - which a handset knows within a few seconds, without anybody talking, because the two check with each other once a second. The bars are eight small panels: four dim steps, and over each a lit one whose Hidden is bound to "Link quality bars" with a formula such as x < 3.
The battery is a bar with an outline and a sliver for its tip, with the same bar again in red over it below a fifth. The board reads the cell's voltage on its battery input, and a variable turns that into a percentage with a formula - 3.3 V taken as empty, 4.2 V as full - so it is an estimate, and it reads full while USB is plugged in. The cog's screen shows both figures.
To use it: put this design on one board and it, or the Walkie-talkie example, on another. Press PAIR on both within half a minute, then hold the button and talk. The pairing is kept through a power cut. The cog opens volume, microphone sensitivity and Forget. What each board sends is brought to one loudness first, so two different microphones are heard the same.
Drawn for Waveshare's ESP32-S3-Touch-LCD-1.46 - the 1.46B and 1.46C are one board - which carries a speaker and a microphone. It is an Arduino export. The radio has run as a pair with the Walkie-talkie example on the two boards they are drawn for; the status window, its link bars and the battery are newer than that run and have been compiled, not yet seen on its glass. The Two-way radio widget is part of Pro; the design is free to open, restyle and press Play on.
About this design
Two-way Radio: Round Handset is an LVGL interface for the Waveshare ESP32-S3-Touch-LCD-1.46B / 1.46C (SPD2010 412 x 412, SPD2010 (touch half) touch), with 2 screens and 35 widgets, made for Arduino (C++) on LVGL 9.
Screens
Handset
Setup
Hardware and build
Board
Waveshare ESP32-S3-Touch-LCD-1.46B / 1.46C
MCU
ESP32-S3
Display
SPD2010
Resolution
412 x 412
Touch
SPD2010 (touch half)
Graphics library
GFX Library for Arduino
LVGL
v9
Exports to
Arduino (C++)
Peripherals
TCA9554 / PCA9554
Libraries
lvgl, ESP8266Audio, GFX Library for Arduino
Purchase this boardAffiliate link: LCD Wizard may earn a commission if you buy through it.
Notes from the author
One end of a push-to-talk radio between two boards: hold the button and the other one plays your voice. No router, no phone. It shows its battery and how well the link is working. Pairs with the Walkie-talkie example, or with a second board of its own kind.
Using it
Open a copy in the designer and it is yours to edit: restyle the screens, move it to another board, and export the Arduino (C++) project. Designing is free, and a copy needs no account. Open the designer.