Ivan Farafontov
Ivan Farafontov
  • 3
  • 88 601
DIY 8-Bit Z80 Single Board Computer
This is an awesome Z80 Single Board Computer project I finished last year. It went through a couple of revisions over a few years, this is the final one. It has Zilog Z80 10Mhz CPU, 8Kb ROM, 8Kb VRAM, 48Kb RAM (64Kb total), 2 serial ports (Zilog SIO IC), 2 Atari-compatible joystick ports (first Zilog PIO IC), AY-3 sound generator by General Instruments, built-in mechanical keyboard (second Zilog PIO IC) and Zilog CTC clock chip servicing blanking video interrupts. This is Sinclair ZX Spectrum personal computer reimagined - it's what I wanted it to be.
It has one demo game written for it - Boulder Dash clone, one application - graphics tile editor. And it has small debug monitor program built in the ROM. I plan to make BASIC interpreter for it and assembly language development environment after I finish making Window/Linux/Mac SDL-based emulator.
Project web page: solisted.net/projects/z80-single-board-computer/
Schematics, gerbers and CAD files: github.com/solisted/z80sbc
Emulator for Windows: solisted.net/projects/z80-sbc-emulator/
High quality manufactured PCBs of the mainboard and keyboard for sale: www.ebay.co.uk/itm/165783862203
It is very easy to build it yourself. No sophistication required to do it, it's completely made of through-hole components, very easy to solder at home. CPLD ICs are also very easy to program with inexpensive tools. I will make a separate video on how to work with Atmel CPLDs used in this project.
Переглядів: 67 387

Відео

