 Greetings, Kaikad friends, and greetings, Keekad friends, so today I am reformatting this schematic of the Digital Equipment Corporation's LA120 printing terminal into Kaikad, and the printing terminal was basically the predecessor of a video terminal, like the classic VT100. This was, you know, before screens became ubiquitous, you would have a printer, and you would type your commands on the keyboard, actually, and the output would be printed to the printer. Because this is sort of like a classic device, I decided to reformat the schematic into Kaikad so that anybody can take it and do whatever they want with it, you know, maybe modify it, maybe create a printed circuit board out of it, I don't know. Anyway, there is this GitHub repository called BitPreserve, which seeks to take all of these classic computers and reformat their schematics into Kaikad, so basically you can use it as a jumping off point for whatever you want, like I said, to modify it or create a printed circuit board, or whatever. What I wanted to do was just briefly show what happens when you encounter one of these schematics, and you get a chip that is not in the Kaikad standard libraries, because, of course, those standard libraries are basically for modern chips. So this is my way of creating a symbol for one of these chips. So here is the 8224. So the first thing that we need to do is look up the datasheet. Now this is an Intel 8224, I know that much. So I'm just going to look that up. Now you can just do a Google search, and you're probably going to find all of these datasheet aggregator sites, which have the actual datasheet, which is nice, or you can find maybe somebody's personal site that has this or a university site. The problem is that when you create a symbol for Kaikad, you have the ability of putting the datasheet into the specification, which is nice, because then you can just right click on the symbol and pull up the documentation, and it will pull up your browser with that datasheet. Now the problem with the datasheet aggregator sites is who knows how long that datasheet aggregator site is going to exist. In addition, they're going to slap their own ads. They're going to do all sorts of weird things to try to get you to download something else other than the datasheet. I've seen a lot of things. So instead, what I like to do is go to the Internet Archive, which you know is not going to go away anytime soon, and is not going to slap things with ads, at least not that we know of at this point. And I can look up the Intel 8080 user's manual, which contains all of the datasheets. Now, if you can't find the datasheet on the archive, then what I suggest you do is you go to one of these datasheet aggregator sites and just download the datasheet and then upload it to the archive. They might put their watermark on it, but it's not their datasheet, so it doesn't really matter if they do that. So anyway, I'm just going to open this up and right there in the front, I can see the 8224 clock generator. Now, the reason that I was able to do this, of course, is that I know that the 8224 is an Intel part specifically for the 8080 system. And if you look at the schematic, you can see right here, the CPU is an 8080. So it's part of that system. As well, there's going to be this 8228, which I believe is another Intel part, which is right down here. So anyway, what we do is we go to the datasheet. So it's page 5-1. Okay, there it is. It's a clock generator and driver for 8080 CPU. So I'm just going to zoom in on the chip itself. And the thing that I like about the Intel datasheets is that not only do you get the pinout, but you also get the block diagram right next to it with inputs on the left side and outputs on the right side, which is great for organizing your pins. So let's get started. What we're going to do is open up the symbol editor. Now, we're not going to look for a standard library because this is going to be a chip that you want to add to a custom library. So first, what I'm going to do is I'm going to look for timers and you can see that the existing Kaikad library does have a clock generator for the 8086, obviously not for the 8080. So what I'm going to do is I'm going to go ahead and assume that the 8224 chip should go in the timer library. So what I'm going to do is I'm going to create a new library and I'm going to go to bit preserve. This is my checked out copy of the GitHub repo. And I'm going to go to symbol libs. And this is where you're going to put all of the custom chips that don't go into the Kaikad standard library. And it's going to be timer underscore Intel because that is the Kaikad standard. So basically you have the type of chip, maybe a subtype of chip, and then you have the vendor itself. So this is going to be a timer for Intel. And I'm just going to say it's for the project. It doesn't matter at this point. So now I have a timer Intel library and now I'm going to create a new symbol and the symbol name is just 8224. And I'm going to leave everything alone. Okay, now I'm going to zoom out and I'm going to put the designators over to the side. So there are 16 pins. So to start I create a pin. And the first thing I'm going to do is change the pin length to 100 mils. Now the reason that I do that is that the Kaikad standard is to use 100 mil pin sizes for chips that have less than 100 pins. Once you get 100 pins, the pin number is not going to fit in 100 mils. So you go with 200 mils. So I'm just going to change that to 100. And then I'm going to go pin name one, pin number one. And then I'm going to use the insert key to insert all of the pins. 16. There we go. Now, the next thing that we do is we go over to the pin table. And this is where you can rapidly fill out the names of all of the pins so that we can see it. And whoops. And Kaikad or Kaikad over on the other side. And now I can just go ahead and type the names of the pins. You use tilde for the over bar. And I'm using enter to go down a row. So ready, sync. Okay, now this one is phase two. I want to keep that symbol. So in Windows, I don't know how it is in Linux, but in Windows you pull up the character map and you can search for phi. And it's going to be that symbol right over there. So I'm just going to copy it and paste it in here. Phase two. Now it says TTL with like this TTL. That's good enough. STSTB round VDD phase two. Oops, phase two. One oscillator, tank, extl. Now you can't, oh you can put spaces in there. So let me go up to phase two TTL and put a space in there. Ah, you can't. You can't put spaces in pin names. So we can just leave it like that. Extl one and VCC. Okay. The next thing that I want to do is change the electrical type. So this is where the next part, which is the inputs and outputs come in. And hit okay here. Move this down. Do some window reorganization here. Okay. So electrical type. Reset is actually an output. So O for output. Okay. Res in is an input. Ready in is going to be an input. Ready is an output. So O for output. Sink phase two TTL is an output. STSTB output. Now ground is a power input. So I hit P until I get to power input. Same thing with VDD. Power input. Scroll down a bit. Phase two and phase one are outputs. Oscillator is an output. Tank is an input. So are the crystals and VCC is a power input. Okay. And what we want to do is we want to put inputs on the left side, outputs on the right side and power at the top and ground at the bottom. So to do that, I can simply grab the ground pin and use R to rotate. VCC goes up at the top along with VDD. And I'm just going to place these roughly. Now I've got my grid set for 50 mils. You want the pins to be on 100 mil intervals. So now I'm just going to take the outputs and put them on the one side. And again, I'm not going to bother to organize them at this point. I just want the pins on the right, on the correct side. Okay. So the next thing is this block diagram is really nice because it organizes the pins. So I'm just going to do that. So a little trick. X and Y will flip on the X-axis and the Y-axis. So I want to flip this group on the X-axis. Done. And now let me put it kind of close to VCC like there. Because you want the symbol to be pretty compact. You don't want these to be sort of floating up here and have a lot of empty space up here, at least. That's not what the Kaikad library moderators like to see. So sync comes next. So I'm going to drop that down by four dots, which is 200 mils, because it's sort of separate. Res in. It kind of looks like it's separate and ready in, probably is also separate. So that works. Now we have the four clock outputs. So I'm going to take those and put them up top, grouped, something like that. And then what do we get? STSTB is sort of separate and reset and ready are down here. They're kind of also separate. Okay, now from the block diagram it looks like ready in and ready are associated with each other. So I'm just going to align those. Same thing with reset in and reset. Sync and STSTB, I guess that's ST strobe or something like that. Go like that. So now we can see that all the sort of clock or oscillator-related inputs are across from their outputs. Same thing with sync and reset and ready. Okay, now I'm going to just shove the ground pin up there. Okay, and let's see. One, two, three. Okay, so I think all of these are on the 100 mil grid. So now I'm just going to create the body, just like that. Double click. Okay, hit E for edit. Fill with the body background color, and that's that. Now I'm going to grab the entire thing and roughly center it so that the power symbols are in the center and so that the pins are aligned on the axes, because this is the 00 point. If I moved it up one, then the pins would be on a 50 mil grid and not a 100 mil grid. So again, you want these roughly so that the chip is centered. Now this would be the chip centered, but of course then the pins are not on the correct grid. So I'm just going to bump it up one. And we can see that this side is longer than this side. So I can probably fix that by moving this out by one and hitting G to grab the end of the pin. Now the final thing that I want to do is I want to check to make sure that these pins ended up on the 100 mil grid. If you look down here, you can see the position of your cursor. So I'm just going to position my cursor on this pin and I see that it is 0.6. Position it up here, 0.7. Good. Position it here, 0.5 and 0.4. Good. And negative 0.5 and 0.4. That's also good. So if I saw a 0.05 somewhere, then that means that I would have to move these pins over by one. And that's it. The locations of the references doesn't actually matter. I think that's a bug in KiCad because when you place the symbol down, it's just going to take this and just stick it at the center top of the pin. And that's pretty much it. So now that I've got the symbol done, I just want to open up the properties. So we have a data sheet, which is good. Data sheet. Where is it? This is the data sheet. And for data books, I like to open up the data book to the correct page so that when you open up the symbol, documentation in KiCad, you go directly to the correct pin, to the correct page. Okay, description. I usually take that straight from the data sheet. So let's call it clock generator and driver for 8080A CPU. A CPU. Keywords, clock, I guess. Okay, so now the final thing is the footprint. Now, the 8224 had only one footprint, right? It's going to be a plastic or maybe even a ceramic chip. So if I open this up and zoom out a little bit and flip until maybe towards the end of the data sheet, it's going to show the package. No, it doesn't show the package. Okay. Well, you can sort of see the outline over here. And it's basically a standard plastic dip package. So it's going to be a 16 pin one. So what I'm going to do is go back to KiCad and for the footprint, there we go. So I'm going to go to package dip and look for dip 16. And the correct width is 7.62 millimeters. Now, of course, we don't know whether the user is going to want to create a printed circuit board with long pads or make it look like that or like that or like that. We don't really know. But we do know that the footprint has to be dip-16 underscore with 7.62 millimeter something. So for that, what I'm going to do is, okay, so I selected it here and I'm going to put a star at the end. So that is the footprint filter. So I'm going to exit this and clear it out and go to footprint filters and I'm going to add that as a filter. Okay. So the only reason why you would put footprint here is if there were several variations of the chip that had different pinouts and different footprints. So you could specify the footprint right over here. Instead, we just want to specify a footprint filter so that when you associate the symbol with a footprint, you'll only get footprints starting with this string over here. So that's that. There aren't any aliases as far as I know. So there isn't like an 8224a or b with the same pinout and footprint, just a different name. And that's it. So and that's it. So I've saved it. All right. This is not bold with a star. So that means that it's saved. So now I can simply close the footprint editor, go to my schematic, and now I can just type 8224 and there it is ready to use. So you can see that it put the designator is basically centered in either the top or the bottom. So you can just do that and you're done. But that's basically how you can create a symbol really quickly. And again, you want to follow that procedure because each of these pins has a pin type, which will help when you go into the electrical rules check to make sure that inputs are fed by at least one output. Power inputs are fed by power and outputs don't hit other outputs. One thing that you might find is an output that should actually be a tri-state. So what that means is that you can connect multiple outputs together, but only one chip on that line is going to be active at once. So instead of making it an output, you make it a tri-state because that chip has to have some way of tri-stating its output so that other chips can output a signal. The other thing is passive. Passive pins can be just connected to passive components. The crystal may actually end up being passive, so I suppose what I could do is modify that. So I go to properties, edit with library editor, and now I'm just going to go to the pin table. Organize by name so I can find crystals easily and change this to passive. Same thing with tank. I think tank would be passive as well because that would just be an RC network or an LC network. And that's it. Now if you had already placed this symbol in your schematic, it would automatically be updated. And let's see. The other pin type is bidirectional. I think that bidirectional means that it's either an input or a tri-state output. So for example, the data line on a CPU would be bidirectional. Let's just go here and look at the other pin types. Bidirectional, tri-state, passive, yeah, unspecified, open collector and open emitter. You can use that instead of tri-state and not connected. So if you've got a pin that's not connected, let's create a pin that's not connected. Let's suppose pins 17 and 18 were not connected. So what I would do is, this is pin 17. The type would be not connected, and I would change the pin length to zero and make it invisible. So I would place the pin right on the body outline. Now if you took a wire and connected it to here, it would actually connect to the not connected pin. So that's why I put it on the outline of the body because very rarely do you take a wire and just have it terminate on the body of the chip. So that's basically how I would do not connecteds. Don't stack non-connected because otherwise they will be connected to each other. So as an example, let me create another pin and call it pin 18. It's going to be the same, right? You can do this. It doesn't matter if they're not on the grid, but don't do this because then pin 17 and 18 are connected because their pin terminals overlap, and that would fail electrical rules check. So we don't need that anymore. Let me get rid of these pins. Save and you're done. Okay, I think that's all I really wanted to do. So thanks for watching. That's it. See ya.