VOGONS


The LlamaBlaster

Topic actions

Reply 40 of 59, by Eivind

User metadata
Rank Oldbie
Rank
Oldbie

...and work on getting the CS4237 config/initialization routines ported from C (from the ITX-Llama project) to assembly, for loading from the option rom.
The bochs emulator with its debugger is very handy for quick development of the menu and user input. For testing with the Crystal chip, I'll use the ITX-Llama while waiting for the boards to arrive.

The LlamaBlaster sound card
ITX-Llama motherboard
TinyLlama SBC

Reply 42 of 59, by Eivind

User metadata
Rank Oldbie
Rank
Oldbie
Pino wrote on 2024-02-23, 18:04:

Question, is the plan to JCL doing PCB+ all SMD components levaing only the PTH components to be manually soldered?

For this initial version, JLC will be assembling most of the components (including some of the TH ones).
What's left are the Nichicon caps and the PSRAM, which I've ordered from Mouser (but could technically have gotten JLC to order instead and then assemble, takes a few extra weeks),
plus the old chips - CS4237B, YMF262 and YAC512, none of which are in production anymore.

The LlamaBlaster sound card
ITX-Llama motherboard
TinyLlama SBC

Reply 43 of 59, by orcish75

User metadata
Rank Member
Rank
Member

Amazing stuff! The project is moving at lightning speed.

Thanks for including the full XT-IDE, gonna make a big difference. 😀

Reply 44 of 59, by wierd_w

User metadata
Rank Member
Rank
Member
Eivind wrote on 2024-01-15, 18:45:
640K!enough wrote on 2024-01-15, 18:17:

If all you want to do is an early boot-stage initialisation of the CS4237, you might be better off implementing it as an option ROM. That would have it run on the host CPU during boot, eliminating unnecessary complexities like isolating the chip from the bus, and worrying about potential effects on the PnP BIOS features.

That would be way smarter (and much easier), yes! Thank you! 😁

If the rom space you allow is big enough, (64K sized window, maybe with a jumper?) Then the same EEPROM can contain the XTIDE XUB, as well as your card init routine.

Reply 45 of 59, by Eivind

User metadata
Rank Oldbie
Rank
Oldbie
wierd_w wrote on 2024-02-23, 21:02:

If the rom space you allow is big enough, (64K sized window, maybe with a jumper?) Then the same EEPROM can contain the XTIDE XUB, as well as your card init routine.

There's 32 kB of addressable rom space, located at either 0xC8000 or 0xD8000 (selectable by a jumper). And yes, that space is plenty for both my sound card init routine and any of the XUBs! 👍

The LlamaBlaster sound card
ITX-Llama motherboard
TinyLlama SBC

Reply 46 of 59, by Eivind

User metadata
Rank Oldbie
Rank
Oldbie

Got the first prototype cards from JLC:

IMG_1162.jpeg
Filename
IMG_1162.jpeg
File size
1.67 MiB
Views
860 views
File license
Fair use/fair dealing exception

After adding caps, PSRAM, CS and OPL3 chips:

IMG_1163.jpeg
Filename
IMG_1163.jpeg
File size
1.84 MiB
Views
860 views
File license
Fair use/fair dealing exception

I'll be testing it over the weekend, we'll see how it goes... 🤞

The LlamaBlaster sound card
ITX-Llama motherboard
TinyLlama SBC

Reply 49 of 59, by zzgus

User metadata
Rank Newbie
Rank
Newbie

Following the project with great interest, didn't know about it. Will be veru handy all of these in one card.
Really interested in the xt-ide bios option as my 386 isn't able to boot from IDE Compact Flash.

Declare interest in it !

Thankyou
Gus

Reply 50 of 59, by Eivind

User metadata
Rank Oldbie
Rank
Oldbie
ubiq wrote on 2024-03-07, 22:18:

Yeah, been keeping an eye on this one since the first post. What's the plan - assemble a bunch and sell them? Assuming so, since you mention having a bunch on chip on-hand.

When I'm happy with the board, I'll open source and put everything on github. Might build a few extra and sell them as well, haven't decided yet.

zzgus wrote on 2024-03-08, 16:17:

Following the project with great interest, didn't know about it. Will be veru handy all of these in one card.
Really interested in the xt-ide bios option as my 386 isn't able to boot from IDE Compact Flash.

Declare interest in it !

I won't be taking any orders, this is primarily aimed to be an open source project. If I'm putting any of these (pre-built) up for sale at a later date, I'll be posting it here!

The LlamaBlaster sound card
ITX-Llama motherboard
TinyLlama SBC

Reply 51 of 59, by Eivind

User metadata
Rank Oldbie
Rank
Oldbie

So, a little update:

I couldn't find the motherboard I was planning to use and had to do my testing on another - turned out that that one didn't support ISA option ROMs 🙁
However, I modified my assembly code to run as a DOS .COM file and got the CS chip properly initialized.

