Sale!

ES7148 Module: Simple I2S Audio DAC

Original price was: $16.99.Current price is: $14.99.

Easy-to-use, high-quality audio playback module for your embedded projects!
Fully supported by ESP32, STM32, RP2040, and any other MCU with I2S peripheral.

International Shipping with FedEx (6-10 days)
Pay with PayPal

Availability: 93 in stock (can be backordered)

- +
SKU: ES7148-MOD Category:

The PCB Artists ES7148 module is a stereo 24-bit DAC module that needs no configuration at all. All you need to do is power up the module, provide MCLK, send a stream of stereo I²S data and it plays crystal-clear audio.
No I²C bus, no complex codec configuration – same footprint as our ES8388 module.

100 dBSNR, A-weighted
200 kHzMax sample rate
StereoAudio Playback
ZeroConfiguration

ES8388 pin-compatible
No I²C required
Detects sample rate automatically
3.5 mm jack (headphone*/line-out)
Low-noise split-ground PCB layout

Overview

The ES7148 is a simple, low-cost stereo audio DAC. This module allows you to test and prototype with this audio DAC without spinning up your own custom PCB.
You may have already tried our other codec modules. This module follows the same pinout and form-factor so you can drop in and try the ES7148 module.

The ES7148 is quite popular and makes an appearance in boards like Espressif’s ESP32-Korvo-DU1906.

The ES7148 is quite popular and makes an appearance in boards like Espressif’s ESP32-Korvo-DU1906.

What makes the ES7148 module unique is that it is very beginner-friendly and requires no setup or configuration.
If you are at the beginning phases of making a system that needs to play back audio – this module is perfect for your project.
There are no drivers and configuration issues to troubleshoot and that helps speed up simple playback applications.

We have carefully split analog and digital ground planes for good noise immunity. The line output are available on the 3.5mm jack, as well as the 0.1″ header.
Because the output is AC coupled, you can feed the line output to any other audio equipment such as an amplifier or recorder. The low-pass filter ou the output lines suppresses whatever noise is caused by digital signal lines on a prototyping setup.

No configuration needed

  • No I²C bus or control registers
  • Sample rate detected automatically
  • I²S word length detected automatically
  • Self-resets on power-up
  • Automatic soft-start audio output

Clear and quiet by design

  • Split analog and digital ground planes
  • 100 dB SNR, 105 dB dynamic range
  • 100 dB channel separation at 1 kHz
  • Low jitter sensitivity

Features

Driver-free playback

No I²C, no register writes, no codec driver to port. Bring up the I²S peripheral and you are done – typically under twenty lines of code on an ESP32!

Simple clocking

Accepts simple clock multiples and arbitrary sample rates that most microcontrollers with an I²S interface can produce. You will not need strange clock frequencies or a dedicated crystal.

Genuinely quiet

100 dB SNR, −85 dB THD+N and 105 dB dynamic range, helped along by split ground planes and local supply filtering on the module.

Compatible with our ES8388 module

Same outline, same 0.1" header, same positions for power, ground and the I²S signals. You can swap between our modules without touching your layout or wiring.

ES7148 or ES8388?

All our audio modules are largely pin- and form-factor compatible to allow you to try several modules without major changes.
The ES7148 module is the shortest and easiest path to adding qualiy audio playback to your embedded system.
Pick the ES8388 module when you need to record, or when you want control over gain, mixing and ALC.

  ES7148 Module ES8388 Module
Function DAC (playback) only Full codec
Playback
Recording / mic input
Control bus I²C
Driver needed None
Max sample rate 200 kHz 96 kHz
Resolution 24-bit 24-bit
SNR 100 dB (DAC) 96 dB (DAC)
Digital volume / ALC
Headphone amplifier AC-coupled line out Integrated driver
Supply current TBD mA 10 mA playback
ESP-ADF support Not required

The ES7148 has no volume control register.
With 24-bit data as the full scale, you can scale down the samples in software before streaming to the I²S. Thanks to 24-bit data you have plenty of headroom to attenuate digitally.

Specifications

Audio Characteristics

Resolution 16 – 24 bit, detected automatically
Sample rates 8 kHz – 200 kHz
Signal to noise ratio 100 dB typical, 90 dB minimum (A-weighted)
THD + N −85 dB typical, −80 dB maximum
Dynamic range 105 dB typical
Channel separation 100 dB typical at 1 kHz
Frequency response −0.02 / +0.08 dB, 20 Hz – 20 kHz
Interchannel gain mismatch 0 dB typical

Measured at VDD = 3.3 V, 25 °C, Fs = 48 kHz,
CLKIN/LRCK = 256, 0 dB 1 kHz sine input.

Power Supply

