I programmed a little game just for fun for my mini pc 🙂
It is a cute little puzzle game with the “Lights Out“-mechanic. The game needs about 1MB of RAM and a VESA2-capable video card. It attemps to auto config a sound card for 16bit sound and MIDI music. It is written in C++ and was compiled with djgpp.
Furthermore I designed it to fit on a single 3.5″-diskette because why not 😛
I saw TheRasteri’s video about a mini PC the other day and fell in love with the idea – so I built my own 🙂
The video in question:
And that’s my take on the idea:
I got a somewhat good deal on a mainboard from the UK, took some measurements and build a face- and backplate for the casing. The clunky power switch and overall design tries very hard to look like a retro PC, haha 😀
Specs: CPU: Embedded low-power onboard VIA Mark 533 MHz RAM: 133 Mhz SDRAM 144-pin SODIMM 256MB HDD: 2GB CF-Card I/O: 2 x USB 1.1; 1x Gameport; 1x Line Out; 1x HDMI out; 2x PS/2; 1x VGA GPU: VIA Mark CoreFusion VRAM 32 MB Sound: *wink* *wink* Avance Logic ALS100 Plus+ PnP OPL3 sound card for PC/104 Power: 5V@4A
Since I wanted a sound card that was compatible with most standards so I can play as many games as possible with it I desided on the Avance Logic ALS100 Plus+. The IC is pretty well documented what made designing the sound card much easier.
It’s features are:
Compatibility • Adlib • All Sound Blaster Pro applications • All Sound Blaster 16 applications • MPU-401 UART MIDI • PC Speaker • Sound Blaster ADPCM • Yamaha OPL3 FM Synthesizer
That’ll cover every game I’m interested in. The PC speaker is mixed in with the audio out by the IC, that’s pretty cool.
The hardware specifications of the new sound card are as following:
Hardware specifications • Software selectable DMA lines (0, 1, 3) • Software selectable interrupt lines (5, 7, 9, 10, 11) • PC/104 ISA Plug and Play bus interface • DMA interface with FIFO • Enhanced Game port • 8-bit or 16-bit stereo digital audio from 4 kHz to 48 kHz • 3D Sound Effect Processor • FM/wavetable synthesis via OPL3 • Wavetable connector • Stereo Line-Out
Design and development
If you’re just here for the design files and aren’t interested in the failures I’ve had designing the sound card just skip to the end 🙂
Then I read the manufacturer’s design sheet to build a sound card for the ALS100 Plus+ and added some minor noise cancellation.
Yeah well, the IC is a bit bigger than a PQFP-100 (10% bigger to be exact). Meh. I tried to shorten the legs but ultimatively ordered another PCB. Bummer.
If you thought I would learn from my first mistake – think again! Yeah, so the OPL3 is also wider than a normal SOIC-24. This time I shortened the legs and soldered it down and went to testing (I shifted the IC down in the photo to better visualize the difference).
8bit- and 16bit-audio worked straight of the box so was the PC Speaker, but the FM synthesis was garbled. Staring at the schematics revealed another pretty stupid mistake:
If you havn’t spotted it yet: I switched around the adress lines. I cut the traces on the pcb and rewired them and FM synthesis was finally working.
Fourth fail (more like a foreseen issue):
There was a faint hum in the audio when plugging in a wavetable daughterboard. The soundcard has a digital and an analog ground which are connected at one point:
That’s fine and dandy – but the wavetable did just the same, so it created a ground loop. I removed the resistor on the sound card and the hum was gone 🙂
The dimensions for the wavetable daughterboard are approximately like this:
While testing I used a Dreamblaster X2 which fits nicely. Also pictured: The fix for fail #1 and an OPL3-clone.
*= Missing from BOM: • PC104-Connector, available on mouser.com • OPL3, available new old stock from various suppliers • ALS100 Plus+, unfortunatly EOL since the late 90s, so you have to desolder it from a working sound card.
I snatched a nice luggable for a low price. Unfortunatly the auction listing said “untested” – we all now what that means 🙂
So of course – plugging in the AC cord and switching it on does nothing. I took some pictures of the repair for your viewing pleasure 🙂
The outer inspection relvealed nothing speacial. There is a flap for some extension cards and an old style AT connector for the keyboard. Next I’ll pop it up.
The build quality is.. uhm, questionable I guess. No cable management and all the connectors are glued in place.
Next step: Pull all the components out.
The battery pretty much jumped into my face when moving the power supply. And there is quite a lot of gunk and even plastic spirals rolling around in the case.
Nicely packed RAM banks, no math coprocessor (wasn’t expecting one anyways) – but overall pretty nice! So let’s get the mainboard out of there and see what the battery did to it…. fingers crossed!
Ew! The keyboard connector sucked up all the batterie’s evil juices. And well, some splatters here and there on the mainboard. Let’s pop the cell out.
Yep, it smelled just as bad as it looks. The positive rail under tha battery is heavily corroded and some of the thick rail above the nasty blob has been eaten away. Ew.
I desoldered the keyboard socket and threw it in highly acidic vinegar and put it after half an hour in an ultrasonic cleaner. It was squeky clean after that.
The positive battery trace was cleaned with a glas fiber pen, same goes for the attacked thick trace. After that I refreshed the exposed copper with some solder.
Next up I measured the voltages of the PSU:
The PSU was spot on. So I checked the motherboard and stumbled upon a short between +12V and GND.
If you’ve been dealing with technology from around the 90s you already know the culprits.. tantalum capacitors!
The first cap I removed was shorted, oh oh. So I desoldered all of them and tested them – about all of them were dead.
I replaced all the upright tantalums, plugged everything together and…
Woohoo! It booted fine! So let’s see if the hard disk works.
Yep, it is pretty loud but works fine. 20MB capacity full of uninteresting documents and Lemmings! Nice.
So knowing the electronics are okay I had a closer look to the casing.
This is how the left hinge for the display looks like.
Holy smoke, what happened here? At first I thought it just snapped over time, but there are weird marks all over it – like someone tried to stab it with a knife.
Some goes for the “brakes” of the hinges. Just have a look at them!
I scrubbed them clean and 3D printed the missing bit of the hinge. Unfortunatly all I had at hand was maroon resin, but you won’t be able to see the hinge anyways 🙂
That green stuff is lithium based grease for increased hinge slipperyness, if that’s a word.
The desoldered battery was replaced with three industry grade NiCd cells and velcroed to the HDD caddy.
The HDD was replaced with a CF card mounted to the expansion bay for easier access.
Yeah well, the CF card is sticking out and the sliding door for the expansion cards won’t close this way. Unfortunatly I forgot to take a photo of it, but I 3D printed an adapter to move the CF card further in.
The jumpers on the CF adapter were already set correctly – to a single master disk.
So after mounting the CF card I tried to boot the machine. Well, the BIOS will detect the CF card automati.. no. No automatic detect for HDDs on this BIOS. So I googled and found “IDTHEIDE” – a tool that will find the correct cylinders/heads/sector count of an HDD.
I tried to put the program to a floppy disk and boot from it – no dice! The floppy drive was pretty much dead. So I tried a gotek flashed with flashfloppy and put an image of the floppy on it.
The tool worked perfectly! It detected the HDD straight away and all I had to do is to write down the values and put them into BIOS.
After entering the correct values the CF was recognized correctly. Next up I installed MSDOS6.22 I’ve got for free from the web archive. I backed up Lemmings from the original HDD and put it back to the CF card – it worked! But no sound, meh.
So I shuffled through my stuff and found a nice Sound Blaster 16, put it in and installed it. No problems there! Booted up Lemmings again, this time with glorious sound!
There was a serial Mouse included in the auction for this machine. Plugged it in, installed the Microsoft Mouse Driver 11 (if I recall correctly) and booted Lemmings again to test it. Worked fine!
I installed Win3.11 just for fun – it runs okay but sometimes crashed. Guess it wants more than the 2MB RAM the mainboard currently has.
Lets have a last look at the innards before closing this beast:
I had to install an HDD adapter plate for the now missing HDD. An installed HDD gave structural strength to the assembly to the left. If left out, the assembly to the left tends to sink down.
Finally I put the backplate on and screwed it down.
Sheesh. When screwing the backplate down one of the inserts lifted straight out. Glued it down with epoxy after that.
At least, this beast was finally done. Next up are some specs.
I’ll print out the BIOS settings and put them between the screen and the keyboard. Just in case.
PS: I tested tested the RAM and pretty much everything else 🙂
This is just a quick one. I wanted one of these fancy easyflash cartridges for the C64, so I built one and changed some stuff and added a fuse. This post is mostly to keep the project files ready for anyone to download and reproduce the cartridge :o)
That’s what the cartridges look assembled. They sport a fancy led on the front and big buttons on the top for my clumsy fingers to operate.
The LED is wired through the pcb to a footprint. The hole in the pcb makes room for the LED socket. You can wire a LED normally if you like, the footprint is between the USB port and the SPECIAL button.
I printed to bom to the back, for easier repair. The programming pins for the cpld are also available, just in case you need them for debugging. In addition to that the pcb is now protected by a fuse.
The gold plated connector is chamfered 45° so plugging it in is a big easier on the connector.
I was able to score a sweet sound canvas for my PC setup. Unfortunatly it arrived in a non working order 🙁 But hey, where’s the fun without a nice little repair?
First off – an outer inspection:
The whole thing seemed to be wrapped in tape sometime in the past. The residue is rock solid. Let’s turn it on it’s back…
I was a bit shocked – but the rust is just superficial. And one of the rubber feet is missing, no big deal. At this point I tried to power it and switch it on – but to no avail. It’s dead 🙁
While attempting the repair I let the rusted bottom plate soak in vinegar acid.
Back to the sound cavas!
So, no acid damage on the underside. I’ve read in the manual that the device settings are stored in a battery. So I braced myself for some corrosive damage. Try to pop the hood and take a peek.
Sweet! The battery backed storage relies on a lithium cell (right hand side, in a nice cell holder) which seems to be fine. I removed it anyway, since its most probably dead.
Next up was another visual inspection. So I just unplgged all the plugs and had a look around. Just checking for anything obvious, broken traces, bulging capacitors, all that stuff.
This is the input selection switch. Seems to be dead and hollow. More about that later.
Always funny to find a literal bug! In addition to that I found the power input jack had cold joints and had a bodge wire dangling around.. Unfortunatly I don’t have a picture of that, just took one after removing it and some while the repair.
Next up was the input selector switch. First of all I desoldered it and checked how it was wired inside to find a replacement.
So after prying the outer shell it revealed all of its oxidised beauty.
After giving it a scrub with brake cleaner I got this diagram:
Well, its almost impossible to find a switch that is wired just like this. I’ve searched all the big retailers to no avail. Bummer. So I popped some other switches open to put in just the plastic piece in the broken switch. And hey, that worked just fine!
So I soldered the “new” switch back in and tried to power it up. Bingo! It works just fine. So I focused at the shell again.
Next up I tackled the tape residue with goo gone. Just smeared it everywhere and put the case aside. Next up to see what the metal bottom was doing.
Awesome! The vinegar ate all the rust away. Just wiped it in soapy water and scrubbed the plastic shell again. After that I just put everything together again.
That wraps it up! The sound canvas works nicely with my old PC. Oh, the disk drives works, too. Took a video of it for your hearing pleasure 🙂
I do have a favourite manufacturer for pcbs but sometimes its smart to check out the other fabs. I’ll test some manufacturers and write short reviews about them – this time: Seeed Studio Fusion – https://www.seeedstudio.com/fusion_pcb.html
I plan to do something with Nixies in the future but wanted to use a modern driver. After a bit of searching I found this awesome project: https://github.com/dekuNukem/exixe
Damn impressive and even open source! Since pictures are worth a thousand words have a look for the driver pcbs:
The edge cuts are clean, no frizzing at all. That’s pretty nice. Unfortunatly Seed puts a production code on the silkcreen. Meh, I really don’t like that.
Looking very closely you’re able to spot the marks of the e-test probes. Pretty impressive, I’ve never seen them before. I wasn’t even sure if my fab does this test.
Following up are some detail shots. The boards are good, but I spotted a small error at the end. Have a look for yourself:
The drills are all centered, the silkscreen seems to be offset by a bit though. Bummer.
Next up is the error I spotted by chance:
The error is – excuse the pun – microscopic and won’t affect the functionality.
I know it sounds weird, but it’s a bummer you get exactly the amount of pcbs you order.
if you don’t order pcbs often this will most probably sounds weird. But usually you get at least one spare pcb. I like to use them for fitting tests or if something goes wrong while assembling.
Well, thats probably complaining at a high level.
Ah, what’s also pretty nice at Seed is the opportunity to order flex pcbs directly and having your boards plated with hard gold. That’s quite impressive, my fab won’t do that.
Someone asked my about a scan of the dummy insert for the famicom disk system to protect its drive from dust. The rar file below contains a high res scan of the insert, the *.psd-files are ready to print. The thickness of the insert is about 1.9mm.