65816 Retro Motheroard

Created by [snippyrow] • Started on May 24, 2025

A retro computer motherboard designed for the 65816 CPU.

May 28th: Began laying out PCB!

For the past few weeks I worked on the schematic, going from a quad-core to a dual-core architecture. I had to cut back and expand on several ideas, though it all seems to work according to the datasheets! Snapshot_2025-05-28_17-15-16

Snapshot_2025-05-28_17-15-46

Total time spent: ~12h

May 29th: Finished laying out PCB

Finished laying out the custom PCB. In the process I removed one of the expansion RAM slots to save on board space, bringing the total amount of expandable memory down to 6MB. Additionally I removed the decoupling capacitors connected to the RAM, as I believe they take up too much space and can be easily added to the individual expansion sticks. image image

Total time spent: 3h

May 31st: Updated PCB Layout Again..

After checking the design voer, I realized that improvements could be made. Added mounting holes around the corners, as well as the implementation of a serial port directly on the main board. While it does not use RS232, it uses an arduino-compatable 0/5V signal. The 4-pin header comes with a 5V supply pin, allowing a device to expand it out to any type of standard required. Serial connects into the secondary core directly, allowing it to take some of the load off the main CPU. Appears like an expansion device on the BUS.

image image

Total time spent: 3h

June 7th: Finished Major Re-design

I discovered an issue in my original design, the system that enabled the secondary processor was faulty and would never enable it properly. I also discovered issues with the way the primary CPU writes data to memory, as it would sample data on the wrong half of each cycle. This would cause severe issues. Additionally I decided to change up the design of the system, giving each processor 32kb of cache. This way each co-processor can work fully independantly of the other, only needing to halt in case it needs to access the global memory bus, which exists outside the first 65k. I also wrote a ton of documentation in the README.md file, which extensively explains how the board works.

image

Total time spent: 9h

June 11th: Half-way there!

I looked over the entire schematic, checking it twice, and began laying out my new PCB. All good things must come to an end, and it doesn't look as nice as the other one yet. I changed it to use mostly through-hole ICs to make it look more retro, as well as being easier to prototype with.

image

Total time spent: 2h

June 13-14th: Almost done..

I spent this time completing the board layout in the kicad designer, as well as checking the schematic again. I found a few small issues and correct them, though I will probably need to check things one more time before completion. I changed it to have only two RAM expansion cards, at 2MB each. This leaves it with 4MB of RAM + expansion cards + local cache. I have put everything into an auto-router, which is going as I write this. I think that I will need to spend a lot more time fixing some of the artifacts of the process, though this is far faster than doing it manually.

image image image

Total time spent: 4h

June 16-18th: FInal checks

I sepent the last bit fixing some minor hardware bugs, as well as completing the PCB layout and tracing. The kicad ERC returns zero errors, so at this point it's pretty much done and ready to run a program. It's been a great journey, and now I just need to do the tedious work of fixing all the autorouting artifcats. This includes right-angled corners and useless trace geometry. I really hope this project works out! The final size is 180x137mm. Unfortunatly checking a project like this for errors takes a lot of time, so more issues may come to light in later revisions.

image image

Total time spent: 5h