VOGONS


My DIY ISA Audio Interface

Topic actions

First post, by ALEKS

User metadata
Rank Member
Rank
Member

Hi,

I wanted to share with you something that I was working on for a while.
It's an ISA sound card that I designed for my own DIY computer. The PCB is on 4 layers, top and bottom being signal layers and inner layers being supply rails. I used individual analog and digital ground and power planes. Also for the analog section I used multiple isolated supply planes. As always everything is hand routed. Even though there are a lot of parts on this PCB assembly, Soldering them was a rewarding experience.
The noise floor is minimal and the sound is OK. Exactly as I remember it from the early 1990s.

I "stole" a steel bracket from another ISA sound card but it doesn't fit correctly -- which is expected, though. I will search whether there is somebody that can make a custom steel bracket for my design.

isa-audio-interface-pcba16.jpg

isa-audio-interface-pcba10.jpg

isa-audio-interface-pcba15.jpg

I did a video with how the thing sounds in various games. However I just recorded it with a digital still camera. It cannot possibly capture the sound in a quality format.

https://www.youtube.com/watch?v=PanPSUEo0yg

Cheers,
A.

Last edited by ALEKS on 2020-10-06, 16:33. Edited 1 time in total.

TX486DLC / 40 MHz | 32 Mb RAM | 16-bit ISA Backplane | EXCELGRAPH ET4000/W32i 2 Mb | I/O Interface | Audio Interface | PC Speaker Driver | Signal View Interface
3.5" & 5.25" FDD | 4 x 512 Mb CF | HP 82341D Interface | Intel EtherExpress 16

Reply 1 of 22, by Tiido

User metadata
Rank l33t
Rank
l33t

Very cool ! I do have some concerns about part choice. I see film caps that are in sound path, suggesting striving for superior sound quality, but at the same time everything is made with noisy carbon resistors and not metal film ones, and I think I'm seeing tantalums in audio path also which massively increase THD in analog applications. So I'm wondering what is the reasoning in the part choice. Small ceramics in sound path I don't know what type they are, but I surely hope NP0/C0G rather than X5R or such since other types lose a lot of capacitance as they get biased and are highly temperature sensitive and that increases THD dramatically once again.

How is compatibility of the OPTi chip ? I have a card with 82C928 which perhaps is newer by number, but it happens to have quite limited compatibility from my experience, with games not producing stereo or any sound at all so I wonder how the 924 compares.

T-04YBSC, a new YMF71x based sound card & Official VOGONS thread about it
Newly made 4MB 60ns 30pin SIMMs ~
mida sa loed ? nagunii aru ei saa 😜

Reply 2 of 22, by imi

User metadata
Rank l33t
Rank
l33t

neat :3

the video probably really doesn't do it justice though ^^ if you don't have any other means of recording you could use the mic-in on your camera if it has one maybe?

Reply 3 of 22, by ALEKS

User metadata
Rank Member
Rank
Member

Only two tantalum capacitors are in the signal path. It's true that they could produce overtones or sound harsh, but during my tests I haven't heard anything bad. But I agree those two 10 uF parts could be replaced with bipolar Nichicon ES series parts.
All the rest of the tantalums are exclusively for filtering purposes in key parts of the PCB assembly (in some parts of the design, I abused overengineering).
The small ceramic ones are NP0 (most of them being between 27 pF to 470 pF), everywhere I could find them as such. The others are X5R .
Regarding resistors, I originally wanted to go with DALE parts. But for some reason I went with carbon resistors. Good thing is that I still have two spare PCBs and in the future when I will recover my electronics budget (sic) I will do another one with metal film resistors.

About the compatibility, the OPTi chip is running in Sound Blaster Pro compatibility mode. It doesn't have that annoying note hanging issue, fortunately. And it is easy to program. For the moment I am using generic OPTi drivers for MS-DOS but I am planning to write my own. There is even a project on GitHub of a guy that wrote drivers from scratch for OPTi 82c929 in a combination of Pascal/Assembly. I might contact him or peek into his source code. But the datasheet is pretty verbose in describing the programming of this chip.

I will try to do some recordings via the LINE-IN of my PC, it should capture the sound better.

A.

TX486DLC / 40 MHz | 32 Mb RAM | 16-bit ISA Backplane | EXCELGRAPH ET4000/W32i 2 Mb | I/O Interface | Audio Interface | PC Speaker Driver | Signal View Interface
3.5" & 5.25" FDD | 4 x 512 Mb CF | HP 82341D Interface | Intel EtherExpress 16

Reply 4 of 22, by Tiido

