VOGONS


TinyLlama 3

Topic actions

Reply 40 of 291, by Eivind

User metadata
Rank Oldbie
Rank
Oldbie
ahmadexp wrote on 2024-06-14, 14:35:

That is true. Though, imagine you have your system enclosed in a nice box and you have to change your wifi credentials. Connecting via ttyS0 you can go to the system and make all your necessary changes to get back on SSH. The fact that you do not support external SD card makes this even more necessary since you cannot pull your SD card and make necessary changes.

Yeah, there's no CM4 SD card (again, because of space constraints) - but you do have external access to the eMMC by putting a jumper on the PI_BOOT pin header and connecting a micro USB cable to the J10 connector.
Necessary for initial CM4 setup if you don't have a CM4 IO board, but can also be used in a pinch, like your scenario!

TinyLlama 3
ITX-Llama motherboard
TinyLlama SBC

Reply 41 of 291, by ahmadexp

User metadata
Rank Member
Rank
Member
Eivind wrote on 2024-06-14, 14:43:
ahmadexp wrote on 2024-06-14, 14:35:

That is true. Though, imagine you have your system enclosed in a nice box and you have to change your wifi credentials. Connecting via ttyS0 you can go to the system and make all your necessary changes to get back on SSH. The fact that you do not support external SD card makes this even more necessary since you cannot pull your SD card and make necessary changes.

Yeah, there's no CM4 SD card (again, because of space constraints) - but you do have external access to the eMMC by putting a jumper on the PI_BOOT pin header and connecting a micro USB cable to the J10 connector.
Necessary for initial CM4 setup if you don't have a CM4 IO board, but can also be used in a pinch, like your scenario!

Very true. As always, you are right and I am a huge fan of your work Eivind and I am beyond thankful to all what you have done for the community, sharing all your hard work with us. Maybe that is the reason why I like to hand solder all your creations.

Reply 42 of 291, by snipe3687

User metadata
Rank Member
Rank
Member
ahmadexp wrote on 2024-06-14, 16:26:
Eivind wrote on 2024-06-14, 14:43:
ahmadexp wrote on 2024-06-14, 14:35:

That is true. Though, imagine you have your system enclosed in a nice box and you have to change your wifi credentials. Connecting via ttyS0 you can go to the system and make all your necessary changes to get back on SSH. The fact that you do not support external SD card makes this even more necessary since you cannot pull your SD card and make necessary changes.

Yeah, there's no CM4 SD card (again, because of space constraints) - but you do have external access to the eMMC by putting a jumper on the PI_BOOT pin header and connecting a micro USB cable to the J10 connector.
Necessary for initial CM4 setup if you don't have a CM4 IO board, but can also be used in a pinch, like your scenario!

Very true. As always, you are right and I am a huge fan of your work Eivind and I am beyond thankful to all what you have done for the community, sharing all your hard work with us. Maybe that is the reason why I like to hand solder all your creations.

I'm in the same boat on this one! keep up the good work!

Reply 43 of 291, by Eivind

User metadata
Rank Oldbie
Rank
Oldbie

Update:
I barely got the CSI connector fitted, fingers crossed the three additional diff pair traces won't affect the USB lines or vice versa. It was a tight fit...

The attachment tinyllama3_blue_front2.png is no longer available
The attachment tinyllama3_blue_back2.png is no longer available
The attachment tinyllama3_pcb.png is no longer available

TinyLlama 3
ITX-Llama motherboard
TinyLlama SBC

Reply 44 of 291, by ahmadexp

User metadata
Rank Member
Rank
Member

Wow, this thing makes use of every part of the PCB.

Reply 45 of 291, by Vridek

User metadata
Rank Newbie
Rank
Newbie

Really beautiful work, fingers crossed!!

Reply 46 of 291, by vanfanel

User metadata
Rank Member
Rank
Member

Hi Eivind! Long time TinyLlama v2 user here (bought three from you, for me & friends a couple of years ago or so!)

Glad to seem TinyLlama is evolving and improving! It's such a great project, and gave new life to DOS hardware, which is very much needed.

