As you may have noticed, this project is called Radio Edison. Thomas Edison was a great inventor who, among other things, improved the microphone for telephones by developing the carbon microphone. In a sense, Edison contributed to world integration. However, his greatest invention was not the carbon microphone or even his well-known phonograph, but the invention of the light bulb. Therefore, the central element of this radio is a light bulb.
Tools and materials: -Acrylic sheet 5 mm; -Microcontroller ESP32 DEVKIT 1.0; -Potentiometer 50 K; -Display;
-LED strip; -Soldering accessories; -Retro-bulb;
-CNC laser cutter;
The specification for all other parts can be downloaded here.
Step one: about the device
This project is based on Ed Smullenburg's internet radio project. You can check Ed's original build here.
The wizard started with a sketch of the Arduino and added a few additional options:
Search engine to find Internet radio stations by country.
Find and set the station logo and display it in the browser interface.
Spectrum analyzer on a TFT screen.
WS2812 Pixel LED Volume Meter LED
Sliders to change sound settings.
Modified software and all project data are available here.
To make this device, you need the appropriate skills and tools. The user should be able to solder small components (size 0805 and LQFP-48 package) on the PCB.
You can also order the finished PCB here.
Step Two: Main PCB
A PCB without components is available here.
Mounting on the underside of the board is not that difficult, the only components on the underside are the 100nf smd 0805 capacitors (C26,27,28,29,31,32,34)
Make sure you have the correct orientation of certain components. Electrolytic capacitors and semiconductors must be installed correctly.
Audio transformers L1 and L2 are also oriented. Make sure the letters “SD” or the dot match the designation on the PCB. Some transformers have this marking on the wrong side of the transformer. This makes it difficult to determine which side is the primary and which is the secondary. If properly installed, you will hear clear sound, but if you turn it over, only digital noise will be heard.
H2, H4, H3 and P1 can be omitted. They connect to unused pins on the ESP32 board for experimentation and debugging.
Step Three: Modifying the Light Bulb
To give this radio a more “Edison” look, the artist decided to make an optical illusion of an Edison light bulb.
The light bulb is a modified decorative LED light fixture. The master unscrews the base from the glass (this is not difficult). Then pulls the inner cylinder and the LED PCB out of the socket. Saws off the bottom (base of the lamp) and reattaches the cylinder to the socket. Now the design of the lamp remains the same except for the sawn bottom part. This will hold the board.
Basically, this PCB contains only 4 WS2812B LEDs and an optional connector.
Make sure the LEDs are placed in the correct orientation. There is a special marking for each LED on the board.
Step four: body
The master makes the body using a laser cutter. Body material – acrylic. All cutting files can be downloaded below.
Step five: assembly
The body is assembled in the following order.
The bottom panel is the only panel that is held in place by two screws. All other panels are glued in place with acrylic glue. The artist used Acrifix (1R0192).
First of all, we glue the back plate of the LED strip to the back panel. Then install the LCD screen protector.
First, the master glues the front top and the sides.
Then installs the display, speakers, potentiometer, rotary switch, power switch, and power connector. Mounts the main board to the bottom plate. Glues the entire assembly to the back.
Mounts the wires.
< img class = "aligncenter" alt = "Vintage Edison radio (Internet radio)" src = "https://usamodelkina.ru/uploads/posts/2021-04/1617525138_1-21.jpg"/> Assembly diagram below.
Step six: programming
Programming is done in the Arduino IDE. Alternatively, you can use Sloeber Beryllium or Visual Studio.
When the wizard started programming, it had compilation problems. It turned out that a lot of libraries were activated in the Arduino IDE, and the program was choosing the wrong ones. I had to uninstall Arduino and reinstall it. To work, you need the following libraries:
C & # 58; Users chord Documents Arduino libraries PubSubClient C & # 58; Users chord AppData Local Arduino15 packages esp32 hardware esp32 1.0.4 libraries SD Using library Adafruit_NeoPixel at version 1.7.0 in folder & # 58; C & # 58; Users chord Documents Arduino libraries Adafruit_NeoPixel Using library PubSubClient at version 2.6 in folder & # 58; C & # 58; Users chord Documents Arduino libraries PubSubClient Using library WiFi at version 1.0 in folder & # 58; C & # 58; Users chord AppData Local Arduino15 packages esp32 hardware esp32 1.0.4 libraries WiFi Using library ESPmDNS at version 1.0 in folder & # 58; C & # 58; Users chord AppData Local Arduino15 packages esp32 hardware esp32 1.0.4 libraries ESPmDNS Using library SPI at version 1.0 in folder & # 58; C & # 58; Users chord AppData Local Arduino15 packages esp32 hardware esp32 1.0.4 libraries SPI Using library ArduinoOTA at version 1.0 in folder & # 58; C & # 58; Users chord AppData Local Arduino15 packages esp32 hardware esp32 1.0.4 libraries ArduinoOTA Using library Update at version 1.0 in folder & # 58; C & # 58; Users chord AppData Local Arduino15 packages esp32 hardware esp32 1.0.4 libraries Update Using library Ethernet at version 2.0.0 in folder & # 58; C & # 58; Program Files (x86) Arduino libraries Ethernet Using library Adafruit_ILI9341 at version 1.5.6 in folder & # 58; C & # 58; Users chord Documents Arduino libraries Adafruit_ILI9341 Using library Adafruit_GFX_Library at version 1.10.4 in folder & # 58; C & # 58; Users chord Documents Arduino libraries Adafruit_GFX_Library Using library FS at version 1.0 in folder & # 58; C & # 58; Users chord AppData Local Arduino15 packages esp32 hardware esp32 1.0.4 libraries FS Using library SD at version 1.0.5 in folder & # 58; C & # 58; Users chord AppData Local Arduino15 packages esp32 hardware esp32 1.0.4 libraries SD Using library Adafruit_BusIO at version 1.7.1 in folder & # 58; C & # 58; Users chord Documents Arduino libraries Adafruit_BusIO Using library Wire at version 1.0.1 in folder & # 58; C & # 58; Users chord AppData Local Arduino15 packages esp32 hardware esp32 1.0.4 libraries Wire
Next you need to prepare ESP32.
The first step is to run the init tool. It is called Esp32_radio_init and can be found in the project folder on GITHUB.
To run it, open “Esp32_radio_init.ino” with the Arduino IDE, download and run.
The main program can be downloaded from GITHUB here.
Open it in the Arduino IDE and load it.
Now you can listen to the radio.
Step Seven: Web Interface
This is the screen for basic operations. It has the following functions:
• Change a station to a station from a preselected list
• Enter a link to a station manually
• View streaming information such as song name or station name
• Station logo, if any in a preselected list
• Adjust volume, treble and bass
• Mute/unmute sound
By clicking on the Preset drop-down list, you can navigate to the pre-selected station.
The second input panel can be used to listen to a radio station by manually entering a web link and pressing the play button.
The third text line provides information about the song being played.
This screen is used to configure some important parameters. Some settings or functions are not used in this release, however most of the encoding-related functions are still available.
When you insert an SD card and write MP3 files to it, Radio will scan the card during download. You can play the mp3 file by selecting it from the drop-down menu or randomly.
You can use this search engine to find online radio stations filtered by country. If the feature is available, it will show the streaming URL and the station logo. You can store any station in your preselection list by pressing the buttons at the bottom of the screen. The logo will also be saved.
Everything is ready.
More details about the assembly of such a radio can be seen in the video.