I'm sitting here yelling "no, use a 7414 instead of a 7404" and then I remember Ben's teaching style. Then I sit back and watch for the object lesson. OMG, I wish I had a teacher like Ben many years ago. These videos stand out as some of the finest teaching I've ever seen.
@@BichaelStevens He explains starting around 17:37. I think his tactic of starting with the 7404, then "discovering" the need to switch to a 7414 is a great teaching technique.
I think a lot of the "well maybe we can do this.. wa... wa... wait we can just do this, can't we?" gets glossed over a lot of the time. Like no, you're right, but just sit with it a minute..
If I had the time and money, I'd see how well I could get TI Doom running on it. Using the GPU pack, performance shouldn't be that bad if you're only updating parts of the screen at a time
I appreciate you taking the time to go over turning the per-bit clock into a per-key-code clock a step at a time. Thanks for leaving in the mistakes and glitches, and then showing how you solve them. Those are the practical skills that theory-based instruction rarely covers well.
@@syralessthanthree I think hooking power and ground up backwards was a genuine mistake, the other bits were definitely intentional mistakes for the purpose of education, though.
When he was wondering about how to clean the inverted signal I thought to myself he needs to use a Schmitt trigger and then he pulls out the data sheet for a Schmitt trigger inverter. I feel so smart!
As barebones as this is, it really just boggles my mind that there is still a lot of heavy lifting being done by the Hitachi microcontroller inside of the character LCD display. I would love to see a future video where he talks about what's going on inside of that microcontroller to display ASCII characters on the liquid crystal display and process and send out data like busy flags and whatnot. Like, we don't need to know all that stuff now. Because that's not really in the scope of this lesson, but I would love to see it explored later.
@@chri-k re building a 6502: see the MOnSter 6502 project. For a computer that doesn't use a microcontroller, there's one called Giga or something like that.
Yes. This shows 2 things: 1, how great the internet is as a learning resource and 2, how inefficient and honestly badly designed school is. I get easily aggravated by the lack of new info I’m learning at school and how it COULD be better.
@@saltysoyman6908 it also helps that you can pause and replay parts of the lesson you didn't quite grasp in the beginning. It's amazingly helpful to have the ability to re-watch lessons with the benefit of context that you picked up in later lessons.
The problem with these lessons is, is that it takes way more time from the teacher to prepare these lessons. Most teachers would not like to take this time. Dont get me wrong, this is more of a complaint of how bad schools do it, trust me I know (just finished all my theory a month ago, only internships to do)
@@sdspivey I suppose that would look like a square wave with a triangle wave sitting on top where it’d normally be flat. Hmm, wonder how that sounds. It wouldn’t be quite the same as just adding a triangle and square wave simply added together, one component waits for the other
@@kaitlyn__L One peak could be just a slope up then down, the next would be the lower part of the pentagon. (A triangle, followed by an inverted "mesa")
I'm always sad when I get to the end of a Ben Eater video because I know it's going to be weeks or months until the next one and I enjoy them so much. Thanks Ben!
this man has become my favorite UA-camr. when he needed to figure out how to distinguish between different sets of 11 bits, my first thought was exactly what he did here. You really are a better teacher than probably most college professors.
Mounts it in a pc case. Lemme just plug in my keyboard… proceeds to pull out 4 wires and place them in specific holes in the breadboard mother board. Done!
He had already made that breakout cable in the previous video. Anyway, just like how his wires are always already the perfect length, it would just waste a lot of time if he showed stripping the wires and crimping the pins to the ends of each wire. Ben is really good at spending time on the things that are useful for learning, and not wasting it on things you can easily figure out for yourself.
For the first time I anticipated an issue! I was guessing that the interrupt would count more than 3 with the 74HC04. I had no clue how to fix it though, and never heard of a schimitt trigger. So I've been learning so much from this video series that I knew there could be an issue and knew what needed to be fixed, but I'm glad that your still showing new techniques to solve problems. Thanks for all the amazing content!
Good to know, I still remember this digital electronics stuff... As he is building the interrupt trigger, with the resistors, cap, and diode; I said to myself, "Wait, you can't do that with *just* an inverter, you need a _Schmitt trigger_ , to catch the indeterminate _hysteretic_ logic levels!" My linear and digital teachers would be proud! I guess I was listening during those lectures 28 years ago! Ben Eater does an excellent job, teaching this stuff!
20:00 I "studied" this kind of things at school but already forget about it, but you explained that so well I finnaly understand what that symbol stands for!
There's this one thing I really like about your videos, and it's the honesty behind them... most people on youtube try hard to look like they don't make mistakes... you on the other hand, show your mistakes and solve them, teaching the importance of problem solving while doing a project of this kind... without that kind of mindset, this kind of work would fail for sure, but with what you teach, you make sure one can be ready to take on a project like this. Congrats! never regretted subscribing to your channel, best content out there hands out!
I think that some of the blind alleys he runs down, such as the Schmidt trigger problem are recreations of what he ran into while developing the project.
This channel is perfect. I love everything on here because it's so well explained and put together in a way that keeps you interested and teaches things you never thought you could learn.
OMG !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Where were you for my high school electronics class!!!!! You are the benchmark in human teaching. I have never been more curious about electronics till I found you. I love your low profile attitude. If you were my teacher I would have become something. Most you -tubers like to show their faces and fail to communicate clearly...I feel like Im' in wonderland finally. All my questions are being answered. My questions I was afraid to ask are answered. You have the books in your bookshelf that you actually understand. Thank you feeding us this valuable knowledge.
Technically, since it's actually some gate logic inside the chip that simplifies into "invert" they all have some amount of resistance, capacitance, inductance, etc, and so it fills up a little, tries to turn on, can't sustain it for long, then turns off. Hence why we see it jitter 100 times before it's done, because it doesn't have enough energy to keep whatever gate open inside the logic. Edit: I forgot to get to the whole point of this comment, since the characteristics of the gate are known, it should be possible to do the calculus to determine the oscillation rate and measure the values. Yes, it's almost random though.
What about using quantum mechanics? You can technically plug anything into a computer, including a quantum random number generator. plus quantum computers are computers.
@@chri-k we don't know wether it's actually random. It's just that we can't measure quantum mechanics well enough to pinpoint an electrons position down. I think there is no real randomness, but because i don't know that for sure and neither does anyone else, it's a waste of time to debate it.
@@MrCool-lo3ls "real randomness" is a surprisingly hard concept to nail down actually: take the Everett interpretation, aka "Many Worlds". Is the position of an electron random if every possibility happens, we just don't know which we are going to see (because, roughly, we are in all the worlds with different outcomes and see all the results)? What about for a theoretical, perfect, die, if I roll 4, and I don't tell you that it's 4, is the number not random for me but random for you? Surely if I just say it's 4 again instead of rolling again then it's not random any more, but it seems weird to say randomness is about what you know, rather than some event. But that does seem to be the best way to explain it. But then, what's up with quantum uncertainty? Is this the universe not knowing something? Or is it a different thing than everyday "dice" randomness?
For those of you wondering: This is almost exactly the way modern x86-PCs handle PS/2 and internal (on a laptop) keyboards: After every byte there is an interrupt sent to the cpu (usually hardware-interrupt 2) from the keyboard controller (i8042). The cpu then reads the given byte (using the in-instruction on port 0x60) from the PS/2 device. The only difference is that the keyboard controller already checks the parity, buffers up to 16 bytes and adds some additional logic (e.g. translation from "modern" set-2/3 PS/2 codes to AT codes for very, very old software).
As soon as I have a job again, I'm going to squirrel away some for you. This is what I wished college training was like! P.s. been slowly doing your computer build but in minecraft, been fun figuring this all out!.
One important thing you showed here was also the importance of hardware acceleration - sure you could have just fed the bits into the interrupt handler, but instead you built a hardware keyboard accelerator add-on and installed it, then wrote a driver for it. Much simpler code, works more elegantly, and way faster as far as CPU power is concerned. Very nice video, thank you!
Thank you Ben. This is how real school should work ! In my 2 decade long experience in the field of electronics i've noticed that it is not the core problem that teaches us , but all those small things behind the curtains along the way. The path to solution is covered with small, invisible problems that you cannot stumble upon until you really dive into a practical realisation ! Example: You try to make lightbulb light up. Simple? Right? You connect battery to switch, then to lightbulb and back to other terminal of battery. And then - how do i create stable mechanical contact? What jacks should i use? What current flows in circuit? Wire gauge? Should i solder where is big amount of heat? .... So many questions arise just by doing the stuff. Nothing is simple, and everything we DO teaches us. My point - theory we mostly learn / teach in school should be tightly "coupled" with parallel practical problem solving ! First basic theory, then application of it , then solving small problems along the way , and then explaining and theory for every one of them... That is real "full" knowledge my friend. Best regards.
When Ben fed that analog signal into the inverter, I said to myself, "That's going to be a problem. I wonder how Ben's going to fix it. I'd use a Schmidt trigger". Thanks for keeping my logic skills sharp.
I'm wondering how you managed to connect the 8 data bits to PORTA, when previously 3 of those bits were occupied sending control signals to the LCD display (register select, read/write, and chip enable). How are the LCD subroutines still working now that it appears you disconnected those three lines to make room for the input data? This was never addressed in a video; the previous video featuring the 6502 had these three lines connected, and they are mysteriously missing at the start of this video. I saw this problem coming (only 5 bits of ports remaining on that chip) and was looking forward to hearing about how you worked around it. Edit: Aha! Figured it out - the LCD module has two data modes (8 bit and 4 bit, explained in part 4 of your 6502 playlist), and from glimpses of the code it looks like you switched the hardware and software to 4 bit mode off camera to make some more room - allowing you to move these 3 flags to PORTB.
Thanks for this. I was puzzled about why the E, R/W, and RS pins on the LCD were no longer connected too. I'm in the process of designing a PCB of this circuit and this kind of change would be a headache to troubleshoot.
Luckily, the keyboard has protection circuitry that keeps it from burning out chips when they're powered up backwards. I once burned up all twenty or so chips on a breadboard this way.
I love how whenever Ben runs into something unexpected, he figures out the issue in a really seamless manner, doesn't stumble in his explanations, just keeps recording. I also loved his explanation of how a Schmitt Trigger works.
That's not how he, or any good teacher works. He tests it all thoroughly in advance, writes a script and does a lot of editing. The fact that you don't notice just shows how well he does it.
Each time Ben uploads I have to go back and watch a couple hours of video to remind myself what's going on and how things work, and I'm okay with that.
I found once a pdf about reset circuits. There was a big word of caution regarding use of RC circuits. I believe pdf was from one of component manufacturers. Very important for serious electronics enthusiast. I really recommend.
In the tricky parts I find myself leaning towards the screen, as if that will help me understand it better. And this is all way outside anything I'll ever need to know! As always, well done!
Now we just need a programmable interrupt controller, so we can turn off and on interrupts and add other things that would generate an interrupt to the mix :D
all of the "things that go wrong" and the process to fix them are my favorite parts of these videos. they would be so much less useful if you just built it perfectly from the get-go
When trying to run a computer fast enough to handle NT, wire lengths have to be very precisely measured because the speed of light is a significant factor. Just the reflections from the contacts would make such a thing impossible.
He would probably run Linux because Microsoft wouldn't be interested in compiling Windows for a rare DIY architecture and Windows is closed source so he can't compile it himself.
This series is right on time for me. I'm about to build an SYM-1 from a new old stock (43 years old!) unused motherboard in the next few months (It's a variant, but it's from Synertek; I believe it's the SM-100 OEM line motherboard). It's 6502 based. I want to build the original KTM2 and/or KTM3 modules for it at some point, but they are much more complicated and pricey to make. I'm looking at possibly modding the KTM design with my own more modern KB interface so I don't have to build my own keyboard, and/or making a simpler KB interface direct to the machine.
Ben's projects bring me back 35yrs to when I first started in engineering. Love how the simple, RC/Schmitt-trigger solution fits with the spirit of the projects. Have a slight suggestion for a more "professional" solution. Use a 74LS393 dual counter to make a 7-bit counter clocked off the 1Mhz. Tie the inverted keyboard clock to the CLEAR line. The counter will be reset every 43us by the keyboard clock, and held in reset for 43us. Use the 6th bit of the counter to make a 32us pulse, beginning 64us after the last keyboard clock for the interrupt pulse. Then use the 7th bit (inverted) with an AND gate on the 1Mhz clock to stop the counter, until reset by the next keyboard clock. Again NOTHING against Ben's solution, just offering a different perspective, in the same vein of "teaching". peace out!
This is not more professional. To be clear, the objective of engineering is to get the desired task done reliably, with the minimum cost required. If you were designing this within a custom chip, where you don't have the option of producing delays by using resistors and capacitors, and where you would likely have a clock input, this might be a valid approach, but for a low cost solution, it is overkill. And sure, there are always alternative ways to do things that present different tradeoffs, but calling your approach "more professional" is a bit insulting, I think.
I’m sorry it honestly was not my intention to be insulting. And I guess you’re correct professional may have been a poor choice of words. Just thought others would be interested in a digital alternate.
You should provide a course for beginners. How to use a breadboard, basic electronics, etc type of thing to go along with these more advanced sessions.
Thank you for this, Ben. I'm in the process of figuring out how to connect the keyboard of an Amstrad PPC-512 to a more modern PC in the case. While the built-in keyboard isn't PS/2, this (and the prior video) sort of approach should help me out a great deal.
Soon he’s going to hook up the video card and make a text editor with it
Heck yeah
he is going to write the code and compile it to run, all in the 6502 computer
@@RobsonLanaNarvy and then he'll show us how to bank so he can get enough memory to hold the IDE
Next video: "vi on the 6502"
Operating system on 6502
I'm sitting here yelling "no, use a 7414 instead of a 7404" and then I remember Ben's teaching style. Then I sit back and watch for the object lesson. OMG, I wish I had a teacher like Ben many years ago. These videos stand out as some of the finest teaching I've ever seen.
whats the difference?
@@BichaelStevens He explains starting around 17:37. I think his tactic of starting with the 7404, then "discovering" the need to switch to a 7414 is a great teaching technique.
@@PixelSchnitzel yeah this video was amazing. Am studying electronics and it still stands out as one of the most intuitive tutorials I've seen
I was about o comment "SCHMITT TRIGGER" ;-)
I think a lot of the "well maybe we can do this.. wa... wa... wait we can just do this, can't we?" gets glossed over a lot of the time. Like no, you're right, but just sit with it a minute..
Eventually, it will run some simplistic version of Doom and then we will have come full circle lol
Nah, I would go old-school and program Zork!
Give him enough time and he will be playing his own UA-cam videos on a few breadboards. Now that will be full circle :)
A few more LEDs should be enough for a rudimentary screen. Nearly there!
@Izaltino D. Souza dude is probably already working on it
If I had the time and money, I'd see how well I could get TI Doom running on it. Using the GPU pack, performance shouldn't be that bad if you're only updating parts of the screen at a time
Ben Eater has nearly singlehandedly shown me how cool it would be to become an electrical engineer!
Same! I just love Ben's vibes
What about great Scott?
@@existential_fred He‘s great too
@@KubikDezimeter lol I see what you did there
@@existential_fred Ben's prototypes are neater and seem to be a little safer. 😀
I have never been so happy to see number 3 in my entire life
Gabe the founder of valve has installed PTSD for-all gamers.with not making half life 3 10 years ago..
I appreciate you taking the time to go over turning the per-bit clock into a per-key-code clock a step at a time. Thanks for leaving in the mistakes and glitches, and then showing how you solve them. Those are the practical skills that theory-based instruction rarely covers well.
I think the "mistakes" are there on purpose to also show how to debug and fix things
either way I aggree I appritiate it too
@@syralessthanthree I think hooking power and ground up backwards was a genuine mistake, the other bits were definitely intentional mistakes for the purpose of education, though.
I'm a student. This channel is a gold mine for me. Thank you for your effort greetings from Turkey.
Me too im from Germany, powerful knowledge is universal
When he was wondering about how to clean the inverted signal I thought to myself he needs to use a Schmitt trigger and then he pulls out the data sheet for a Schmitt trigger inverter. I feel so smart!
Same!! Initially I wasn't confident but I was pleasantly surprised. Unfortunately, my job isn't in this domain so my brain's a little rusty.
For some reason I thought it was called a Schottky trigger. I still felt smart, though.
My monke brain was like “low pass filter” until I saw bens solution which is so much more elegant lmao been doing too much signals and systems lately
As barebones as this is, it really just boggles my mind that there is still a lot of heavy lifting being done by the Hitachi microcontroller inside of the character LCD display.
I would love to see a future video where he talks about what's going on inside of that microcontroller to display ASCII characters on the liquid crystal display and process and send out data like busy flags and whatnot.
Like, we don't need to know all that stuff now. Because that's not really in the scope of this lesson, but I would love to see it explored later.
2022: building an lcd screen microcontroller on bradboards
2030: building a 6502 on 1 thousand breadboards
2077: building a universe on breadboards
Also the signals from the keyboard are really convenient. I would like it if he explained how the keyboard prepares the signals
In the Apple 1, they used a terminal chip for a similar purpose.
@@chri-k re building a 6502: see the MOnSter 6502 project. For a computer that doesn't use a microcontroller, there's one called Giga or something like that.
@@JohnDlugosz the gigatron
I learn more about all of this with him than in school.
Yes. This shows 2 things: 1, how great the internet is as a learning resource and 2, how inefficient and honestly badly designed school is. I get easily aggravated by the lack of new info I’m learning at school and how it COULD be better.
@@saltysoyman6908 it also helps that you can pause and replay parts of the lesson you didn't quite grasp in the beginning. It's amazingly helpful to have the ability to re-watch lessons with the benefit of context that you picked up in later lessons.
I feel this. I pointed my fellow classmates to Ben's SR latch videos cause our prof is just awful at teaching
The problem with these lessons is, is that it takes way more time from the teacher to prepare these lessons. Most teachers would not like to take this time. Dont get me wrong, this is more of a complaint of how bad schools do it, trust me I know (just finished all my theory a month ago, only internships to do)
schools should be illegal
On this episode, Ben teaches us how to make triangle and saw-toowth wave signals.
But I want to see pentagonal waves.
@@sdspivey I suppose that would look like a square wave with a triangle wave sitting on top where it’d normally be flat.
Hmm, wonder how that sounds. It wouldn’t be quite the same as just adding a triangle and square wave simply added together, one component waits for the other
@@kaitlyn__L One peak could be just a slope up then down, the next would be the lower part of the pentagon. (A triangle, followed by an inverted "mesa")
At the point we saw the different wave forms on the oscilloscope I thought he is gonna hook up a speaker 😅
What could make a Saturday morning better than a new video from Ben?
Two Ben videos? 🤔😀
Ben & Curious Marc videos!!
I'm always sad when I get to the end of a Ben Eater video because I know it's going to be weeks or months until the next one and I enjoy them so much. Thanks Ben!
this man has become my favorite UA-camr. when he needed to figure out how to distinguish between different sets of 11 bits, my first thought was exactly what he did here. You really are a better teacher than probably most college professors.
Mounts it in a pc case.
Lemme just plug in my keyboard… proceeds to pull out 4 wires and place them in specific holes in the breadboard mother board.
Done!
He had already made that breakout cable in the previous video. Anyway, just like how his wires are always already the perfect length, it would just waste a lot of time if he showed stripping the wires and crimping the pins to the ends of each wire. Ben is really good at spending time on the things that are useful for learning, and not wasting it on things you can easily figure out for yourself.
As a software engineer it is very fascinating to see how the hardware works under the hood.
It basically works the same, but different! I love it. Just like switching electrical systems.
It runs on some form of electricity
@@samibinol surprised_pikachu.jpg
i think the best thing is that everything runs at the same time
if you are interrested in "programming" hardware check out FPGAs
Nice profile picture.
For the first time I anticipated an issue! I was guessing that the interrupt would count more than 3 with the 74HC04. I had no clue how to fix it though, and never heard of a schimitt trigger. So I've been learning so much from this video series that I knew there could be an issue and knew what needed to be fixed, but I'm glad that your still showing new techniques to solve problems. Thanks for all the amazing content!
Oh yeah just swap out a 7404 with a 7414 and your set!
Getting flashbacks to my analog electronics class at university when I heard "Schmitt Trigger". Thanks for the psychological trauma Ben :D
I have learned and forgotten what a schmitt trigger is probably about five times now. I'm hoping this one sticks!
Ben really should have put up a Schmitt Trigger Warning at the top of the video.
@@YagoTheFrood I don’t know whether to clap or groan
I think this might be my new favorite video of yours. The way you blended analog, digital, and software together for a keyboard is a work of art.
Can't wait to build my breadboard projects. This channel always excites me. Thanks for discussing problems that we might run into.
Good to know, I still remember this digital electronics stuff... As he is building the interrupt trigger, with the resistors, cap, and diode; I said to myself, "Wait, you can't do that with *just* an inverter, you need a _Schmitt trigger_ , to catch the indeterminate _hysteretic_ logic levels!"
My linear and digital teachers would be proud! I guess I was listening during those lectures 28 years ago!
Ben Eater does an excellent job, teaching this stuff!
20:00 I "studied" this kind of things at school but already forget about it, but you explained that so well I finnaly understand what that symbol stands for!
Ben Eater, demystifying electronics since Oct 15, 2011 Thank you SIR!
The work you put into this video series.. incredible. Stay awesome!
This whole series is amazing. Such a calm, in depth, to the point explanation Very enjoyable
There's this one thing I really like about your videos, and it's the honesty behind them... most people on youtube try hard to look like they don't make mistakes... you on the other hand, show your mistakes and solve them, teaching the importance of problem solving while doing a project of this kind... without that kind of mindset, this kind of work would fail for sure, but with what you teach, you make sure one can be ready to take on a project like this. Congrats! never regretted subscribing to your channel, best content out there hands out!
Just to clarify, I'm referring to the keyboard 5v-GND mishap... =P
I think that some of the blind alleys he runs down, such as the Schmidt trigger problem are recreations of what he ran into while developing the project.
This is turning in to a computer version of Bad Obsession Motorsport, lol.
Just need a sound card for the funk!
Coming up next: covox, FM and noise noise synthesis
Fortunately for us Ben is moving along at a much faster clip!
Just imagine building a computer using an angle grinder
@@BrightBlueJim And many, many, brackets...
This channel is perfect. I love everything on here because it's so well explained and put together in a way that keeps you interested and teaches things you never thought you could learn.
OMG !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Where were you for my high school electronics class!!!!!
You are the benchmark in human teaching. I have never been more curious about electronics till I found you. I love your low profile attitude. If you were my teacher I would have become something.
Most you -tubers like to show their faces and fail to communicate clearly...I feel like Im' in wonderland finally. All my questions are being answered. My questions I was afraid to ask are answered. You have the books in your bookshelf that you actually understand. Thank you feeding us this valuable knowledge.
Everyone: They is no way to create a truly random value with a computer.
Ben Eater: Hold my inverter
Technically, since it's actually some gate logic inside the chip that simplifies into "invert" they all have some amount of resistance, capacitance, inductance, etc, and so it fills up a little, tries to turn on, can't sustain it for long, then turns off.
Hence why we see it jitter 100 times before it's done, because it doesn't have enough energy to keep whatever gate open inside the logic.
Edit: I forgot to get to the whole point of this comment, since the characteristics of the gate are known, it should be possible to do the calculus to determine the oscillation rate and measure the values. Yes, it's almost random though.
What about using quantum mechanics? You can technically plug anything into a computer, including a quantum random number generator.
plus quantum computers are computers.
@@chri-k we don't know wether it's actually random. It's just that we can't measure quantum mechanics well enough to pinpoint an electrons position down.
I think there is no real randomness, but because i don't know that for sure and neither does anyone else, it's a waste of time to debate it.
@Michael Bishop i didn't look that deep into it and i have to admit, i was wrong and misunderstood some quantum physics
@@MrCool-lo3ls "real randomness" is a surprisingly hard concept to nail down actually: take the Everett interpretation, aka "Many Worlds". Is the position of an electron random if every possibility happens, we just don't know which we are going to see (because, roughly, we are in all the worlds with different outcomes and see all the results)?
What about for a theoretical, perfect, die, if I roll 4, and I don't tell you that it's 4, is the number not random for me but random for you? Surely if I just say it's 4 again instead of rolling again then it's not random any more, but it seems weird to say randomness is about what you know, rather than some event.
But that does seem to be the best way to explain it. But then, what's up with quantum uncertainty? Is this the universe not knowing something? Or is it a different thing than everyday "dice" randomness?
For those of you wondering: This is almost exactly the way modern x86-PCs handle PS/2 and internal (on a laptop) keyboards: After every byte there is an interrupt sent to the cpu (usually hardware-interrupt 2) from the keyboard controller (i8042). The cpu then reads the given byte (using the in-instruction on port 0x60) from the PS/2 device. The only difference is that the keyboard controller already checks the parity, buffers up to 16 bytes and adds some additional logic (e.g. translation from "modern" set-2/3 PS/2 codes to AT codes for very, very old software).
Love your Hewlett-Packard calculator at 27:10! What a cool calculator. We had one growing up and I hadn’t seen one since then
That's a pretty sweet update. Look forward to working on this project in the summer.
Thanks!
These videos are absolutely fantastic -- thank you very much :) Very intuitive when you see the signal on the scope and tweak it to do what you need.
As soon as I have a job again, I'm going to squirrel away some for you.
This is what I wished college training was like!
P.s. been slowly doing your computer build but in minecraft, been fun figuring this all out!.
Well, I just love watching you wire up the breadboards! thanks
You explain superbly!
I've been waiting for this.
Super video! I applauded for CA$2.00 👏
Super video! I applauded for $10.00 👏👏👏
No matter how complex the systems become. The excitement of knowing the basics will never get away.
Thanks for all your videos!
Just discovered your channel today, it is awesome!
One important thing you showed here was also the importance of hardware acceleration - sure you could have just fed the bits into the interrupt handler, but instead you built a hardware keyboard accelerator add-on and installed it, then wrote a driver for it. Much simpler code, works more elegantly, and way faster as far as CPU power is concerned. Very nice video, thank you!
I am both delighted and unsurprised that you are a Vim user.
Excellent video!
Super video! I applauded for NZ$5.00 👏👏
It's safe to say, you are a real asset to humanity!
Thank you.
No sadder time than the end of a new Ben Eater video
Tru
Nice videos! I love to watch them!
Thank you Ben. This is how real school should work ! In my 2 decade long experience in the field of electronics i've noticed that it is not the core problem that teaches us , but all those small things behind the curtains along the way. The path to solution is covered with small, invisible problems that you cannot stumble upon until you really dive into a practical realisation ! Example: You try to make lightbulb light up. Simple? Right? You connect battery to switch, then to lightbulb and back to other terminal of battery. And then - how do i create stable mechanical contact? What jacks should i use? What current flows in circuit? Wire gauge? Should i solder where is big amount of heat? .... So many questions arise just by doing the stuff. Nothing is simple, and everything we DO teaches us. My point - theory we mostly learn / teach in school should be tightly "coupled" with parallel practical problem solving ! First basic theory, then application of it , then solving small problems along the way , and then explaining and theory for every one of them... That is real "full" knowledge my friend.
Best regards.
I'm glad that powering up that nice keyboard in reverse didn't kill it.
No computer scientist should be separated more than a couple of feet from their trusty HP-16C :)
The effort you put into explaining is greatly appreciated.
i have learned so much on this channel and im super thankful
Excellent video as always Mr Eater. You are a gift to youtube
1:39 GND/+5V switched around!
2:38 thank you :-)
When Ben fed that analog signal into the inverter, I said to myself, "That's going to be a problem. I wonder how Ben's going to fix it. I'd use a Schmidt trigger". Thanks for keeping my logic skills sharp.
The HP 16C is my day to day calculator as well! It's about 35 years old and still works great.
vi and a vintage hp calculator - oldies, but goldies.
After watching this I will never take my keyboards for granted ever again!
Thank you for creating this informative video. 😊🙏🙏🍰
I'm wondering how you managed to connect the 8 data bits to PORTA, when previously 3 of those bits were occupied sending control signals to the LCD display (register select, read/write, and chip enable). How are the LCD subroutines still working now that it appears you disconnected those three lines to make room for the input data?
This was never addressed in a video; the previous video featuring the 6502 had these three lines connected, and they are mysteriously missing at the start of this video.
I saw this problem coming (only 5 bits of ports remaining on that chip) and was looking forward to hearing about how you worked around it.
Edit: Aha! Figured it out - the LCD module has two data modes (8 bit and 4 bit, explained in part 4 of your 6502 playlist), and from glimpses of the code it looks like you switched the hardware and software to 4 bit mode off camera to make some more room - allowing you to move these 3 flags to PORTB.
Thanks for this. I was puzzled about why the E, R/W, and RS pins on the LCD were no longer connected too. I'm in the process of designing a PCB of this circuit and this kind of change would be a headache to troubleshoot.
Ben is on track to teach the world how to build a Commander x16 before they actually release one! Love both projects. But love this detail!
Finally. A decent implementation of the ps/2 interface hardware for 8-bit computer. Thanks for video
Omg I finally understand what a peak rectifier is. Thanks Ben!
Great video Ben! I am just now debugging a Via VT82c42 problem and this was great timing. Keep up the good work.
Thank you Ben for all your videos
Super video! I applauded for R$5.00 👏👏
"And if we press a key on the keyboard, ... nothing happens." Ouch. That nasty color scheme! 🤣
Luckily, the keyboard has protection circuitry that keeps it from burning out chips when they're powered up backwards. I once burned up all twenty or so chips on a breadboard this way.
In the previous video, I remember thinking, "oh great, black for positive five volts, ground is orange. What could possibly go wrong?"
I love how whenever Ben runs into something unexpected, he figures out the issue in a really seamless manner, doesn't stumble in his explanations, just keeps recording.
I also loved his explanation of how a Schmitt Trigger works.
That's not how he, or any good teacher works. He tests it all thoroughly in advance, writes a script and does a lot of editing. The fact that you don't notice just shows how well he does it.
Thank you for explaining everything. I learned an enormous amount of chip tech from your videos.
You're one of the amazing guy who teach how actually working inside the computer❤
Each time Ben uploads I have to go back and watch a couple hours of video to remind myself what's going on and how things work, and I'm okay with that.
Seriously dude, thank you for existing.
Love Ben’s way of explaining Schmitt Trigger 👍
I really appreciate the way you explain things. I'm also very envious of your 'scope.
Thank u man u are an engineering genius...pls keep the videos on youtube...don't remove them🙏🙏👍
Really love this channel
I found once a pdf about reset circuits. There was a big word of caution regarding use of RC circuits. I believe pdf was from one of component manufacturers. Very important for serious electronics enthusiast. I really recommend.
In the tricky parts I find myself leaning towards the screen, as if that will help me understand it better. And this is all way outside anything I'll ever need to know! As always, well done!
Now we just need a programmable interrupt controller, so we can turn off and on interrupts and add other things that would generate an interrupt to the mix :D
all of the "things that go wrong" and the process to fix them are my favorite parts of these videos. they would be so much less useful if you just built it perfectly from the get-go
Ben in 15 years: Running windows 10 on a breadboard PC
On an old Intel cpu
@@MrCool-lo3ls running dos on a z80 or 8088
When trying to run a computer fast enough to handle NT, wire lengths have to be very precisely measured because the speed of light is a significant factor. Just the reflections from the contacts would make such a thing impossible.
He would probably run Linux because Microsoft wouldn't be interested in compiling Windows for a rare DIY architecture and Windows is closed source so he can't compile it himself.
Thanks for your videos, they are incredibly interesting and inspiring!
Excellent timing with the need to use Schmitt triggers, since I am teaching this right now :)
These are excellent real world tutorials, thanks Ben
This is the perfect intro to RC circuits ... I wish they explained it this way in university .. I think many students would pick it up far faster.
This series is right on time for me. I'm about to build an SYM-1 from a new old stock (43 years old!) unused motherboard in the next few months (It's a variant, but it's from Synertek; I believe it's the SM-100 OEM line motherboard). It's 6502 based. I want to build the original KTM2 and/or KTM3 modules for it at some point, but they are much more complicated and pricey to make. I'm looking at possibly modding the KTM design with my own more modern KB interface so I don't have to build my own keyboard, and/or making a simpler KB interface direct to the machine.
Finally i understand RC timers! Thanks.
Ben's projects bring me back 35yrs to when I first started in engineering. Love how the simple, RC/Schmitt-trigger solution fits with the spirit of the projects. Have a slight suggestion for a more "professional" solution.
Use a 74LS393 dual counter to make a 7-bit counter clocked off the 1Mhz. Tie the inverted keyboard clock to the CLEAR line. The counter will be reset every 43us by the keyboard clock, and held in reset for 43us. Use the 6th bit of the counter to make a 32us pulse, beginning 64us after the last keyboard clock for the interrupt pulse. Then use the 7th bit (inverted) with an AND gate on the 1Mhz clock to stop the counter, until reset by the next keyboard clock.
Again NOTHING against Ben's solution, just offering a different perspective, in the same vein of "teaching". peace out!
This is not more professional. To be clear, the objective of engineering is to get the desired task done reliably, with the minimum cost required. If you were designing this within a custom chip, where you don't have the option of producing delays by using resistors and capacitors, and where you would likely have a clock input, this might be a valid approach, but for a low cost solution, it is overkill. And sure, there are always alternative ways to do things that present different tradeoffs, but calling your approach "more professional" is a bit insulting, I think.
I’m sorry it honestly was not my intention to be insulting. And I guess you’re correct professional may have been a poor choice of words. Just thought others would be interested in a digital alternate.
Thanks for posting Ben love the videos
Love these videos. Awesome work!
Another brilliant video. Thanks !!!
100 years later those kids will watch these videos and wonder how smart their predecessors were.
You should provide a course for beginners. How to use a breadboard, basic electronics, etc type of thing to go along with these more advanced sessions.
Thank you for this, Ben.
I'm in the process of figuring out how to connect the keyboard of an Amstrad PPC-512 to a more modern PC in the case.
While the built-in keyboard isn't PS/2, this (and the prior video) sort of approach should help me out a great deal.
I've just finished watching previous video and here goes sequel :)
Well done, with a clear explanation.
I look forward to each of your videos
Of course you have an HP 16C. Way to flex on us.
"oh - this old thing??"
i love your videos! I've learnt so much from you. Thanks
26:56: Ahhh, the HP-15C - what a beauty!