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
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:
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.
Cool? Ranking DIY