Close

386EX/387SX V4 Board Design, FPU progress, VCF Midwest

A project log for ArduinoX86

A project to interface Intel CPUs with the Arduino Giga

daniel-balsomDaniel Balsom 08/31/2025 at 15:240 Comments

V4 Board Design

I've taken some lessons learned from the V2 board design, most relevant being that the extension of the clock line over to the 387SX socket has been problematic due to its length and lack of series termination.

The size of the PCB also makes it more expensive.

So I decided to split the board into two modules, one for the CPU and one for the FPU.

I made a 'V3' design that connected these two boards via a 40-pin ribbon cable, but @f4grx@chaos.social on Mastodon gave me a great suggestion to make them simply stack on top of each other.  I'm not sure why I didn't think of that. So V3 went in the bin, and now we have V4.

Stacking the modules neatly solves the issue of the clock line - it's not extended at all if you don't have the FPU module plugged in, and it's much shorter even when you do.

I also had some fun by rotating the 387SX socket 45 degrees.  This actually does make the routing a bit cleaner. 
Power is brought up on the JTAG header, which if you plan to stack these modules should be a female 2x4 header on the CPU board. 

Some other additions include spots for series termination resistors on the clock lines, test pads, some extra filtering caps on the external power connector, and an i2c EEPROM I plan to add to all my boards for automatic shield detection.

FPU Progress

The V2 board is not a total loss, however, as I did get the 387SX to function with some tinkering to reducing ringing on the clock line.  

Here is a simple program to calculate 1+2 using the FPU, you can see the correct result 3 in the final ECX register. 

Ultimately, I'd like to provide a window where you can define the initial FPU state just as you can define the initial register state for the FPU.   We'll use the FSAVE and FRSTOR instructions to bookend program execution when an FPU is detected. 

VCF Midwest 2025

I'll be giving a talk at the upcoming Vintage Computer Festival Midwest on the topic "Controlling Intel CPUs with Microcontrollers".   The talk is on Saturday the 13th, at 11 AM.   I'll be providing a high level overview of how to control a CPU, as well as showing off some of the fun things you can do with the ArduinoX86 GUI.  Hope to see you there!

Discussions