Adlib, digital sound, wavetable, Pi, GUS - all sound sources seemed to work, BUT the output sound was horrible; hissy, scratchy, garbled, etc.
I thought I might have made some kind of mistake in the analog circuitry, but it turned out that I'd used a 3.3V regulator instead of a 5V one for the "+5VA" rail. The CS chip was definitely not happy about that, and I don't blame it. Surprised it even worked at all.
I removed the regulator and patched a wire from VCC to +5VA as a simple test, and that did the trick. There's still a slight background noise when turning the volume all the way up, but that might improve if I use a proper 5V regulator instead - and besides, the output amp is probably way overpowered in any case for anything else than a high-impedance pair of headphones, so you wouldn't want to have the volume set that high.

Next steps are getting my hands on a more suitable motherboard and playing around with the option ROM + ordering a 5V regulator and testing with that.
All in all, pretty happy with the result so far! 😌

The LlamaBlaster sound card
ITX-Llama motherboard
TinyLlama SBC

Reply 52 of 59, by Eivind

User metadata
Rank Oldbie
Rank
Oldbie

While I'm waiting for new 5V regulators to get here, I've been able to get the option ROM working. Booting from and using a CF card attached to the board and XTIDE loaded from the option ROM works fine.
Next up: modifying the initialization code to run from the option ROM, with a simple menu to change the CS4237 ports, IRQ and DMA, plus adding code for saving these settings back to the flash ROM. This last part requires an extra step - since I can't reprogram the ROM while executing code from it, I'll have to copy the code to a safe area in RAM, transfer execution to that and then do the programming.

The LlamaBlaster sound card
ITX-Llama motherboard
TinyLlama SBC

Reply 53 of 59, by wierd_w

User metadata
Rank Member
Rank
Member

Well, since this is happening before the OS loads, it can be done in the lower 640k area no problems. Just be sure to write zeros over the used memory afterward!

One thing to maybe consider though:

For somebody building (or having the card made) the card themselves, a DOS flasher program to initially write the option rom there would be useful.

Reply 54 of 59, by Eivind

User metadata
Rank Oldbie
Rank
Oldbie
wierd_w wrote on 2024-03-12, 14:05:

Well, since this is happening before the OS loads, it can be done in the lower 640k area no problems. Just be sure to write zeros over the used memory afterward!

Yep, plenty of room, I've already experimented with this and it works fine. Thanks for the tip about zeroing out the RAM afterwards, I hadn't thought of that! 😀

wierd_w wrote on 2024-03-12, 14:05:

One thing to maybe consider though:

For somebody building (or having the card made) the card themselves, a DOS flasher program to initially write the option rom there would be useful.

I've been using the lo-tech XT-CF flash utility for now, as it was a quick way of getting started.
Might write my own program later if needed, not sure if it's necessary.

The LlamaBlaster sound card
ITX-Llama motherboard
TinyLlama SBC

Reply 55 of 59, by Eivind

User metadata
Rank Oldbie
Rank
Oldbie

Small update: I've been spending quite a bit of time getting the initialization code working perfectly. My limited x86 assembly experience didn't help of course. Thanks to some very helpful (and patient) guidance from 640K!enough into the intricacies of the CS4237B and ISA PnP, I think I'm finally there.
I'm aiming to make my initialization code be available both as an option ROM (where you can press a key during boot to access a small menu for configuring SB port, irq and dma), and as a DOS executable that'll read the BLASTER environment variable and initialize the card appropriately. Only one of these methods will be necessary at the same time of course, but it's quite helpful to be able to choose which one to use - and it greatly speeds up the development process if nothing else.

As for the card itself, it works very well with the proper 5V regulator attached. I'm in the process of designing another prototype, mostly for adjusting the placement of the jack ports to better fit the bracket, but there's also room for a slightly better component placement and a smaller overall board size.

The LlamaBlaster sound card
ITX-Llama motherboard
TinyLlama SBC

Reply 56 of 59, by Eivind

User metadata
Rank Oldbie
Rank
Oldbie

Finally got around to testing the card on an older system, a 486 without a PnP BIOS, and it works perfectly fine in DOS, both initialized with an option ROM or by using the command-line tool.
Will have to do a bit of Windows testing as well, but so far so good...

The LlamaBlaster sound card
ITX-Llama motherboard
TinyLlama SBC

Reply 58 of 59, by Sudos

User metadata
Rank Newbie
Rank
Newbie

Going over this, the MIDI out and Line in ports are surface-mount whereas the main output jack is through-hole. Was this done because of space constraints?
Also, is this card's final BOM parts going to include color-coded jacks? Not to sound like a negative nancy on the subject, but even just color-coding the output jack will make things a lot nicer down the line for the end user as multiple jacks are going to be rather confusing.

You're also going to want to make up a PCB or 3D printable bracket for this card if anything given you're not going to sell these yourself past the initial small batch, I'm guessing.