User metadata
Rank l33t
Rank
l33t

The effects usually aren't gonna be audible but certainly are measurable. But ok, very good. It is very nice to see new hardware being made ~
For opamps I suggest getting NJM4580 or equivalents from other companies, very high performance, lot of current capability and also cheap parts (not RRIO capable though, not sure if any part in the design relies on that).

Hanging notes are pretty much Creative's software based MPU401 implementation issue only, nobody else has such problem due to use of full hardware MPU401 interface. Good luck with the software, datasheet should indeed provide everything necessary, assuming there are no oddities about order of operations etc.

T-04YBSC, a new YMF71x based sound card & Official VOGONS thread about it
Newly made 4MB 60ns 30pin SIMMs ~
mida sa loed ? nagunii aru ei saa 😜

Reply 5 of 22, by matze79

User metadata
Rank l33t
Rank
l33t

Yeah the Guy is Jan Knipperts and already registred here at the Forum, he is named DragonSphere
And also helped a lot with Tandy TSR and currently developes the Tandy Tracker.

Nice work, i like the OPTI Chips.

https://www.retrokits.de - blog, retro projects, hdd clicker, diy soundcards etc
https://www.retroianer.de - german retro computer board

Reply 6 of 22, by ALEKS

User metadata
Rank Member
Rank
Member

Thanks Tiido! I will take a look at NJM4580. By the way, I am using a NJM2100 but only for the FM DAC. It was readily available on Mouser and cheap enough. The SE5534A is quasi-unobtainable (but I had 4 NOS in my parts box, so I used them) but easily replaceable with NE5534A -- which is cheap. And the other ones that I used MC33078P are quite expensive for my tastes but I used them in the past with good results.

Yes, indeed, it's Jan Knipperts! I looked a little bit over his source code (I am very familiar with x86 assembly and Pascal) and it is well made. It can be easily modified to also support OPTi 82c924. I will try to kindly ask him if he would like to do the update himself. Otherwise, I will fork his work and add support for 82c924 myself. Then again, I might just write my own driver from scratch (it wouldn't be the first time, though).

TX486DLC / 40 MHz | 32 Mb RAM | 16-bit ISA Backplane | EXCELGRAPH ET4000/W32i 2 Mb | I/O Interface | Audio Interface | PC Speaker Driver | Signal View Interface
3.5" & 5.25" FDD | 4 x 512 Mb CF | HP 82341D Interface | Intel EtherExpress 16

Reply 8 of 22, by ALEKS

User metadata
Rank Member
Rank
Member

Thank you!
I really enjoy designing hardware and PCBs layouts. Especially when I am designing the hardware that I wanted and never had any chance to have back in the '90s.

TX486DLC / 40 MHz | 32 Mb RAM | 16-bit ISA Backplane | EXCELGRAPH ET4000/W32i 2 Mb | I/O Interface | Audio Interface | PC Speaker Driver | Signal View Interface
3.5" & 5.25" FDD | 4 x 512 Mb CF | HP 82341D Interface | Intel EtherExpress 16

Reply 9 of 22, by Tiido

User metadata
Rank l33t
Rank
l33t

4580 is sort of japanese version of NE5532, with very similar performance (except 4580 has much higher output current capability). 2100 is a toy compared to those and the MC33078 is inferior to 4580 and 5532 also.

What are the 5534 used for ? It isn't normal to use single section opamp unless you absolutely need offset correction feature or are really pushing thermal limits...

T-04YBSC, a new YMF71x based sound card & Official VOGONS thread about it
Newly made 4MB 60ns 30pin SIMMs ~
mida sa loed ? nagunii aru ei saa 😜

Reply 10 of 22, by ALEKS

User metadata
Rank Member
Rank
Member

I used NJM2100 for the YAC-512 converter, between the AOUT and SWIN pins. Indeed I might just reconsider using a better quality OPAMP in this position.
SE5534 are individual output amplifiers directly connecting the CODEC left and right outputs to the line out connector. I just had them in my drawer and wanted to use them for a very long time.

TX486DLC / 40 MHz | 32 Mb RAM | 16-bit ISA Backplane | EXCELGRAPH ET4000/W32i 2 Mb | I/O Interface | Audio Interface | PC Speaker Driver | Signal View Interface
3.5" & 5.25" FDD | 4 x 512 Mb CF | HP 82341D Interface | Intel EtherExpress 16

Reply 11 of 22, by ajacocks

User metadata
Rank Member
Rank
Member

This looks really cool. I’d definitely enjoy building one, given the chance.

- Alex

