logo elektroda
logo elektroda
X
logo elektroda

DIY micro tower (desktop version)

efi222  152 12540 Cool? (+98)

TL;DR

  • A DIY micro tower combines a radio, spectrum visualizer, and amplifier in two compact desktop enclosures.
  • The radio uses ESP32S3, a 2.8-inch IPS display, MPR121 touch sensing behind 4 mm tinted glass, and encoder-based station browsing.
  • The units measure 200x61x130 mm for the radio and 200x40x130 mm for the spectrum and amplifier sections.
  • The spectrum runs on an ESP32 using both cores, refreshing two 1.9-inch IPS displays at 37 to 41 FPS.
  • The amplifier is not hi-fi, uses a TPA3110 module and AVT kit 2132 tone control, and the station list is stored rigidly in firmware.
Generated by the language model.


Hello :)
I was inspired to build the device by the topic https://www.elektroda.pl/rtvforum/topic4041603.html
Initially it was to be a radio for the kitchen. Eventually the decision was made to build one. As is usually the case, the question was - how to "package" it? After various measurements, the casing finally evolved into the above form.
Due to its small size it was given the name micro tower ;)

Dimensions of the unit:
Radio: 200x61x130mm.
Spectrum and amplifier: 200x40x130mm.
Size in my opinion - desktop.

Due to the low weight of the unit, I dispensed with any mechanically pressed buttons (including the encoder button). Operation of the panels, with the exception of rotating the encoders, is by touch. Here it was not without experimentation.
In the end, I used two types of touch "systems". For the glass panel of the radio, because of the illuminated touch pads, I used the MPR121 chip. And here there was a need for changes to the library supporting this chip. The tinted glass is 4mm thick and the default settings were not sensitive enough.

The touch buttons in the amplifier input selector and the power-up of all the micro tower components are handled by popular TTP223 modules mounted rather unusually for this sensor.

Both systems work reliably.

brief description of the modules:


Radio: The chip is based on ESP32S3 and a 2.8 inch IPS display. MPR121 touch support. Four touch buttons for mode selection and an encoder for scrolling through the radio station list. As the software stands today, the stations are stored rigidly in it (5 banks of 20 radio stations each). For me this is still a huge amount.... It might be worth adding SD card support and putting them there. There are no bytes here. I select a station and "play".
I downloaded the station list from the @robgold account on github. The ESP32-audioI2S library patches and core ESP32 version 3.2.0 patches were also downloaded from this account. thanks for sharing.



Widmo: ESP32 and two 1.9 inch IPS displays. Here both cores are used for maximum processing power. Sampling the two ADC channels and FFT processing requires considerable computing power. The refresh rate of each display is 37 to 41 Hz (FPS), depending on the motif being displayed. Themes are selected with an encoder. The device remembers the last selected theme.



Amplifier: Simple circuit with tone control (sound spoilage ;) ). Tone control schematic borrowed from AVT kit 2132. PCB made from scratch in stereo. It works so well. But maybe it is the fault of the speakers - not of the highest quality in my opinion. As a power amplifier I inserted a ready-made TPA3110 module. So it is not hifi equipment. I wondered about the operation of the touch input selector. This could have been done on three RS flip-flops, or something similar. In the end it fell on the atmega88. I have a lot of them so no regrets. But for that you can make a memory of the last selection. The audio inputs are selected by miniature relays.



Enclosures:
All enclosures are printed from PLA. "Wooden" sides are also a hot-glued melamine print with a woodgrain pattern. Here there is a bit of a shortcoming, because the widest furniture edging you can buy is 40mm. So you can see a little under the light where the strips are joined. I also have natural edging 80mm wide. Only that they are made of light wood and would need to be darkened.
Some parts are covered with self-adhesive veneer. For example, the front and the top lid.

An illustrative picture of one of them:


Power supply:
The amplifier is powered by an external 12V/2A power supply. It also has a USB-C (5V) output to power the other modules. Their power supply is connected via such cables.



The inside of the devices:
Amplifier:




Touch sensors:




Radio:


Touch pads and illumination of pictograms:


Front of radio from inside:
Front of radio from inside


Spectrum:



Schematics:









Finally, a short video from the studio showing the activity:




The final turret module - BT-audio and SD player - is under construction.
I am making the radio and spectrum source codes available. If someone is willing to build this turret I will provide *.stl for printing.
Software updates on the radio and spectrum are done wirelessly via a web browser.
There is still a small list of improvements, such as support for Polish fonts etc.

And that's it in a nutshell.... Greetings :)




Tips to help run the spectrum:

The core ESP32 version is 1.0.4 - why so low?
Unfortunately this is the last version that allows ADC sampling even above 40kHz.
Each subsequent version has only been worse.

