VOGONS


TinyLlama 3

Topic actions

Reply 60 of 291, by Eivind

User metadata
Rank Oldbie
Rank
Oldbie

I think trying to get I2C communication going between the BIOS and the CM4 was a miss, I have issues both with handling a missing I2C slave device on the BIOS side, and getting a software-based (bitbanging) I2C slave set up on the CM4.
Not a big issue though, and in happier news I got virtual floppies working fine using an XTIDE option ROM, as well as modem emulation. Tried BBS'ing from Telix on the llama, works fine! 😀

Here are a few more photos. I 3d-printed simple legs and a fan mount for a 40mm Noctua fan.

The attachment IMG_1449.jpeg is no longer available
The attachment IMG_1452.jpeg is no longer available
The attachment IMG_1453.jpeg is no longer available
The attachment IMG_1454.jpeg is no longer available

TinyLlama 3
ITX-Llama motherboard
TinyLlama SBC

Reply 61 of 291, by centurion2024

User metadata
Rank Newbie
Rank
Newbie

Well if you would add connectors for like say serial and pallarel, you would saving room on the motherboard, so users can add it and fixed on the case

Reply 62 of 291, by centurion2024

User metadata
Rank Newbie
Rank
Newbie

Because you could use the bord not only for games, but also msdos programs using barscanner or older printers for accounting and inventory management. There are still companys that using older programs

Reply 63 of 291, by Eivind

User metadata
Rank Oldbie
Rank
Oldbie
centurion2024 wrote on 2024-07-16, 09:39:

Well if you would add connectors for like say serial and pallarel, you would saving room on the motherboard, so users can add it and fixed on the case

centurion2024 wrote on 2024-07-16, 09:46:

Because you could use the bord not only for games, but also msdos programs using barscanner or older printers for accounting and inventory management. There are still companys that using older programs

There literally isn't room on the board for these kinds of connectors. Also - parallel is out of the question since there isn't enough IO (pins) on the SOM without taking away other functionality.
This project is all about making the most versatile and smallest board for MS-DOS gaming. Companies needing MS-DOS for serial and parallel peripherals would never in a million years be interested in a DIY project such as this.

That said - when I'm happy with the board design I'll put everything up on Github, and you're free to modify and extend the design to your heart's content! 😁

TinyLlama 3
ITX-Llama motherboard
TinyLlama SBC

Reply 64 of 291, by ahmadexp

User metadata
Rank Member
Rank
Member

Eivind, just wondering, is it possible to emulate a CD-ROM as well using the CM4? Also, is there a SPI connected at least between the CM4 and the Vortex to transport the ISO image? I know there is a project called CD-Berry that can be the foundation of that. I was hoping to tie that in with the REMOVED project to load all those CD-ROMs needed for those 7000 games upon selection.

Last edited by DosFreak on 2024-07-16, 22:43. Edited 1 time in total.

Reply 65 of 291, by DosFreak

User metadata
Rank l33t++
Rank
l33t++
ahmadexp wrote on 2024-07-16, 22:25:

Eivind, just wondering, is it possible to emulate a CD-ROM as well using the CM4? Also, is there a SPI connected at least between the CM4 and the Vortex to transport the ISO image? I know there is a project called CD-Berry that can be the foundation of that. I was hoping to tie that in with the REMOVED project to load all those CD-ROMs needed for those 7000 games upon selection.

So called "abandonware" is not supported here. Take this talk elsewhere.

How To Ask Questions The Smart Way
Make your games work offline

Reply 66 of 291, by Eivind

User metadata
Rank Oldbie
Rank
Oldbie
ahmadexp wrote on 2024-07-16, 22:25:

Eivind, just wondering, is it possible to emulate a CD-ROM as well using the CM4?

I would guess yes - not quite sure how yet.

ahmadexp wrote on 2024-07-16, 22:25:

Also, is there a SPI connected at least between the CM4 and the Vortex to transport the ISO image?

Nope, SPI from the SOM would require ditching other IO. We do have two very fast UART connections though...