Reply 12 of 22, by RichB93

User metadata
Rank Oldbie
Rank
Oldbie

Looks gorgeous. A properly engineered bit of kit. It's kinda sad to think that those OPTi chips were resigned to bargain-basement designs and not a proper high end board like this where they could really shine.

auq80m-99.png

Reply 13 of 22, by Thermalwrong

User metadata
Rank Oldbie
Rank
Oldbie

Those board shots are wonderful 😀 I didn't realise you posted on here, I think your website is fantastic for all the write-ups on your other PCB designs.

Reply 14 of 22, by mbalmer

User metadata
Rank Newbie
Rank
Newbie
ALEKS wrote on 2020-10-02, 14:45:

About the compatibility, the OPTi chip is running in Sound Blaster Pro compatibility mode. It doesn't have that annoying note hanging issue, fortunately. And it is easy to program. For the moment I am using generic OPTi drivers for MS-DOS but I am planning to write my own. There is even a project on GitHub of a guy that wrote drivers from scratch for OPTi 82c929 in a combination of Pascal/Assembly. I might contact him or peek into his source code. But the datasheet is pretty verbose in describing the programming of this chip.

I know it's a mighty necropost, but, I just finished putting this card together and am curious to know if you ever had the chance to test out the card under Windows 3.1. I was curious to know if there was a particular driver that worked with it, or if something had been developed.

ALEKS wrote on 2020-10-02, 14:45:
Only two tantalum capacitors are in the signal path. It's true that they could produce overtones or sound harsh, but during my t […]
Show full quote

Only two tantalum capacitors are in the signal path. It's true that they could produce overtones or sound harsh, but during my tests I haven't heard anything bad. But I agree those two 10 uF parts could be replaced with bipolar Nichicon ES series parts.
All the rest of the tantalums are exclusively for filtering purposes in key parts of the PCB assembly (in some parts of the design, I abused overengineering).
The small ceramic ones are NP0 (most of them being between 27 pF to 470 pF), everywhere I could find them as such. The others are X5R .
Regarding resistors, I originally wanted to go with DALE parts. But for some reason I went with carbon resistors. Good thing is that I still have two spare PCBs and in the future when I will recover my electronics budget (sic) I will do another one with metal film resistors.

I have to admit that when I built mine, I had to settle for aluminum polymer caps for the tantalums, simply because I couldn't afford spending $200 on capacitors 🙁

The only major hangup I ran into was the ferrite beads -- they're not made anymore, and finding others with similar characteristics that fit into those footprints didn't really turn out well. I came close, but my board doesn't look nearly as neat and tidy as the original because I had to wrangle the ferrites in (they're all too big physically). Are the characteristics of the ferrites particularly critical, or is it more a function of "I had these on-hand, they work, let's use them"?

Reply 15 of 22, by ALEKS

User metadata
Rank Member
Rank
Member

Good morning, I forgot about this thread altogether.
With this occasion, I see that I have a few unread private messages -- haha, sorry for the (probably very) long delay for me to reply.

I remember I tested generic OPTi 82c924 drivers with Windows 3.11 and they worked. Though, I don't remember which drivers I tested. Maybe the ones here? https://archive.org/details/soundcarddriversMediaSound