Prototyping 8-bit computers
Переглядів 2,5 тис.3 роки тому
In this video, I want to share with you special kind of prototyping boards I made while experimenting with 8-bit CPUs. These boards are aimed to replace breadboard prototyping to increase density and signal integrity of a single board computer prototype. Towards the end of the video, you will see one of my computer prototypes made with these boards.
DIY graphics card with VGA output
Переглядів 19 тис.3 роки тому
This is a project I started my electronics hobby with (not counting various blinking LED's connected to a microcontroller :). After reading some article, I was very excited with the possibility of generating video signals using digital logic IC's. FPGA's were very difficult to understand and expensive for me back then, so I decided to try it with the CPLD technology. When the first prototype wa...

КОМЕНТАРІ

  • @NM-ik1gu
    @NM-ik1gu 11 днів тому

    This needs more eyeballs. Is there a basic on this? How do you save programs? I think it would help tremendously if you named the to something catchier, rather than z80 8bit diy etc. this was hard to find on UA-cam, I only found this by chance. I would love to see more programs on this. This thing is super cool!

  • @kirannevaskar7034
    @kirannevaskar7034 6 місяців тому

    Hi Ivan I bought boards from Ebay. They are quality product. Looking forward to solder the board. May I know source for AY-3-8913 chip and BOM for keyboard? Thanks

  • @ronin1303
    @ronin1303 7 місяців тому

    All I can hear is, Uhh uhh uhh, speak slow and consistent

    • @solisted
      @solisted 7 місяців тому

      Sorry for that, I’m not a professional UA-cam narrator.

    • @ronin1303
      @ronin1303 6 місяців тому

      @@solisted intersting content tho

  • @СергейМоскалёв-с3ь
    @СергейМоскалёв-с3ь 7 місяців тому

    Зря забросил! Достойный контент.

    • @solisted
      @solisted 7 місяців тому

      Спасибо! К сожалению, обстоятельства помешали. Два года был в дороге :(

  • @spacetrucker62
    @spacetrucker62 7 місяців тому

    This is very cool, I think I'm going to have to build myself one! I've downloaded the emulator - have you published any of the demo code anywhere to have a play around with?

  • @marko.p.radojcic
    @marko.p.radojcic 8 місяців тому

    You've convinced me. Now take my money :)

    • @marko.p.radojcic
      @marko.p.radojcic 8 місяців тому

      Why 7805 voltage regulator ? It does dissipate heat, there are more modern versions. They are pin compatible but have almost zero heat emission. I have one in my Spectrum.

    • @marko.p.radojcic
      @marko.p.radojcic 8 місяців тому

      It's ready for an OS.

    • @solisted
      @solisted 8 місяців тому

      Hi! I’m not very experienced in electronics design. This is my first relatively complex, serious project. Could you please suggest some parts I can use for voltage regulation instead of 7805?

    • @Bob-1802
      @Bob-1802 8 місяців тому

      @@solistedThe MC34063 is an old chip that I used in many designs because it is cheap and available.

  • @abyssal-space65
    @abyssal-space65 9 місяців тому

    Are sources for CPLD available somewhere? or it's binary only?

    • @solisted
      @solisted 8 місяців тому

      Did not decide yet if it’s a good idea to publish ROM and CPLD sources, bc it could lead to platform fragmentation. But on the other hand it’s not so difficult to write other variants of the video code and ROM for this computer, so fragmentation is inevitable if this computer becomes popular among DIY builders.

    • @abyssal-space65
      @abyssal-space65 8 місяців тому

      @@solisted I have wrote verilog for my breadboard computer FPGA, but it's altera one, yours interesting that it's running on Atmel CPLD, but at the same time requires expensive programmer cable. Without looking at code and how easy that is I'm not sure I want to invest in that cable :D My take on this, if you make your schematic/pcb and etc open source, then it makes sense to make programming of it open source too, otherwise it's closed system and not sure you can even call that platform. Atmel is interesting for me that it's 5V compatible and doesn't require a bunch of level shifting to 3v3 fpga's. Anyway, your project is really cool. If you decide to share source code for cpld I would gladly read/learn something from it :)

  • @SteveRaynerMakes
    @SteveRaynerMakes 9 місяців тому

    I would like to get into programming a CPLD. Did you use the WinCUPL software? If so would you be able to share the project files?

  • @janlavcharivmakhgalsuren6127
    @janlavcharivmakhgalsuren6127 10 місяців тому

    Wow. wonderful project and cute game.

    • @solisted
      @solisted 8 місяців тому

      Hi! Thank you!

  • @1337Shockwav3
    @1337Shockwav3 10 місяців тому

    I've had my share with moderately complex PCB routing, but the top layer looks extremely tidy. Well done :) Also interesting choice with the AY-3-8913, which makes perfect sense at it's usually exclusively used as a sound generator - yet that variant being quite unknown til a few years ago.

    • @solisted
      @solisted 8 місяців тому

      Thank you!

  • @AntonioBarba_TheKaneB
    @AntonioBarba_TheKaneB 10 місяців тому

    OMG! It doesn't look like a homebrew project but a professional high end machine from the era :O

    • @solisted
      @solisted 8 місяців тому

      Thank you, I tried to replicate that look and feel of 8-bit home computer era.

  • @charliesybert2683
    @charliesybert2683 10 місяців тому

    Is this a kit i can buy from you?

    • @solisted
      @solisted 8 місяців тому

      No, there is no kit available

  • @GaleazzoMussolesi-ff4oq
    @GaleazzoMussolesi-ff4oq 10 місяців тому

    So cool

    • @solisted
      @solisted 8 місяців тому

      Thank you!

  • @jjolleta
    @jjolleta 11 місяців тому

    is it just me, or apart from the fact that the screen looks great, the computer is incredibly fast ??

    • @solisted
      @solisted 11 місяців тому

      Thank you! I’m working right now on the MKII version of this computer.

  • @homeopathicfossil-fuels4789
    @homeopathicfossil-fuels4789 11 місяців тому

    That's the sweetest motherboard I have seen in a long while, super clean design!

    • @solisted
      @solisted 11 місяців тому

      Thank you!

  • @blurigard447
    @blurigard447 Рік тому

    Stunningly well done, sir.

    • @solisted
      @solisted 11 місяців тому

      Thank you!

  • @G7VFY
    @G7VFY Рік тому

    BASIC, FORTH and PASCAL (There were ROM versions for Nascom2 & Tuscan Triton that you could 'lift'/'borrow'. I run a Forth group on facebook that might be able to help you.

  • @MichaelLenz1
    @MichaelLenz1 Рік тому

    Repton Man!

  • @kippie80
    @kippie80 Рік тому

    Since learning arm assembly, I’m reluctant to put time to the simpler cpus these days .. I like the llvm linker for build chain and options from that! Still, nice work!

    • @solisted
      @solisted 8 місяців тому

      Thank you!

  • @meh3247
    @meh3247 Рік тому

    You have obviously redefined the word awesome to fit your "special needs". Unfortunately for you, the definition of awesome remains as it was, regardless of your personal delusions. Grow up.

    • @syndaxerror
      @syndaxerror 9 місяців тому

      wtf is bro yapping about

  • @parthasingharoy9268
    @parthasingharoy9268 Рік тому

    Do you have any circuit diagram? can you please provide us ... BTW inspiring video 💗💗

    • @solisted
      @solisted 11 місяців тому

      Just got back home from a long long travel and published schematics and gerbers. Link is in the video description.

  • @cristianstoica4544
    @cristianstoica4544 Рік тому

    Absolutely lovely. Beautiful format and layout. Thanks for sharing it with us!

  • @kenturkey1971
    @kenturkey1971 Рік тому

    Very neat!! I'm working on a retro project currently with a Z180 which is an odd variant of the Z80.

  • @NaoPb
    @NaoPb Рік тому

    Very impressive.

  • @Relaxing_Ghost
    @Relaxing_Ghost Рік тому

    Are there any wiring diagrams of it? Please

    • @solisted
      @solisted 11 місяців тому

      Published link to gerbers and schematics in the video description.

  • @fromsfromisi
    @fromsfromisi Рік тому

    Привет

    • @solisted
      @solisted Рік тому

      Привет

    • @fromsfromisi
      @fromsfromisi Рік тому

      @@solisted ты гавариш по русски??? Ты из Америки????

    • @solisted
      @solisted Рік тому

      @@fromsfromisi Да

    • @fromsfromisi
      @fromsfromisi Рік тому

      @@solisted Я так понял у тебя UA-cam ориентирован на англоязычный население да...

  • @Chini_fox
    @Chini_fox Рік тому

    How you manage to get 256x192 pixels from it? When you divide 640/256 it will give you 2.5 pixels, so you need to make 320x240 and cut pixels to get that resolution? i'm trying to make something similiar but i dont know how to get 256x192.

    • @solisted
      @solisted Рік тому

      Hi! Just added black borders to the pixel shifter to skip a few scanlines on the top, bottom and columns on the left and right of the visible area of the screen.

    • @Chini_fox
      @Chini_fox Рік тому

      @@solisted thanks for answear, i will try to do semthing similar.

  • @robertdutcher8081
    @robertdutcher8081 Рік тому

    If this had a cart port for expansion and roms, it would be straight out of the 80's. Amazing job.

  • @madson-web
    @madson-web Рік тому

    What a beauty!

  • @MattKasdorf
    @MattKasdorf Рік тому

    The 2 PCBs are listed for £24, but no shipping outside the UK 😔 What is the total parts cost?

    • @solisted
      @solisted Рік тому

      Hi! These boards made by the channel viewer. He's got extra, bc of the minimum order, so decided to sell the rest. These are very easy to manufacture using Gerbers provided on the projects github. I did not compile complete BOM yet, please check my web site for more info.

  • @MrVinicius5000
    @MrVinicius5000 Рік тому

    What a brilliant little machine ! I'm setting up to try make a similar project, is always nice to find sutch inspiring projects

  • @agencyx1turbo443
    @agencyx1turbo443 Рік тому

    面白そう!色も15色使えていいね。Z80だけど10MHz出るんですね。 Looks interesting! I am interested to see what the specs are. Nice to have 15 colors to work with!

  • @Ty_Mathieson
    @Ty_Mathieson Рік тому

    Very nice work.

  • @m00iwi00m
    @m00iwi00m 2 роки тому

    Good job! Is perfect if it able to run the CP/M system.😀

  • @davidgood840
    @davidgood840 2 роки тому

    This presentation has a coffee shop musician feel to it, but instead of saying "this next song I wrote when I was living on my best friend's couch" it's "this next program I wrote on my own computer. I hope you like it." 😄

    • @solisted
      @solisted 2 роки тому

      Thank you, David! You got it right :)

    • @cygil1
      @cygil1 8 місяців тому

      This is what UA-cam used to be like, and it was better for it. New UA-cam is a bunch of stupid editing and graphics and dumb memes and bad acting stuck in for no reason. He's talking about his computer, so he talks about his computer.

  • @theobserver9805
    @theobserver9805 2 роки тому

    Вань, красота!

    • @solisted
      @solisted 2 роки тому

      Спасибо!

  • @LOrealHardly
    @LOrealHardly 2 роки тому

    Minimum order from JCLPCB is 5 units costing (me) £60 including tax and slowest delivery, be happy to sell on the other four at no profit to myself to any others interested, if OP is Ok with that or can point me to where I might get a single unit printed for a reasonable price. I haven't costed the keyboard yet but maybe the same deal. EDIT: Approximately £90 for 5X Mainboard and 5X Keyboard unpopulated PCB's

    • @solisted
      @solisted 2 роки тому

      Martin, I did order all my PCBs from JLCPCB as well. This is the most convenient PCB vendor I know with low price. OSHPark has minimum order of 3, but they are much more expensive, and I don't like purple PCBs. If you want to sell excess boards, make a comment with some information how people can contact you. I have no problem with that and will pin your comment.

    • @LOrealHardly
      @LOrealHardly 2 роки тому

      @@solisted The boards have arrived after a very long stint on a slow boat from China. I'll work out the break-even prices and make a comment, soon.

    • @LOrealHardly
      @LOrealHardly Рік тому

      Hi Ivan, I've tried adding links to my extra boards but my comments keep disappearing, not ure if that is you or YT delting them?

    • @solisted
      @solisted Рік тому

      @@LOrealHardly Seems like it's UA-cam. I have "Block Links" option disabled in channel settings. I temporarily lowered strictness level for comments. Could you please try to make it one more time? Create top-level comment with links and all information needed. To see if it will pass UA-cam filters.

    • @solisted
      @solisted Рік тому

      Martin, I don’t know how to make comment with links pass, but we can do the following. Leave comment without links and refer to the description of the video and email me links to your boards, I will put them in the description of the video.

  • @michaelcloutier2225
    @michaelcloutier2225 2 роки тому

    You didn't indicate the ram and ROM dude. WTH.

    • @solisted
      @solisted 2 роки тому

      What do you mean? Did not disclose RAM and ROM IC location on the board in the beginning of the video?

    • @michaelcloutier2225
      @michaelcloutier2225 2 роки тому

      @@solisted Actually NO, you did not. You jumped right to the video components and only discussed the similarity of the video memory layout to a ZX Spectrum, or that was what it sounded like. That was not very clear at all. I am assuming that the 4 chips on the bottom right are the RAM ROM though you never indicated to them. You also failed to say how much RAM and ROM was included and if any bank switching was used. These are some of the important things I want to know about a project like yours.

    • @solisted
      @solisted 2 роки тому

      @@michaelcloutier2225 I’m not a professional UA-camr, not reading from script, just started making my videos. So, often my thoughts are jumping around while recording and I can forget to say something I wanted to point out. I think with time my presenting skills will be better and I will not forget to point out important things.

    • @michaelcloutier2225
      @michaelcloutier2225 2 роки тому

      @@solisted No problem I was just pointing it out. Maybe just post some text to fill in anything you missed, like bullet points of the specs.

  • @bestintentions6089
    @bestintentions6089 2 роки тому

    very nice!

  • @dazealex
    @dazealex 2 роки тому

    Very cool. I'd buy it. Wish it had HDMI though.

    • @solisted
      @solisted 2 роки тому

      Thank you! This project was aimed to be DIY-friendly that requires minimum soldering skills to assemble it at home. HDMI converter and DAC ICs are available only in SMD packages, so I decided to go with VGA output because this video signal is very easy to generate, and it does not require any additional ICs, just simple R2R resistor DAC and couple of buffers.

    • @dazealex
      @dazealex 2 роки тому

      @@solisted Gotcha. You should sell this or provide kits etc. Once you have the software side more fleshed out. I'd love to write simple games on this or run BASIC like the old times.

  • @lawrencerubanka7087
    @lawrencerubanka7087 2 роки тому

    Beautifully done. Thanks!

    • @solisted
      @solisted 2 роки тому

      Thank you, Lawrence!

  • @GregoryGilelach
    @GregoryGilelach 2 роки тому

    Здравствуйте Иван. Крутая карта! А есть у вас github для неё по аналогии с вашим single board computer? Со схематикой, gerber files и cpdl прошивкой. Интересно было бы собрать её и попробовать подключить к похожим z80 retro boards. Заранее спасибо!

    • @solisted
      @solisted 2 роки тому

      Добрый вечер! Спасибо! Пока не сделал, надо создать репозиторий и выложить - да все руки не доходят :( Сейчас пока занят написанием эмулятора, скоро обязательно сделаю. Схема и прошивка CPLD, на самом деле, очень простая - точь в точь как видео-подсистема из Z80-компьютера из соседнего видео только адресная шина с CPLD подключена к EEPROM и продублирована на разъеме вместо двух-портовой памяти. Посмотрите мое первое видео на канале где я говорю о CPLD переходниках для прототипирования. Купив такой, вы можете легко собрать эту карту на макетной плате.

    • @solisted
      @solisted 2 роки тому

      Если у вас возникнут какие-либо вопросы по этой карте, пишите мне на email - с удовольствием помогу-подскажу.

    • @GregoryGilelach
      @GregoryGilelach 2 роки тому

      @@solisted Большое спасибо. Удачи вам!

  • @apojoga
    @apojoga 2 роки тому

    Unbelievable how fast it is compared to a modern computer.

    • @solisted
      @solisted 2 роки тому

      Thank you! This is because all software is written in an assembly language and directly accessing computer hardware. Zero abstraction layers between end-user software and computer hardware makes it feel really snappy.

  • @AndyGraceMedia
    @AndyGraceMedia 2 роки тому

    This is a thing of beauty. Congrats, amazing work!

    • @solisted
      @solisted 2 роки тому

      Thank you, Andy!

  • @juliocesarm.espinola2463
    @juliocesarm.espinola2463 2 роки тому

    hows name that operating system which work that processor?

    • @solisted
      @solisted 2 роки тому

      This computer has small monitor program in its ROM that allows to perform basic operations, like dumping memory and loading binary data from serial port.

  • @greenaum
    @greenaum 2 роки тому

    Also... How is the memory layout of your screen RAM? The Spectrum used a really weird system of thirds, then arranged in a very odd way within those, where most 8-bit computers just had a flat, linear bitmap. You mention something about thirds in the video, is that what you mean? I know Sinclair claimed their design was easier to interface with a TV, and wasn't necessarily too bad to work out the location of a pixel, or 8 of them, but still I'm pretty sure it slowed things down, a bigger problem when your sprites are all in software. Hey, how about some sprites in your design? Does it have to have a separate chip for it's graphics RAM? Couldn't you just share the main memory? You just need a system of priority for when the graphics and CPU chips clash, have the graphics chip halt the Z80 if that happens. The Z80 spends a lot of cycles doing stuff other than RAM reading, you should generally have lots of time. How much slower did stuff run, in the contended 16K vs the upper 32K? Can't be too bad or else the 16K model wouldn't have been practical. Also you only need access 2 bytes per 8 pixels, or even less, if you cache the atttribute byte a line at a time, say. Would need 32 bytes and reduce RAM access from 2 bytes per 8 pixels, to 1.125 bytes, effectively. Oh, I love fantasy computer design! I really should get more into electronics when I have the space available. I can manage Arduino OK, and C on proper computers, a bit of Verilog can't be _too_ hard.

    • @solisted
      @solisted 2 роки тому

      Hi! I implemented linear memory layout for the monochrome pixel buffer. I went with asynchronous dual port memory design for the video circuit to keep it compact and simple. I did not have enough experience to quickly come up with acceptable solution for shared video memory access and did not want to spend too much time on it. CPLD I used in the video circuit has just 128 macrocells and not suited for complex video cicruit implementations with tiles and sprites. Simple pixel shifter is easy to implement and fit, but more complex stuff would require much-much more logic gates and flip-flops than CPLDs of this class have.

  • @greenaum
    @greenaum 2 роки тому

    Rather than the serial port, I'd add an SD card, it would be so convenient, and with a good enough keyboard and display, you'd be able to develop directly on the Z80, the fun way! I bet your design isn't far from what Sinclair used, except you seem to have added useful colours, rather than just RGB + Bright, which gave a lot of useless duplicated colours, nobody really NEEDS two cyans, when instead things like pink or brown were missing. Then better greys, perhaps including a bright black. Of course the Spectrum couldn't do separate brightness for foreground and background colour, it was set per cell. Leaving 1 bit left for the equally useless Flash! Using the Bright and Flash bits to give 16 foreground and background colours would have been infinitely more useful in a machine that was already limited. If Clive had given more thought to it's obvious use for games, he might have thought about making things just a bit more friendly and useful. I'm sure he only put in colour begrudgingly. A modern CPLD and an '80s ULA probably have about the same number of gates to make your circuit from.

    • @solisted
      @solisted 2 роки тому

      Serial port is a universal interface. It does not have to be used just for computer-computer transfers. External storage device can be built with any storage medium, communicating with computer via serial port, for example. And monitor ROM can be extended to support reading sectors from such device via serial port using some simple communication protocol. That's how expansion worked on Atari 8-bit computers - floppy drives, printers, modems were all connected to a daisy chained serial port.

  • @SpeccyMan
    @SpeccyMan 2 роки тому

    The Sinclair ZX Spectrum is a British computer so it really should be pronounced the British way, phonetically: ZED-EXX SPEK-TRUM. 😉

  • @jyotsnach9544
    @jyotsnach9544 2 роки тому

    Hello Ivan how are you doing?

    • @solisted
      @solisted 2 роки тому

      Hi Jyotsna! Doing great! How are you?

    • @jyotsnach9544
      @jyotsnach9544 2 роки тому

      @@solisted doing good, wanted to connect in LinkedIn but I couldn't find you, so checked online and found your channel.

  • @savagecircuits
    @savagecircuits 2 роки тому

    Where did you get the actual keyboard from?

    • @solisted
      @solisted 2 роки тому

      It's custom made keyboard - classic diode matrix circuit. I made custom PCB, soldered linear Cherry MX switches.

    • @savagecircuits
      @savagecircuits 2 роки тому

      @@solisted Very nice! I looked back at the video and saw where you mentioned it. I must have missed that the first pass through.

    • @johnwilliams7999
      @johnwilliams7999 Рік тому

      Is it ps/2 keyboard? Also how did u connect the keyboard

    • @solisted
      @solisted Рік тому

      No, it does not use any particular protocol. Keyboard is implemented as a simple 8x8 matrix with diodes directly connected to 8 outputs and 8 inputs of the peripheral IC (Z80 PIO). Key matrix scanning and translation to scan codes is implemented in software.

    • @solisted
      @solisted Рік тому

      Initial prototype had PS/2 keyboard input and AVR microcontroller that translated PS/2 data stream into serial. Then serial data was fed into the Z80 SIO peripheral IC. After some game programming, I noticed that protocol and translation introduces noticeable key stroke latency that ruins game experience and redid keyboard implementation like described in the previous reply.