ahmadexp wrote on 2024-07-16, 22:25:

I know there is a project called CD-Berry that can be the foundation of that.

I haven't looked at that project before, but at first glance it seems to me to be a CD emulator over USB...? That wouldn't work in our case.

Getting back to the UARTs - for now I've only emulated floppy images over serial, using an XTIDE option ROM on the llama side. It's probably doable to program this functionality into the BIOS itself (could be floppies, CDs, hard drives), as long as you have a program on the CM4 side that'll serve up raw images over UART.

TinyLlama 3
ITX-Llama motherboard
TinyLlama SBC

Reply 67 of 291, by ahmadexp

User metadata
Rank Member
Rank
Member
Eivind wrote on 2024-07-16, 22:48:
I would guess yes - not quite sure how yet. […]
Show full quote
ahmadexp wrote on 2024-07-16, 22:25:

Eivind, just wondering, is it possible to emulate a CD-ROM as well using the CM4?

I would guess yes - not quite sure how yet.

ahmadexp wrote on 2024-07-16, 22:25:

Also, is there a SPI connected at least between the CM4 and the Vortex to transport the ISO image?

Nope, SPI from the SOM would require ditching other IO. We do have two very fast UART connections though...

ahmadexp wrote on 2024-07-16, 22:25:

I know there is a project called CD-Berry that can be the foundation of that.

I haven't looked at that project before, but at first glance it seems to me to be a CD emulator over USB...? That wouldn't work in our case.

Getting back to the UARTs - for now I've only emulated floppy images over serial, using an XTIDE option ROM on the llama side. It's probably doable to program this functionality into the BIOS itself (could be floppies, CDs, hard drives), as long as you have a program on the CM4 side that'll serve up raw images over UART.

Potentially we can have a USB connection between the CM4 and the Vortex, right?

Reply 68 of 291, by Eivind

User metadata
Rank Oldbie
Rank
Oldbie
ahmadexp wrote on 2024-07-16, 23:28:

Potentially we can have a USB connection between the CM4 and the Vortex, right?

Weeell, I mean you could connect a (short) USB cable between the micro-B connector and one of the Type-A connectors I guess. Super janky.
If you're thinking about a direct trace connection on the PCB then I think you'd need a USB hub chip as well. There's only one USB channel going out from the CM4, and it needs to be available as a physical port as well, because you need it to flash the eMMC initially.

TinyLlama 3
ITX-Llama motherboard
TinyLlama SBC

Reply 69 of 291, by ahmadexp

User metadata
Rank Member
Rank
Member
Eivind wrote on 2024-07-16, 23:37:
ahmadexp wrote on 2024-07-16, 23:28:

Potentially we can have a USB connection between the CM4 and the Vortex, right?

Weeell, I mean you could connect a (short) USB cable between the micro-B connector and one of the Type-A connectors I guess. Super janky.
If you're thinking about a direct trace connection on the PCB then I think you'd need a USB hub chip as well. There's only one USB channel going out from the CM4, and it needs to be available as a physical port as well, because you need it to flash the eMMC initially.

Maybe we can have a two jumpers that switch between the USB being used to do the flashing vs making it available to the Vortex.

Reply 70 of 291, by ahmadexp

User metadata
Rank Member
Rank
Member

Potentially we can have code that announces as a USB Mass Storage (like the ESP32). After receiving an ISO file it will mount it and presents it as a CD-ROM connected to the system. We can have a mechanism to reset it/eject (bring it back to Mass Storage) perhaps via I2C or Serial Connectors or even an external switch. Just thinking loud.
PS: Just found an awesome project on Github for it: https://github.com/tjmnmk/gadget_cdrom
PS2: It is necessary to have the I2C or Serial Connector to able to perform the eject if a script is supposed to load images.

Reply 71 of 291, by Eivind

User metadata
Rank Oldbie
Rank
Oldbie
ahmadexp wrote on 2024-07-17, 00:39:

Maybe we can have a two jumpers that switch between the USB being used to do the flashing vs making it available to the Vortex.

