Close
0%
0%

Z80 overpowered computer

I am building a computer with a 4MHz Z80, 32KiB EEPROM, 32KiB RAM, IDE interface and UART.

Similar projects worth following
Super awesome z80 computer, fully upgradable and limitless. Also open source.

OK, so here are the system specs I will at least have in the end, and may get better over time.

RAM in minimal system32 KiB
maximum RAMTechnically unlimited....
video resolutionDepends on graphics hardware
Disk space in minimal system16 KiB EEPROM, Also IDE interface
expansion slots0-8
main system clock speed4 MHz (Or dynamic/auto adjust speed)
OSNo Clue.

This is the third attempt at getting this thing working, and it seems to be getting easier and cheaper over time. I think this time I'll get it right. Things on the board do quite a bit already, because there aren't really any errors in the PCB (for now). How nice!

CPU clock speed auto adjust

The RAM I am using is BLAZING fast. Not very retro, but whatever. The EEPROM, however is very slow. 150ns. If the EEPROM is deselected, why not go at a faster speed? The CPU I have can handle 20Mhz. I may invent some logic for that.

mobo.kicad_pcb

first version of my flexATX motherboard featuring a Z80 processor as a PCB

kicad_pcb - 641.09 kB - 06/17/2017 at 21:08

Download

mobo.sch

first version of my flexATX motherboard featuring a Z80 processor schematic

sch - 54.35 kB - 06/17/2017 at 21:08

See BOM Download

mobo.pro

the KiCad Project

pro - 2.46 kB - 06/17/2017 at 21:08

Download

OS2.z80

2nd os for the Z80 computer I am building. A new version was needed due to severe hardware redesign.

z80 - 9.14 kB - 09/11/2016 at 00:09

Download

  • 1 × Z80 CPU, min 4 MHz, preferably CMOS processor for the system made by zilog
  • 1 × 74HC42 Selects chips & boards, could be replaced by similar chips.
  • 1 × System Board Solder together on a protoboard
  • 5 × 1k resistor used for pull up and pull downs
  • 3 × 330 ohm resistor allows LEDs to run at 5 volts