1 - After installing the TFT_espi library from the "SETUP_TFT_ESPI" directory, which is in the spectrum source directory, copy the "User_Setup" file to the TFT_espi library directory and replace the file with the same name. I suggest archiving the original one before swapping.
The file stores the display driver settings, SPI and other settings.

2 - Again the TFT_espi directory and then the Processors subdirectory.
and in the file "Tft_espi.h" comment out the entry #hal/gpio_11.h

default path:
...`Arduino_braries_TFT_eSPI_Processors_Tft_espi.h'



Errors found:
The radio's schematic incorrectly described the ESP pins connected to the PCM5102. I have changed the schematic to the correct one.
I have corrected the spectrum diagram.

Attachments:
  • mikro_tower.zip (5.88 MB) You must be logged in to download this attachment.

About Author
efi222
efi222 wrote 727 posts with rating 1183 , helped 12 times. Live in city Toruń. Been with us since 2019 year.

Comments

DJCheester 08 May 2026 20:53

Beautiful work, I confess I knew about this hardware beforehand, even before publication. Cool, modern on a cheap ESP32. Nothing to add or take away. Regards [Read more]

robgold 08 May 2026 22:12

Very nice workmanship. Ah those 3D printers...how much easier does it make ;) I like that kind of black and white vibe on the displays and just some touches of colour. What did you bring out the two USBs... [Read more]

elukam 08 May 2026 22:26

A beautiful rendition in a slightly retro style. A marvel! Audio is what it is, if it fills the needs it's cool. Tone correction is rather necessary with such a track. Only the input selector on relays...... [Read more]

efi222 08 May 2026 22:40

From this second USB, 5V power is given to the USB socket on the spectrum. The front is a print on glass. An adhesive film comes over the mirror-smooth surface. It holds atomically. It just takes... [Read more]

robgold 08 May 2026 22:56

And on PEI board it will not come out? I print all the IR windows on PEI and cover them with dark foil and it also holds. It is difficult to tell from the photos that it is foil! :) I think the only... [Read more]

efi222 08 May 2026 23:04

You can't tell in person either. Unless you make bubbles when gluing. I wipe the surface with isopropanol before gluing to get rid of pollen. As long as I have had the printer I have always printed on... [Read more]

robgold 08 May 2026 23:19

And do you have tempered glass on the mulled table? Or just a regular one? Since I print I basically use three plates of texture, satin and just for the smooth PEI themes but it's really some minimal amounts... [Read more]

efi222 08 May 2026 23:26

It's a regular glass is. The fact that I only print with PLA. I heat the table up to 50 degrees. I think it should be able to withstand more than that too. [Read more]

Krzysztof Kamienski 09 May 2026 00:39

Nice work and I'm adding a packet of triptychs as a reward. [Read more]

TechEkspert 09 May 2026 08:37

Super end result, very good example of showing the possibilities of 3D printers. I am convinced by this project to use touch buttons instead of mechanical ones. It is very easy to add FM radio reception... [Read more]

Jawi_P 09 May 2026 08:55

Beautiful. I only print on PEI. The sides I thought were wooden. I'm surprised that the touch switches work through the glass layer. Could you write something more? [Read more]

efi222 09 May 2026 09:36

I didn't go without modifying the Adafruit_MPR121 library to increase sensitivity. The modified library is available in the package with the radio source - (src/Adafruit_MPR121). There is a description... [Read more]

lechoo 09 May 2026 18:01

Hello, good work, I like the execution of the case. Am I the only one who noticed the swapping of the spectrum displays LEFT/RIGHT in places? [Read more]

efi222 09 May 2026 18:06

I've been meaning to change this for a long time now.... (swapping the wires on the CS displays). I didn't and it went to the Electrode. I was curious if anyone would notice it :D Congratulations on... [Read more]

Olkus 09 May 2026 20:04

The enclosures came out brilliantly - really great effect, I like the style :) It's a bit of a shame that the amplifier is so poor. It would have been better to dispense with the tone control and do... [Read more]

robgold 09 May 2026 20:16

Oh, there you go. The truly legendary LM is already years old and the class D still from Texas Instruments does not deviate from it. I suggest to listen to a good application of the older brother TPA3116... [Read more]

efi222 09 May 2026 20:43

Well. Printers print "as they are drawn". And the aesthetic craze is not there.... (in my opinion). I am referring to home FDM printers. If it is to look reasonably good, you have to process the prints... [Read more]

DJCheester 09 May 2026 22:07

It calls for an infrared remote control. The finished code is provided in the topic the author was inspired by. For me as a lazy remote control user this would be greatly missed. Apart from that, the... [Read more]

Szymonix 09 May 2026 22:26

As usual DIY premium 👍 [Read more]

%}