ahmadexp wrote on 2024-07-17, 00:44:

Potentially we can have code that announces as a USB Mass Storage (like the ESP32). After receiving an ISO file it will mount it and presents it as a CD-ROM connected to the system. We can have a mechanism to reset it/eject (bring it back to Mass Storage) perhaps via I2C or Serial Connectors or even an external switch. Just thinking loud.
PS: just found an awesome project on Github for it: https://github.com/tjmnmk/gadget_cdrom

Interesting!
So two things about this:
1. It would take away one of the Vortex's native USB ports. Probably not a big deal though.
2. I'm kinda worried about USB 2.0 signal integrity if trying to "share" one USB between a physical port and the Vortex, even if only through pin headers. It's a 480Mbit signal after all, it might not like that.

I'll do some thinking about this... 😀

TinyLlama 3
ITX-Llama motherboard
TinyLlama SBC

Reply 72 of 291, by ahmadexp

User metadata
Rank Member
Rank
Member
Eivind wrote on 2024-07-17, 00:54:
Interesting! So two things about this: 1. It would take away one of the Vortex's native USB ports. Probably not a big deal thoug […]
Show full quote
ahmadexp wrote on 2024-07-17, 00:39:

Maybe we can have a two jumpers that switch between the USB being used to do the flashing vs making it available to the Vortex.

ahmadexp wrote on 2024-07-17, 00:44:

Potentially we can have code that announces as a USB Mass Storage (like the ESP32). After receiving an ISO file it will mount it and presents it as a CD-ROM connected to the system. We can have a mechanism to reset it/eject (bring it back to Mass Storage) perhaps via I2C or Serial Connectors or even an external switch. Just thinking loud.
PS: just found an awesome project on Github for it: https://github.com/tjmnmk/gadget_cdrom

Interesting!
So two things about this:
1. It would take away one of the Vortex's native USB ports. Probably not a big deal though.
2. I'm kinda worried about USB 2.0 signal integrity if trying to "share" one USB between a physical port and the Vortex, even if only through pin headers. It's a 480Mbit signal after all, it might not like that.

I'll do some thinking about this... 😀

Wonderful.

Reply 73 of 291, by Deksor

User metadata
Rank l33t
Rank
l33t

For cd-rom, even if it falls back to usb 1.0 speeds I don't think it's that big of a deal, remember that 1x CD-ROM is 150kbps, so usb 1.0 speed would mean 6-8x cd-rom.

Not great, but not terrible either compared to what period correct systems were dealing with !

Trying to identify old hardware ? Visit The retro web - Project's thread The Retro Web project - a stason.org/TH99 alternative

Reply 74 of 291, by Eivind

User metadata
Rank Oldbie
Rank
Oldbie

I've been playing around with the linux module g_mass_storage on the CM4. I've connected a micro-B to A USB cable between the CM4 and one of the Vortex's native USB ports, and the drive shows up and is usable on the Vortex system.
So far so good. I haven't yet been able to get any DOS cd drivers to detect this drive though - and it's properly exported from g_mass_storage as a cd-rom drive. I'm able to boot from it though, but at that point I guess it only looks like a hard drive from the BIOS's point of view.

But folks, let's take a step back here - why do we want cd-rom drives via USB in the first place? I was thinking, wouldn't just using one of the DOS cd-rom drivers capable of mounting iso images do the trick just as well? That way, we keep control over the mounting/unmounting directly from DOS. Am I missing anything here? There's already more or less unlimited storage available on an sd card + up to two USB sticks - and file transfers between the Vortex system and the CM (or whichever computer connected to the same wifi as the CM4) are easily handled through ethernet over serial. Albeit at 3mbps, which isn't exactly super fast but this is DOS after all... 😀

Maybe this whole idea is a solution looking for a problem, not the other way around? 😁

TinyLlama 3
ITX-Llama motherboard
TinyLlama SBC

Reply 75 of 291, by Eivind

User metadata
Rank Oldbie
Rank
Oldbie

