Vacuum Tube Computer P.22 – Processor Finished!

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
[Music] hello and welcome back and uh well you've seen the thumbnail you clicked on the title at this point you actually know more than me but if the title of the video says what i'm hoping it says then i'm so excited we have been working on building this thing for probably about a year now and you know what i think in this video we're gonna plug it in and give it a real proper test as a finished micro macro macro processor it is not small uh but before we dive too deeply on what it is we got to do today there might be some viewers who are joining us on this very video in which case uh welcome welcome to the channel and thank you so much for joining us um unfortunately joining on part 22 of this series is a bit like watching avengers in-game without having watched any of the previous movies but i will try to bring you up to speed as best as i can in this series we are slowly building up a one bit vacuum tube computer inspired very heavily by the motorola mc14500 which is a little one-bit industrial control unit that motorola designed with the intention of replacing relay logic systems and industrial applications but it is a genuine microprocessor now there is a lot of asterisks after saying that because it's missing a lot of really core functionality to be considered a cpu or a computer for that matter uh but i really liked the architecture now there were some pretty heavy limitations with that architecture most notably it only had a logic unit so we did a pretty heavy redesign on that logic unit and bumped it up to a full-fledged arithmetic logic unit so it's still very similar to the mc14500 but there's been enough changes to it that i've been dubbing it the ue14500 ue for usagi electric and we are so so close to getting the processor part of this done now the processor is only one quarter of the entire computer next we're going to have to take a look at memory and then program control and finally input and output but to get the first 25 of the entire computer finished is such a massive milestone that i have actually been losing sleep at night i am so excited now in the previous episode we got so close to being finished as a matter of fact it looked like all we needed to do was just plug in a couple of end boards on the very bottom edge and uh plug it into power and give it a test but there's quite a few more things that we need to do before we're ready to actually put power into the entire thing and give it a test uh and it's it's actually more than i had anticipated so it's like 9 00 a.m outside i'm fired up i want to work on this thing and i want to see it run in this video so let's hop over the bench take a look at everything that is that we have to cover and then uh well get to work and hopefully by the end of this video we will have a fully functioning vacuum tube one bit macro processor so let's jump over there and get started all right here's where we left off in the previous episode we got pretty much the entire bottom half finished we're just missing a little bit right along here now the connection piece that's going to go in between here is going to have some buffers on it and so that's what this little piece right here is we've got four cathode follower buffers to buffer up the data output here and then we have our two end pieces which are uh here and here and you can see that these have not been built up unlike our cathode follower buffers here i'm actually missing some vfds here i'm hoping that they'll show up today and if they do i'll be able to get them in so you guys can see them we also need a little connection piece that's going to sit right in there and then once i get all that uh built up and plugged in the entire processor should be finished and ready to go but there's a couple more things that i want to tackle and the first is is that i want to rebuild this board right here in the previous episode we had to do a little bit of badge work to get it to work and it looks ugly and then moving around to the top of the computer i actually want to do some work on the soft start here i just really don't like the way that these massive black automotive relays look so i've ordered some omron g2r1 relays one of those does not have enough current capability so i'm actually going to run two in parallel per voltage rail and i'm going to try and stuff everything onto this center board here so that the entire soft start is right here on the center and then these long boards on the side are just for moving the power signals over the only change from a functionality point of view is that i'm connecting the common to the normally closed so that way whenever the relay kicks over to the normally open it's just shunting across the resistor and so we never have a moment where there is no connection and that was a suggestion that a lot of people in the comments had and thank you guys so much for leaving those comments next we need some way to control it so that way we can see that it's actually working we need to put in a 4-bit instruction we also need to input a clock as well as an external data input and then we need to see some of the results so i need to build up some kind of remote control that allows me to do that and i've picked up these really cool russian toggle switches and i have a cool uh push button here that i think is going to work brilliantly for that but i need to build up a pcb that holds this has some form of display on it so i can see what i'm inputting and what the results are and i need to figure out a way to connect it and i think i'm going to do that by creating a little pcb that plugs into here and then have a harness run right along the bottom here that we screw into the wood to hold it all in place and then finally we need to work on the power supply this is the power supply that i've been using up to now and if we crack it open you can see it's just a mean well 24 volt supply and a random 12 volt wall wart that i had and the 24 volt supply is still totally fine but the walmart is just not putting out enough current it's a 3 amp walmart and i'm going to need a total of about 7 amps i think on the minus 12 volt rail so i have been slowly designing and working on this beast in the background and this uses a meanwell 24 volt 14 amp supply just like the other one but we have added a meanwhile 12 volt supply that will do up to 17 amps but you can see that while all the components are in place there is no wiring whatsoever so we need to finish wiring this up so we have a power supply that will actually power up the entire processor so there's still a ton of work to do but oh man am i excited i am ready to get this thing going so let's uh let's get to work [Music] so [Music] do do so [Music] [Music] all right it's been a tough couple of days but i've been going pretty much uh sun up the sun down on this thing for the past three or four days and i think we're there i think the processor is finished we got the rest of the boards in on the bottom right here we got our new soft start in up top we finished up the new power supply and i have built a little remote control with a harness that you can see here that goes to the bottom connectors on the edges here and this allows me to put instructions in so i've got my 4-bit instruction here i've got my data and i've got a little push button here for the clock for the two vfds the bottom vfd here is going to be our input into the system so the four dots on the left are the instruction then we skip a dot and then the two dots on the right are for data and clock the vfd on the top are for outputs from the system so we have our data our result register and our right signal on the three dots on the left and then the four dots on the right are for flag o flag f return and jump now i did a little bit of testing off camera just to see if the power supply and the new soft start were up to the task and they aren't they totally aren't so i'm going to need to do some extra work on that i'll go ahead and demonstrate the problem that we're experiencing here so i'll flip the power switch on and we'll take a look at the current draw that's coming out of the 24 volt supply because actually the 24 volt supply is now where our problem is occurring so we'll flip the switch on here and you can see we jump up to about nine amps the thyrotrons are warming up and then you can see that uh the 24 volt supply just thinks we're in a short circuit condition and it's just going into full protection mode so it never actually starts up now for the soft start i'm running a 2 ohm 100 watt resistor as a current limiting resistor and you can see that whenever we're cold that puts the power supply at about nine amps now i have a little more headroom in the power supply i can actually bump that up to about 14 amps so what i think my short-term solution is going to be is that i need to drop the value of the current limiting resistor on the 24 volt side so right now it's two ohms and then i've got this uh this actually is a ballast resistor for a distributor but it's a 1.8 ohm so if i put this in parallel with the 2 ohm resistor here that should drop us down to about 0.95 ohms i believe so i'm going to go ahead and hook that up in parallel all right let's give it another shot here i'll go ahead and flip the switch on we can see it jumps up to about 14 amps that's good that means we're getting more power into the heaters of the tubes and it's dropping down to about 10 amps then we get a spike up to about 15 16 amps and then it comes right on down and right now at this moment the entire processor is warming up we can see that the current has settled out to about 11 and a half amps on the 24 volt side and about five and a half amps on the minus 12 volt side so once it's warm and resting we're well within the specifications of the two meanwhile supplies that i have in there so now we're sitting here with a processor powered up warmed up i think it's time that we test this thing as a fully functioning processor but what i'm going to do first is i'm going to kick all the lights off to make the vfds a little easier to see and then we'll take this thing for a test drive all right it's a little darker in here and i think it should be a little easier to see what is being displayed on the vfds here on the top vfd here we can see that there's just a little bit of residual glow here that's because the signals that are being output by the processor here are not exactly at zero but it should all be functioning uh hopefully at least we'll give it a test i've got a little bit of a program here that should test out most of the uh functionality of the processor here um so we'll go ahead and give this a shot now the first thing that we got to do is we have to initialize the processor because it's just going to boot up with all sorts of random stuff stored in all the different registers and so what we want to do is we want to make sure that the result register and the carry register are both zero and we want to make sure that input enable and output enable are on so we'll start by doing ien which is one zero one zero we'll set the data to one we'll clock that in and i can see all the way up here that ien kicked on that's good news next we'll do one zero one one which is oen and again we will hit the clock and yeah you can see the vfd over here came on so now we've got ien and oen on next we will do one which is zero one zero zero this forces a one into the result register and forces a zero into the carry register so if we hit the clock yeah i can see that now our carry is zero and our result register is one and then we will just load a zero into the result register it is now off the processor is fully initialized and ready to execute code now the first thing we'll do is we will add uh two one bit numbers together we'll just add one plus one which equals two so we'll start with a load operation which is zero zero zero one and then we have to turn the data on and we will clock a one into the result register and i can see the result register is now storing a one that's good and then we will add that which is zero zero one zero with a one so our data stays on we will hit the clock and we can see that our result register went to zero our carry register went to one now let's say that we want to store the inverse of whatever's in the result register well we can do an stoc command which is one zero zero one we'll turn the data to zero and whenever we hit the clock i'm actually going to push and hold it so we can see what the output on the vfd up here is and so when i push it we can see that the data is on and we can see that the right pin is on so the stoc command outputs the inverse of the result register onto the data bus that's why this is one and as long as the clock is being held our right pin is high as soon as i release the clock the right pin goes low and so that right signal is what is being sent to memory to tell memory hey store whatever is on the data bus so uh we just stored a one into some address that address just so happens to be uh the old noggin up here on my head um okay so next let's uh let's do something a little different here let's try to get the carry register into the result register because maybe i want to do a conditional statement based on the value in the carry register so in order to do this we are going to load a zero into the result register now it already has a zero but maybe it doesn't so we're just going to make sure that the result register has a zero and then we are going to add a zero to that and so what this is going to do is 1 plus 0 equals 1 and that 1 is coming from the carry register so that's going to move the carry register into the result register all right now i can see that the result register is 1 the carry register is 0. and then maybe we want to store that into a memory location so we can use that as an indicator for some conditionals later so we'll do 1 0 0 0 which is an sto command when i push it again we can see that the data went high and our right pin went high awesome so now we have the carry flag stored in some memory location that we can now do conditionals on and so let's do a logic operation next we'll do a nand which is zero one zero one uh and we will set our data to one so we're nanding the result register with our data and one and one as the two inputs to a nand gate means the output will be a zero which means our result register should change to zero but this is interesting because this is kind of a conditional statement this is kind of a if the carry register equals zero then rr equals one else rr equals zero so next we can take that first conditional that we did by forcing the carry into a result register and doing a nand and use that as uh the input for another conditional so if we do an oen command which is uh 1 0 1 1 and then we set the data to whatever the result register is because in the future we're going to set it up so that the result register can circle back around as an addressable input but for right now we don't have the memory set up so we'll just physically set our data input here to what the result register is which is 0. now if i hit the clock that's going to turn the output enable register off so we'll hit the clock and yes i can see that the output enable register is now off so the next command let's say we want to load a 1 into the result register yes we stored a one to the result register but if we want to output that when i hit the clock we can see that the data went high but the right pin did not that's because oen is storing a zero which is suppressing write operations to memory so we are doing a conditional skip based upon the value that was in the carry register that was a result of the addition operation that we did so that's my program i'm just absolutely blown away everything seems to be working perfectly we were doing addition we were doing logic we were masking outputs it's a functioning processor yes that's awesome all right i uh well well i don't really know what to say i've uh i've started and stopped the camera about five times just trying to find the words and this is such a monumental milestone that i i'm just kind of overwhelmed i am completely over the moon this is so unbelievable we set out to try and build a vacuum tube replica of the motorola mc14500 about a year ago and uh it was an insane endeavor but not only did we manage to do it we actually improved upon motorola's original design by stuffing a full arithmetic logic unit in there now when i say improved upon motorola's design that chip is supposedly capable of running it up to one megahertz and i guarantee this will not run anywhere near that as a matter of fact my goal is 10 hertz or 10 instructions per second if i get the right things going on with program control i might try to push that faster maybe up to like 50 hertz or something but uh we are a far cry from what the motorola chip was capable of but it's working it's actually functioning and i it's it's on right now actually and i i can tell you it's on because there's like a blast furnace on this side of my face flame flames flames on the side of my face but it's it's sitting here functioning my little uh remote control here i can clock in uh a value into the result register it loaded in this thing is working the amount of pieces that have to work together for that to happen just all i did was punch in zero zero zero one throw the data to one and hit the clock but what that means is that first of all there has to be two separate clock signals one inverted from the other and one slightly delayed and then we have to clock the instruction into the instruction register up here it has to be decoded here it has to come down to our arithmetic logic unit here to load in whatever is being put on the data bus which is coming from this switch all the way down here then once it's loaded in it needs to buffer the signal put it out and display it up here so many things have to work together just right to do something that seems incredibly simple but it works it actually works we have a one bit vacuum tube processor but it's not a computer not yet we are still missing three very vital things we're missing memory we're missing program control and we're missing input and output and the next thing that i want to tackle is memory but we are going to save that for next year so that's right this is the last episode of the year and i want to thank you guys so much for joining me not just on the journey of the the vacuum tube computer but on all the videos i've been making on the hp 150a oscilloscope and on the one bit breadboard computer we had a bunch of really cool projects this year i've got even more even cooler projects planned for next year and i hope you guys come along with me on the journey because there's a lot of really cool stuff planned for next year but i just i cannot thank you guys enough you are without a doubt the best community i have come across between the discord server and even the youtube comments the the feedback the suggestions the comments everything is fantastic i don't have any trolls i don't have any negativity you guys are always just totally brilliant and it's it makes youtube worth doing so i just i love getting up and reading your comments reading the discord keeping up with everybody's projects and listening to advice and suggestions for future directions of this project and well this project wouldn't have happened if it wasn't for you guys's enthusiasm so thank you thank you thank you all so much i really really hope to see you guys next year but right now it's christmas or soon enough so merry christmas y'all and thank you so much for watching i'll see you all in january you
Info
Channel: Usagi Electric
Views: 458
Rating: undefined out of 5
Keywords:
Id: q9oB-6963DU
Channel Id: undefined
Length: 27min 17sec (1637 seconds)
Published: Mon Dec 20 2021
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.