I have a couple of questions about TinyLlama 3.
-Will it be possible to order a fully populated board directly from JLCPCB, then just plug in Vortex 86EX SOC, VGA controller, CM4, and have a working system without any hand-soldering?
-Will TinyLlama 3 have improved compatibility? With TinyLlama v2, after 2 years trying, I wasn't able to run Elder Scrolls:Arena into actual gameplay, which is a personal favorite game. Maybe Tinyllama 3 will offer more compatibility options?

Thanks for all your efforts and for sharing them with us!

Reply 47 of 291, by Eivind

User metadata
Rank Oldbie
Rank
Oldbie
vanfanel wrote on 2024-06-21, 11:10:

-Will it be possible to order a fully populated board directly from JLCPCB, then just plug in Vortex 86EX SOC, VGA controller, CM4, and have a working system without any hand-soldering?

Yes, that's the plan! 👍

vanfanel wrote on 2024-06-21, 11:10:

-Will TinyLlama 3 have improved compatibility? With TinyLlama v2, after 2 years trying, I wasn't able to run Elder Scrolls:Arena into actual gameplay, which is a personal favorite game. Maybe Tinyllama 3 will offer more compatibility options?

The SOC used (Vortex86EX) is the same as for the TinyLlama 1 and 2 - so if the incompatibility issues you're seeing stem from the CPU being slightly different than other x86 CPUs from that era, then no, there probably won't be any improvements.
I think someone with great hacking- and disassembly skills needs to investigate how and why that particular game fails. Not sure I'm the man for that job, unfortunately.

TinyLlama 3
ITX-Llama motherboard
TinyLlama SBC

Reply 48 of 291, by vanfanel

User metadata
Rank Member
Rank
Member
Eivind wrote on 2024-06-21, 12:11:
Yes, that's the plan! 👍 […]
Show full quote
vanfanel wrote on 2024-06-21, 11:10:

-Will it be possible to order a fully populated board directly from JLCPCB, then just plug in Vortex 86EX SOC, VGA controller, CM4, and have a working system without any hand-soldering?

Yes, that's the plan! 👍

vanfanel wrote on 2024-06-21, 11:10:

-Will TinyLlama 3 have improved compatibility? With TinyLlama v2, after 2 years trying, I wasn't able to run Elder Scrolls:Arena into actual gameplay, which is a personal favorite game. Maybe Tinyllama 3 will offer more compatibility options?

The SOC used (Vortex86EX) is the same as for the TinyLlama 1 and 2 - so if the incompatibility issues you're seeing stem from the CPU being slightly different than other x86 CPUs from that era, then no, there probably won't be any improvements.
I think someone with great hacking- and disassembly skills needs to investigate how and why that particular game fails. Not sure I'm the man for that job, unfortunately.

All great answers, sir! My Vortex86EX modules will be VERY happy on the Tinyllama 3...
What else do I need for Tinyllama 3? My guess is:
-Pi CM4 (without on-board EMMC better, right?)
-The same VGA controller I use on the Tinyllama v2... or maybe a new kind of VGA controller? Which one do you recommend?
-...Anything else?