View all 10 components

  • Big ole update

    Dylan Brophy5 days ago 0 comments

    OK, so for now I ditched the motherboard idea. I am not willing to buy a motherboard from a fab, so later I may make a homemade board with vias, as seen here. That blog is really awesome btw, consider reading it sometime.

    Well anyways I have been trying to get a 16550 UART working, so far with no luck. I have pretty much reduced the problem down to the UART or the data bus's connection to the 'expansion board' I made because I ran out of room on my first board.

    I also added a nice ATX power supply controller circuit, which allows power to go to the (currently useless) IDE hard drive. It's still pretty cool though.

    Well, here is the system so far:

    You can see why I need to make my own smaller and more clean PSU. This 'wires going crazy shorting everywhere' business with a WAY oversized powe is beyond terrible. OK, now the computer itself:

  • Designed a motherboard!

    Dylan Brophy06/17/2017 at 21:35 0 comments

    I spent many hours designing a motherboard in KiCad. It looks like it would work! No, this isn't retro anymore, but I think what I really liked about the Z80 was that it is simple, unlike modern processors, and powerful, unlike most arduinos. It has a DIP pinout, and it is simply the perfect combination of features for me to make a computer with. Since more powerful things are more complicated, and complicated projects can be fun, I realized what I was really aiming for was the most powerful Z80 computer I could build from scratch, then the best OS I could make for it. So it's new features are SUPER COOL (in my opinion).

    New Design Features

    • 2 Clocks for CPU, one for accessing slow devices and one for faster devices
    • RTC with interrupts to allow better multitasking and device polling, and of course timekeeping
    • Compatible with ATX power supply
    • Standard front panel connector
    • UART
    • built-in USB to PS2 keyboard converter
    • 32KB EEPROM
    • 32KB RAM
    • IDE connector

    I understand that many people who build computers with the Z80 are looking for a retro computer experience, to run old programs OSes or games they remember from the 80's. I didn't ever have that, so I don't really resonate with it. I found out about the Z80 by looking for something more powerful than an Atmel chip, because the computers I was trying to make were too big for it. That was 4 years ago, before I knew what an address bus was. So that is why I think in terms of motherboards, and video cards, and that every computer must have keyboard input and video output.

    I also may add more things, like a floppy disk controller. Or any other ideas anyone else has.

    Also, its about 335$ for 3 boards from OSH park, so I am going to see if I can do it a bit cheaper: decrease board size - or make a 2-layer PCB with vias underneath chips at home (Yieks!)

    Here are some pics of the new board to add to my file uploads:


  • Z80 Motherboard preliminary designs underway

    Dylan Brophy05/27/2017 at 23:43 0 comments

    Preliminary designs

    I basically took my old schematics and made some modifications. NGT20 graphics on the motherboard, EEPROM/RAM switch, support for modern computer power supplies. I guess this isn't 1980s, but rather a 1980s/present hybrid. I will update the project accordingly. I still am adding more things to the design, and I want to add support for RC2014 computer parts (see here). Here is the preliminary schematic:

    Expenses

    A smaller-than-ATX design I put on OSH Park to see the cost for 3 boards costs about $250.

    Cool 3D Printing Idea

    I want to make some more money before I do that, plus I just bought a 3d printer and 2kg of filament... Which brings me to an idea I have. What if I could 3d print a pcb? Not like make it in one of the specialized machines, but literally make the board from PLA or ABS filament? And have an alloy that melts at the same temp. as the filament? That will be a project I post in the future. So I might make the motherboard of my Z80 computer in the 3D Printer.

  • Programmer (Finally!)

    Dylan Brophy04/28/2017 at 00:56 2 comments

    For a looooong time I have only been able to find absurdly expensive programmers, none at a reasonable price. It SUCKED. Some on ebay were even 1000+ dollars! Ridiculous! Finally I found one for 42$ on ebay here. It came in the mail today and I finally can properly program my Z80 computer.

    Why I bought a programmer and didn't build one

    I tried programming with my arduino mega. Not only was it tedious and difficult, it hardly ever worked at all. It was a mess. I must have programmed it almost properly once because when I read it with my new TL866CS one of my OSes were there, but in the wrong spot. I think like 32 bytes from the start of the EEPROM, instead of at byte 0.

    Is the programmer working well?

    Yes! Although it's cheap compared to other programmers it works very well and is easy for me to use. It also programs sooooo many devices. And I got a program to run on my Z80 board!

    Problems with my z80 computer

    I got a program to run. Barely. I can't remember the address for the debug parallel output, so I just sent 0x55 to every address to debug it. That worked, but I don't know which address that was. The UART wont work (Now that I can test it), and no LED will light up on the peripheral board for my guess at the IDE address. So its pretty much an unusable system (for now). I would like to have an ATX motherboard layout anyways...

    Possible solution?

    I was coming up with some ideas for a full on Z80 ATX motherboard a few months ago to solve another problem : these boards don't fit in any case! Oh, and an ATX board would allow compatibility with more modern cases, allowing case USB connections and a bit of a surprise to the unsuspecting user. What I was thinking then was how expensive that would be and how much I would never want to pay for making the boards. I discovered Tindie around then, and that's why I wanted to start selling my NGT20: to get into the market so that later I could build my Z80 stuff without loosing money, but rather gaining it. I just don't want to exhaust my bank account, ya know?


    So, I really want to make a Z80 ATX motherboard. Without SATA and PCI and DDR-whatever RAM, but just compatible with the case, power supply, and an IDE hard drive/disk drive. If I get a floppy controller I will support floppy drives too.


    Anyways, would anyone buy a Z80 ATX motherboard? I know I want one.

  • Finished main expansion board: IDE and UART!

    Dylan Brophy10/28/2016 at 00:19 0 comments

    I finally finished the expansion board. Its the same size as the main board but is focused on interface with other hardware and peripherals. These include IDE hard/disk drives and UART. The UART is for interfacing with my Open Source Graphics Card and for easier programming of the EEPROM. The graphics card is another project you should check out. I will be testing my new hardware when I make a EEPROM programmer and can really test my programs.

  • Official 3rd Try! Seems like its working this time.

    Dylan Brophy09/11/2016 at 00:57 0 comments

    When I originally started on this project 2 years ago, I made some fairly simple hardware to make a computer with. Although it didn't end up working, I learned a lot and really began to understand how computers worked on a much deeper level. I also got a Z80, along with some other chips I would use in the future. A year later, I tried again. I made a PCB design in EAGLE and ordered my board from OSH park. Since I was inexperienced in the areas I was exploring, I made mistakes in the underlying foundation that the computer would be built upon, eventually leading me to have to scrap that version. Now, I am trying again. This time I know a LOT more about what I am doing, and have made a computer system in an FPGA which taught me too. This version FINALLY seems to be working. I have made an EEPROM programmer, have a working output port, and will be testing the newly-added 32K RAM today. I have also started making OS2, which so far works in the emulator. It, as of now, can read a file, get user input, and dynamically allocate memory. I am trying to make it compatible with CP/M so I can run programs from it.

View all 6 project logs

Enjoy this project?

Share

Discussions

Mustafa Kemal Peker wrote 04/08/2017 at 16:31 point

Hi Dylan,

At last my monitor type OS (with inline assembler and disassembler )is ready
Please setup and try this v1.0b 
you can find all necessary information in my Efex pages;



http://peker.000webhostapp.com/Efex-V4/



please send me your comments than I can improve software



Thank you

  Are you sure? yes | no

Hacker404 wrote 03/27/2017 at 10:03 point

I'd love to see more details about this project. I have some similar projects as well. 

  Are you sure? yes | no

Dylan Brophy wrote 03/27/2017 at 14:31 point

Yes! I saw the #Z80 Retro Computer (With Graphics).  I think I can learn a lot from you.  You have excellent documentation and your projects seem to be made very cleanly.  Its really nice.  I havent looked much into that project in the past but looking more into it now I think I should study it!

I haven't worked on the project in a while because I need to figure some problems out and get some more extra cash. I have the money, I just want to grow it before I spend any.  Watch for a next update though - the project is not dead and I intend on completing it.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates