- Видео 3
- Просмотров 88 724
Ivan Farafontov
США
Добавлен 28 дек 2019
Electronic engineering and technology vlog for computer nerds.
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...
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...
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!
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
All I can hear is, Uhh uhh uhh, speak slow and consistent
Sorry for that, I’m not a professional RUclips narrator.
@@solisted intersting content tho
Зря забросил! Достойный контент.
Спасибо! К сожалению, обстоятельства помешали. Два года был в дороге :(
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?
You've convinced me. Now take my money :)
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.
It's ready for an OS.
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?
@@solistedThe MC34063 is an old chip that I used in many designs because it is cheap and available.
Are sources for CPLD available somewhere? or it's binary only?
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.
@@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 :)
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?
Wow. wonderful project and cute game.
Hi! Thank you!
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.
Thank you!
OMG! It doesn't look like a homebrew project but a professional high end machine from the era :O
Thank you, I tried to replicate that look and feel of 8-bit home computer era.
Is this a kit i can buy from you?
No, there is no kit available
So cool
Thank you!
is it just me, or apart from the fact that the screen looks great, the computer is incredibly fast ??
Thank you! I’m working right now on the MKII version of this computer.
That's the sweetest motherboard I have seen in a long while, super clean design!
Thank you!
Stunningly well done, sir.
Thank you!
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.
Repton Man!
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!
Thank you!
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.
wtf is bro yapping about
Do you have any circuit diagram? can you please provide us ... BTW inspiring video 💗💗
Just got back home from a long long travel and published schematics and gerbers. Link is in the video description.
Absolutely lovely. Beautiful format and layout. Thanks for sharing it with us!
Thank you!
Very neat!! I'm working on a retro project currently with a Z180 which is an odd variant of the Z80.
Thank you! Cool!
Very impressive.
Thank you!
Are there any wiring diagrams of it? Please
Published link to gerbers and schematics in the video description.
Привет
Привет
@@solisted ты гавариш по русски??? Ты из Америки????
@@fromsfromisi Да
@@solisted Я так понял у тебя RUclips ориентирован на англоязычный население да...
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.
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.
@@solisted thanks for answear, i will try to do semthing similar.
If this had a cart port for expansion and roms, it would be straight out of the 80's. Amazing job.
Thank you!
What a beauty!
Thank you!
The 2 PCBs are listed for £24, but no shipping outside the UK 😔 What is the total parts cost?
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.
What a brilliant little machine ! I'm setting up to try make a similar project, is always nice to find sutch inspiring projects
Thank you, Silvestre!
Sutch???
面白そう!色も15色使えていいね。Z80だけど10MHz出るんですね。 Looks interesting! I am interested to see what the specs are. Nice to have 15 colors to work with!
Thank you!
Very nice work.
Thank you, Tyler!
Good job! Is perfect if it able to run the CP/M system.😀
Thank you!
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." 😄
Thank you, David! You got it right :)
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.
Вань, красота!
Спасибо!
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
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.
@@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.
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?
@@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.
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.
You didn't indicate the ram and ROM dude. WTH.
What do you mean? Did not disclose RAM and ROM IC location on the board in the beginning of the video?
@@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.
@@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.
@@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.
very nice!
Thank you!
Very cool. I'd buy it. Wish it had HDMI though.
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.
@@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.
Beautifully done. Thanks!
Thank you, Lawrence!
Здравствуйте Иван. Крутая карта! А есть у вас github для неё по аналогии с вашим single board computer? Со схематикой, gerber files и cpdl прошивкой. Интересно было бы собрать её и попробовать подключить к похожим z80 retro boards. Заранее спасибо!
Добрый вечер! Спасибо! Пока не сделал, надо создать репозиторий и выложить - да все руки не доходят :( Сейчас пока занят написанием эмулятора, скоро обязательно сделаю. Схема и прошивка CPLD, на самом деле, очень простая - точь в точь как видео-подсистема из Z80-компьютера из соседнего видео только адресная шина с CPLD подключена к EEPROM и продублирована на разъеме вместо двух-портовой памяти. Посмотрите мое первое видео на канале где я говорю о CPLD переходниках для прототипирования. Купив такой, вы можете легко собрать эту карту на макетной плате.
Если у вас возникнут какие-либо вопросы по этой карте, пишите мне на email - с удовольствием помогу-подскажу.
@@solisted Большое спасибо. Удачи вам!
Unbelievable how fast it is compared to a modern computer.
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.
This is a thing of beauty. Congrats, amazing work!
Thank you, Andy!
hows name that operating system which work that processor?
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.
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.
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.
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.
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.
The Sinclair ZX Spectrum is a British computer so it really should be pronounced the British way, phonetically: ZED-EXX SPEK-TRUM. 😉
:)
Hello Ivan how are you doing?
Hi Jyotsna! Doing great! How are you?
@@solisted doing good, wanted to connect in LinkedIn but I couldn't find you, so checked online and found your channel.
Where did you get the actual keyboard from?
It's custom made keyboard - classic diode matrix circuit. I made custom PCB, soldered linear Cherry MX switches.
@@solisted Very nice! I looked back at the video and saw where you mentioned it. I must have missed that the first pass through.
Is it ps/2 keyboard? Also how did u connect the keyboard
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.
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.