VOGONS


TinyLlama 3

Topic actions

First post, by Eivind

User metadata
Rank Oldbie
Rank
Oldbie

It's been a while since I worked on the TinyLlama boards, and in the mean time there's been two rather exciting projects popping up which made me want to revisit the TinyLlama: PicoGUS and Nuked-SC55.
It now looks like only using an RP2040 with the PicoGUS firmware might be enough for a proper sound card, as it can do both Gravis Ultrasound, SoundBlaster/Adlib and MPU-401 intelligent mode (hopefully soon the last two simultaneously), making redundant the CS4237B I've been using previously. This should make the board even cheaper to produce and wouldn't require sourcing the long-discontinued Crystal chip.
As for MT-32/General MIDI, munt and fluidsynth have both been working great running off a Raspberry Pi for the last two TinyLlama revisions, and now we also have the low-level Roland SC-55 emulator Nuked-SC55, as well as the emuSC project which is also moving along nicely from what I can tell.

Here are the changes I've planned so far for version 3:
- Removing the CS4237B
- Adding the RP2040 (PicoGUS) with supporting components
- Removing the GY-PCM5102 daughter board
- Adding two PCM5102 DAC chips directly to the board, one for the RP2040 and one for the I2S output of the Raspberry Pi
- Using an op amp for analog mixing of the two audio sources looks like an op amp not really needed for this simple mixing
- Using a Raspberry Pi Compute Module 4 instead of a Zero 2 for an even slimmer footprint and more power for handling synths and other stuff
- Removing the RS232 components (transceiver, connector)
- Removing the D1 wifi daughter board
- Hooking up serial and I2C between the Vortex86EX and the Pi - I'll try experimenting with utilizing the Pi for other purposes in addition to audio (wifi, emulated floppy, etc)
- Making the board even smaller

I'll add posts here as I progress with the design and manufacturing, and as always feedback and suggestions are welcome!
...and of course, this will all be 100% open sourced!

Last edited by Eivind on 2024-05-09, 23:36. Edited 1 time in total.

The LlamaBlaster sound card
ITX-Llama motherboard
TinyLlama SBC

Reply 2 of 23, by hilram

User metadata
Rank Newbie
Rank
Newbie