Supply voltage 3.0 – 3.6 V  (3.3 V typical)
Current, normal operation 19 mA typical at 3.3 V
Current, power-down 8 mA typical at 3.3 V
Digital I/O levels 1.8 V or 3.3 V logic
Absolute maximum supply 3.6 V — do not exceed

Digital Interface

Audio interface I²S, 16 – 24 bit, slave only
Control interface None
CLKIN frequency 51.2 MHz maximum
SCLK frequency 26 MHz maximum
LRCK frequency 200 kHz maximum

Analog output

Full-scale output level 0.7 × VDD Vpp  (2.31 Vpp at 3.3 V)
Output impedance 120 Ω (ES7148)
Minimum load resistance 2 kΩ see ES7148 Datasheet
Maximum load capacitance 100 pF
Module output coupling 22 µF series capacitor + 33 Ω series resistor, both channels
Connectors 3.5 mm stereo jack and 0.1" header pins

Physical

Form factor Identical to the PCB Artists ES8388 module
Connections 20-pin, 0.1" pitch Ships with un-soldered headers
SKU ES7148-MOD

Clocking

The clock frequency and ratio are the only configuration element that you need to deal with. The ES7148 uses CLKIN-to-LRCK ratio for its internal DAC and filters.
Pick any valid frequency and ratio from the ES7148 datasheet.

Speed mode Sample rate CLKIN / LRCK ratio
Single 8 – 50 kHz 128, 256, 384, 512, 640, 768, 1024, 1152, 1280, 1536
Double 64 – 100 kHz 64, 192
Quad 167 – 200 kHz 32, 96

On supplying VDD, the device self-resets and enters power-down. It exits power-down only when valid CLKIN and LRCK are present, then ramps the outputs softly to the common-mode voltage.
Silence on power-up even with valid I²S stream usually means a missing clock (loose connections, etc.).

Pinout

Twenty pins on a 0.1" grid, in the same positions as our ES8388 module. Because the ES7148 only outputs audio, the DOUT pin is not connected.
On the analog side, audio input lines are not connected.
VDD pins on both sides are internally connected, and GND pins are all internally connected.
We recommend connecting GND on both sides for best low-noise performance.

# Name Domain Description
Analog outputs
1 ROUT AVDD Right channel out — AC-coupled, also on the 3.5 mm jack
2 LOUT AVDD Left channel out — AC-coupled, also on the 3.5 mm jack
I²S audio bus
15 MCLK DVDD System clock in — CLKIN on the ES7148
17 SCLK DVDD Bit clock in
18 DIN DVDD Serial audio data in — SDATA on the ES7148
19 LRCLK DVDD Left/right (word) clock in — sets Fs
Power and ground
5 AVDD AVDD Analog supply, 3.0 – 3.6 V (internally connected to DVDD)
16 DVDD DVDD Digital supply, 3.0 – 3.6 V
3, 4, 6 GND AVDD Analog ground (internally connected to digital GND)
11, 14 GND DVDD Digital ground
Not connected — present for ES8388 compatibility
7, 8, 9, 10 NC NC Not connected
12, 13, 20 NC NC Not connected

If you are laying out a carrier board, route all twenty pins. The ES7148 ignores the pins that it does not use, so the same PCB can use both modules.
NOTE that the power pins AVDD and DVDD are internally connected on this module!

Output Stage and Driving Headphones

Each channel leaves the chip through a 22 µF series capacitor and a 33Ω series resistor before reaching both the 3.5 mm jack and the header pins.
The capacitor removes the DC common-mode offset so you can connect straight to line inputs of other devices that accept the line output voltage levels of ES7148.

The ES7148 datasheet specifies a minimum load of 2 kΩ.
Headphones have a much lower impedance and you are operating the part outside its specified operating conditions. Even though it works, we are not sure about the long term effects of directly driving speakers/headphones with the ES7148.
We recommend using headphones for quick debugging requirements only.

If you plug in headphones directly, please be cautious as audio output into headphones can be very loud!.

The ES7148 can produce line output levels higher than the 1 Vpp level that many audio instruments accept.
Either use a resistor-divider for absolute safety or make sure that I2S data never exceeds your desired maximum output level.

Getting Started

