Hello guys,
Wanted to share what it might become the initial steps of a cool and hopefully easy diy project. I am very noob in electronics in general, let alone digital audio, so bear with me
As i can already foresee the "why you don't just buy this and that", i wanted to say that i have absolutely no need for this, i own a very good 22 channel interface and i do this only as personal challenge and for fun and learning.
The reason i am interested in this project is that a couple of years ago, when i owned a very nice stereo DAC and bought my first subwoofer, I hit my head with the reality of multichannel electronics. From one day to the other, my stereo electronics were obsolete and i needed to get my hands dirty in the world of audio interfaces etc. (that was before the minidsp flex existed).
I could never understand why interfaces with multiple SPDIF outputs like the minidsp udio8, that would allow you to keep on using your stereo DAC and just buy a second one for the subs, were so rare and expensive (for what they do). Surprisingly, I could not find any diy project dealing with this.
Recently, a thread @jmf11 opened on his much more ambitious USB multichannel DSP interface project reactivated my interest on this, and motivated me to explore what could i do with what i already had at hand, that was.... a cheapo Amazon Basics HDMI extractor like the one Amir reviewed a few months ago.
The Amazon Basics extractor is based on a EP92A3E chip from Semiconn. This and others from the same family are common place in cheap HDMI extractors. This chip is very interesting because it can output 8 channel i2s audio via two common clock pins and 4 two channel data pins. In theory, you could get 4 different stereo spdif outputs from this, perfect!!
(Note that it also does DSD audio, i believe using the same pins, but i have no idea nor interest in DSD so i did not explore it and don't even know if it is of any interest to extract DSD from HDMI)
Unfortunately the datasheets of these chips are not readily available. A brief description of its sibling EP92A2E with its pinout is easy to find, but the pinout is completely different to the EP92A3E.
I could only find two sources of information regarding the pinout of the chip in the Amazon Basics extractor, and they seemed to match the PCB circuit:
One is this blurry pic from the website of a PCB printing company that seem to have copy/pasted whatever random project they had at hand in their marketing materail(?). Very professional:
www.raypcb.com
that seems to indicate that spdif out and i2s out pins are pins 55 to 61.
And the second is the teardown of the SMSL HS-1 that uses the same chip and has pads for the spdif and the i2s pins with names on them, that confirms the blurry image above, great!. The SMSL PCB even has little marks every 10 pins that are of great help to count them, thanks SMSL.
And with this info, i could identify where the i2s pins for the 4 pairs of channels are:
As you can see, only the two clocks, and the channels 0,1 pins are connected to that 4 gang 330ohm resistor, and following the traces the three go straight to the DAC that feeds the analog line output of the extractor, so everything seems to fit.
But what happens with the other channels that are left unconnected, do they ever get a signal or the firmware just left them dead? how can i get to test this?
I could tap the clock and data signals and use a i2s dac or something to check each individually, but fortunatelly the PCB layout of the extractor offers a much easier solution:
To the back of the PCB, the trace of the i2s data for channels 0,1 goes straight to a 0 ohm SMD resistor(R150):
I could not believe my luck!. Only needed to take out the resistor, solder a cable with a 330 ohm resistor and start touching the other pins and see what comes out of the headphones, much easier than i thought!
To do my tests with the other channels i plug the extractor to my raspberry pi and set HDMI as a 8 channels card in camilladsp.
To make sure that what i am hearing is not just a stereo signal duplicated, i apply in camilladsp exagerated low pass filters or high pass filters or gain filters to each pair of channels, so i can identify them only listening to them.
with this setup, i start tapping pins manually, and to my surprise, this is the result:
- i2s channels 0,1 = channels 0,1 in camilladsp
- i2s channels 2,3 = no sound
- i2s channels 4,5 = channels 4,5 in camilladsp
- i2s channels 6,7 = no sound
Well, we don't have 8 channels, but hey, we do have 4, enough for a typical low cost mains + sub(s) setup! Why these four? No clue, maybe there is a reason, maybe the guys writing the firmware forgot them on, whatever. I am just curious if there are revisions of the extractor with different active channels... nobody knows
What i plan to do now is to get a couple of wm8804 i2s -> spdif codecs, that i am familiar with, and see if i manage to make them work in slave mode sharing the clock signals from the extractor and outputting 2 channels spdif each, wish me good luck
Comments and suggestions are welcome!
Wanted to share what it might become the initial steps of a cool and hopefully easy diy project. I am very noob in electronics in general, let alone digital audio, so bear with me
As i can already foresee the "why you don't just buy this and that", i wanted to say that i have absolutely no need for this, i own a very good 22 channel interface and i do this only as personal challenge and for fun and learning.
The reason i am interested in this project is that a couple of years ago, when i owned a very nice stereo DAC and bought my first subwoofer, I hit my head with the reality of multichannel electronics. From one day to the other, my stereo electronics were obsolete and i needed to get my hands dirty in the world of audio interfaces etc. (that was before the minidsp flex existed).
I could never understand why interfaces with multiple SPDIF outputs like the minidsp udio8, that would allow you to keep on using your stereo DAC and just buy a second one for the subs, were so rare and expensive (for what they do). Surprisingly, I could not find any diy project dealing with this.
Recently, a thread @jmf11 opened on his much more ambitious USB multichannel DSP interface project reactivated my interest on this, and motivated me to explore what could i do with what i already had at hand, that was.... a cheapo Amazon Basics HDMI extractor like the one Amir reviewed a few months ago.
The Amazon Basics extractor is based on a EP92A3E chip from Semiconn. This and others from the same family are common place in cheap HDMI extractors. This chip is very interesting because it can output 8 channel i2s audio via two common clock pins and 4 two channel data pins. In theory, you could get 4 different stereo spdif outputs from this, perfect!!
(Note that it also does DSD audio, i believe using the same pins, but i have no idea nor interest in DSD so i did not explore it and don't even know if it is of any interest to extract DSD from HDMI)
Unfortunately the datasheets of these chips are not readily available. A brief description of its sibling EP92A2E with its pinout is easy to find, but the pinout is completely different to the EP92A3E.
I could only find two sources of information regarding the pinout of the chip in the Amazon Basics extractor, and they seemed to match the PCB circuit:
One is this blurry pic from the website of a PCB printing company that seem to have copy/pasted whatever random project they had at hand in their marketing materail(?). Very professional:

How to Convert PCB to Schematic Diagram? - RayMing PCB
Converting a Schematic into a PCB Layout, or PCB to schematic diagram services PCB to Schematic PCB File Format PCB Design Tips Reverse Engineer PCB to Schematic Diagram Esimate Cost converting PCB to shematic diagram, Pls send email to [email protected] Now PCB Schematic Diagram Here are step...

that seems to indicate that spdif out and i2s out pins are pins 55 to 61.
And the second is the teardown of the SMSL HS-1 that uses the same chip and has pads for the spdif and the i2s pins with names on them, that confirms the blurry image above, great!. The SMSL PCB even has little marks every 10 pins that are of great help to count them, thanks SMSL.
And with this info, i could identify where the i2s pins for the 4 pairs of channels are:
As you can see, only the two clocks, and the channels 0,1 pins are connected to that 4 gang 330ohm resistor, and following the traces the three go straight to the DAC that feeds the analog line output of the extractor, so everything seems to fit.
But what happens with the other channels that are left unconnected, do they ever get a signal or the firmware just left them dead? how can i get to test this?
I could tap the clock and data signals and use a i2s dac or something to check each individually, but fortunatelly the PCB layout of the extractor offers a much easier solution:
To the back of the PCB, the trace of the i2s data for channels 0,1 goes straight to a 0 ohm SMD resistor(R150):
I could not believe my luck!. Only needed to take out the resistor, solder a cable with a 330 ohm resistor and start touching the other pins and see what comes out of the headphones, much easier than i thought!
To do my tests with the other channels i plug the extractor to my raspberry pi and set HDMI as a 8 channels card in camilladsp.
To make sure that what i am hearing is not just a stereo signal duplicated, i apply in camilladsp exagerated low pass filters or high pass filters or gain filters to each pair of channels, so i can identify them only listening to them.
with this setup, i start tapping pins manually, and to my surprise, this is the result:
- i2s channels 0,1 = channels 0,1 in camilladsp
- i2s channels 2,3 = no sound
- i2s channels 4,5 = channels 4,5 in camilladsp
- i2s channels 6,7 = no sound
Well, we don't have 8 channels, but hey, we do have 4, enough for a typical low cost mains + sub(s) setup! Why these four? No clue, maybe there is a reason, maybe the guys writing the firmware forgot them on, whatever. I am just curious if there are revisions of the extractor with different active channels... nobody knows
What i plan to do now is to get a couple of wm8804 i2s -> spdif codecs, that i am familiar with, and see if i manage to make them work in slave mode sharing the clock signals from the extractor and outputting 2 channels spdif each, wish me good luck
Comments and suggestions are welcome!
Last edited: