Wired Ethernet Radio
This new project is derived from a previous project (ESP32 Radio) and shows the use of a wired Ethernet link.
Following the publication of my ESP32 Radio project on Elektor Labs ( https://www.elektormagazine.com/labs/esp32-internet-radio-1 ), many readers contacted me to ask if it was possible to have a wired Ethernet connection rather than WiFi.
I realized that a lot of people had difficulty using the LAN8720 or W5500 chips which is very cheap.
So I decided to tackle the problem and I built a model.
This contains a standard ESP32WROOM-32D module, a small 128x64 pixel OLED display, a LAN8720 Ethernet interface, or a W5500 Ethernet interface, a PCM5102 type I2S audio interface, a VS1838 IR sensor, a red LED indicating the correct reception of an IR code, and 5 keys (Mute, VOL+, VOL-, CH+ and CH-).
The software of my ESP32 WIFI radio has been adapted to take account of this new hardware.
I therefore invite you to consult the previous project for more details.
A flag at the start of the program is used to define the operating mode (Ethernet or WiFi).
To work correctly in Ethernet (among other things to be able to load the program and start the ESP32 correctly), it is necessary to make a small modification on the LAN8720 module.
I am attaching a small article that explains this very well. IO17 (4K7 pull up to +3V3) is then used to prevent the module from sending a clock signal to IO0 (4K7 pull up to +3V3) of the ESP32 until it is initialized to the high state in the setup. It is the NC (not connected) pin of the module that is used for this.
This radio works very well, and the Ethernet link is a plus for the stability of the connection.
The reception buffer is limited on the ESP32 due to its memory size and it is sometimes interesting to have a wired connection which avoids any reception quality problem.
Connected to a good speaker (I even tried it on the Devialet Phantom ) and the sound is excellent without any background noise!
I realized that a lot of people had difficulty using the LAN8720 or W5500 chips which is very cheap.
So I decided to tackle the problem and I built a model.
This contains a standard ESP32WROOM-32D module, a small 128x64 pixel OLED display, a LAN8720 Ethernet interface, or a W5500 Ethernet interface, a PCM5102 type I2S audio interface, a VS1838 IR sensor, a red LED indicating the correct reception of an IR code, and 5 keys (Mute, VOL+, VOL-, CH+ and CH-).
The software of my ESP32 WIFI radio has been adapted to take account of this new hardware.
I therefore invite you to consult the previous project for more details.
A flag at the start of the program is used to define the operating mode (Ethernet or WiFi).
To work correctly in Ethernet (among other things to be able to load the program and start the ESP32 correctly), it is necessary to make a small modification on the LAN8720 module.
I am attaching a small article that explains this very well. IO17 (4K7 pull up to +3V3) is then used to prevent the module from sending a clock signal to IO0 (4K7 pull up to +3V3) of the ESP32 until it is initialized to the high state in the setup. It is the NC (not connected) pin of the module that is used for this.
This radio works very well, and the Ethernet link is a plus for the stability of the connection.
The reception buffer is limited on the ESP32 due to its memory size and it is sometimes interesting to have a wired connection which avoids any reception quality problem.
Connected to a good speaker (I even tried it on the Devialet Phantom ) and the sound is excellent without any background noise!
Updates from the author