 Before I start with the presentation, I would like to thank Fataxer for giving us such a wonderful opportunity to come over to IITB and do our respective roles in our respective projects. Now coming over to Clicker presentation, when we came to IITB, there was a task assigned to us that we have to get equipped with each and every project so that we can choose the best for us. Now considering that, I will skip off most of the part of the Clicker, yeah sure. I can notice some voices at the back of the class. This is a regular formal presentation. I would seriously request everyone to maintain absolute pin drop silence. If you can do that, please leave the room. It is very unfair to speakers and other listeners, even if there is a murmur in this classroom, the noise reverberates all across. I request you sincerely to absolutely keep quiet as if you are attending the most important presentation of your life. It does not matter if you are familiar already with the work done, but please maintain some decorum. Thank you. Thank you. Caring on with the presentation, when we came to this IITB Institute, we were given a task that we have to get equipped with each and every project that has been put. So knowing that, I am skipping most of the introductory part of the Clicker and will give you a very brief introduction on what Clicker actually implements. So we will go to the next slide. So Clicker is basically receiver, transmit, wireless concept that you are using. Now in this, we are implementing 8051 architecture. You will think why 8051 architecture? Reason is simple. It is the smallest possible architecture and the vector mapping is also very easy in this. Along with this, we are using the chip CC251X. 1X is 1-0 or 1-1. We are using this because it provides a lot of things to us, like for audio you have UART in it, you have different power modes and you have different timers, four different timers. Now we will jump over to the next slide. The potential benefits, there are many of it, like all of us know like improved class attendance, you do not have to say yes sir, I am present. Just click on it and you are there. Increase peer or collaborative learning, like different centers, remote sensors, remote centers you can collaboratively learn together. Then you will get immediate feedback, like whatever you press, your answer, you will get a pie chart on the screen, the teacher will get to know what is your response. Next slide. The task that has been assigned to us were protocol design, voice integration, RSI, battery monitoring and PCB design. Like due to the hardware constraint, we could not implement the voice part, like we did the coding part. We did the coding part, but unfortunately we could not debug it, but we have done the coding part and it is error free. So possibly when we have the hardware, the mentors or respective mentors can put it on and check it out. Can I have the next slide please? Now the packet format, it is a version 1.2. So the main thing that we are implementing is the voice part and other features, but the packet format is actually exactly the same except the one thing and the one thing is serial number. The serial number is totally for voice communication. For the data transmission, it will be 0. However, for voice, you have to make sure the packets are in sequence. When it is being received, the receiver will take the packets in terms of increasing order of serial number. It will drop the packet, which is actually like 1, 2, 3 and suddenly you get 6 and then 5 comes. So it will drop the fifth packet. Next slide please. So protocol, there were four sessions. It was registration session, attendance, quotient answer session, voice session. Jumping over to registration session, it is a one time process. Like mapping of each clicker ID to a particular student. Like you give a device to every student over there and that device is particular, is or hers. So it is like basically personalization of the clicker and that thing is been done at the back end processing. So you do not have to give like, this is my ID. This has already been done in the back end. Next slide please. So attendance session, we talked about the advantage of attendance session. What actually happens is for attendance session, first and foremost thing is your clicker device has to be in active mode. Once it is in active mode, when attendance is being conducted, the receiver will send a packet of attendance. If your clicker device is in start mode or active mode, what will happen is that it will get registered at the back end side. And you get a blink on your LED, one of your LED. And suppose if you miss that LED, you can have a key called view key over there. You can press that key that if your attendance has been marked, you get a green LED as you get a red LED. Next slide please. We have the third session as quotient answer session. First of all, what will happen in quotient answer session is the receiver will send, will broadcast a packet cussing a timeout period. Like each teacher can give five or six minutes like whatever he thinks is suitable for the quotient to be answered that will be broadcasted in the packet. So when it is received by the clicker device, a clock will be set for that particular period of time. If you answer that thing, if you answer to that quotient within that particular time and press a lock key, that means you are sure that this is my answer. Your device will go into PM2 mode. What is PM2 mode is power mode 2. One of the major difference between version 1 and version 2 is that we are saving a lot of battery over there, battery power. The power mode 2 will operate in micro-amperes whereas your active mode is actually functioning in milli-amperes. So it is like 10 to the power 3 times. So you are saving a lot of battery over there. Now when it goes into power mode 2, we are configuring a sleep timer. The sleep timer will be run through DMA. So when the timeout occurs, the sleep timer will call an interrupt and your device will wake up. When it will wake up, the receiver will again pull each and every device for its answer three times. For three times, it is most assurable that you get the answer. Next slide please. The voice session, the version 1.1, 1.0 and 2.0. This is the major difference between both of them. The voice session can be held anytime except during attendance, during question as a session and when others are talking. It is very logical that you cannot raise your hand when others are talking. An attendance session obviously everything is so logical. Now the point is when you send a voice request, it will get registered at the back end and a pop-up window will come at the teacher's end. It will say this student wants to get a voice communication with you. It depends upon the teacher if he wants to say yes or no. If it says yes, there will be one-on-one connection between both of them and no one can interrupt unless that thing gets over. The voice transmission is definitely on the level. As I told you, we are using a serial number, a missing packet comes later. It will be discarded. Coming over to the next slide. Now the advantages that are there is voice integration. Voice integration, obviously the major difference. Less power consumption. The protocol team has worked really hard to make sure that less power is consumed throughout the process. Like it sleeps whenever it's idle. Keypad utilization, we had three into three metrics. Like lock key, one of the key which is used to lock the answer is actually also being used for voice. The lock key is only utilized during the quotient answer session. And we have made sure that during quotient answer session, no one can ask for doubt session. So that key can be used in voice session. So it's complete utilization of the keypad, which in turn will reduce a total money. Like the device will be less costly, you know. The ensures maximum data reception. You are polling three times. So by three times, you are sequential polling each and every person. If I poll three times this person, he'll definitely give me answer once. Most of the time, 99% of the time this will work. And model according to practical needs. That is one of the advantages. Now when we were designing the protocol, we came up while designing, you come up with new ideas which you actually cannot implement at that particular time, but it will definitely improve your device somehow. So we came up with three different ideas. The first one was new polling technique. Now what is happening in our protocol is that we, the receiver will poll each and every clicker present in the room. However, what you can do is, when I poll the clicker one, the clicker one will actually broadcast a message. You always broadcast a message. So clicker one will broadcast, clicker two will also receive that and during that time, the clicker two can also send a packet. Now you might be wondering that there might be a collision, but it won't happen just because of the triangle rule. You get AD, DC and CD. The two sides are definitely greater than the third side. So looking at that rule, the I plus one will send a packet later than I. Another thing that we came up was network differentiation. Normally clicker is being implemented in a huge classroom like 1000 classroom, 1000 students strength. However, we have two classes side by side. Both are using clicker devices. Now during this process, a clicker ID is present in this room, as well as under other room. And the strength of the signal is sufficient for both of them to detect it. Under this circumstances, there can be a mishap. So in order to avoid that, we could have a network ID attached in the packet format. What will it ensure is that your packet is sent to the receiver that you mean to. This one has to be done manually. That is, depending upon the teacher, what teacher asked you to put on the keys. The third one we came up was a bit complex, a bit tacky, but a very efficient one. It was distributed receiver system. You have to think, you have to make it very clear that when your each clicker is bound to a one particular receiver, this is one thing. Now in this distributed receiver system, we have one receiver and many slave receiver. So it's like hierarchical structure, like students and teacher, something like that. So in this, we have one master receiver and some slave receiver. So what happens is, when attendance session is going on, that time we bind clicker to the receiver. Now suppose you have five receivers and you have to make sure the one nearest is get binded to that clicker. So each five of them will send attendance packet sequentially. When the clicker will get attendance packet from all five of them, the first one he'll get, he'll calculate the received signal strength and will save it. For that he'll have five different signal strength. The one which he has the maximum, later on he'll send a packet to that particular receiver and it can get binded over there. So this is basically what the protocol team has come up with the ideas. Now I'd like to call Falguni to come over and explain voice integration part. Good evening everyone. I'll be explaining the voice integration part of clicker hardware. The major tasks in voice integration are to receive the audio input from the person speaking. This is in analog form. So we have to convert it into digital format using the analog to digital converter which is the ADC. And from the output of the ADC, we take the digital numbers as your signal, you convert it into packet format with all the other information required to transmit it. Once you have it in packet format, you transmit it wirelessly using the chip to the receiver buffer where it is stored in a chunk and it will be transmitting one by one to the speaker where it will be played such that it's heard on the receiver side. And this is done using DMA such that major CPU time is not wasted in just doing this task. And one more method called delta sigma modulation is employed so that you have high quality audio output without many external components in the circuit. This makes your circuit smaller and better. And master slave configuration is also used. This is, this works like the master transmits something and the slave receives it. And after this, the master listens to gave his has got. Now if once this is correct, whatever it has received is correct, it will send something like an acknowledgement and the receiver will listen to the master get this and then transfer it to the playback buffer such that it can continue with collecting everything in a buffer and being it on the speaker. This ensures the proper message being transmitted and received. Microlaw compression is one more thing employed such that you can compress the data which saves a lot of space and time. Our human perception is not sensitive to small variations in loud signals. So, it's quantization of low level signals on a finer basis and closer quantization for louder signals. The next one is the RSSI module that is the received signal strength indication. This works like if once enabled, it will be appended into the packets received by the receiver. If syncware detection is disabled, it will be continuously updated such that you keep getting the values. You read them, you collect as many values as you want. We have taken a 32 size buffer. You calculate the average and a range of minus 30 dBm to one dBm is considered optimum as the received signal strength. This is divided into five different intervals such that you have a definite value what you get on your mobile screens like one, two, three, which displays a received signal strength. Battery monitoring is the next module. The ADC itself can be configured such that the internal voltage source that it gets can be sensed and converted in form of numbers digitally. This code in the ADC registers, you can pick it up and average it over any number of values and get an average value divided according to your optimum range, approximately five or six levels and displayed on the LCD panel, which will be done later. The chip is found to work satisfactorily in the range of 2 to 3.6 volt. 3.75 is the maximum voltage it is supplied with. Now I call Anusha to explain about the printed circuit points. Hello everyone, I am Anusha from PCB Design Group and I am going to tell you something about PCB. First of all, let me tell you that PCB is not Pakistan Cricket Board, not even Process Control Board, etc. It is just a printed circuit board. It just supports some electronic components and connect them electrically using connective pathways, pathways, tracks, signal traces, etc. It is also referred to as printed wiring board, HOD wiring board, etc. Let me tell you how to design a PCB using EGLE and PCB design tool. First, let me tell you about EGLE. EGLE, it is just an easily applicable graphical layout editor. It consists of four different types of editors, namely library editor, schematic editor, text editor, board editor. One can go through a help, go to general option, where we can get a window open, editor and commands will be there. Next slide. I am so sorry. Library editor is there. Here, we can create a new component. Further, we have to follow three steps. There, we have to create a package and then symbol and then a device. Device is nothing but the connection between package and the symbol we have created. Symbol means we will just use it in the schematic editor for showing the connections between the components. And package means we will show it in the board editor where the connections will be shown. And we can even update a library, which is already created. There, we have to just create a package and symbol. Device will be automatically done when the connection is done. Library editor. The two new components in EGLE we have created for this design is they are CC2510 chip and the two folded dipole antenna. This is the package we have created. You can see the green colored pads. They are just, they are nothing but the pins in the symbol. We can adjust the properties of these pads like shape, diameter, size, like elliptical, square, circle shape we can have. And we can also place the text wherever we want. And this is the symbol we have created. Just like packs in the package, we have the pins in the symbol. We can just connect them in the device. This is the device. Here you have to just give a command called package. Then you can get the packages whatever you have in this library. You can just click on the package you want to connect with. Then you just click the button connect. Then it will show the pins in the symbol and the package, in the pads in the package. You just go on clicking connect symbol. Then they will be automatically connected. And for the dipole antenna also we have done the same thing. This is the package for the folded dipole antenna. And this is the symbol for the folded dipole antenna. Now schematic editor. As I told you, here the components are connected using the symbols we have prepared in the library. You can just add a component using the command add or you just go through the shortcut given here. By selecting a component we can get it on the editor window. And the properties of that packages and the symbols we have created are editable here also. And this is the final schematic of the PCB version 1.0. It consists of some external circuitry parts also like BJTs, LEDs, and audio jacks, et cetera. If we, board editor. In the board editor we just edit a board. Here we can directly get the board file from the schematic itself by switching it to the board editor by directly switching from the schematic editor. The board file will be created on the left side. Those components have to be moved to the right quadrant 2 so that we can connect it properly according to our design. This is the actual schematic what we have to make. It just consists of board pins, connectors, antenna, battery, assist, and capacitors. It excludes the external circuitry parts like BJTs, audio jacks, what we have seen earlier. And this is the board file for the schematic above shown. Here the components are placed in the board. Using the auto command, you just route them according to the auto command. And the default parameters are all consistent except that routing rate. Next slide. Actually the default value is 50 mil. You have to adjust it to 0.8 to 1 range so that the space between two wiring can be made small. Sometimes for larger circuits, auto routing takes 5 to 6 hours for the above circuit to be designed it took 5 hours approximately. And even after that auto routing, you will be finding some ratchness. Ratchness means something like random connections between two pins or connections with a proper routing. They can be edited and routed manually. And the color of the components and wiring, they all can be changed using the command display. PCB is also a design tool where one can design board files. Here we have to load and connect each and every component by ourselves. And a new element can be created in the board file itself, but it can be stored in a library as we done in the Eagle. Here also auto routing can be done, but for that we have to connect them using ratchness at first. But mostly auto routing doesn't help us for design. There are some disadvantages I'll be telling you. And it would be better for us to go for manual routing. And the disadvantages, this is the board file after auto routing. You can see there, the 45 degree line is not used while auto routing. And also the ratchness are found which have to be routed manually. So it's not preferred actually. And this is done by manual routing. And here two things we need to be careful with are the proper placement of components. And you should be take care that there should be no overlapping of the wires on the same side, on the same layer. Like there is some software called GEDA in which we can prepare schematics. They can be loaded into the PCB software. And the same board files can be created using like EGLE. That's it. Thank you. Good evening all. I am Anshul. My team and I represent the CLICA software. The CLICA software has three modules. The first, the integrating open office with the CLICA software database. The secondly is the voice integration. And thirdly, the error handling. Now I am going to discuss about the integrating the open office with the database. Now this has got the four buttons. What we presented in the open office, the integrating part. Please move to the next slide. In this part, we just integrated our module to the software. Means in openoffice.org, we just put in our new button that is CLICA, which consists of the five buttons. That is the template, save, charts, slide layout, and the show response. Now each of them has the different functionality, like the template. It generates a text boxes, editable text boxes, where we can insert the question at the time of the presentation. Now in the save button, when we are going to save the save, click on the save button, it will just save the particular questions into our database, which can be further modified and save it for the later records. Then the some more functions like chart, delete, slide, slide layout, and different modes button, like show response to show the response at the runtime. Please move to the next slide. This is how we just integrate the open office.org database with the CLICA database. Now here, whatever the questions you have put it into the template, that will get the save into our database. And then after that, you can just modify whatever you want, like you can just put the level of difficulties. You can just put the credits, whatever for the different one, the different durations would be there, and like this. Now I would request, these are all the parts that we have come across here. And we would like to call Ankita to represent the next module. Thank you. The voice integration part, basically we were assigned two tasks. First was the GUI designing for the interact when a student wants to ask a question or give an opinion by clicking on the CLICA. Second was playing the audio fragments one after the other and deleting them side by side from the path mentioned in the code. It was such that when the XA button is pressed by the instructor, the path that is mentioned in the code, it will look into that and it will start searching for the .au extension files. It will start playing them one by one and it will start deleting them also till the entire folder is empty. And the future expects that we actually think that can be there. The first is the task of receiving audio from hardware and creating their audio packets. This was actually intended to be completed this time, but the format of the audio files was unknown, so we could not complete this task. And the other one is a feature of storing a request from the student when rejected. If a instructor feels that a student has interrupted him or her, if he rejects it, even then the audio packets can be stored somewhere so that it can be viewed later. The next is a button can be added on the interface which will perform the action of saving the audio packets for the future use. And this task is not performed as in if the audio packets they are played, it's not stored somewhere else. It's just at that time they are played and it's viewed. Next. This is the GUI that is prepared for the voice integration. It basically consists of many panels in the main frame. First is the clicker, I mean where the integer is written, it is the clicker ID number. Next is the student ID, next is the student name. We'll just retrieve the clicker ID and the next two can be retrieved from the database. And then it's the accept and the reject button. If the reject button is clicked, it's only that it's deleted from the database, that is the vectors that we are using here. If the accept button is clicked, it's like it will first search into that path and it will start playing the audio files and deleting them side by side. In case there is no path, sorry, in case there is no audio file in that folder, it will return null but it will still wait for few seconds and it will wait for the packets to come and if still it is not there, it will return null and it will stop. And one more thing, if the last panel is also dealt with the entire GUI is going to, it's like it will disappear. Next, next is the error and the exception handling part. The testing were done to find out all possible exceptions and to show an error message on occurrence of an exception by giving dummy inputs, giving the outputs, comparing them with the desired outputs. As an example shown here, if the backhand is not connected with the MySQL database, it will show this error message. And one more example can be like if in a username, if any special character is added to it, it will give the error message at that moment only. And next is error and exception handling were performed using TriCatch by throwing exception methods on the falling files. The falling files were actually dealt with, add new question, attendance, conduct quiz, create quiz, quiz database, Java Python interface, login page and the instructor page. Next, on a conclusion, majority of the tasks that were actually assigned to us, they were successfully completed. It was a good learning experience for all of us and a different exposure. I would like to call Anisha for thank you speech. There are many people we would like to thank. We first begin by thanking Professor Patha for providing us with this mentally stimulating environment and for providing us with this great opportunity. We would like to thank our mentors, Ms. Racha Tiwari, Ms. Devya Tiwari, Kumar Love and Mr. Jayant Bansal for their meticulous and guided support. I'd like to special thanks to Mr. Nagesh Karwali for being the most approachable person. Mr. Manju Patel for sailing us through highs and lows. And last but not the least, Mr. Vikas Chhatri and Mr. Dile for managing almost 90 of us. It was a real chaos and thank you all of you. Composite hardware and software. Roughly, what is your estimate of effort and calendar time required to complete the voice integration at the hardware and software level? Just a guesstimate. Said I can plan for that activity. We were very eager to start using that. Insanely, the chips have arrived finally.