My adventures with Windows 3.1/3.11 ended quickly as I constructed three such sound cards for:
* one computer with Windows 98
* one computer with Windows 95
* one computer with MS-DOS only (that's where I briefly tested Windows 3.1)

Out of the three, I mainly use the one with Windows 98, mostly listening to FLAC and MP3 files through the LAN (a SMB share on my NAS) via WinAMP 2.72 equipped with a FLAC decoding plugin.

By the way, those capacitors are really not critical. Thus, standard electrolytic capacitors work perfectly fine. But aluminum polymer are even better. I particularly like the Panasonic (ex. Sanyo) OS-CON parts, but also Kemet.
Somehow I knew they'd discontinue those ferrite beads, they were just too uncommon, yet I used them, fooled by the tens of thousands Mouser stock back then. An alternative would be to use some other type of ferrite cores such as 623-2743001111, mounted vertically, in an "interlaced" pattern (one on one side, the following ferrite on the other side). This way, they should fit and still look good.
For example, some graphics cards of the '90s did this.

The attachment ferrite-beads-interlaced.jpg is no longer available

The ferrites are not really critical. The ones I initially used are rated for around 80 R at 100 MHz, and the ones I suggested above are around 68 R at 100 MHz. Both are perfectly suited to suppress high frequency noise and HF oscillations.

Cheers,
A.

TX486DLC / 40 MHz | 32 Mb RAM | 16-bit ISA Backplane | EXCELGRAPH ET4000/W32i 2 Mb | I/O Interface | Audio Interface | PC Speaker Driver | Signal View Interface
3.5" & 5.25" FDD | 4 x 512 Mb CF | HP 82341D Interface | Intel EtherExpress 16

Reply 16 of 22, by mbalmer

User metadata
Rank Newbie
Rank
Newbie
ALEKS wrote on 2025-02-27, 08:19:

Good morning, I forgot about this thread altogether.
With this occasion, I see that I have a few unread private messages -- haha, sorry for the (probably very) long delay for me to reply.

So, many months ago, I completed building the card but I could never get it to work. The initialization program never managed to work; it would fail every time while trying to detect the codec chip.

I'd run it, and it would pick up the OPTi chip just fine, but when it came to trying to determine which codec chip was installed, it would get stuck for about 30 seconds, and then fail. I attached a screenshot of what it looks like when it runs.

I used the BOM on the website, so my hope is that everything else is right, but it would be nice to know if there's something I can check for here to determine where in the chain the problem exists.

Reply 17 of 22, by ALEKS

User metadata
Rank Member
Rank
Member

Hi,

I should really turn on the notifications (uh) to catch messages in time.

These kinds of issues are a bit hard to debug from a distance. Maybe if you could add a picture of the card? Both solder-side and component-side.
It could be anything from a soldering issue (even small solder bridges) to a defective CS4231 codec.

For some reason, on your screen capture, the codec is detected as AD1848/CS4248. Is that what you have used?
I would really recommend CS4231A as the card was constructed with that one in mind. Or if you already use AD1845 / CS4231, then this has to be selected in the AIF setup, first.
The AIF output should be very similar to:

isa-audio-interface-driver1.jpg

Cheers,
A.

TX486DLC / 40 MHz | 32 Mb RAM | 16-bit ISA Backplane | EXCELGRAPH ET4000/W32i 2 Mb | I/O Interface | Audio Interface | PC Speaker Driver | Signal View Interface
3.5" & 5.25" FDD | 4 x 512 Mb CF | HP 82341D Interface | Intel EtherExpress 16

Reply 18 of 22, by mbalmer

User metadata
Rank Newbie
Rank
Newbie
ALEKS wrote on 2025-03-25, 10:23:

For some reason, on your screen capture, the codec is detected as AD1848/CS4248. Is that what you have used?
I would really recommend CS4231A as the card was constructed with that one in mind. Or if you already use AD1845 / CS4231, then this has to be selected in the AIF setup, first.

So, that's what I found strange. I am using a CS4231, but the init program seems to insist on trying to look for a 4248 for some reason and it's not clear how to tell it to look for the other chip. I tried running the setup program to tell it that the 4231 was what I was using, but after running that and then running the init program again, it still insists on looking for a 4248 instead. I also noticed that there's been at least a few revisions of the software between the image you showed and the version that's on the github, so I thought it was something to do with that, but I don't know Pascal well enough to determine why the current version seems to insist on looking for the other codec chip.

As for pictures, here are some shots of the immediate region around the OPTi chip and the codec, the OPTi chip itself, and the back side where the codec's socket is mounted. I don't think the problem would be solder bridges, but who knows.

Also, you'll notice R14 is two resistors tied together in series, I freely admit that that's kind of a hacky way to get the job done but I didn't have the right value on hand.

Reply 19 of 22, by ALEKS

User metadata
Rank Member
Rank
Member

The soldering appears to be of very good quality, thus you're right, it's not from there.

But I have noticed that you have JP3 closed. It should be open (i.e.: no jumper set) so that the software could take control of the card. Otherwise, the card would attempt to read the EEPROM, which is empty.
That might be the issue.

Also, JP4 should probably be set, even though your BIOS might not be PnP-compatible.
Give it a try, either set or unset but JP3 must be open.

PS: The picture that I attached with the software version and revision is from the GitHub presentation page. It is indeed depicting an older version. But at home, I use the latest VER. 3.1 REV. B. The changes between revisions mostly fix minor bugs, but not the codec chip detection code.

Let me know if it works.

Cheers,
A.

TX486DLC / 40 MHz | 32 Mb RAM | 16-bit ISA Backplane | EXCELGRAPH ET4000/W32i 2 Mb | I/O Interface | Audio Interface | PC Speaker Driver | Signal View Interface
3.5" & 5.25" FDD | 4 x 512 Mb CF | HP 82341D Interface | Intel EtherExpress 16