
KSGER Controller REV 2.0
omega9380/KSGER-Coverplates
T12 Soldering Iron control board. A design based on schematics created by Mindstorm88 on the EEVBlog forums.

A tiny x86 retro computer
Tinyllama is an open-source printed circuit board by eivindbohler, from the eivindbohler/tinyllama repository on GitHub, published under the GPL-3.0 licence. It is a 4-layer board of 100 × 66 mm with 114 parts on 283 nets, routed with 1,397 tracks and 122 vias.
It is built around the 24LC08B/P, AMS1117-3.3 and CR1220-2. Its parts include 37 capacitors, 31 resistors, 11 connectors, 6 ICs and 4 diodes.
Note
Version 2 of the TinyLlama is out!
Go here to read more: https://github.com/eivindbohler/tinyllama2
The goal of the TinyLlama project is:
While I regularly use and enjoy real hardware from the 80's and early 90's - this stuff is often hard to get hold of, expensive, large, heavy, unreliable and proprietary.
In 2019 this made me look into modern recreations of old hardware, and I came across Sergey Kiselev's fantastic Micro 8088 and various peripheral board designs. Wanting a challenge, I modified most of these into the PC/104 form factor and successfully made a few prototypes:
However, being born in the early 80's and growing up playing games on 386/486-era computers, I started searching for similar projects with later hardware - and couldn't really find any. I discovered industrial boards and modules with varying degrees of ISA expandability, but these were all wildly expensive.
Then, I found the 86Duino line of products from DMP.
The cheap 86Duino hardware, tailored for robotics tinkerers, seemed like a promising path. I ordered a few boards and system-on-modules and made a prototype carrier board with break-out ISA header pins. I intended to build an add-on sound card board, but this just proved too complex at the time, and I abandoned the project.
Fast-forward to 2021, and I saw Rasteri's YouTube videos detailing his experiments using different Vortex86-based industrial boards and modules, and most importantly how easy it was to utilize the powerful (and still readily available) Sound Blaster Pro-compatible Crystal CS4237B sound chip.
As fate wanted it, The Raspberry Pi Foundation had just released their Zero 2 W board, and I thought if I could put Dale Whinham's fantastic MT32-Pi bare-metal MT-32 / General MIDI synth software on it, I would be very close to my DIY dream DOS computer.
The TinyLlama and this GitHub repo is the result.
Full BOM (bill of materials) can be found in the wiki.
Solder all components onto the TinyLlama PCB. As always, it's easier to start with the low-profile ones first, like resistors and capacitors.
If you're willing to spend slightly more, I recommended you let the PCB manufacturer pre-assemble most of the common components for you. Plus, some of the SMD components can be fairly tricky to solder without solder paste and a heat gun (or even better, a reflow oven).
Take a look at the wiki for more in-depth assembly instructions.
When purchasing the SOM-128-EX module from DMP, its ROM chip comes preinstalled with an Arduino-like bootloader which is useless to us. Also, the "crossbar" is configured for using the module with the 86Duino Zero/One boards - meaning its default pin layout is completely different from what we need for the TinyLlama.
Follow these steps to flash the ROM with the TinyLlama BIOS for the first time:
INITBIOS.ZIP file from this GitHub repo and do a block-level transfer of the INITBIOS.IMG to the USB drive. Use Balena Etcher, or the command line if you know what you're doing (macOS example):$ diskutil list
(Find your USB drive, eg. /dev/disk2)
$ diskutil unmountDisk /dev/disk2
$ sudo dd if=INITBIOS.IMG of=/dev/rdisk2 bs=1mC:\>anybios w initbios.rom...and reboot.
For subsequent BIOS updates, you can use the built-in BIOS updater selection available from the boot menu (press F12). This will boot into the same minimal FreeDOS installation, but from the virtual floppy drive integrated into the ROM itself.
From there you'll only need a USB stick formatted as FAT16/FAT32 with the new BIOS file.
fdisk from the command prompt to partition the SD/USB drive and set it to be Active.format c: /s to format the drive and copy over system files. Finally use fdisk /mbr to make sure the Master Boot Record is correct and the drive should be bootable.\FDOS directory.FDCONFIG.SYS and FDAUTO.BAT files (FreeDOS equivalent versions of CONFIG.SYS and AUTOEXEC.BAT). Look at the wiki for examples.CS4237B and UNISOUND folders from this GitHub repo over to the SD/USB drive and start the system.RESOURCE.EXE command below and check that you get the same output:C:\>cd cs4237b
C:\CS4237B>resource /f=0x120 /r=cs4237b.asm /e
Reading data from CS4237B.ASM
Length = 292 Programming EEPROM Block: 1 2 EEPROM programmed
Verifying EEPROM:
Verifying CS4237B.ASM against EEPROM . . . Verified OKAYBLASTER environment variable and run UNISOUND.EXE; you should get the following output:C:\>set BLASTER=A220 I7 D1 P330 T4
C:\>cd unisound
C:\UNISOUND>unisound
Universal ISA PnP Sound Card Driver for DOS v0.76f. (c) JazeFox 2019-21
-----------------------------------------------------------------------
PnP card found: [CSC7537] CS4237B
BLASTER environment var found! Loading settings...
ADD:220 WSS:534 OPL:388 IRQ:7 DMA:1/1 MPU:330/I9 CTR:120 JOY:200
Initialization done.
Crystal Mixer [VOL:85 WAV:80 FM:80 LIN:0 CD:0 MIC:0]BLASTER variable and UNISOUND command to your FDAUTO.BAT/AUTOEXEC.BAT file:SET BLASTER=A220 I7 D1 P330 T4
C:\UNISOUND\UNISOUND.EXE /V60 /VW60 /VF60 /VL60 /VP60 /VC0 /VM0C:\UNISOUND\UNISOUND.TXT file for further guidance.For an in-depth discussion of the various components, installation, configuration, etc, take a look at the wiki.
This project is indended for people with a fair bit of hardware- and DOS knowledge. If you have questions or need help, please look at the wiki and FAQ section first.
Coming.
In the mean time feel free to post an issue if you have tips, suggestions or want to report an error.
GNU General Public License v3.0
Many thanks to
| Qty | Value | Footprint | References |
|---|---|---|---|
| 15 | 0.1uF | Capacitor_SMD:C_0603_1608Metric | C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19, C20, C21, C22, C23 |
| 7 | 47k | Resistor_SMD:R_0603_1608Metric | R25, R26, R27, R28, R29, R30, R31 |
| 6 | 10uF | Capacitor_SMD:C_0805_2012Metric | C30, C31, C32, C33, C34, C35 |
| 6 | 33 | Resistor_SMD:R_0603_1608Metric | R2, R3, R4, R5, R6, R7 |
| 5 | 0.1uF | Capacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolder | C24, C25, C26, C27, C28 |
| 4 | 1nF | Capacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolder | C3, C4, C5, C6 |
| 4 | 4.7k | Resistor_SMD:R_0603_1608Metric | R14, R15, R16, R17 |
| 4 | 6.8k | Resistor_SMD:R_0603_1608Metric | R18, R19, R20, R21 |
| 4 | H_HOLE | llama_shared:H_440_HOLE | H1, H2, H3, H4 |
| 4 | H_HOLE_TOOLING | llama_shared:H_TOOLING | HT1, HT2, HT3, HT4 |
| 3 | 620 | Resistor_SMD:R_0603_1608Metric | R10, R11, R12 |
| 2 | 10k | Resistor_SMD:R_0603_1608Metric | R22, R23 |
| 2 | 22pF | Capacitor_SMD:C_0603_1608Metric | C1, C2 |
| 2 | 47uF | Capacitor_SMD:C_1206_3216Metric | C36, C37 |
| 2 | F | Fuse:Fuse_0603_1608Metric_Pad1.05x0.95mm_HandSolder | F2, F3 |
| 2 | FB | Resistor_SMD:R_0805_2012Metric | FB1, FB2 |
| 2 | L_EMI_FILTER | llama_shared:L_EMI_FILTER_MCM2012B900GBE | L1, L2 |
| 1 | 0 | Resistor_SMD:R_0603_1608Metric | R1 |
| 1 | 10nF | Capacitor_SMD:C_0603_1608Metric | C8 |
| 1 | 16.9344MHz | llama_shared:X_Crystal_SMD_HC49-SD_HandSoldering | X1 |
| 1 | 1N4148 | Diode_SMD:D_SOD-323F | D4 |
| 1 | 1k | Resistor_SMD:R_0603_1608Metric | R13 |
| 1 | 1uF | Capacitor_SMD:C_0805_2012Metric | C29 |
| 1 | 2.7nF | Capacitor_SMD:C_0603_1608Metric | C7 |
| 1 | 200 | Resistor_SMD:R_0603_1608Metric | R8 |
| 1 | 20k | Resistor_SMD:R_0603_1608Metric | R24 |
| 1 | 24LC08 | llama_shared:U_SOIC-8_3.9x4.9mm_P1.27mm_HandSoldering | U3 |
| 1 | 470 | Resistor_SMD:R_0603_1608Metric | R9 |
| 1 | AMS1117-3.3 | llama_shared:U_SOT-223-3_NOTAB | U1 |
| 1 | AudioJack3 | llama_shared:J_AUDIO35_C95463 | J6 |
| 1 | CONN | Diode_SMD:D_0603_1608Metric | D1 |
| 1 | CR1220 | llama_shared:MY-1220-03 | BT1 |
| 1 | F | Fuse:Fuse_1206_3216Metric_Pad1.42x1.75mm_HandSolder | F1 |
| 1 | FAN_PWR | llama_shared:P_CONN_01X03_SQUARE | P5 |
| 1 | GY-PCM5102 | llama_shared:U_GY-PCM5102 | U4 |
| 1 | I2C_OLED | llama_shared:P_CONN_01X04_SQUARE | P4 |
| 1 | J_MINI_PCIE | llama_shared:J_MINI_PCIE | J2 |
| 1 | J_PI_ZERO | llama_shared:J_CONN_RPI | J5 |
| 1 | Llama_logo | llama_shared:LLAMA_LOGO | LOGO1 |
| 1 | MICRO_SD | llama_shared:J_MicroSD_TF01A | J3 |
| 1 | NPN | Package_TO_SOT_SMD:SOT-23 | Q1 |
| 1 | POWER_SW | llama_shared:SW_ALPSALPINE_SPPH420100 | SW1 |
| 1 | P_DE9M | llama_shared:P_DE9M | P2 |
| 1 | P_SOM-128-EX | llama_shared:P_CONN_SOM-128-EX | P1 |
| 1 | RESET_SW | llama_shared:SW_ALPSALPINE_SPPH410200 | SW2 |
| 1 | ROM_SW | llama_shared:SW_ALPSALPINE_SPPH410200 | SW4 |
| 1 | RX | Diode_SMD:D_0805_2012Metric | D3 |
| 1 | SPEAKER | llama_shared:SP | SP1 |
| 1 | SPKR_VOL | llama_shared:P_CONN_01X03_SQUARE | JP1 |
| 1 | SYNTH_SW | llama_shared:SW_ALPSALPINE_SPPH410200 | SW3 |
| 1 | TTL_SERIAL | llama_shared:P_CONN_01X03_SQUARE | P3 |
| 1 | TX | Diode_SMD:D_0805_2012Metric | D2 |
| 1 | USB_A_Stacked | llama_shared:J_USB_A_C12049 | J4 |
| 1 | USB_Micro_B | llama_shared:J_USB_MICRO_B_10118194-0001LF | J1 |
| 1 | U_74LVC1G04 | Package_TO_SOT_SMD:SOT-23-5_HandSoldering | U5 |
| 1 | U_CS4237B-KQ | llama_shared:U_TQFP-100_14x14mm_P0.5mm_HandSoldering | U2 |
| 1 | U_MAX3243 | llama_shared:U_SSOP-28_5.3x10.2mm_P0.65mm_HandSoldering | U6 |
It measures 100 × 66 mm and has 4 copper layers, 1.6 mm thick.
114 parts, built around the 24LC08B/P, AMS1117-3.3 and CR1220-2. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
From the eivindbohler/tinyllama repository on GitHub, at the commit this page was made from: the board is kicad/TinyLlama.kicad_pcb and its schematic kicad/TinyLlama.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository publishes it under the GPL-3.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

omega9380/KSGER-Coverplates
T12 Soldering Iron control board. A design based on schematics created by Mindstorm88 on the EEVBlog forums.

will127534/Miniature-CM4-Cluster
A dense cluster for four Raspberry Pi Compute Module 4





