This shows you the differences between two versions of the page.
|
pm:prj2026:vlad.radulescu2901:andrei.giurgiu0801 [2026/05/16 14:30] andrei.giurgiu0801 [Hardware Design] |
pm:prj2026:vlad.radulescu2901:andrei.giurgiu0801 [2026/05/16 15:30] (current) andrei.giurgiu0801 [Demos] |
||
|---|---|---|---|
| Line 43: | Line 43: | ||
| === Component Pinout === | === Component Pinout === | ||
| ^ Component ^ Pin Name ^ Connected To ^ Reason ^ | ^ Component ^ Pin Name ^ Connected To ^ Reason ^ | ||
| - | | **ESP32-DEVKITC-32D** | 3V3 | Potentiometer (Top Pin) | Provides a safe 3.3V reference. **Crucial:** Using 5V here would fry the ESP32's ADC pin. | | + | | **ESP32-DEVKITC-32D** | 3V3 | MB102 (VCC2 @ 3.3V) & Potentiometer (Top Pin) | Receives stable 3.3V power from the external supply (standalone mode) and provides the 3.3V reference voltage for the volume potentiometer. | |
| - | | ::: | IO34 | Potentiometer (Wiper) | ADC input to read the voltage (0-4095) for software volume control. | | + | | ::: | IO34 | Potentiometer (Wiper) | ADC input to read the analog voltage (0-3.3V) to adjust the software volume. | |
| - | | ::: | IO27 | PLAY/PAUSE BUTTON | GPIO input to control the ''taskAudio'' state. | | + | | ::: | IO27 | PLAY/PAUSE BUTTON | GPIO input with internal pull-up activated to control the playback state. | |
| - | | ::: | IO14 | UP BUTTON | GPIO input for navigating the .mp3/.lrc file list on the LCD. | | + | | ::: | IO14 | UP BUTTON | GPIO input with internal pull-up activated to navigate up in the song list. | |
| - | | ::: | IO13 | DOWN BUTTON | GPIO input for navigating the .mp3/.lrc file list on the LCD. | | + | | ::: | IO13 | DOWN BUTTON | GPIO input with internal pull-up activated to navigate down in the song list. | |
| - | | ::: | GND | Common GND | The most important connection! Ties all voltage potentials together so data signals have a solid reference point. | | + | | ::: | GND | Common GND | Essential common ground reference for all power and data signals across the entire system. | |
| - | | ::: | 5V | Not Connected | Power is supplied by the MB102 to avoid overloading the ESP32's internal voltage regulator. | | + | | ::: | 5V | Not Connected | Left disconnected because the ESP32 is powered directly via the 3.3V rail from the MB102. | |
| - | | ::: | IO23 | Micro SDHC reader (MOSI) | SPI Master Out Slave In: Sends commands to the SD card. | | + | | ::: | IO23 | Micro SDHC reader (MOSI) | SPI Master Out Slave In: Sends read commands to the SD card. | |
| - | | ::: | IO22 | PCF8574 (SCL) | I2C Clock line to synchronize data sent to the LCD. | | + | | ::: | IO22 | PCF8574 (SCL) | I2C Clock line to synchronize data transfers to the LCD. | |
| - | | ::: | IO21 | PCF8574 (SDA) | I2C Data line to send lyrics and menu text to the LCD. | | + | | ::: | IO21 | PCF8574 (SDA) | I2C Data line to display menus and lyrics on the LCD. | |
| - | | ::: | IO19 | Micro SDHC reader (MISO) | SPI Master In Slave Out: Reads audio/text data from the SD card. | | + | | ::: | IO19 | Micro SDHC reader (MISO) | SPI Master In Slave Out: Stream audio (.mp3) and lyrics (.lrc) data to the ESP32. | |
| - | | ::: | IO18 | Micro SDHC reader (SCK) | SPI Clock line to synchronize SD card data transfers. | | + | | ::: | IO18 | Micro SDHC reader (SCK) | SPI Clock line generated by the ESP32 to sync SD card communication. | |
| - | | ::: | IO5 | Micro SDHC reader (CS) | SPI Chip Select: Activates the SD card reader when the ESP32 needs to talk to it. | | + | | ::: | IO5 | Micro SDHC reader (CS) | SPI Chip Select: Enables the SD card reader during data transfers. | |
| - | | ::: | IO16 | MAX98357A (DIN) | I2S Data Out (DOUT): Sends the digital audio stream to the amplifier. | | + | | ::: | IO16 | MAX98357A (DIN) | I2S Data Line (DOUT): Sends the raw digital audio stream to the amplifier. | |
| - | | ::: | IO26 | MAX98357A (BCLK) | I2S Bit Clock: Sets the rhythm for the audio data bits. | | + | | ::: | IO26 | MAX98357A (BCLK) | I2S Bit Clock: Dictates the timing and speed of individual audio data bits. | |
| - | | ::: | IO25 | MAX98357A (LRC) | I2S Left/Right Clock (Word Select): Tells the amp which audio channel is currently being sent. | | + | | ::: | IO25 | MAX98357A (LRC) | I2S Left/Right Clock (Word Select): Syncs the audio channels for the DAC. | |
| - | | **MB102 Power Supply** | VCC2 | ESP32 (5V), MAX98357A (Vin), PCF8574 (VCC), Micro SDHC reader (VCC) | Provides heavy-duty 5V power to the power-hungry components (Amp and SD reader), ensuring clean audio and no processor resets. | | + | | **MB102 Power Supply** | VCC1 (Set to 5V) | MAX98357A (Vin), PCF8574 (VCC), Micro SDHC reader (VCC) | Provides heavy-duty 5V power to power-hungry and 5V-logic components to ensure maximum volume, clear LCD contrast, and stable SD card reads. | |
| - | | ::: | GND | Common GND | The foundation of the circuit's grounding. | | + | | ::: | VCC2 (Set to 3.3V) | ESP32 (3V3) | Supplies a clean, regulated 3.3V directly to the ESP32 power rail for safe, standalone operation. | |
| - | | ::: | VCC1 | Not Connected | Second power rail is not needed for this build. | | + | | ::: | GND | Common GND | Central grounding hub for the breadboard circuit. | |
| - | | **MAX98357A** | LRC | ESP32 (IO25) | Receives the Left/Right channel timing from ESP32. | | + | | **MAX98357A** | LRC | ESP32 (IO25) | Receives the audio channel sync timing. | |
| - | | ::: | BCLK | ESP32 (IO26) | Receives the data rhythm timing from ESP32. | | + | | ::: | BCLK | ESP32 (IO26) | Receives the digital audio bit timing. | |
| - | | ::: | DIN | ESP32 (IO16) | Receives the actual digital MP3 audio data. | | + | | ::: | DIN | ESP32 (IO16) | Receives the digital I2S audio data stream. | |
| - | | ::: | GAIN | Common GND | Ties the pin low to set a 12dB gain and stops it from acting like an antenna, **eliminating background "hiss" / purici**. | | + | | ::: | GAIN | Common GND | Anchors the pin to GND to set a 12dB gain and prevents it from floating like an antenna, **eliminating background hiss**. | |
| - | | ::: | SD | Not Connected | Left floating, it defaults to ON. | | + | | ::: | SD | Not Connected | Left floating to keep the amplifier always active. | |
| - | | ::: | GND | Common GND | Completes the power circuit and provides audio ground reference. | | + | | ::: | GND | Common GND | Completes the power loop and provides audio ground reference. | |
| - | | ::: | Vin | MB102 (VCC2) | Receives 5V to drive the speaker at maximum safe volume. | | + | | ::: | Vin | MB102 (VCC1 @ 5V) | Power input to drive the audio speaker at full efficiency. | |
| - | | ::: | + | Speaker (+) | Outputs the amplified analog audio wave (positive). | | + | | ::: | + | Speaker (+) | Positive terminal for the amplified analog audio output. | |
| - | | ::: | - | Speaker (-) | Outputs the amplified analog audio wave (negative). | | + | | ::: | - | Speaker (-) | Negative terminal for the amplified analog audio output. | |
| - | | **PCF8574** | VCC | MB102 (VCC2) | 5V logic and backlight power for the LCD display. | | + | | **PCF8574** | VCC | MB102 (VCC1 @ 5V) | Power supply for the I2C backpack and the LCD backlight. | |
| - | | ::: | GND | Common GND | Completes the power circuit for the LCD backpack. | | + | | ::: | GND | Common GND | Completes the power circuit for the display interface. | |
| - | | ::: | SDA | ESP32 (IO21) | Receives text data via I2C. | | + | | ::: | SDA | ESP32 (IO21) | I2C data interface for text communication. | |
| - | | ::: | SCL | ESP32 (IO22) | Receives the I2C clock signal. | | + | | ::: | SCL | ESP32 (IO22) | I2C clock interface for text communication. | |
| - | | **Micro SDHC reader** | CS | ESP32 (IO5) | Listens for the ESP32 to activate it via SPI. | | + | | **Micro SDHC reader** | CS | ESP32 (IO5) | Listens for the SPI activation signal from the microcontroller. | |
| - | | ::: | SCK | ESP32 (IO18) | Receives the SPI clock signal. | | + | | ::: | SCK | ESP32 (IO18) | Receives the SPI bus clock signal. | |
| - | | ::: | MOSI | ESP32 (IO23) | Receives file read/write commands from the ESP32. | | + | | ::: | MOSI | ESP32 (IO23) | Receives instructions from the ESP32. | |
| - | | ::: | MISO | ESP32 (IO19) | Sends the read files (.mp3, .lrc) back to the ESP32. | | + | | ::: | MISO | ESP32 (IO19) | Transmits the requested files back to the processor. | |
| - | | ::: | VCC | MB102 (5V) | Dedicated 5V power (SD cards can draw spikes of 100mA+ while reading, which could crash the ESP32 if powered directly from it). | | + | | ::: | VCC | MB102 (VCC1 @ 5V) | Safe 5V source to handle transient current spikes during SD card read operations. | |
| - | | ::: | GND | Common GND | Completes the power circuit. | | + | | ::: | GND | Common GND | Completes the power loop for the reader module. | |
| - | | **Potentiometer** | Top Pin | ESP32 (3V3) | Limits the maximum voltage across the resistor to 3.3V (safe for ESP32). | | + | | **Potentiometer** | Top Pin | ESP32 (3V3) | Connects to the safe 3.3V rail to set the upper limit of the voltage divider. | |
| - | | ::: | Wiper | ESP32 (IO34) | Slides between 0V and 3.3V, sending the current value to the ESP32 ADC. | | + | | ::: | Wiper | ESP32 (IO34) | Delivers a variable voltage (0-3.3V) to the ADC pin based on the knob position. | |
| - | | ::: | Bottom Pin | Common GND | Grounds the other side to complete the voltage divider. | | + | | ::: | Bottom Pin | Common GND | Connects to ground to set the lower limit of the voltage divider. | |
| - | | **PLAY/PAUSE BUTTON** | Pin 1 | ESP32 (IO27) | Connects to the GPIO to trigger an interrupt or state change. | | + | | **PLAY/PAUSE BUTTON** | Pin 1 | ESP32 (IO27) | Interconnects the button to the hardware interrupt pin on the ESP32. | |
| - | | ::: | Pin 2 | Common GND | Pulls the GPIO to LOW when pressed (assuming internal pull-up). | | + | | ::: | Pin 2 | Common GND | Pulls the GPIO to LOW when pressed, fighting the internal pull-up resistor to register a click (active-LOW logic). | |
| - | | **UP BUTTON** | Pin 1 | ESP32 (IO14) | Connects to the GPIO to trigger an interrupt or state change. | | + | | **UP BUTTON** | Pin 1 | ESP32 (IO14) | Interconnects the button to the track navigation system. | |
| - | | ::: | Pin 2 | Common GND | Pulls the GPIO to LOW when pressed. | | + | | ::: | Pin 2 | Common GND | Pulls the GPIO to LOW when pressed, fighting the internal pull-up resistor (active-LOW logic). | |
| - | | **DOWN BUTTON** | Pin 1 | ESP32 (IO13) | Connects to the GPIO to trigger an interrupt or state change. | | + | | **DOWN BUTTON** | Pin 1 | ESP32 (IO13) | Interconnects the button to the track navigation system. | |
| - | | ::: | Pin 2 | Common GND | Pulls the GPIO to LOW when pressed. | | + | | ::: | Pin 2 | Common GND | Pulls the GPIO to LOW when pressed, fighting the internal pull-up resistor (active-LOW logic). | |
| - | | **Speaker** | + | MAX98357A (+) | Receives the positive audio signal. | | + | | **Speaker** | + | MAX98357A (+) | Connects to the positive terminal of the audio transducer. | |
| - | | ::: | - | MAX98357A (-) | Receives the negative audio signal. | | + | | ::: | - | MAX98357A (-) | Connects to the negative terminal of the audio transducer. | |
| ==== Electrical Scheme ==== | ==== Electrical Scheme ==== | ||
| Line 131: | Line 131: | ||
| * 09.05.2026: Add the component pinout and refined the general description section. | * 09.05.2026: Add the component pinout and refined the general description section. | ||
| * 12.05.2026: Refine the electrical scheme and add a short description of the software. | * 12.05.2026: Refine the electrical scheme and add a short description of the software. | ||
| + | * 16.05.2026: Add simple demo. | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | ===== Demos ===== | ||
| + | {{ pm:prj2026:vlad.radulescu2901:circuit.jpg?500 | Physical circuit }} | ||
| + | |||
| + | {{https://drive.google.com/file/d/1OYpMS8L2arQ9ElOX3gjKkMVgnoy5mhVk/view?usp=sharing | Demo video}} | ||
| + | |||
| + | I did a small demo, where I just played the audio to see if the ESP32 can read the microSD card and if the speaker works. Also, in the video, you can see that the I2C module is connected and gets the text from the ESP32 that says "SD card mounted successfully". | ||
| ===== Resources ===== | ===== Resources ===== | ||