But! I like where this is going, overall. I've been wondering when another 4237B card would come around. The only thing I don't like about the 4237B is it's not 100% SBPro compatible in my eyes, it has problems with some SCUMM games that have talkie elements (i.e. Beneath A Steel Sky) and that has led to a lot of hardship for me trying to keep such a card in one of my machines as I do enjoy playing them on bare metal from time to time. the 4237 by itself on a card really only belongs in a Win95/98/ME/2K/XP box where DOS game compatibility isn't everything. but with an OPL3 hooked to it, I'm sure it works well. I'd be interested to drop one of these in one of the slots on my 386SX boxes.

This is almost the perfect "kitchen sink" card for machines with only one or two ISA slots, as well-- the only thing it's missing is a DOS-compatible ethernet chipset plus a port with integrated magnetics for space savings. Easily solvable by use of other means (i.e. Xircom PE3) but given the PicoGUS already has Sound Blaster 2.0+OPL2 emulation going, one wonders if the 4237 is even needed. A re-spin without that, or even with, but focused on becoming an actual "kitchen sink" card that's everything here with the addition of an ethernet chipset might also be a lucrative side-project to take up. Such a card would allow someone to have everything under the sun necessary to run an old box right without expensive parallel port ethernet adapters, and then an extra slot saved from all of this could be used for a better graphics card instead of a network card. I've been waiting for someone to do such a project as I'm not knowledgeable EE-wise to undertake it myself, and will likely never have the time to get to that point.

However I do await the release of this to see where things go. I'm also interested to know what I'm assuming is an opamp up in the top right corner is? or is that just a headphone amp chip? I can't make out the model number to see. Based on the 4237 cards I have here I'm assuming it's a headphone amp chip.

8ips6a-2.png
qxkaxq-2.png

Reply 59 of 59, by Eivind

User metadata
Rank Oldbie
Rank
Oldbie

Thanks for bringing up many interesting points, I'll go through each:

Sudos wrote on 2024-05-15, 10:06:

Going over this, the MIDI out and Line in ports are surface-mount whereas the main output jack is through-hole. Was this done because of space constraints?

For the first prototype, I just went with surface-mount jacks I'd used before and knew worked fine. There's one major issue with these though, and that is that they're too close to the PCB. When you add a mounting bracket, the hole won't be (close to) centered. I've since found a better jack port I'll probably use, which stands a bit taller.
The main output jack was chosen because it's one of very few such jacks that features an optical transmitter.
I thought I had to combine the regular analog output jack with optical/"mini toslink" because of space constraints - but it now looks like I might actually be able to fit a regular toslink connector next to the 3.5mm jack as well. We'll see.

Sudos wrote on 2024-05-15, 10:06:

Also, is this card's final BOM parts going to include color-coded jacks? Not to sound like a negative nancy on the subject, but even just color-coding the output jack will make things a lot nicer down the line for the end user as multiple jacks are going to be rather confusing.

I agree that color-coded jacks are the best, but they're pretty hard to come by, and I love having the PCB manufacturer (JLCPCB in this case) also do as much of the assembly as possible. JLC has a quite extensive parts library, but not sure they have these jacks with colors.

Sudos wrote on 2024-05-15, 10:06:

You're also going to want to make up a PCB or 3D printable bracket for this card if anything given you're not going to sell these yourself past the initial small batch, I'm guessing.

Correct, I've already designed a bracket which can be 3d printed.

Sudos wrote on 2024-05-15, 10:06:

This is almost the perfect "kitchen sink" card for machines with only one or two ISA slots, as well-- the only thing it's missing is a DOS-compatible ethernet chipset plus a port with integrated magnetics for space savings. Easily solvable by use of other means (i.e. Xircom PE3) but given the PicoGUS already has Sound Blaster 2.0+OPL2 emulation going, one wonders if the 4237 is even needed. A re-spin without that, or even with, but focused on becoming an actual "kitchen sink" card that's everything here with the addition of an ethernet chipset might also be a lucrative side-project to take up. Such a card would allow someone to have everything under the sun necessary to run an old box right without expensive parallel port ethernet adapters, and then an extra slot saved from all of this could be used for a better graphics card instead of a network card. I've been waiting for someone to do such a project as I'm not knowledgeable EE-wise to undertake it myself, and will likely never have the time to get to that point.

I don't know if you've looked at another project I have going, the third iteration of my tiny Vortex86EX-based SBC - the TinyLlama v3?
There I'm experimenting with solely using the PicoGUS/RP2040 combined with a Raspberry Pi CM4 for audio, without any out-of-production sound chips. If that goes according to plan, it might be a viable option for this ISA card as well.
Such a setup would probably be able to provide emulated ethernet in DOS using the Pi's Wifi. At least something to look into...

Sudos wrote on 2024-05-15, 10:06:

However I do await the release of this to see where things go. I'm also interested to know what I'm assuming is an opamp up in the top right corner is? or is that just a headphone amp chip? I can't make out the model number to see. Based on the 4237 cards I have here I'm assuming it's a headphone amp chip.

It's a TI OPA1656 op amp, yes. Considering most sound cards will only output line-level audio, this is probably something of an overkill.

The LlamaBlaster sound card
ITX-Llama motherboard
TinyLlama SBC