I will be following this with anticipation!
One question, please do not take this as critiqe: When comparing new designs based on the CS4237B EDIT: The Crystal sound chip (your TinyLlama, Rasteri's WeeCee etc.) to actual ISA sound cards based on that chip, from the 90's, I notice there are some differences. Namely the abscence of capasitors and resistors on the new designs. Why is that? Are those electrical components superfluous to begin with? Are they needed for stability when the bus is accessed over a physical socket? Or are they there to boost signal to noise ratio, give higher gain output audio-wise?

Last edited by hilram on 2024-05-05, 14:58. Edited 1 time in total.

Reply 4 of 23, by Eivind

User metadata
Rank Oldbie
Rank
Oldbie
hilram wrote on 2024-05-05, 07:57:

I will be following this with anticipation!
One question, please do not take this as critiqe: When comparing new designs based on the CS4237B EDIT: The Crystal sound chip (your TinyLlama, Rasteri's WeeCee etc.) to actual ISA sound cards based on that chip, from the 90's, I notice there are some differences. Namely the abscence of capasitors and resistors on the new designs. Why is that? Are those electrical components superfluous to begin with? Are they needed for stability when the bus is accessed over a physical socket? Or are they there to boost signal to noise ratio, give higher gain output audio-wise?

Kinda hard to answer, but the number of caps and resistors on the entire PCB is tied to many of the various components on that particular board, not just the CS4237B chip. That said, I've always tried to look closely at the data sheet of each IC I'm using, and for the CS also the reference design document. You might also be thinking of the large "can" capacitors that are often spread out across sound cards, especially older ones. While there's probably some truth to the superior sound quality of using these instead of smaller and fewer SMD capacitors, we're not exactly dealing with high-grade studio quality audio here, plus modern caps are usually smaller and of higher quality than their 90s counterparts.

The analog section of sound cards can be designed in an infinite number of ways, there's not really a right and wrong way. And you're right about needing more components if you want to have a more elaborate output gain and amplification.
Also, there might be a bunch of extra stuff dealing with signal integrity and possibly logic levels when dealing with a real ISA bus and plugin cards.

The LlamaBlaster sound card
ITX-Llama motherboard
TinyLlama SBC

Reply 5 of 23, by Eivind

User metadata
Rank Oldbie
Rank
Oldbie
Vridek wrote on 2024-05-05, 12:23:

If you remove the CS4237B, do you remove the Joystickport? Probably wouldn't be a waste, most of the old joysticks I have are on USB anyway.
Otherwise, fingers crossed for the new development 😀

There was never a joystick port on the TinyLlama, it's just too big. 😀 This board will have a dedicated USB port for joysticks as the PicoGUS firmware supports that.

The LlamaBlaster sound card
ITX-Llama motherboard
TinyLlama SBC

Reply 6 of 23, by Eivind

User metadata
Rank Oldbie
Rank
Oldbie

Regarding serial: the Pi4/CM4 has plenty of hardware UARTs and I believe 3Mbit transfer speeds should be well within reach. I already know the Vortex can handle this from previous experience with the D1.
To get native bootable floppy over serial I'll need to somehow hook that into the BIOS, but that should be doable as well. There's already support for floppy emulation from a ROM file in SeaBIOS.

I'm getting closer to finishing the schematic part of this board, will post updates of it here soon.

The LlamaBlaster sound card
ITX-Llama motherboard
TinyLlama SBC

Reply 8 of 23, by Eivind

User metadata
Rank Oldbie
Rank
Oldbie
Eivind wrote on 2024-05-09, 23:45:

To get native bootable floppy over serial I'll need to somehow hook that into the BIOS (...)

Looks like the XTIDE universal BIOS (which I assume can be added as an option ROM) already has support for emulating both hard drives and floppies over serial... interesting!

Last edited by Eivind on 2024-05-15, 05:12. Edited 1 time in total.

The LlamaBlaster sound card
ITX-Llama motherboard
TinyLlama SBC

Reply 9 of 23, by Eivind

User metadata
Rank Oldbie
Rank
Oldbie

I tried setting up an XTIDE option rom that searches for devices on a COM port, injected that rom file into the main BIOS, hooked up a couple of wires between a TinyLlama 2.1 and a Raspberry Pi 4, flashed the BIOS and voilà! Emulated floppy works!
Had to modify the Linux application that serves the image for it to support 3Mbit/s, but once that was done it runs fine. Floppy images can be changed on the fly on the Pi while the TinyLlama happily thinks you've ejected and inserted another floppy. This will come in handy for sure!
Haven't yet gotten hard drive images to function properly, but that's of minor concern as an SD card is about two orders of magnitute faster anyways.

The LlamaBlaster sound card
ITX-Llama motherboard
TinyLlama SBC

Reply 10 of 23, by Eivind

User metadata
Rank Oldbie
Rank
Oldbie

Update: more or less done with the schematics. Have to carefully go through all parts and assign footprints and check JLC for availability, but here's a preliminary snapshot:

tinyllama3-prototype.png
Filename
tinyllama3-prototype.png
File size
997.95 KiB
Views
323 views
File license
Fair use/fair dealing exception
Filename
tinyllama3-prototype.pdf
File size
1.28 MiB
Downloads
5 downloads
File license
Fair use/fair dealing exception

The LlamaBlaster sound card
ITX-Llama motherboard
TinyLlama SBC

Reply 13 of 23, by snipe3687

User metadata
Rank Newbie
Rank
Newbie

As a lover of these kinds of projects I will be watching this and the llamablaster closely!
Any thought, or room for that matter, of adding the HDD clicker like on the ITX llama? I love that feature. It just makes it feel like an authentic experience.

Reply 14 of 23, by Eivind

User metadata
Rank Oldbie
Rank
Oldbie
snipe3687 wrote on 2024-05-14, 22:39:

As a lover of these kinds of projects I will be watching this and the llamablaster closely!
Any thought, or room for that matter, of adding the HDD clicker like on the ITX llama? I love that feature. It just makes it feel like an authentic experience.

I wasn't planning on adding a hardware-based clicker solution, no. It requires a microcontroller and either a separate speaker unit or a few jellybean components to mix the clicks with the regular speaker output from the SOM. This will take up board space I'm not sure I have, and add cost and complexity I'd like to avoid.
Alternatively, since this is for all intents and purposes a DOS machine, one could have the BIOS generate these sounds when it receives read/write calls - and play these over the regular speaker.

The LlamaBlaster sound card
ITX-Llama motherboard
TinyLlama SBC

Reply 15 of 23, by snipe3687

User metadata
Rank Newbie
Rank
Newbie
Eivind wrote on 2024-05-15, 05:02:
snipe3687 wrote on 2024-05-14, 22:39:

As a lover of these kinds of projects I will be watching this and the llamablaster closely!
Any thought, or room for that matter, of adding the HDD clicker like on the ITX llama? I love that feature. It just makes it feel like an authentic experience.

I wasn't planning on adding a hardware-based clicker solution, no. It requires a microcontroller and either a separate speaker unit or a few jellybean components to mix the clicks with the regular speaker output from the SOM. This will take up board space I'm not sure I have and add cost and complexity I'd like to avoid.
Alternatively, since this is for all intents and purposes a DOS machine, one could have the BIOS generate these sounds when it receives read/write calls - and play these over the regular speaker.

OH yeah, if you could get it working from the BIOS itself that would be awesome! certainly not a need of course just a cool feature.
I love the idea of using the CM4 instead of the Zero 2 since it's a lot smaller and more powerful. Hopefully they become easier to get as I've had issues finding them the past few years. How powerful does it need to be to work? I'm not too familiar with the CM4 but I think it has onboard storage so you wouldn't need a SD card for the software, correct?

Are you planning to initialize the PicoGus from the BIOS like the ITX? that was a slick feature as well.

The only other thought I have is, and I'm picky about this so I may be the minority, could you add a way to adjust the system time from the BIOS? I know I can set it manually, but I always prefer the ability to set it from the BIOS and have all the software pull it from there rather than having to set it in Windows and DOS.

Love this project and can't wait to see the final product!

Reply 16 of 23, by Eivind

User metadata
Rank Oldbie
Rank
Oldbie
snipe3687 wrote on 2024-05-15, 12:13:

OH yeah, if you could get it working from the BIOS itself that would be awesome! certainly not a need of course just a cool feature.
I love the idea of using the CM4 instead of the Zero 2 since it's a lot smaller and more powerful. Hopefully they become easier to get as I've had issues finding them the past few years. How powerful does it need to be to work? I'm not too familiar with the CM4 but I think it has onboard storage so you wouldn't need a SD card for the software, correct?

The CM4s were (as most other Pis) super hard to get hold of during the chip shortage that followed the pandemic. They're readily available now though! I recommend rpilocator!

snipe3687 wrote on 2024-05-15, 12:13:

Are you planning to initialize the PicoGus from the BIOS like the ITX? that was a slick feature as well.

Hadn't planned on it. Keep in mind though that whatever firmware is currently installed on the rp2040 stays there after reboots and shutdowns, so there's not really any reason to "initialize" it at boot time, unless you want to switch to another firmware (which can be easily done in DOS).

snipe3687 wrote on 2024-05-15, 12:13:

The only other thought I have is, and I'm picky about this so I may be the minority, could you add a way to adjust the system time from the BIOS? I know I can set it manually, but I always prefer the ability to set it from the BIOS and have all the software pull it from there rather than having to set it in Windows and DOS.

I do believe setting the date/time in a BIOS and in DOS does the same thing under the hood, but I'll need to double check.
The actual setting from the BIOS shouldn't be hard - however making the UI to do so certainly requires quite a bit of work, so this probably won't be at the top of my list... 😉

snipe3687 wrote on 2024-05-15, 12:13:

Love this project and can't wait to see the final product!

Me too! 😁

The LlamaBlaster sound card
ITX-Llama motherboard
TinyLlama SBC

Reply 17 of 23, by snipe3687

User metadata
Rank Newbie
Rank
Newbie
Eivind wrote on 2024-05-15, 12:23:
The CM4s were (as most other Pis) super hard to get hold of during the chip shortage that followed the pandemic. They're readily […]
Show full quote
snipe3687 wrote on 2024-05-15, 12:13:

OH yeah, if you could get it working from the BIOS itself that would be awesome! certainly not a need of course just a cool feature.
I love the idea of using the CM4 instead of the Zero 2 since it's a lot smaller and more powerful. Hopefully they become easier to get as I've had issues finding them the past few years. How powerful does it need to be to work? I'm not too familiar with the CM4 but I think it has onboard storage so you wouldn't need a SD card for the software, correct?

The CM4s were (as most other Pis) super hard to get hold of during the chip shortage that followed the pandemic. They're readily available now though! I recommend rpilocator!

snipe3687 wrote on 2024-05-15, 12:13:

Are you planning to initialize the PicoGus from the BIOS like the ITX? that was a slick feature as well.

Hadn't planned on it. Keep in mind though that whatever firmware is currently installed on the rp2040 stays there after reboots and shutdowns, so there's not really any reason to "initialize" it at boot time, unless you want to switch to another firmware (which can be easily done in DOS).

snipe3687 wrote on 2024-05-15, 12:13:

The only other thought I have is, and I'm picky about this so I may be the minority, could you add a way to adjust the system time from the BIOS? I know I can set it manually, but I always prefer the ability to set it from the BIOS and have all the software pull it from there rather than having to set it in Windows and DOS.

I do believe setting the date/time in a BIOS and in DOS does the same thing under the hood, but I'll need to double check.
The actual setting from the BIOS shouldn't be hard - however making the UI to do so certainly requires quite a bit of work, so this probably won't be at the top of my list... 😉

snipe3687 wrote on 2024-05-15, 12:13:

Love this project and can't wait to see the final product!

Me too! 😁

Ah gotcha. Ok, no worries. I'm still a noob at this stuff so I'm just thinking of it more from a "what would I like?" perspective.
I forgot the PicoGus is a bit different, and it retains the firmware. I've built a couple of them so I should have known but my recent experience with the CS4237b is still fresh in my mind I guess 😜

Reply 18 of 23, by Eivind

User metadata
Rank Oldbie
Rank
Oldbie

Time to play Component Tetris...

Screenshot 2024-05-16 at 21.33.19.png
Filename
Screenshot 2024-05-16 at 21.33.19.png
File size
590.95 KiB
Views
85 views
File license
Fair use/fair dealing exception

The shape to the left is 85x56mm, same as the Raspberry Pi. Dunno if I'll be able to fit everything into such a small area, but I thought it'd be fun if I could.

The LlamaBlaster sound card
ITX-Llama motherboard
TinyLlama SBC