 Let's move on to the next project, which is Auskat, mentored by Ms. Raki Warier, Mr. Faheem Khan and Mr. Ambikeshwar, Mr. Manas Ranjan Das, Mr. Shambhulingya and Doda Paria and the manager is Mrs. Usha Vishwanathan. So, we are often not present over here, myself Amaradip Singh from Vijaytay, Mumbai and me and my friends will be presenting a project Auskat, specifically Auskat version 2.0. Now Auskat is basically an EDA, an electronic design automation tool, which can be used to create circuits like schematics, then simulate them and finally when your circuits are ready you can even fabricate them into PCBs. So, now it is basically made using key cad, NG-spice and silab, like key cad is used for PCB designing and for the simulation purpose we use NG-spice at the back end. So, what was the need for such a tool was like, there is hardly any tool, an open source tool which can do all of these together, you can even simulate as well as fabricate products. And also which are like other software like Cadence and Orchard, they are two, like way too expensive as compared to Auskat, which is open source and free for everyone to use. So, starting with it, so our version Auskat version 2.0 is basically an enhancement optimization and like bringing together all of things, like it was discrete before, so bringing all together. What all things we have done is like we have gone for like, we have converted from P-spice to Auskat schematic converter, then there is a python wave plot added to it, then there is a GUI for key cad to NG-spice converter, there is a sub-circuit creation and finally the optimizing and redesigning. So, all of these tasks have been performed by my team and one by one we will like get to it. Hello, my task was to convert P-spice schematic into key cad schematic format that can be run on Auskat. So, many colleges use P-spice nowadays and they must have lots of examples, .hch file is created. So, they must have lots of examples, why will they need to, why will they convert and use our software. So, I have created user friendly program so that they can use the schematic files and convert them into Auskat and use our software. Auskat mostly needs two files .pro and .proj and these two files are created, mainly .hch file of P-spice is read and written in a key cad format, the algorithm for converting P-spice to format to key cad format is this, first we read the schematic file, P-spice schematic file, all the ports and parts are the components that indicates the components in P-spice, but in key cad there are only components, there are no parts and ports. So, all that are converted and written in a format that is known to key cad. Similarly, all the wires and junction means the wires which position that is in P-spice the same position should be in the key cad. So, we can view the whole schematics, similarly we can view the whole schematic in Auskat. The main thing is that we can also simulate in Auskat, means after converting we can do lots, we can use all the functions that is provided in the Auskat. So, we read, we write all the wires and connections in the format known to key cad and then there are extra footers in key cad, we need to add. So, we write that in that format and that is it, then we can open, we create four files, the common one are .pr and .proj that will open the schematic file in Auskat and two more files .sch and .casualip are also created that contains the data means how the design looks. So, how do we read the files? The paths, this is the flowchart, first this is the schematic, some part of the schematic file of piece files. So, we go to adderate paths, we skip to the adderate paths and read all the attributes and store them. We only store which we are needed in the key cad format and ignore the rest of the stuff that is not needed by the key cad. Similarly, creating components, we read all the, we open the library of piece files and read the design and same design is used in the key cad. Design means lines, circles, rectangles for register the data use and then this is a part of the SLB file, the piece files library file. We take the designs from here, take the attributes which is needed only, I mean key cad does not need all the attributes that piece files provide, only certain attributes are needed, we only read those and discard the rest of them. Similarly, for connections and junctions, same is the piece file schematic file. We only read the attributes like wire, file is there, at what position it will be, XY coordinates, how to use this program. We need to compile first and then use dot slash converter and write the two attributes are needed. We need the SEH file of the piece files and we need to provide the name with which we will open it in the oscar. So, just provide the path that will be saved there and then we can open it in on the oscar. This is one converted example, this is the schematic file in a piece files and same, this is a converted in the key cad that is oscar. So, everything is same, this is open in the oscar and now we can simulate it using the functions which are available in oscar and we can also simulate the plot. Similar parts of outputs are exactly same, there is no difference. After the piece files converter, so coming to the oscar, before we had come, we used ng-spice for simulation purpose, so the plot used to come from ng-spice. However, it lagged like functionalities, the user was not like able to operate on the voltages and the currents. So, what idea we got was that we should use python instead of that and create our own GUI and give different functionalities, different options to the user, so that you can manipulate accordingly. So, why we need was basically like the plot in ng-spice not convenient, there is lack of functionalities. Also, if you want voltages, you have to write commands in the terminal. So, if you are not familiar with the commands, then it becomes difficult for you to get the entire plots as well as the values, the exact values for the different nodes. So, it allows customization, the python allows customization according to requirements, even if the user comes up with something new, like he wants something new, we can add it into the same plot. So, how do they look? To the right corner, top most corner, there is a ng-spice plot, as you can see like it just, it doesn't give any option, only the quit button that you can just quit it. So, coming to this, the GUI below that, that's created using python. So, like over here you get the list of all the nodes, all the branches present in the net list, the net list that is given to the ng-spice. And also, like you can manipulate, you can write functions, for example, you can add them, subtract, multiply, divide or even compare two voltages, and accordingly you will get the plots on the canvas. So, this is like a better user experience. Also, there is a like toolbar over there on the top, there is a toolbar that allows you to zoom as well as span and everything. This python thing has been written by you. Yeah. The whole front end. Yeah. Based on the data you have collected for ng-spice. Yeah. The data has been like thrown out by ng-spice. Like there are some modifications in the command. Like we have like files, key get to ng-spice that we generate a net list for simulation that is given as an input to the ng-spice. So, over there we write the commands which print all the like, we have been on all the data regarding the voltages and the currents in the files. So, we get the files and accordingly we plot it. Right. We create the GUI. Creating the data in a file is actually ng-spice. Yeah. Yeah. All you are doing is creating the ng-spice. Python plotting. You know. You know. Flexible. Flexible. Yeah. Yeah. Yeah. Better user experience, better GUI. So, this is basically the flow of the code how it goes. So, what it does is in key cat it will generate a net list but that is not compatible with ng-spice. Okay. The ng-spice won't understand because key cat is basically just for PCB designing. Okay. You cannot simulate your circuits in key cat. So, you have to parse it and accordingly generate a net list that ng-spice understands. So, that file will also give me the files for the data files regarding the voltages and the currents. Accordingly like I open the file and create list according to the x and the y axis and simply when the user takes particular voltage or node it gets plotted. Thank you. I have developed a GUI for key cat to ng-spice net list converter in PyQT. First, I would like to tell you why did I use PyQT? Well, PyQT is platform independent. That is the GUI works fine both on Windows, Linux or any other operating system. And PyQT also provides us with large sets of PyQ widgets so that we can create complicated layouts relatively with ease. It is very flexible and easy to code on. As you can see this is the front end of Oskar GUI, the third button from the top represents key cat to ng-spice converter. Previously we used to enter the values of the parameters through terminal but now GUI for the chain. This is how my GUI looks. Well, my GUI consists of two windows one for the source list and other for the model list. This one is for the source list. The GUI is basically dynamic. It takes the GUI created by taking the input from the nest list generated by a file and then according to the inputs of the parameters it forms this GUI. There is a next button here. The next button closes this GUI and pops up the GUI for the model list. This is the model list of my GUI. As you can see there is a clear button here which clears all the parameters all at once. The back button closes this GUI and goes back to the source list GUI. Suppose the user enters some values in the source list GUI and again presses the next button and then he realizes that he made a mistake. So from here he can go back to the previous GUI and make the amendments and then again come back here. I have also included the default values here so that the user might feel easy to give the parameters if he is not known to the actual parameters. So like there is a default value of analog to digital converter 0.8 for the input low level voltage. And there is somebody that closes this GUI. I have also included this feature here like suppose the user enters a value, presses the submit button. The value that he entered gets saved in a file. So again if he opens the GUI again the value is retrieved from the file and it is displayed on the GUI. Why are you calling it a GUI? What is the full form of a GUI? Graphical user interface. The second thing is that user is dynamic right? Yeah. So depending on the net list. Net list the GUI will be clear. If there are 100 voltage sources you will ask me two parameters. Even the auditing of the voltage sources will be according to the CRF file, according to the net list. Which comes first? Which comes first will be on the top. What happens if there are 100 voltage sources? There is a scroll button there. There is a scroll button. Yeah. So you can always scroll it. And this is done using that PyQT? PyQT. Easy to use. Not easy to use. Basically it is very compatible it can be used in any system. I have tested it in Windows. It works fine. Teak Inter, this is another GUI for this is another Teak Inter. So it does not work on Windows. Like there is some errors. Like there is a font class in Teak Inter which works on Linux. But it does not work on Windows. But PyQT it works on any operating system. Now I will like my friend Harish to present it. Graph known. I have been working on creating sub-circuits for AusCat. Basically let me give a brief intro of what a sub-circuit is for those who are not aware of it. Any electronic, any complex circuit will always consist of something, some elementary circuits. Like if we consider an op-amp, it is not an elementary device. It consists of a number of transistors, diodes, resistors and so on. So the underlying circuit is what is called the sub-circuit of component. And why do we basically need a sub-circuit? For any simulation tool we can directly import them. Actually we can use the ICs directly. We need not construct the inner parts of the IC. Secondly, we can avoid equivalent circuits. For example, if I want to construct an instrumentation amplifier, I can directly import the circuit for that instead of constructing the amplifier as such. And thirdly, when we do all these, it makes the circuit designing simpler. These are the components which I created. UA741 operational amplifier, 7805 voltage regulator and 7453 MUX. This is the sub-circuit meant for UA741. It basically consists of four stages. Differential input, input balanced output and differential input unbalanced output, voltage regulator and push-pull amplifier. This has been designed with five ports. Two for power supplies, one for output and two for inputs. Shouldn't this be readily available on the net? No, actually the schematic was available in the datasheet but that was not sufficient to create a sub-circuit. They have just given a schematic which is not the same schematic as given in the datasheet. The schematic given in the datasheet does not work? It does not work in the datasheet. I have tried it. Actually the transistors here had number of current mirrors and so on. Those current mirrors were not working here and moreover the values of the resistances and capacitances, they were all not found in the datasheet. The datasheet was not sufficient for creating a sub-circuit. So that is the datasheet? Shouldn't it be directly available somewhere else? It was available as an equivalent as some other equivalent circuit in the libraries which did not have this circuit as such. It was available but it was not available as a direct circuit. It was available as an equivalent circuit in dependent sources and so on. Wait, good experience to design circuits anyway. So this is a sub-circuit for 5 pin op-amp. This has been added as a sub-circuit here and it has been implemented for a non-inverting amplifier. These are the parameters which I used for the input of the previous circuit. I have given 5 volt amplitude and the non-inverting amplifier has been designed to give a voltage gain of 2. So this has been tested and it has now the amplitude is doubled 10 plus and minus 10 volts. So the sub-circuit has been used in an actual circuit. Output is what? NG-spice? Yeah. And he did not trust your software to give the output. How it is? Using key-cat. He created his circuit in key-cat, right? So there has to be a NG-spice given to NG-spice for simulation. So that simulation, that NG-spice is created using his circuit. Whatever he created. Correct. But he did not use the output that somebody else did. He used that circuit, right? That op-amp that he showed. The op-amp symbol you can see. The circuit behind this symbol is the one he created earlier, like in key-cat. See, I told you. I am just saying, somebody claimed that the NG-spice plot output is horrible. Okay. So I have, you only claimed. I have created this great tool with so much thing and your, your partner did not use it. No. The most important learning here is if you are working as a team, you have to use somebody else's because you owe it to him to test his software. Okay. Right now he is using his own test. Okay. To claim that his output matches the NG-spice. I have no idea if his partner is not using his software, does not trust it. The thing is the... You have to use your partners or your team software so that it becomes more robust. Okay. That gives me confidence that it works. Coming to it, we are on the merging, like half of the we created modules and half of the merging has been done. And before leaving, before leaving this internship we will complete it. And we can give a presentation. No, I don't want to I don't want a presentation but it's good that I have now discovered that you are not a merged entity. Okay. Just because he did not present your thing. In this week only we have completed our individual works. That's okay. Model library files. Basically if we consider any one component like diode or PNP or NPN transistors there can be a variety of them like BC107, BC547, 2NW222 and so on. And each of them differ in some parameters like saturation voltage, capacitance and so on. So each of them can be added as a model to the existing libraries. So these are the model libraries actually. So with these libraries we will be able to use a variety of components of the same kind. Like variety of transistors diodes and so on. Next. So this is a bridge rectifier in which there is one. I have added some library files to the existing libraries in which in this bridge rectifier there is 1N4007 and that has been next slide. That has been replaced with another component which I have added. And the added component has different parameters which can be viewed by going to the model editor. These are the parameters of the new component which is differing from the existing parameters in the already existing bridge rectifier. So now every like all those who have present here have only worked on OSCAD. Now what we are doing is implementing that OSCAD to a new version OSCAD 2.0. So what is OSCAD 2.0? What we free me, Sarang and Kunal what we are doing is this is a toolbar of OSCAD. What we are doing is we are implementing all this function inside the first function itself. The first function is the Eschema editor which is a part of a key cad. So what we are doing is we are implementing all the other functions inside the key cad itself. So for example the second button is the analysis insertor. What I have done is implemented this button inside the Eschema window. So as you can see the above toolbar is the main toolbar of the Eschema editor of key cad. What we are doing is the analysis insertor, the button which was present on the toolbar earlier on the OSCAD is now present on the this window. The earlier GUI like this GUI pops up when we click on the simulation button. So it has five options DC, DC nested AC, transient and Fourier and pole zero plot. So this GUI was created in python which was included in OSCAD. Now we have recreated this using C++ because the key cad back end language is C++ so we recreated this GUI. Now it is present on the key cad Eschema window. So what are we supposed to do to simulate the schematic? First thing is first create a schematic then edit the properties if required for example for sign component so now when we put a component on the schematic we have created a new property called edit properties through which we can give the values of sign component. Like if it is a sign component we can give the amplitude, we can give frequency offset values on the schema window itself. This property was not present in the OSCAD and the previous key cad. So this is the new and then the next step is to create a netlist. First what we used to do is the two files used to be generated. One is .cir file, the original netlist file and the second is .cr.out file which is required by NG Spice to produce a plot. So as you can see above this is the previous netlist it contains the name of the components present on the schematic and the out and in are the nodes and 1K is the value and for sign like V1 there is a sign, it is a source so it contains 5 more properties 0, 5, 50, 0, 0 they are the offset value, frequency, amplitude factor etc. So this netlist is now getting converted to this netlist. So it now contains the extra line .tran that is the simulation these are the simulation values gotten from the GUI window. So it creates a specific format required by the NG Spice and these are the commands to plot it in NG Spice this is the example the plot generated using NG Spice same thing we can convert it to python plot we have already merged it so now I will give it to Kunal as my friend said the sub-circuit builder is also a tool in Oskar what I have done is I have merged it inside e-schema basically let me explain what sub-circuit builder is, it is basically used to build sub-circuits for ICs it depict the internal structure for a particular IC let me tell you about the shortcomings which was previously present in this sub-circuit builder the main was the one that user can't access it from inside e-schema he can only access it from the Oskar toolbar secondly user had to provide a name for editing and creating a sub-circuit for example if a user want to edit a sub-circuit or create a sub-circuit user had to provide the name for it user has to provide the name for it but now what I have done this we cannot directly access through form of component, I will show it later and then my friend showed dependency on an extra file.cr.out which we have removed now, what this now features added that first the same user can access from e-schema this one I was talking about user can edit and create a sub-circuit just by right clicking on the component I will show it in the next slide this is the third point in no dependency on CR.out file and fourth one is that all the functions which was done by.cr.out file which this will be now performed by.crfi so the main problem was the interaction between the python c++ code because all that GUI ticket GUI is made of all c++ code and the GUI which was made of that Oskar toolbar it was implemented in python so I use a cell script as an interface between c++ and python because the cell script easily can be used to execute commands this is view of inside e-schema this is a ic ua741 when I right click on it the sub-circuit sub-menu is present inside edit sub-menu and you can see there are 3 more sub-menus new edit and import these new edit and import works in the same way as was present in the Oskar toolbar suppose if a sub-circuit does not exist of that particular IC I will show an error that sub-circuit does not exist this is of new button I am explaining suppose sub-circuit is already exist and if you use the clicks on new it will go to edit if you want to edit because sub-circuit already exist and in the same way new if a sub-circuit does not exist in that current project so it will open a new schema for creating a sub-circuit for that user this is of edit sub-menu if a sub-circuit already exist this is an example of US 741 if a sub-circuit already exist it will open the existing sub-circuit a new schema for the user to edit it this is the same if a sub-circuit does not exist will probably another that does not exist create it first this is import button the same it will give you a list of there were 2 more tools to be added generate sub-circuit for a new sub-circuit to create a .sub file I have added it in the toolbar on the side-net list what it will do it will create the .sub file of a sub-circuit with the user has created similarly a export button is also there which export the current sub-circuit to the sub-circuit my friend Sarang will continue as he did as I find Kunal did my task was to include the model editor within the schematic creator itself so these are the key features like he said the model editor can now be accessed from the schematic itself and the model field name and the value fields are synchronized this is pretty important when a user create right clicks on a component these are the options that will pop up new edit import and export presently the model feature is only available to components which have references as dmnq this can be expanded if I have more model libraries included so like as you said I cannot prevent a user from performing experiments on my software so if he tries to click on a component that does not have a model file for it this error will pop up this switch is not currently available so if I click on new dialog box will pop up it will prompt the user to enter a file name for the model like a diode there can be different parameters for different diodes so presently we have a single model for a diode but in this there when clicking on ok this is the dialog box that opens it contains all the parameters we can change them and once the user clicks ok he is informed that this model file diode one is now created and it is imported to the project library this is the edit option earlier what was happening was in the previous version of oscat when the user clicks on edit he had a long list of all the model files that are present so he would not be able to figure out which model file is associated with which component so now he can directly click on edit and the model file that is associated with that particular component opens up and he can edit those values this is the import option this feature is newly added earlier the user was not able to change the file name of the imported model now this has been integrated here one more thing like if the user clicks on export file that is associated with it directly gets exported to the model repository earlier a list pop up these are the some errors that pop up like if a model is not created and the user clicks on it so the first error will pop up and the last one is for if he clicks on export and yet no model file has been imported next so to sum up I would like to conclude that these are the key features that have been included in oscat version 2.0 PSY schematic files can now be successfully converted into ischematic oscat schematic and be simulated ng-spice plot has now been replaced by python plot without functionalities earlier a terminal was used and now it has been replaced by GUI and also insert a model builder and sub circuit builder can now be accessed from the schematic itself and the libraries have been finished