There is no configuration step, so it is as simple as playing an I2S stream.

  1. Power it up

    Tie AVDD and DVDD to 3.3 V and connect both grounds.
    Note that the absolute maximum is 3.6 V, never feed it 5 V via supply or signal lines.
    Join the analog and digital grounds at a single point near the host MCU for the quietest noise levels (“star grounding”).
    For prototyping, you can connect one analog GND and one digital GND to the host MCU for best results.

  2. Pick a clock ratio

    Choose a CLKIN/LRCK ratio from the clocking table that fits your sample rate. For example, 256 × fs requires 12.288 MHz at 48 kHz.

  3. Bring up I²S

    Configure the host as I²S master with MCLK enabled. The ES7148 is slave-only and detects the word length itself, so 16-bit and 24-bit streams both work with no change.
    Here is a quick snippet for an ESP32-C3.

    es7148_i2s.c — ESP-IDF v5
    i2s_chan_handle_t tx;
    i2s_chan_config_t chan_cfg =
        I2S_CHANNEL_DEFAULT_CONFIG(I2S_NUM_0, I2S_ROLE_MASTER);
    i2s_new_channel(&chan_cfg, &tx, NULL);
    
    i2s_std_config_t std_cfg = {
        .clk_cfg  = I2S_STD_CLK_DEFAULT_CONFIG(48000),
        .slot_cfg = I2S_STD_PHILIPS_SLOT_DEFAULT_CONFIG(
                        I2S_DATA_BIT_WIDTH_24BIT,
                        I2S_SLOT_MODE_STEREO),
        .gpio_cfg = {
            .mclk = GPIO_NUM_3,   /* pin 15  MCLK / CLKIN */
            .bclk = GPIO_NUM_4,   /* pin 17  SCLK         */
            .ws   = GPIO_NUM_5,   /* pin 19  LRCLK        */
            .dout = GPIO_NUM_6,   /* pin 18  DIN / SDATA  */
            .din  = I2S_GPIO_UNUSED,
        },
    };
    
    /* CLKIN / LRCK = 256, a single-speed mode ratio. */
    std_cfg.clk_cfg.mclk_multiple = I2S_MCLK_MULTIPLE_256;
    
    i2s_channel_init_std_mode(tx, &std_cfg);
    i2s_channel_enable(tx);

  4. Write samples

    That is all you need! Once valid clocks appear, the DAC leaves power-down on its own and ramps up. Anything you write to I²S comes out of the jack.

    es7148_i2s.c — playback loop
    size_t written;
    
    while (1) {
        fill_buffer(samples, sizeof samples);
    
        /* No volume register on the ES7148 — attenuate in software. */
        for (int i = 0; i < SAMPLE_COUNT; i++) {
            samples[i] = (int32_t)(samples[i] * volume);  /* 0.0 .. 1.0 */
        }
    
        i2s_channel_write(tx, samples, sizeof samples, &written,
                          portMAX_DELAY);
    }

ESP32-C3 wiring

The same four signals as the ES8388 module, minus the I²C pair and the data output line.

ES7148 module ESP32-C3 Function
MCLK pin 15 GPIO3 System clock
SCLK pin 17 GPIO4 I²S bit clock
LRCLK pin 19 GPIO5 I²S word clock
DIN pin 18 GPIO6 Audio data to the DAC
AVDD, DVDD 3V3 Supply
GND GND Ground, joined at one point

Check LRCLK and MCLK outputs to make sure that the ratio is correct. Prototyping with dupont wires and other temporary connections like that can cause loose connections. Make sure your connections are good!

Platform support

Any host with an I²S transmitter and master clock output can drive this module.

ESP32 (and ESP32-S3, ESP32-C3, etc.) Recommended

Make sure that the ESP32 that you are using can generate MCLK according to the LRCLK rate. No ESP-ADF codec driver is involved.
ESP32 has restrictions on which GPIOs can output MCLK – confirm before connecting.

STM32 Straightforward

Enable the I²S peripheral with master clock output in CubeMX, set the audio frequency, and feed it with circular DMA. No codec initialisation code is needed at all.

Raspberry Pi and RP2040 In progress

The Pi’s I²S interface and the RP2040’s PIO-based I²S both work. Guides for these are still being written. If you are building something on one of them and get stuck, please contact us.

Documentation and Downloads

Here are the important documents that you may need for using the ES7148 module.

Frequently Asked Questions (FAQs)


What is the ES7148 module best suited for?

The ES7148 module enables high quality 24-bit stereo audio output to your embedded design without any complicated I2C drivers. If you simply need to play crystal-clear audio, this module is best suited.

What is the audio quality like for this module?

We found the audio output to be exceptionally good during our R&D. We have designed the module carefully with termination resistors on digital lines and used split ground plane to bring you the best performance even on a breadboard.

Does the 3.5mm jack output support hedaphones?

Yes, the ES7148 module can drive headphones. However, the datasheet specifications do not support it. We recommend using it for careful testing only.
The module output is best treated as a line output device only in long-term applications.


Need Something Different?

We design custom audio hardware.

Need a different outline, headphone amplifier or class-D stage on board? We can build a full-custom audio PCB to suit your application.
We specialize in low-power embedded design, prototyping and production.

Talk to us about a custom design

Reviews

There are no reviews yet.

Only logged in customers who have purchased this product may leave a review.

You may also like…

Shopping Basket
buy PCB Artists ES7148 moduleES7148 Module: Simple I2S Audio DAC
Original price was: $16.99.Current price is: $14.99.

Availability: 93 in stock (can be backordered)

- +
Scroll to Top