Mini Web Radio (ESP32)

by AllanG in Circuits > Audio

17035 Views, 130 Favorites, 0 Comments

Mini Web Radio (ESP32)

IMG_20220504_174030.jpg

Originally designed as a charity project, the MWR is a simple single-station battery powered internet radio. The design features a combined power-volume dial and 3.5mm headphone socket, utilising a 3D printed case


Firmware, documentation and STL files: https://github.com/AllanGallop/mini-web-radio



Don't want the battery? follow the steps below omitting the battery, battery LED, power circuit and connect the switch side of the potentiometer between 3v and GPIO 33 pins, finally use the "no-battery" branch firmware files found here:

https://github.com/AllanGallop/mini-web-radio/tree/no-battery

Supplies

MWR_Schematic.PNG

Parts

  • 1x WeMos Lolin32 Lite (ESP32)
  • 1x MAX98357A
  • 1x 10K Linear Potentiometer with SPST switch
  • 2x 47K 1/4W Resistor
  • 2x 330R 1/4W Resistor
  • 2x 3mm LED
  • 1x18650 Battery and Holder
  • 2x M1.7 5mm pan head screw
  • 1x M2 5mm flat heat screw
  • 1x 3D Printed Case Shell
  • 1x 3D Printed Case Face
  • 1x 3D Printed Volume Knob
  • Various guages of wire
  • Various sizes of heatshrink tubing

Tools

  • Soldering Iron
  • Wire Cutters
  • Hot-Glue Gun

Prepare ESP32

IMG_20220606_162034.jpg
MWR_esp_wire.PNG
  1. Carefully desolder the battery connector and clean the pads
  2. Solder ~4" of wire (Red and Black preferred) onto the battery pads as pictured
  3. Install 2x 2.54mm header into pads labelled 13 & 15

Prepare Max98357A Module

IMG_20220606_162723.jpg
  1. Cut one pin of the supplied 2.54mm header so that only 6 pins remain
  2. Locate the header onto the module so that VIN pin remains unpopulated
  3. Solder the header to the board
  4. Solder ~6" of wire (red preferred) to the VIN pad of the module
  5. Attach the 2 pin screw terminal to the module

Prepare Battery Holder

IMG_20220606_171507.jpg
IMG_20220606_171804.jpg
  • Solder a 47K resistor to the studs at either end of the battery holder
  • Cover each resistor with a length of heat shrink tubing
  • Carefully bend the resistor legs around the body of the battery holder
  • Solder the ends of the resistors together along with 4" length of wire
  • Carefully heat the tubing to shrink it

Connect Audio Module to ESP32

IMG_20220606_163032.jpg
ESP32_Lite_v1_pinout.png
  • Carefully align the Max98357 module so that the Gnd pins align
  • Solder the module in place
  • Flex the flying lead under the module and solder to 3v3 pin
  • Place a small blob of hot glue to retain the flying lead if needed

Connect Switch

IMG_20220606_164129.jpg
IMG_20220606_164441.jpg
switch_wiring.PNG
  1. Cut a short length of tined wire and create a bridge on the potentiometer between one of the switch legs (rear) and one side of the potentiometer as pictured
  2. Attach red battery wire to the leg bridged previously
  3. Attach red ESP32 wire to the opposing switch leg (pictured)
  4. Cut a 2" length of black wire
  5. Locate both black wires from the ESP32 and Battery holder
  6. Slip a short length of heatshrink over the bundle of 3 wires
  7. Solder the bundle to the opposing leg on the potentiometer as pictured
  8. Attach ~4" of wire (yellow preferred) to the wiper leg of the potentiometer
  9. Secure Potentiometer to faceplate

LED's

IMG_20220606_174142.jpg
IMG_20220606_172539.jpg
  1. Secure LED's to faceplate with hotglue
  2. Flex cathode legs of the LED's so that they overlap and solder them together
  3. Solder black wire from Step 5 (Switch) to LED cathode
  4. Trim LED cathode legs to ~10mm
  5. Attach a ~4" length of wire to each LED cathode
  6. Solder flush & upright both remaining (330R) resistors into pads 5 & 18 respectfully as pictured
  7. Trim the exposed resistor legs to ~10mm
  8. Attach LED wires created ealier to each resistor
  9. Solder Battery sense wire to pad 33 on the ESP32
  10. Solder Volume sense wire to pad 34 on the ESP32

Finishing Touches

IMG_20220606_174510.jpg
IMG_20220606_180000.jpg
  • Cut 2 lengths of wire and attach to headphone socket
  • Install battery holder and ESP32 into the shell
  • Install headphone socket onto the faceplate
  • Connect headphone wires to the Max98357 terminals

Follow instructions on github to upload firmware and configure the Mini Web Radio