Ivan Farafontov
Ivan Farafontov
  • Видео 3
  • Просмотров 88 724
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 bui...
Просмотров: 67 470

Видео

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 16 дней назад

    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 RUclips, 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 RUclips narrator.

    • @ronin1303
      @ronin1303 6 месяцев назад

      @@solisted intersting content tho

  • @СергейМоскалёв-с3ь
    @СергейМоскалёв-с3ь 7 месяцев назад

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

    • @solisted
      @solisted 7 месяцев назад

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

  • @spacetrucker62
    @spacetrucker62 8 месяцев назад

    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 9 месяцев назад

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

    • @marko.p.radojcic
      @marko.p.radojcic 9 месяцев назад

      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 9 месяцев назад

      It's ready for an OS.

    • @solisted
      @solisted 9 месяцев назад

      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 9 месяцев назад

      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 9 месяцев назад

      @@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 9 месяцев назад

      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 9 месяцев назад

      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 9 месяцев назад

      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 9 месяцев назад

      No, there is no kit available

  • @GaleazzoMussolesi-ff4oq
    @GaleazzoMussolesi-ff4oq 10 месяцев назад

    So cool

    • @solisted
      @solisted 9 месяцев назад

      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 Год назад

    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 9 месяцев назад

      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 10 месяцев назад

      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 Я так понял у тебя RUclips ориентирован на англоязычный население да...

  • @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.

    • @solisted
      @solisted Год назад

      Thank you, Tyler!

  • @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 RUclips used to be like, and it was better for it. New RUclips 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 RUclips. 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 RUclips 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 RUclipsr, 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.