Actually, something really nice would be software running on the CM4 capable of presenting mixed mode cd-rom images (bin/cue) over USB, which would support cd audio playback commands and actually play the audio using the Pi's audio system (which is already routed back to the TinyLlama). I'm not aware of any such software unfortunately. The closest thing I could find was using cdemu to mount a bin/cue as a virtual device in linux, and then export that device over usb using g_mass_storage. AFAIK, no support for handling audio playback commands though. Not sure if this is even possible?

TinyLlama 3
ITX-Llama motherboard
TinyLlama SBC

Reply 76 of 291, by ahmadexp

User metadata
Rank Member
Rank
Member
Eivind wrote on 2024-07-17, 23:26:
I've been playing around with the linux module g_mass_storage on the CM4. I've connected a micro-B to A USB cable between the CM […]
Show full quote

I've been playing around with the linux module g_mass_storage on the CM4. I've connected a micro-B to A USB cable between the CM4 and one of the Vortex's native USB ports, and the drive shows up and is usable on the Vortex system.
So far so good. I haven't yet been able to get any DOS cd drivers to detect this drive though - and it's properly exported from g_mass_storage as a cd-rom drive. I'm able to boot from it though, but at that point I guess it only looks like a hard drive from the BIOS's point of view.

But folks, let's take a step back here - why do we want cd-rom drives via USB in the first place? I was thinking, wouldn't just using one of the DOS cd-rom drivers capable of mounting iso images do the trick just as well? That way, we keep control over the mounting/unmounting directly from DOS. Am I missing anything here? There's already more or less unlimited storage available on an sd card + up to two USB sticks - and file transfers between the Vortex system and the CM (or whichever computer connected to the same wifi as the CM4) are easily handled through ethernet over serial. Albeit at 3mbps, which isn't exactly super fast but this is DOS after all... 😀

Maybe this whole idea is a solution looking for a problem, not the other way around? 😁

I tried those DOS based ISO virtual CD-ROMS and they are not that great, plus you will consume resources that you have on the Vortex.
With regards to the signal integrity of USB, I do not thing a jumper will be that terrible as long as you have the distance matched. I double the jumper would be worst than a USB connection anyways.

Reply 77 of 291, by Eivind

User metadata
Rank Oldbie
Rank
Oldbie
ahmadexp wrote on 2024-07-18, 10:34:

I tried those DOS based ISO virtual CD-ROMS and they are not that great, plus you will consume resources that you have on the Vortex.
With regards to the signal integrity of USB, I do not thing a jumper will be that terrible as long as you have the distance matched. I double the jumper would be worst than a USB connection anyways.

I finally got it working in DOS - had to use the USBASPI.SYS (2.20) and USBCD1.SYS drivers. Can't yet change the image file without crashing DOS.
We're still nowhere nearer to getting cd audio / mixed mode working though (probably need to rewrite the g_mass_storage kernel module, which is way above my pay grade), so I'm still a bit on the fence about this whole USB experiment.
It might just work fine to cram these jumpers in the middle of the diff traces, but it also might not - and that's hundreds of dollars out the window for me... 😁
I was thinking, a way to completely avoid this is to just ditch the micro-B port altogether. That would require using another carrier board to do the initial CM4 programming though. There are lots of these available, at varying prices. I could also design my own, of course. Not much to it, but it wouldn't exactly be free either.

TinyLlama 3
ITX-Llama motherboard
TinyLlama SBC

Reply 78 of 291, by Eivind

User metadata
Rank Oldbie
Rank
Oldbie

Quick update (mostly as a note to self): finally understood what to do on the CM4 to change the g_mass_storage image file; it's was

/sys/devices/platform/soc/fe980000.usb/gadget.0/lun0/file

I can change the cd on the fly now, which is cool!

TinyLlama 3
ITX-Llama motherboard
TinyLlama SBC

Reply 79 of 291, by ahmadexp

User metadata
Rank Member
Rank
Member

Another reason to have the USB is to use it with video capture to have the remote KVM approach.