Also, about games that are incompatible with the Vortex86EX , since you provide so many options on the BIOS for CPU speed, caches, etc... there should be almost nothing that can not run on it (save for the very old 80's games that expect a 4Mhz CPU or so).
So maybe some memory area should be excluded on the EMM386 memory manager configuration? You know, something on the BIOS could need the X parameter as in:

X=mmmm-nnnn
Prevents EMM386 from using a particular range of segment addresses for
an EMS page or for UMBs. Valid values for mmmm and nnnn are in the range
A000h through FFFFh and are rounded down to the nearest 4-kilobyte
boundary. The X switch takes precedence over the I switch if the two
ranges overlap.

Reply 49 of 291, by Eivind

User metadata
Rank Oldbie
Rank
Oldbie
vanfanel wrote on 2024-06-21, 19:53:
All great answers, sir! My Vortex86EX modules will be VERY happy on the Tinyllama 3... What else do I need for Tinyllama 3? My g […]
Show full quote

All great answers, sir! My Vortex86EX modules will be VERY happy on the Tinyllama 3...
What else do I need for Tinyllama 3? My guess is:
-Pi CM4 (without on-board EMMC better, right?)
-The same VGA controller I use on the Tinyllama v2... or maybe a new kind of VGA controller? Which one do you recommend?
-...Anything else?

You need a CM4 with eMMC. The reason for that was that there just wasn't room to fit another microSD connector.
Same VGA cards as the previous llamas - mainly either the Vortex86VGA one that DMP/ICOP sells, or one with the Silicon Motion SM750 chip, like one of the Innodisk variants.
Technically, you can use an externally powered mini-PCIe -> PCIe adapter and an old PCIe graphics card, but that just destroys the small footprint of the board, obviously.
I wish there were more mini-PCIe cards out there, what's currently available is focused on embedded/industrial use - and priced accordingly.

vanfanel wrote on 2024-06-21, 19:53:

Also, about games that are incompatible with the Vortex86EX , since you provide so many options on the BIOS for CPU speed, caches, etc... there should be almost nothing that can not run on it (save for the very old 80's games that expect a 4Mhz CPU or so).

I wasn't talking about frequency or cache, but rather subtle differences in the actual CPU architecture itself. Wikipedia has an article about the Vortex86 family. Looks like they're missing a particular i686 instruction (CMOV), for instance. There are probably other differences as well.
If a particular program or game expects an Intel CPU, or something that's 100% compatible (it might even check for CPU models), chances are that the Vortex86 CPU could come up short.

vanfanel wrote on 2024-06-21, 19:53:
So maybe some memory area should be excluded on the EMM386 memory manager configuration? You know, something on the BIOS could n […]
Show full quote

So maybe some memory area should be excluded on the EMM386 memory manager configuration? You know, something on the BIOS could need the X parameter as in:

X=mmmm-nnnn
Prevents EMM386 from using a particular range of segment addresses for
an EMS page or for UMBs. Valid values for mmmm and nnnn are in the range
A000h through FFFFh and are rounded down to the nearest 4-kilobyte
boundary. The X switch takes precedence over the I switch if the two
ranges overlap.

I think I've mentioned this numerous times before - memory manager configuration is an art in and of itself, and this isn't something exclusive to the Vortex86 family - people have been tweaking and tuning EMM386 (and others) for decades, trying to maximize for compatibility and free space depending on their own particular system setup.
I don't have the time or interest to go down this rabbit hole right now, but I'm sure there are several memory ranges that should probably be excluded for maximum compatibility. Try using some kind of memory explorer and find out what's already in use by the system components?

As for Elder Scrolls: Arena - have you managed to figure out what exactly happens when it crashes/doesn't start? It'd be interesting to know if it craps out due to a CPU or memory issue.

TinyLlama 3
ITX-Llama motherboard
TinyLlama SBC

Reply 50 of 291, by Eivind

User metadata
Rank Oldbie
Rank
Oldbie

Update:
Hopefully the last tweak is done - adding an I2C pin header, for connecting whatever else (a simple display for instance).
I'll probably put in an order this weekend.

The attachment tinyllama3_blue_back3.png is no longer available

TinyLlama 3
ITX-Llama motherboard
TinyLlama SBC

Reply 51 of 291, by ahmadexp

User metadata
Rank Member
Rank
Member

Eivind, two things:
With regards to the SD card, is it possible to break the pins somewhere (test points to just a narrow pin header) to allow those who really want to put an external SD card slot. (like this one https://www.adafruit.com/product/4682)
With regards I2C connector, Qwiic got a nice an small connector with a lot of compatibles. (https://www.adafruit.com/product/4208?gad_sou … oBoCNpcQAvD_BwE)

Reply 52 of 291, by Eivind

User metadata
Rank Oldbie
Rank
Oldbie
ahmadexp wrote on 2024-06-22, 21:20:

Eivind, two things:
With regards to the SD card, is it possible to break the pins somewhere (test points to just a narrow pin header) to allow those who really want to put an external SD card slot. (like this one https://www.adafruit.com/product/4682)

We're talking 7 signals here (plus GND and 3.3V), it's not going to be easy to route all of those to a place to put a connector. A 9-pin 2.54mm pin header row is out of the question, definitely not room for that. If you need an external SD card slot, couldn't you "just" use an extender adapter (flex pcb or flat ribbon cable between a male and female sd/microsd connector)? There are plenty of those out there, at least.

ahmadexp wrote on 2024-06-22, 21:20:

With regards I2C connector, Qwiic got a nice an small connector with a lot of compatibles. (https://www.adafruit.com/product/4208?gad_sou … oBoCNpcQAvD_BwE)

Yeah, I like this suggestion! A 4-pin JST SH connector should be doable instead of the 4-pin 2.54 pin header! I just learned that "Qwiic" and "Stemma QT" are both used for I2C and both use that same connector (which already has a perfectly good name). Stupid confusing rebranding by Sparkfun and Adafruit if you ask me! 😁

TinyLlama 3
ITX-Llama motherboard
TinyLlama SBC

Reply 53 of 291, by ahmadexp

User metadata
Rank Member
Rank
Member
Eivind wrote on 2024-06-22, 21:59:
ahmadexp wrote on 2024-06-22, 21:20:

Eivind, two things:
With regards to the SD card, is it possible to break the pins somewhere (test points to just a narrow pin header) to allow those who really want to put an external SD card slot. (like this one https://www.adafruit.com/product/4682)

We're talking 7 signals here (plus GND and 3.3V), it's not going to be easy to route all of those to a place to put a connector. A 9-pin 2.54mm pin header row is out of the question, definitely not room for that. If you need an external SD card slot, couldn't you "just" use an extender adapter (flex pcb or flat ribbon cable between a male and female sd/microsd connector)? There are plenty of those out there, at least.

Sorry for the confusion.
By external SD card I meant the SD card needed for the CM4s with eMMC. I hear you, it is hard to route those pins from the CM4 to a 9-pin connector.

Eivind wrote on 2024-06-22, 21:59:
ahmadexp wrote on 2024-06-22, 21:20:

With regards I2C connector, Qwiic got a nice an small connector with a lot of compatibles. (https://www.adafruit.com/product/4208?gad_sou … oBoCNpcQAvD_BwE)

Yeah, I like this suggestion! A 4-pin JST SH connector should be doable instead of the 4-pin 2.54 pin header! I just learned that "Qwiic" and "Stemma QT" are both used for I2C and both use that same connector (which already has a perfectly good name). Stupid confusing rebranding by Sparkfun and Adafruit if you ask me! 😁

Exactly, but I am glad they are pin compatible (they are the same).

Reply 54 of 291, by Eivind

User metadata
Rank Oldbie
Rank
Oldbie
ahmadexp wrote on 2024-06-23, 06:10:

Sorry for the confusion.
By external SD card I meant the SD card needed for the CM4s with eMMC. I hear you, it is hard to route those pins from the CM4 to a 9-pin connector.

Oh, you meant for the CM4, so you could use one without eMMC instead? (eMMC and SD are mutually exclusive on the CM4).
I'm afraid that would be even harder, there's even less room on the board where those signals are coming out of the 0.4mm-pitch Hirose connector... 🙁
If there's any consolation, the eMMC variants aren't that much more expensive than those without - and in any case, after you've gotten the CM4 up and running, it's easier to just transfer stuff via wifi rather than fiddling around with an SD card! 😀

ahmadexp wrote on 2024-06-23, 06:10:
Eivind wrote on 2024-06-22, 21:59:

Yeah, I like this suggestion! A 4-pin JST SH connector should be doable instead of the 4-pin 2.54 pin header! I just learned that "Qwiic" and "Stemma QT" are both used for I2C and both use that same connector (which already has a perfectly good name). Stupid confusing rebranding by Sparkfun and Adafruit if you ask me! 😁

Exactly, but I am glad they are pin compatible (they are the same).

Yep! I do think this would be a better solution, I'll make the change! 👍

TinyLlama 3
ITX-Llama motherboard
TinyLlama SBC

Reply 55 of 291, by ahmadexp

User metadata
Rank Member
Rank
Member
Eivind wrote on 2024-06-23, 07:03:
Oh, you meant for the CM4, so you could use one without eMMC instead? (eMMC and SD are mutually exclusive on the CM4). I'm afrai […]
Show full quote
ahmadexp wrote on 2024-06-23, 06:10:

Sorry for the confusion.
By external SD card I meant the SD card needed for the CM4s with eMMC. I hear you, it is hard to route those pins from the CM4 to a 9-pin connector.

Oh, you meant for the CM4, so you could use one without eMMC instead? (eMMC and SD are mutually exclusive on the CM4).
I'm afraid that would be even harder, there's even less room on the board where those signals are coming out of the 0.4mm-pitch Hirose connector... 🙁
If there's any consolation, the eMMC variants aren't that much more expensive than those without - and in any case, after you've gotten the CM4 up and running, it's easier to just transfer stuff via wifi rather than fiddling around with an SD card! 😀

ahmadexp wrote on 2024-06-23, 06:10:
Eivind wrote on 2024-06-22, 21:59:

Yeah, I like this suggestion! A 4-pin JST SH connector should be doable instead of the 4-pin 2.54 pin header! I just learned that "Qwiic" and "Stemma QT" are both used for I2C and both use that same connector (which already has a perfectly good name). Stupid confusing rebranding by Sparkfun and Adafruit if you ask me! 😁

Exactly, but I am glad they are pin compatible (they are the same).

Yep! I do think this would be a better solution, I'll make the change! 👍

Thank you.
In my case, I am totally fine with my eMMC. I just proposed that solution just for increasing the compatibility of the TL3.
Also, I do not think we will ever need more than 32GB for the CM4 in the TL3 anyways.
One more thing, I think the TL3 will be the only (at least to my best of knowledge) board with CM4 and RR2040. Super cool!

Reply 56 of 291, by vanfanel

User metadata
Rank Member
Rank
Member
Eivind wrote on 2024-06-21, 20:34:

As for Elder Scrolls: Arena - have you managed to figure out what exactly happens when it crashes/doesn't start? It'd be interesting to know if it craps out due to a CPU or memory issue.

-With JEMMEX, the game starts, but hangs after character creation. Almost there!
-With HIMEM.SYS/HIMEMX.EXE and EMM386, it exits immediately with "DIVIDE ERROR".
I went and tried to debug it using DOS included DEBUG.EXE, as in

debug a.exe

And it hangs the computer with this on screen:

  AX=8001BX=FFFFCX=064DX=7FFESP=0BD2BP=0C04SI=1472DI=09F0
DS=4B39ES=4B39SS=5A10CS=0FB9IP=0151 OV UP DI PL ZR NA PE CY
0FB9:0151 CC INT 3

If there's anything else I could try to find out why it craps out immediately with EMM386, I will gladly try it.

Reply 57 of 291, by Eivind

User metadata
Rank Oldbie
Rank
Oldbie

Update:
Finally got all the components in stock at JLC, and made the order for a small prototype batch. As always, fingers crossed! 😀

TinyLlama 3
ITX-Llama motherboard
TinyLlama SBC

Reply 58 of 291, by Eivind

User metadata
Rank Oldbie
Rank
Oldbie

Update:

I got the first prototype batch of 5 boards a few days ago, here's a couple of photos of the board with the SOM, CM4 and a SM750 card populated:

The attachment IMG_1446.jpeg is no longer available
The attachment IMG_1447.jpeg is no longer available

After some initial testing:
- The CH559 (rasteri's HIDman) was flashed and works perfectly.
- The PicoGUS works in all modes I've tested, and the output volume is powerful and clear, thanks to the OPA1656 op amp.
- The CM4 was flashed and is running fine, I've tested MT-32 and Sound Canvas emulation (using munt and jcmoyer's fork of Nuked-SC55, respectively) - both work great in combination with PicoGUS's mpu mode.
- I've only made a few adjustments to the BIOS as of yet, but the PWM fan controller (EMC2301) works and lets me read and adjust the fan speed of a PWM fan without issues.
- The two miniature horizontally-mounted power- and reset buttons work, but have such a minuscule travel that they almost seem like touch controls. Not happy with those, I'll swap them out with larger Omron ones for the next batch.

Next up is modifying the BIOS to be aware of the CM4, letting it boot and start its services (floppy emulation) before handing off control to the XTIDE option ROM.

TinyLlama 3
ITX-Llama motherboard
TinyLlama SBC

Reply 59 of 291, by Vridek

User metadata
Rank Newbie
Rank
Newbie

Beautiful work, congratulations 😉