Blessed with a bit of spare time recently, I completed my most zany ever contraption: A Non-Arduino powered by the giant of computing history – Intel’s 8086 processor.
Why?
Back in the day, if you wanted to play with this stuff, you were likely reaching for a beast resembling the SDK-86. Code ran from EPROMs, was debugged by logic analyser and closest thing to stackexchange was a stack of technical manuals. These days, stuff like this is becoming increasingly rare, but to many, still interesting.
I’ve always thought it’d be cool to build a single board computer in the old style, specifically, one with a traditional local bus.
It’s a shame (but understandable) that these days, it’s tough to find a small microcontroller with an honest local bus. Many have one, but almost none actually need it. Just prior to this project, I built a board based on an 8031. It was cool, but not cool enough. The 8031 still is a very integrated device and doesn’t really need its bus for anything other than the ROM.
Hungry for more (and out of work at the time) – at the start of July 2014, I kicked off a second project: 8OD. Based on the Intel 8086. It quickly became apparent that this project was going to be on another scale. The resulting board is definitely guilty of looking very complicated, but really, it’s pretty basic. It’s just got most of the stuff which is normally jammed inside an SoC as real circuitry.
Additional information
- Hardware information
- Software information
- Processor selection
- Running 8OD with USSR K1810BM86
- Use with the Arduino Ethernet shield
- Getting started
Am I selling these?
In response to considerable interest when I first published this project, I did consider it, but in the end decided not to offer them for sale. There’s just too many end of life / difficult to find parts on this board to manufacture it in saleable quantities. Even if I could reliably obtain the parts, it’d cost more than anyone would be willing to pay 😉
For anyone who’s really interested. Get in touch. In some cases I may consider making boards available depending on circumstances.
Building one
As it is not practical to mass produce these – I am willing to assist / provide all of the information needed to anyone interested in making one, provided that you understand that you are going to have to source some recycled components – namely: the XC95216 CPLD, and the TP3465V SPI master. Once again get in touch if interested.
Brilliant!
You might like Steve Ciarcia’s home brew 8086 PC, which he published in BYTE magazine: write-up, schematics.
https://archive.org/stream/byte-magazine-1982-11/1982_11_BYTE_07-11_Graphics
https://archive.org/stream/byte-magazine-1982-11/1982_11_BYTE_07-11_Graphics#page/n79/mode/2up
This link gets you to the page… It is actually a good read.
This is excellent. much more sophisticated hardware support than my olduino which is based on the RCA 1802. Mine has high speed spi but otherwise limited I/o. I’ve had a lot of fun with it though and you may find some of the projects interesting e.g. Ethernet: https://olduino.wordpress.com/vcfmw/ethernet/
This is brilliant. I like how you have a feature I originally had but ditched, which is two stacked PCBs.
My first cut of the design had the 8086 and co on a PCB underneath the rest of it too, but I ditched this idea because I was worried about reliability of the connections between the two.
The Ethernet is interesting! I was supposed to do this for mine but have just been too inundated with everything else that’s been needed to get it out the door!
Ethernet is probably the showiest thing but you can have good fun with a lot of modern peripherals meant for arduinos. If you look on the about page you can see a rangefinder using a little lcd and an ultrasonic module for example. https://olduino.wordpress.com/about/
My two level design was because someone else came up with the basic 1802 board and I piggybacked on it. The assembly is small enough that it will fit in most places that an arduino will go like a robot car: https://olduino.wordpress.com/2015/01/24/carbot-is-successful-ish/
Anyway, thanks for the compliment and i’ll keep coming back to check your progress.
Hi.
Awesome content.
Thank you for making and sharing such cool knowledge and experience.
Well, its more than ironic that your obsolescent=antique-8086 project ist built around a now also already obsolescent Xilinx CPLD!
It shows that obsolescence is growing rapidly in electronics field!
If somebody wants to “homebrew” a todays “core-iXY” based PC in maybe 5 or 10 years, this will be almost impossible!
Some hints from my 25 years experience:
– the µP you are using is a C8086 from intel, so it is already a very late C-Mos-Implentation, that should be able to run also at 3.3V, making it compatible with almost any modern CPLD/FPGA-device.
– if not: there are many level-shifter ICs on the market solving that issue for the rather slow 8MHz (or less) 8086, using an 8088 would also solve some of the I/O problems due to its more handsome 8-Bit external Bus… (also the original IBM-PC ran with an 8088, not 8086 the first ISA-Slot was 8Bit wide, the 16bit extension only came with the AT 80286 machines!)
All the original chipset ICs from Intel are available on the net as “free cores” for FPGA implementation, also the 8088 itself, so you can build up a FPGA-only Arduino-Board and virtually implement ANY CPU (with an free ipcore available), so whats the difference???
I knew some guys that built their own PC-Clones in the early 80ties, some neighbours dad ( i was born in 69) worked at IBM germany that time and had some experimental PC running spread all over his home-lab, maybe he (and some others) infected me with the PC-Virus ;o)
I myself built first some Sinclair ZX81-kits for my friends and then decided to build my own ZX clone, trying to reengineer those parts inside the PLA/ULA (some kind of GAL/PAL) sinclair specific chip without knowing that time, that there was a precedessor named ZX80, which was build with pure TTL around the Z80-µP!
But then i got the chance to buy a VIC20 from commodore very cheap, so i changed to 6502, the first risc-µP in the world and best µP forever ;o)
So if i would have some spare time i rather would build a 6502 (or better : 65816 or insiders ;o)) board with arduino compatible I/O blaming ATMELs 8051s forever ;o)
Just few comments on that comment:
the µP you are using is a C8086 from intel, so it is already a very late C-Mos-Implentation, that should be able to run also at 3.3V
Are you sure you don’t mean 80C86? The ‘C’ in the C8086 I picture 8OD with denotes ceramic DIP package. It’s an NMOS part. I was mostly only interested in running the original NMOS parts. I have tried a CMOS 8086 (CP80C86) but I checked the datasheet, its VCC is min 4.5V. Granted it ‘should’ work, but I wasn’t out to build something that just ‘should’ work.
due to its more handsome 8-Bit external Bus
I never found the 8088’s bus interface very handsome. It makes it rather a lousy CPU as the EU spends about 30% of its time twiddling its thumbs waiting for the BIU.
Also I thought I’d enjoy the challenge of making it a 16-bit design more. There’s very few other examples of people attempting something like this so am definitely glad I did.
if not: there are many level-shifter ICs on the market solving that issue
It depends what you mean by solving. Sure, buffering the CPU side would be easy, but 8OD’s interface to the outside world is through the CPLD, so that’d make it somewhat of an ugly duckling in the predominately 5 volt Arduino world, especially with many shields assuming 5 volt operation.
Perhaps buffer the general purpose pins too? Crikey. That’d be complex. I’ve never seen a level shifter with individually reverseable channels, other than auto direction shifters, which are no good for things like driving LEDs. Even if such a thing existed, I’d quickly find myself with a world of new problems, including being plagued with glitch problems on I/O direction changes.
Not to mention the difficulty accommodating all of this on the PCB without making it significantly larger or adding more layers.
so you can build up a FPGA-only Arduino-Board and virtually implement ANY CPU
I could save myself even more time and just play with emu8086.
So if i would have some spare time i rather would build a 6502 (or better : 65816 or insiders ;o)) board with arduino compatible I/O
I look forward to seeing it.
Very interesting proyect! I am from the 8086 era too…
As I saw your proyect, I was thinking, what do you think about a 80386 board? I still have some 80386 boards lying here and I see that they don´t have that much peripherals chips on there, and it would be easy to migrate the software. I designet ISA IO cards these times.
I was designing Z80 boards and had one design almost ready as the new things came. This design comprised a small “motherboard” with the ROM and even a battery backup RAM, Watchdog, and this board needs a second board for the IO, which I not terminate to design.
dear matt, i would be very interested in purchasing at least a couple of boards for your 8OD – Arduino form factor Intel 8086 if you do decide to make any! thank you for your time, jimmy pi.
As I previously mentioned, I cannot produce these due two parts (XC95216 and TP3465) being discontinued. There are no direct replacements for these either.
Most outfits who offer PCBA are unwilling to assemble with recycled components, however I would most certainly willing to provide all of the information needed to hand assemble with second hand parts.
They (16-bit x86) are still in production. In the form of various 186 processors. Just see http://www.innovasic.com/upload/products/Innovasic_IA186ER_IA188ER_Data_Sheet_1.pdf
Try ELKS Linux on it: https://github.com/jbruchon/elks
ELKS runs on 8088/8086, 286, 386 …
ELKS supports fat16/fat32, networking …