so another project idea I had, was to build an internet radio.. I had already got an ESP32-dev board and rotary encoders, so all I needed was and I2S audio board and a screen.
within 10 days I had:
ESP32-D
2 rotary encoders
GMT020-02 ST7789 2" LCD
GY-PCM5102 I2S Stereo Board
Now my coding skills are not the greatest, so ChatGPT was used for quite a bit to help me figure out a lot of bits and pieces.
And with it being in C++ it was a good learning curve for me.

So I was able to get a basic Internet radio up and running.

Still in development mode, wires everywhere, but it works.
Now to see if I can add things to it!!
So now I had a working Internet radio, but I needed to add stations, which means a favourites list, and a way to add them rather than adding them to the code every time and building the software for it to run every time. One way was to build a WebUi, basically a web page available to the local network that I can add and remove streams with. That was fairly easy, so time to update the graphic interface of the ESP32. And then a thought struck me, would I be able to add widgets, and have information like, local weather, favourites, now playing, tides and a clock displayed and scroll-able with a rotary encoder. I needed to get a bit of Ai help for this bit. And even then most of the troubleshooting I was able to figure out quicker than the Ai was.
So now I had an Internet Radio with widgets that I could scroll though, but was it enough.. nope…
rather than me scrolling through them manually, I added code for them to auto rotate through the widgets, but nit all of them, by this stage I added a system widget and ADS-B widget that runs off my airplane server, so I didn’t want the system widget or Favourites widget to show up, so excluded them from the auto rotate. And also by this stage my webui was growing with settings from weather, ads-b, network, favourites and audio buffer.
So now was it time to build it rather than it being on the Dev board… YES….

All together and working, still through headphone socket though.






So now I had to build an Amplifier, I have a few TDA2282 chips from a previous headphone amplifier I made, so Built one using that, but it just wasn’t working as I wanted, i was about to start looking into building one using 2n2222 transistor chips, but then I remembered I have two LTK8002D amplifier chips from a different project, both use low voltage and are perfect for the job.

I had to re build the circuit as previously it was all just a mess of wires, but much happier that its neater than it was before, and if I ever need to use it for something else, its on a board ready to use.

And like any good amplifier it has to go into a case!!

And here they are working away, using less power than it takes to charge a phone…
If you want to attempt to build one, I have the code available in my GitHub Repo here https://github.com/stevecrow74/ESP32-DEV-Internet-radio