Hello everyone. Welcome all of you to the first session of today afternoon event. So first of all, for the first sessions, I want to introduce to all of you to Associate Professors Wien Duc Minh. He is a lecturer from Hanoi University of Sign and Technology. And he is also currently a Professors at School of Electrical and Electric Engineering. And Mr. Minh has a master and doctorate in the fields of digital system design and verification. And currently he is a teacher at the fields of digital system designs at Hanoi University of Sign and Technology. And now please give him a big applause to welcome him to the stage. Thank you MC. Good afternoon everybody. So today I would like to show you our works on using ChessGPT, OpenAI ChessGPT, to design a spine neuron network accelerator. And we also show you how can we speed up the design process using OpenShot's framework. And so this work is contributed by many people in my lab, EDIBK laboratories, School of Electrical and Electronic Engineering. So I show their name here. Something wrong. Is it? It doesn't work. Okay. Okay, now it's work. So in this talk, I will firstly introduce you the fundamental of spine neuron network. It's a new type of neuronal morphic computing, which targeted in ultra low power neural net computing. And here I will show you our desired requirement. What should we do? And also the architecture. And then in the next session, I will talk about the design methodology that leverage OpenAI as the tool. And then after having the design, we also need to synthesize and physically design the chip. So we show you how to speed up the process using an open framework. It is a rich-sized-based framework. And then some conclusions. And the challenge is that we still need to face in order to use the open framework in a real chip. So let's first start with the very basic knowledge about spine neuron net and the neuronal morphic computing. So here you see our brain. And our brain is organized into a kind of column. And it is a biological cell. And in this cell, you will see that the neuron spies or fires a spies to another neuron. And now we want to mimic our brain using some kind of chip, the digital chip. So this semiconductor neuron. So here you can see that we want to... So here, for example, you have biologically... No? So let me move here. You have the biological cell. And we want to mimic it using this type of digital cell. And we call it a core neuron core. So here you see the neuron. Here one of these is a neuron. And we have the axons that connect to the neuron. We go to the next slide to see it. So here you see the neuron. And the neuron is connected to another neuron via the axon. And here we have a connection with synapse. So now we want to mimic this using electronic elements. So here we have the spine going from the network and go to the buffer and then via the synapse connection go to a neuron. And then the neuron will calculate, compute, actually accumulate the spine. And if the potential greater than threshold, then the spine will be fired by a neuron. So here's an architecture that's invented by IBM. And we call it True North architecture. It's a neuromorphic architecture. So here is more illustration of that. So you see that the neuron fires a spine to another neuron. And also in the electronic chip, you will see that the same thing happen. So we have the spine going from the axon via the synapse connection to the neuron. So here let's talk about the architecture. This one should be done before we can use any tool. So let me explain it. So here is the logical architecture. We arrange our chip into a network on chip. So you see the network on chip and each element is a neuron synaptic core. And they are connected via a neuron network on chip architecture. And for each neuron synaptic, we have the neuron core like this. And each core contains 256 neurons connected with 256 axons in a 2D network on chip. So here's the architecture. And here's the way that the whole network on chip works. So if a spine needs to be transferred from one core to another core, then a package will be formulated and transferred via the router to a core. And inside a core, the package will be processed to get a spine and do everything that I explained in the previous slides. So here's the way it's done. So you see that a package, a spine going into a scheduler. And then the scheduler will put the spine via the synapse connection matrix and then go into neuron core. However, this one is very complicated in order to implement in a chip. It's too complicated. So we need a physical architecture. So here's a physical architecture. It is a near-memory computing as new kind. So you see that here we arrange the whole synaptic core as a memory. And inside the memory, we have some computing element, which is a neuron block. And the whole core will interface with the bus. Here we use the whispered bus. So in order to this work for the logical operation, a safety will be connected to this. And we issue the read and write command to the memory. Because this one is considered as a memory. So the CPU will issue write and read command to that. And then after that, based on the command, the write read command, the whole system will work as we describe. So here's the architecture. That, of course, we need to do by hand manually. Then, of course, the architecture cannot be done automatically. But then after having this architecture, we can do everything else, coding, RTL coding, by using AI, Czech GPT. So let's talk about AI by its design flow. So here's a normal IC design methodology. So we see that at the beginning, we did the problem statement that I showed you. And then we do the specification. And then we have the design concept. And then we have top level design, system architecture. And we have persuadal code. So all of these things we done as I show you manually, of course. And then after that, we need to write the RTL code, the very local code, and we need to verify it. Also, because this one has the SoC, we need to develop the firmware using C language. And then after that, we can integrate them. We have the user RTL design. We integrate them into a hardware software system that can be co-simulated. So in this step, we can use Czech GPT. We can use OpenAI to develop everything. So the Czech GPT will help us to write RTL, HDL code. And then we need to feedback the Czech GPT with our feedback. Then it regenerates the code in an interactive way. And also, the Czech GPT helps us to generate a test band to test the code, the unique code. So here are the things that we leverage the AI code. And after that, after having the RTL designs, we can synthesize it using an open tool, which is OpenLane to get the GDS tool, which can be fabricated. OK, so here is some code that's generated by Czech GPT. So what we do? The Czech GPT can design the small modules, do the integration, and do the wrappers for the HDL. Then we need to review the RTL and create a simple test band with the help of Czech GPT. We can also generate a C code for the RISC file that controls the hardware. We can also generate the environment for testing. But of course, we need the HDL simulator to verify the generated code and give the Czech GPT the feedback. So here's some extraction from the chat. For example, we give some prompt and the Czech GPT can generate the very low module. And of course, we need to interactively feedback to the tool and the simulation tool is used intensively. And we need to give very detailed feedback. For example here, we see some potential overflow and then we give feedback. And especially, we need to do multiple chat sections. It cannot be used in a huge chat section. We need to split it into several modules. And each module will be generated by one section. And also here is a hardware software validation environment, which is also generated with the help of the Czech GPT. Of course, this design is already done manually. But after having this design, we can use the Czech GPT to generate the code to verify. So you see that here, we have C code which is generated by Czech GPT. And then we have the design under test, which of course is generated by Czech GPT. And everything will be integrated together using Czech GPT. And then after that, we can run the simulation. For the RTL synthesis, we use open framework, open lane, open road. Everything will be, after having the RTL design, we can run through the open lane design flow using the PDK SkyWater 113 nanometer. And we have a full digital synthesis flow. And then after that, we have ZDS 2.5 that is ready to integrate it into the SOC. So of course, only our design is not enough to fabricate a chip. We still need a rich file. We still need to sign off the whole chip in order to fabricate it. And then this also takes a lot of time if you do it manually. So here we leverage an open source SOC, which is rich file base. And it's totally open. Here you can see that it's a colorful framework. And in the colorful framework, we have the rich file SOC core, which is already signed off physical implementation. And then we integrate our core, our SNN accelerator here in the user IP design. So in this area, we have around nine millimeter square to fabricate, to put our design into that. So here we use a project wrapper. And it is connected with the core, the SOC core via the wishbone. And the reason why we have our SNN interface with the core using wishbone bus. So, and then by leveraging this one, we don't need to care about clocking DLL, RAM, and IO interface. Everything is done already, has been done already. So, and here's the result. So we synthesize it.  Our design can reach the clock of 40 megahertz. Which then the throughput to processing the image is around 1000 frames per second. And the power consumption is quite small. It's 0.8 nanowatt. And the most important thing we want to point out here is we need 60 mandates to design a chip. So it's quite impressive as before in order to design such a chip, we need many more mandates. And then we won the first place in the effect less competition challenges. It's AI-based challenges. So what have we can sum up? So we have developed a parallel network on chip, Spine, NeuralNet architecture, which contain both hardware and software. So it's co-designed. It's a near-memory hardware implementation computing. It is hardware, software, co-design. And we use RICS-5 based SOC framework with an open source EDA tool. But the challenges that we face is if we increase the size and the complexity of the design, more than that, then OpenLens will cause a problem. It's run forever. It's very slow. So I think the open source EDA tool still needs a long way to improve in order to serve a commercial purpose. Of course, for research purpose, it's all good. And also because now we use open AI, we use open AI, then the privacy and the IP problem need to be considered if we want to commercialize the IP. Of course, this one is for research purpose and everything will be open. So since there's nothing happened, but of course, if you want to commercialize your work, then you need to rethink about that, or you need a private Lyle Antrich model other than Chesapeake. Okay. So thank you for your reasoning. If you have any questions, then you are welcome. First prize, then the chip will be come to us in this April. And then after that, we can do some demo on the chip. Yes, exactly. I don't know whether the IBM or the Intel or he analog based, but of course, for publication, we have seen. Yes. Yes, of course. Yeah. It's a computing memory. Many people believe that analog is a little bit behind digital because of the process variant PVT, you mean, you know, and also it's not easy and it needs a lot of DAC and ADC to convert from the bit to the voltage. Yeah. Yeah, so ADC. The latency. Yeah. The latency will be large. Yeah. Yeah. I am. Yeah. Of course we, we need to. Just in two duration. Yeah. Is there any questions for speakers? Yeah. Yeah. Yeah. So you mean the advantage of the application. The direction. I don't quite. You mean the throughput? Propose. Propose. Yeah. Okay. Yeah. Okay. So this one is a new, new kind of neural network is a spine on it. So it's good for stream streaming data. Yeah. For example, if you, you have some data from the sensors. For example, or ratio sensor, then it will be very good for that. Of course it cannot compete to CNN in image processing because now CNN is very good at image processing, but this one will be good for, for that. So, because that kind of data, the data from the data. Recently, now we use, we, we use one small rich fine for a, for a network consists of the. Five calls. Each call has 256 neurons. So it's around 1000 neurons to control by one rich fine. But we believe that we can increase the number of call. Yeah. Yeah. Yeah. Okay. Thank you. I just realized that we have a fuzzy logic. Excuse me. Fuzzy. Fuzzy. Fuzzy. Fuzzy. I haven't heard about any fuzzy. Fuzzy logic, you mean? Yeah. We haven't do any comparison with fuzzy. Yeah. Yeah. Yeah. Yeah. Yeah. We haven't done it. Thank you too. Okay. So again, thank you for your listening. Wow. Thank you so much for your sharing. Anna. Yeah. Hello, everyone. Good afternoon, I think. Okay, yeah. It's afternoon. Thank you so much for joining my talk. So, today we'll be seeing how you can leverage blockchain to improve the security in OTA firmware update infrastructure. So, let's begin. I'm Swapnishandeya and also I've been part of various open source programs like Google Summer of Code. I've been part of OASP where I was working with private blockchains. So, OASP is actually security related so we were improving security using blockchains. So, cool. Okay, so let's start. So there are two types of updates in like how you can update your IoT. So, first one is your wired using wired method. So, here you connect your IoT device using a physical link which is your USB in case of this and in case of Arduino it's like some type of cable I don't remember that. Okay, so this is the most safest way because you're directly physically connecting to the IoT device. But there's another way. This way is not that practical because obviously in production environment you won't be like connecting to your car and then updating that firmware. The second way is over the air update which is most widely used here. Like you have a centralized OEM server and then you push the update like the vendor. Hello. Okay, so the vendor pushes that update wirelessly and your IoT device will pull that update on the centralized server. But since it's wireless and also a centralized server is being used it is not that secure and now we'll see how we can improve the security of the system. Okay, so yeah, so these are the problems with OTA updates. The first one is firmware blues in which like the attackers try to push malicious code into the IoT device and the malicious update will be like the IoT device will behave maliciously obviously. And the second one is DDoS attack in which the attackers like SNFs in between and then like flushes your device with random packets and your device will get into the boot loop. Third one is servers under sage and obviously it's similar to man in the middle attack. So okay. Yeah, so let's see some stats. Currently there are 27 billion active devices, IoT devices connected. And it's according to 2017 report and it will going to rise up to 125 billion. So you can see it's almost like five times. So you can see there also consumer sector is the largest one in which IoT devices are used and you don't want your users to like get infected. Your users are to get infected with malicious updates.  So here let's see. Okay, so now let's understand how OTA works over the update technology over the air update technology. So the first one is you have your source file, see source file in which your firmware is written. Then you compile it to object files using a compiler and then you link it using a linker to a binary file. And then when you have a binary file, you upload this binary file to your centralized OEM server. And then the IoT device which you can see at the bottom that pulls the update from the centralized server pulls the update as well as the hash. And then it recalculates the hash. We can see it this in the next slides also. So you can see here first vendor service pushes update binary file to the server through HTTP request and you get HTTP response back. After this the vendor service creates an MQTT call to the IoT device. So you can see here after that the IoT device will know that okay, there is a new update here. And now you have to update the update to the latest version. So from here, the IoT device will pull the latest binary file as well as it will pull the hash of that binary file to validate if it is like the if it is not malicious. So here you can see in the instructions, you can see it recalculates the hash by hashing the binary file and then compare it to the hash that it got from the centralized server, right? Then if it is okay, then it like updates to the newer version or it just rolled back to the old version. So yeah, so there are a few challenges in this. So first one is man in the middle attack. So when you are sending both the hash as well as the binary file from the same server, you can make it different also. But the problem is attacker can sniff in between like you have your Wi-Fi and you have your IoT device connected to that Wi-Fi, then anyone can sniff in between, read that packets, make changes to that packets or like change the whole binary file and then your IoT device will receive a different update. But it will not know that okay, this is not the actual update that it got from the centralized server. The second one is DDoS attack same in this case with random packets and your device will go into a boot loop. Okay. And the third and last one is which is the most severe one is when your OEM server got compromised. So in this case, anyone can push is like malicious update and it will directly go to your IoT device and infect the IoT device, right? Okay, so the need of blockchain is the problem is with that server and the vendor organization part. So here the server is centralized and we can improve the security using blockchain. So you can see when you push the update, the IoT device will pull it and send a diagnostic report back to the server, right? So we can replace it with the blockchain. It totally depends if you want to replace whole infrastructure or like whole server or like may run the blockchain parallel to the server to save the hash of the binary file in the transactions of the blockchain. Okay. So this is how it looks when you replace it with the blockchain. What you can do is the binary file was stored in server, right? But and also the hash of that binary file. What you can do is you can move it to a blockchain into a transaction and then you can send instead of sending a hash of that binary file, you can send this transaction hash of the block in the blockchain. So after like you can see when the this installation is happening, when the IoT device calculates the hash, it can query the blockchain through some intermediary HTTP server can query the blockchain and get a Boolean value supposed to a false and based on that it can it can either update or deny the update, right? So this is the architecture. I'll show more architecture in the presentation. Okay.  And each block stores some transaction or some data and each block is connected to its previous block through the transaction, sorry, through the hash of that previous block, right? Okay. So to manage this blockchain, there comes a concept of nodes. So this node, node is basically a Bitcoin node, your Ethereum node. So node is basically a software in which your whole networking layer, whole consensus mechanism, all these things are written and how to manage that blockchain, all that code is written in this node. And this is actually a single node. Anyone can attack this node and change any of the block. It would be not that easy to change one block because if you want to change one block, you have to recalculate nonce for all the blocks, which is very hard. But when you connect it to the network, now you have a network of nodes. So here, here, if somebody tries to attack one node and maybe two nodes and change something in both of the nodes, so what happens here is consensus mechanism won't allow to do this because you are like directly changing into the node and the other node has already those update, update blocks already like attached to the whole chain. So you have to hack the whole node or whole chain in order to change the update. So this is very hard. And that's why that's why you can replace your server like centralized server with whole network of chain, sorry, your whole network of nodes. Okay. So these are the benefits if you use it. First one is your immutable ledger in which you can store your update or your transaction hash depends on the blockchain you are using. Okay. And second thing is smart on reinforcement.  So and it is run on the blockchain only. So no one has the authority to claim that okay, this is my code and I will only run it. If it is on the chain, then whole network owns it. Okay. So you can write your logic of update whole update procedure whole update flow in this smart contract and you can deploy it on the chain and it will run automatically based on the conditions when it is when they are met. Third thing is decentralized security. Obviously that I told before this is a network and you have to gain majority of the network power in order to change anything into the network. Okay. So now let's see the implementations how you can implement this. So there are two blockchains you can use two types of blockchain you can use one one first one is your private blockchain and second one is your public blockchain. So in private blockchain obviously your network will be private. If you're a company you don't want your update to get pushed into a public infrastructure then obviously you will need a private blockchain. Second thing obviously public blockchain like Ethereum. So Ethereum Bitcoin is a public blockchain. If you do anything whole world can see it easily. Right. So this Ethereum is basically public blockchain but Ethereum has a tool called get you can which is basically Ethereum node you can fork that and create your own blockchain own blockchain also using a proof of authority consensus mechanism either you can use Ethereum or you can use hyper ledger fabric which is maintained by hyper ledger foundation in collaboration with Linux foundation. So this blockchain is for industry corporate users and this is basically a blockchain framework. You can use this to create your own chain launch your own infrastructure own infrastructure. Third one is polka dot substrate. So it's similar to hyper ledger fabric but it is much more customizable. It is created by polka dot foundation and it is written in Rust. So you can easily easily fork it. You can add smart contracts features to it. You can change whole logic of the chain. You can do anything if you have this polka dot substrate framework code. Right. Okay. So basically we actually I read a research paper on this. That's why I got this idea about this. So they were like four or five research paper published about this topic. I read them and I thought, okay, let's build this. They actually they also build at this and tested it. So in a hackathon, we actually built this using avalanche hyper SDK. It's similar to polka dot substrate. It's also framework. You can use it to create your own chains, same customizability. But avalanche is very much faster than polka dot substrate. So your updates will be pushed very quickly. It's it's like 65,000 transaction per second. As compared to Ethereum, it would be like 15 blocks in half an hour or I guess one block half an hour. I'm not sure about that. But yeah. So now here you can see this. This is the vendor service that is our blockchain part. And this is our IoT device. Right. So what vendor do is vendor pushes an update to the hyper VM, which is a part of virtual machine, basically a node in hyper, sorry, in this avalanche subnet network. So when the update is pushed to that network, the network, what it do is it pulls that binary file, right? And then it uploads it to IPFS. So IPFS basically a blockchain based decentralized storage, right? So it stores your binary file there. And now no one can change it when it's stored in the IPFS, right? And after that it gets the URL and map that URL into the blockchain that okay, this is the update for this device and this, like the parameters you passed during the HTTP request phase. And after this, all the URL and the info about the update will be stored in the blockchain. And after this, you can create an MQTT call for the IoT device. And now the IoT device will know that okay, this is the update, new update and I should pull it. But in this case, you will just give a transaction hash that okay, this new, this is the new, sorry, this is the new update, you have to pull this update, right? In the previous case, you have to give whole binary file and the transaction hash. But in this case, you will just give the transaction hash and the IoT device will just query the HTTP node exposed from the HyperVM1 node or it can query multiple nodes also and then pull the binary file from the IPFS, right? And also pull the hash of that binary file from the blockchain. And now this IoT device will have both the things and it can easily like recalculate the hash and check if it is matching and perform the update, right? Okay, so yeah, perform the update. Cool. So this is a whole infrastructure. We also have like a block explorer, which is basically you can see the transaction or the updates that you pushed. You can see all of that in this Snowtrace block explorer. So all this infrastructure, we tested it on our local host. This is for a hackathon. We won first prize in that. And okay. So yeah, so this is basically the smart contract reinforcement here. So what you can do is for verifying the hash of the like hash of the binary, what you can do is you can calculate the hash and then you get the hash, then you can query the blockchain. Okay, this is the hash what I got for this transaction ID, right? And use in that verify function. And this is whole smart contract. This is all smart contract deployed on the chain. And then the chain will this contract will calculate, okay, if the hash matches, and then it will just send a Boolean value back to back to our IoT device and it will just update the system, right? Okay. Okay. So now let's see what are the resilience against these attacks that I mentioned you before. So this I took from research papers, some of the research papers, because we didn't, we actually tried it on our system and we didn't got any expected result because we developed that in like two or three days. So, but we still managed to find some research paper and the analysis they did. So here what they did was for denial of service, they that the OTA library over the update over the air update library for ESP 8266 was like vulnerable for this DDoS attack. So they created a script and pushed a new update, like basically new update means random data to the node. So it was not update, it was like random data and they DDoS it and they got after some time, they got this time out update rejected, update rejected error. So here, because they got this because the ESP 32 tried to like got get this get that data and calculate the firmware hash and then it queried the blockchain and when it queried the blockchain, the blockchain replied, okay, this is not a valid firmware update that we are company sent to this device. So that's why it got like resistance from this DDoS attack. The second one was like man in the middle attack. So obviously, spoofing in between the network and then pushing the update to like the IoT device. So here in this case also, it like started the verification, you can see verifying with blockchain. So it sent the calculated binary hash to the blockchain and then the blockchain obviously replied false and then whole verification phase, like you can see failed and about it and reboot it back to its previous firmware. Okay, so, so I think we have time. So I cannot show you the actual demonstration because it's very too long. But I recorded a video in another conference. So I'll quickly show that to you. Okay. So if I go here, you can see this hyper ODA, this library we've been using elegant ODA, which is this hyper ODA is basically folk of elegant ODA. And we have changed some code to call our chain and then get the validation of that hash. And we will upload this into our ESP32, which is here. It is connected via like a wire connection. But this hyper is connected to my home now because we connected this IP because we wanted to see the serial outputs and whether the bit is happening or not. So, okay, now I'll upload the initial code to my ESP32. Okay. So here I updated like initialize my IOD device with a new firmware. And after this, what I'll do, I'll push the firmware from the blockchain. So you can see after this really sorry for that. Okay. So here you can see the update is done and okay. Rest is here. Which means these consecutive talks can be obviously asked us to be combined again. And then what I'll do is I'll look at this. So, okay, the bit is successful. We'll copy it and then we'll do this here. So now the blockchain. First of all, the IOD will be uploaded to a design storage, which is IPFS and then the URL of that will be changed. Okay. So here I pushed the binary file into the blockchain. And after this, you can see I pulled the update. You can see just HTTP call and you can see the data is there stored into the blockchain. And then these are the like the project library code. You can just go here or like disconnect with me. I'll provide this. After this, I pushed the firmware for this device IP. And you can see after this so you can see the consecutive dots were replaced with the plus. So the firmware is actually updated through the blockchain. Right. So yeah. So this was the demonstration and yeah. So these are the sources. You can refer to this if you these papers if you want more knowledge about this. And thank you so much. I hope you learned something awesome and hope you learned something amazing. Thank you so much. Do you guys have any question you can ask? Okay. Thank you very much for your very clear presentation. My question is to the smart contractor and we try to do some international take the transaction. But we try to keep the obligation and rise above both side. But maybe sometimes I can raise some dispute between such thing. But how we can show dispute. Okay. If we sign smart contract, whether or not we have opportunity to change the smart contract. Okay. Okay. Yeah. So I think dispute won't happen. Are you talking about like if we push the update into the public blockchain, then others might see it and cause a dispute like that. Yeah. Absolutely. Yeah. Yeah, you can you can change it. Yeah. If you're using polka. Also you can add your own smart contract implementation on how the smart contract behaves. Yeah. Yeah. Yeah, you can change it. Absolutely. With Oh, you are talking about that. Okay. Yeah. If you upload a smart contract to the blockchain, then you cannot change it. You if you want to update the smart contract, then you can create a new smart contract and push it to the blockchain. Then you have the newer version, but you cannot change the previous smart contract. Now you have the new hash of that smart contract and you have to use that in your infrastructure. There is also a problem there. You have to if there is some change in the code, you have to do that. Thank you. So thank you so much for doing my talk. All right. Thank you so much for this sharing. And I know that this will be a little bit hard to understand for all the students here. So I want to translate it into Vietnamese for some students here. So this is the end of the second sessions of our talk today. Next we will have a workshop, which we will be talking about in a little bit later. So we will be talking about the next sessions. So this is the end of the second sessions of our talk today. Next we will have a workshop, which we will begin in the next three minutes. Please stay tuned to add this room for the workshop. And the next workshop we'll call How to Create Magic Wand in Harry Potter using tiny MLs and edge impers. Please stay tuned everyone. Hello, hi. With you, could you please open your laptop? We will distribute the hardware with you, okay? Please open your laptop. Everybody should have a laptop computer with you. And they should install Arduino ID. I will share the software in my Penray, so you can install in your computer. Then you also need to install some other tools, okay? Cool. And this is a asynchronous workshop, okay? Could you please open this link for me? The link doc makigran.com slash magic van. Please open the link. All the instructions step by step actually documented in the link. So you can go with your own pace. You don't need to wait for me to explain the steps. You can go with your own pace and everything. We will distribute the hardware with for you like we have the hardware and the cables and everything with us. So we will distribute you when we start the workshop and you can use your own pace, okay? Is it clear?  Okay. And if I am speaking too much fast or if you don't understand, please rise your hand, okay? Hello, okay? Okay, cool. Is it all open the link? Link is accessible? Okay, awesome. We can open the link, right? link doc makigran.com slash magic van. That's your link. I think if you have a laptop, you can open your laptop. Do you have a laptop? Okay. If you want to sit there, you can sit somewhere like it should be some cable and everything. So it'd be better you sit somewhere there. If you're comfortable, yeah, they have a seat from that side, yeah. Okay. So this is a slide, right? Okay. So today's topic is about like how to make a magic band. So the magic band is based on tiny machine learning. So how many people are familiar with that machine learning? Machine learning? Okay, no problem. No problem. Okay, okay, good. So before starting a tiny machine learning, we need to understand what is machine learning. Okay, you might hear the word, right? AI, ML, deep learning, etc. So what is the difference? What is the difference between AI, ML and deep learning? Okay. So the AI means artificial intelligence means we are trying to mimic human intelligence using computers. Okay. So like it's like a similar to like we are trying to make similar intelligence that with the computers that is AI. That's called AI. There is two type of AI. Everyone know two type of AI, artificial general intelligence and artificial narrow intelligence. Okay. So artificial general means that's actually very much similar to the human brain. Second one is artificial narrow intelligence. Artificial narrow intelligence like it can do small small tasks. That's can be the chat GPT. That's artificial narrow intelligence, A and I. Okay. And AGI, this artificial general intelligence that couldn't do so many things that can might kill humans also. Okay, that's AGI. Okay, good. And next part is machine learning. What is machine learning? Machine learning is a subset of AI. Okay. That means like it can learn from data. That is machine learning. Okay. So you actually come to school, right? For what you are learning new subjects. So you are actually you're actually trying to read books. You are like a watching lecture, etc. You're trying to learn. So that part actually called machine learning. So it read the data, then learn from the data. Okay. So what is the deep learning? Deep learning means the algorithm that used by machine learning, different kind of algorithm that actually like Ken and that's an algorithm. So many algorithms are actually there. So deep learning is an algorithm and machine learning using the algorithm, we will try to learn. Okay. Artificial intelligence means using the knowledge to actually act something, to do something that actually AI. Got it? Now you got, now you understand what is the difference between AI, ML and DL. Cool. All great. I need your response. Yes? Yes? Okay. Okay. So, okay. So you might have questions. What is the difference between traditional programming and like machine learning? Okay. So how many people do code, do program like C++, HTML or anything like that? Okay. What kind of language you use? What, what, which language? I often run, I often branching in CN assembly. CN assembly. Oh, that's great. Okay. So there are so many languages, right? C, C++, Java, like Python, so many languages there. So what is the difference between normal program language and machine learning? Okay. Let's see. So in normal program language, we have an input and there will be some algorithm. Okay. And there should be an output, right? So we actually creating the algorithm and we give the input. That's clear, right? Okay. So when you come to the machine learning, instead of we are creating the algorithm, computer will generate the algorithm for us. Okay. So that's a two part. So first part is called like creating the model or training the data. So from there, we actually give the input plus output. We will give input plus output. Then we will get a algorithm. This is the algorithm. We will get the algorithm. Okay. This is the first step. This is called training the data. The second part is inferencing the data. For that, we actually, that's very much similar to the traditional program. We give the input and they do use the algorithm here, train the model and we will get a result as a conference. Machine learning is all about probability or statistics. So there will be conference about like how much percentage is conference in 100. Okay. Good. Okay. Cool. Because it's a very fundamental thing. So you should understand this one to get into the workshop. That's why. Okay. So next one, how machines are actually like understand things. So I think previous session, there was a professor mentioning about how human brains are working, right? Similar to that, how machines are learning. So this is how machines learn.  How do you like teach like his or like her about a dog or catch? How do you teach? How do you teach? You show them, right? This is a cat and this is a cat. That's how you show the difference between cat and dog, right? So what happened is like the kid will understand that the kid in the kids band, there is something called neurons. Neurons is a small, small memories. From there, the kid tried to store the data different side, right? So it might be sound from the cat like that's a cat. That's a dog. The kid will understand, okay, that's a dog or that's a cat, something like that. So what happened is like, what happened is like when baby, like the parent will teach them, kid, look, this is a dog. This is a cat. Then in kid brain, what happened is there is some kind of things called neuron development. Okay. The later, the kid will try to like using the neurons to understand, okay, this is a dog and this is a cat. Okay. This is how humans are learning. So far we understand that. That's we, so far we understand from different kind of research. This is okay, right? Good. Okay. Next, how machines are learning. So instead of, instead of the baby, I replace the computer. That's all. Okay. Instead of teaching, we are using a training. So like you can see here, we have a biological neuron that we have. This one is called artificial neuron network, so what happened here? If you want to teach a computer, the difference between a dog and cat, we need to show them, we need to show the computer, hey, this is a dog. This is a cat. Then computer will automatically try to understand what are the difference between a dog and cat.  Dog can do like bow bow bow like that and cat can do like something like that. Right? That's how like the computer will learn. The later point the computer can understand which is a dog, which is a like a cat with the neurons there that actually already developed. You understand now how computer learn, right? This is a basic concept how computers are actually using like NN to understand things. This is a part of machine learning. This is how machines are learned. So first we need to teach the machine, we understand what's behind it, the machine that use the knowledge. Okay? Okay. Okay. Great. Thanks for the feedbacks. Okay. Cool. So yeah. So normally let me make it big. So all the slides are also available in the documentation. So you can watch, rewatch. So basically machine to run machine learning, we need a big computer. We need powerful machines, which are GPU, which have a TPU tensor processor unit or graphic processor unit, et cetera. So in nearby, okay. Yeah, sure. That's better. So basically in like in the past, we need a big, big computer to render machine learning in like a, in computers. Yeah, cool. So we need like a big computers. It need at least like 60 to 30 dgb models, terraflop of a speed of like processing powers. We need to run the machine learnings. So we need like terraflop speed of things and we need GPU, TPU, FPG, et cetera. The next one is like mobile. Mobile means we can run machine learnings on mobile phone. How many people use Hey Siri, Hey Siri, like Hey Google, et cetera, right? That actually machine learning running on computers, sorry, mobile phones. Okay. The next part is TinyML. TinyML means running machine learning on microcontrollers. So today what we are going to do is we are trying to run machine learning on this device. It's called Xiaomi. So we are running machine learning on this small device. Okay. So we might already use a machine learning. How many people are using smartwatches? Smartwatches, right? So it can track your steps. That actually machine learning. It tried to recognize your walking or a step. We are like walking or sleeping or standing. It can recognize that actually machine learning. So that's about TinyML. So in the past, it's all about like internet of things. So we connect device with internet. Like if we can connect internet to the chair to whether to check if the person is sitting or not, et cetera, like that. But right now it's all about intelligent on things. The device can analyze the data itself. You can analyze if how many, like how many times a person sitting in the chair. So if you want to give some another notification, you can do some vital information check, et cetera. So it's all about like using machine learning on the edge because like we can save so many bandwidth. We don't need to send all the data to the cloud. We can process like from itself edge itself. Then do the only the processing data we can send it to the cloud actually. So, so what is a tiny ML? So tiny ML is actually a combination of machine learning and embedded systems. Okay. It's a combination of machine learning and embedded systems. And right. I have a few slides like it's a fastest to growing field of machine learning right now. So if you are a students, it's the best way to can try to learn it because it's the fastest way of growing field. And we have so many algorithm hardware softwares, et cetera. And it will do on device sensor analytics because all the things actually run inside the small chip. So that's cool. And always so ML and low power consumption. Yep. The main benefits of edge ML is like innovation, privacy and power cost and like reliability and latency because privacy is very important. You actually own your own data. You don't need to send the data to the cloud. Okay. For the machine, a tiny ML. Okay. Good. So this is one of the product that made by Adidas. How many people watch football? How many people watch football? Any football fans here? Okay. Cool. Right. So you might know Adidas, right? Adidas is coming like those make very good in like sports accessories. So they make a device to monitor the players like the styles so they can understand how many times the player kick what kind of kick they made, et cetera. We can do some things with the camera, but we'll get more information about the sensors, like how many, what kind of pass they do, what kind of dribbling they do, et cetera. So this is a product that actually relates by Adidas using tiny machine learning. So, and one more thing is tiny machine learning is not for all the things. It's actually only fit for a small set of things that actually we need ultra low power sensor devices. And if you, we can do image, it's unable to do like image processing like a big quality or we can do like a video analytics, but we can do some like a small, small like a sensor analytics to the edge predictions. Okay. So let's get started to the, to the workshop. Okay. So I think you might open this page, right? Okay. So that's about the introduction about tiny ML. Hope you understand everything, right? All good? Good? Say yes. Yeah, yeah, yeah, yeah. Okay. Thanks. So, so today we are going to make a magic wand. So this is an algorithm by the magic wand. Let me show you. So, so this is where we start and this device have an IMU, accelerometer and gyroscope. Okay. So it will run some machine learning model. And if it's detected gesture, it will send perform an action. Then like it will end. This is an algorithm. Okay. So this is our device. I'll show you the demo right now. Okay. This is our magic van you will going to make. So just want to connect here. Okay. So if I make a presentation, let me see if I can change the presentation very good. So I can actually move. See. So I can spell some magic. Something like that. So it will change. See. So it actually what happened is like it detected the gestures and trying to do some machine learning on the edge and we'll send the computer. So if I need to go back, I can like this tool back. See. Okay. So we can try to make one our own. So the first step is you need to do is like, we will distribute the device with you. Before that, you need to go these steps. First, you need to, first, you need to install the Arduino. Go to the website. Go to the website first, Arduino.cc. Then you need to download the ID. Please try to download the ID first. First, I try to install the Arduino ID. Yeah, you already have. That's great. If you already have the Arduino ID, then what you can do is like, you can follow the second step. Internet is here. This one step. Yeah, this one. Yep. Good. So how many people already have Arduino? You can download and install Arduino. If you have a slow internet connection, I can give the USB for you. Okay. Great. You already have Arduino. That's great. I think so many make this already here. Okay. The file. Okay. Can you open this page? For the documentation, you can open this page like this page. Okay. For the documentation, please open this page. And please note, this is an Antson workshop. There will be so many things going to wrong. Okay. It will be not work as supposed to do the best on the website. So we will try to debug. Okay. First, we are going to install the Arduino ID. You got the link, no? Open the link, please. I was going here. Okay. Cool. Now you can, you already have the Arduino, right? So now you can go to the, yeah, this one, you can follow the guides. Yeah, you can follow the steps. Whatever do you? Okay. Cool. You already have the Arduino, right? No. Okay. You can start. That's good. Whatever do you? Yeah. You want to try? Make a magic wand? You can do it together. Yeah. Just open your computer. Yeah. Try. You want a charger or something like that? So I'll just walk through here. Okay. So let me know once you complete the Arduino installation. Okay. So once you're done, Arduino, Arduino. Okay. So when you, once you're done, Arduino, you can open the ID like this one. Okay. First unit Arduino, then you need to, you follow the guide mentioned here and now 50 to 840 cents. So this is the device we are using today. It's called Shao. What? Shao. Say? Shao. Shao means in Mandarin means tiny. Okay. So it's tiny, right? Shao. Okay. So it's our, it's, it's, it's comes with a microphone plus an accelerometer. It's comes with a microphone and accelerometer in tiny device in the, and it's also have a Bluetooth connectivity. Okay. So we are trying to run machine learning on this device. And the first step is you need to install Shao in our 50 to 840 cents on your Arduino ID. That's the next step. Are you able to follow? You already know he's with the dinosaur. You guys are trying? Are you, are you following up? No. Okay. So you installed Arduino? Oh, okay. Good. If you want, you can use how the, how do you write it? Oh, okay. Good. Yeah, perfect. Installing the cents. That's good. And what about you? I was going here. Okay. Great. Did you install the nr50 to 840? Can you use the Arduino ID instead of PAO? Yep, that's one. You need to follow this one. Yep. Yep. Did you install this one? This board. Yeah. Not that one. That's ESP32. We need the, you can copy this one, copy that one, then paste to the board URL. Okay. Then you go to open the board manager. Yeah. Once it's done, you can open the board manager. After the workshop, you need to return the hardware to us. Okay. Please return to the hardware to us after the workshop. So we also have the USB cables. You need a computer. So after the workshop, you need to return the device to us. Because it needs some inbuilt sensors. You have a computer? So after the workshop, you need to return the device. Okay. Yeah. What happened? So you can open. It's a cable. Yeah. Just open it. So what happens inside? Like, it's a shower. So you can open the cable to connect with it. Okay. So let me show you. Okay. You're already installing, right? It's done. Oh, perfect. Now you're installing this one. Okay. Good. Good. Great. So whatever do you was going? Take your time. Okay. So you're trying. You got any USB? No, right? If people need more USB cables, let us know. Okay. Anybody need a USB cable? Let us know. You can follow the guide. You can follow the guide like this one. It's our Bluetooth, but you can connect with USB. So no, it will not show us a Bluetooth. Okay. Let's do. Let me know like once we are done with the installation. Okay. Let me know when you are done with installation. You need a type C. Okay. You have any cables with you? The MacBook charger? No, nothing. No worry. I'll give you one just a minute. Actually, you need to use Arduino IDE. So if you open the Arduino, you can go to the tools.  So first, you need to install the Shiavo. Go to the website. Let me open. Did you open this one? The page? I think it's one. So you need to open like, so we have some prices, those who complete the project. Okay. So if you complete the project, you will get some goodies, some prices. So try to complete as fast as fast. Okay. But for you, bling. Okay. It's awesome. So one person is completed a bling program. That's good. Nice. Nice. It's done. You are getting a blink. So we got a blink. So once you are done with it, like what do you need to do is like, let me show you go here and like a sketchbook and like, let me go here. This one. You need this link, right? Yep. MagicVan. Link.miklian.com slash magicVan. You don't need to wait for me. You can continue reading the guide and you can do like the session. You can continue. Okay. You got it? Okay. Awesome. So the first step is we are going to make a turn on the light of the shower. For that, I need to go like examples, basics, then blink. So I need to make sure that I selected the correct board from tools, board, and we need to select the NR50 to embed enabled boards to sense then port should be there once we connect the device. Once we connect the board or you can upload the code, make sure that you have the port selected and upload.  So what's the first program when you do when learning programming? Hello world, right?  But for electronics or embedded program, we do turning on turning a blink LED. That's actually the hello world for the electronics. So let's see if my lady is turning on it's doing the compilation. So what happened is converting the C++ code to the binary format so that it can read. Do the compilation. It will take it means more time because it's a first time. Let's see. Combination is done. After that, it will try to upload the code to my keyboard. Let's see the lady will turn on or not. Okay, it's uploading. There should be some issues with you need to make sure that this is how the correct port to have the correct board read, etc. Okay, awesome. So now you see the red light, right? The red light is blinking. That means the program is uploaded successfully. Okay. How many are done with the upload? Having any issues? Sorry? Okay, yeah. It's okay. It will take. Yeah, it's done. I think. Cool. Now you can try to upload the blink example and see. Try to complete. Okay, you will get some juice. Yeah, so you want to try? Yeah, actually, I got some work and then I just... Okay, if you want to try, we'll give you the board. Yeah, I can try. Yeah, sure. We need to use another 52 and the sense one. Yeah, then you can use any blink example. This one is a complex one, I think. Change. You can like, examples. Sorry.  Yeah, one, two, three, four. Okay, four people. That's great. So you're done with the blink part. Okay, now installing the CLI. Okay, perfect. Awesome issues. Okay, did you install the Python 3? Yes. And Node. Yes. Okay, then what's the error we are getting? Oh, okay, okay. You need to install this one also. Small one. That's an issue with the windows. Okay, so if you have any issues, don't probably can go to the next steps. Okay, you want to connect? You already installed the board. Okay, let me open tools. Board. Okay, you need to install this one. You need to go here. Okay, go here. And yeah, copy this one. Yeah, whatever you are going. Okay, installing. It's okay. Done. Okay, downloading file. Okay, this is the like a time consuming part. Once we're done with it, it will be easy. Okay, okay, it will take some time. But it's okay. Let me or I'll know if you have any issues. We will try to fix it. Okay. Meanwhile, it's installing. You can read the blocks, the project presentation, you can see, okay, inside the windows. Sorry, the Node.js. Okay, cool. Do we choose? Yes. Okay, cool. Great. What do we do? I'm going well. Okay, cool. Okay. Okay. So like if you're done with a if you're done with the bling example, you can try to run another program. Can you open this one? You can go and sorry, not this one. Where that page?  Okay, so once you're done with the blink part, you can go here and do this part like step two. Step two means fetch accelerometer data from shell. That's a step two. Okay. So what you need to do is like just click here, click here, the copy, just click here, then world code. That's all. Then you can upload. That's all. It will automatically do the like combination and it will upload. Okay. Okay. You might get some error like you don't have the library or something like that. In that situation, you can you can like copy this LSM D like LSM six DS three, then go to here, then like paste here. So you can download the library for that. It's called seed Arduino library. You can install that if you get any errors. So it's doing the compilation or getting any error. Okay. Yeah, that's her. So you can go to the library. This one you can enter the name LSM not that one. You need to choose the seed studio.  Like, yeah, that's one. Yes. Yeah, perfect. Yeah. Okay, you can click install. So I think you will get an error right? So you can sell. Yeah, perfect. Yeah, it's okay. Okay. Once you're done, once you're done installing that, and once you're done with uploading, what you can do is like, you can open this thing called a serial monitor. If you open this, you can see the XYZ acceleration. So see the values will be changed. So it's an accelerometer inside the device. Okay. And if I go here, I can see the protein values. So this is the XYZ access values. This is the data. This is the raw data from max meter. We'll try to collect the data. We will try to collect the data and use machine learning to understand the data. Okay, later points. So far, this is the raw data you see. So this will be the up and down. This will have to write it. If I don't do nothing like to like table. See, you can detect all the vibrations from here. Okay. So this is the step two. You want to try your computer? Okay. So let me know if you're done with the step two. Okay. Ah, okay. You can go to the tools. Tools then port. Make sure that. Okay. Okay. That's fine. Can you disconnect? And come back. Let me see. Let me check. Okay. Okay. It's okay. That's fine. Let me see. Maybe it's related to my video. Can you go to the port? Yep. Do you have another USB? Do you have another USB that side? Yeah. Can you try? Because sometimes it will not detect any proper USB. Yep. No. You've done the blink part, right? Yes. Yep. So there's something wrong. Not yet. I think it's not going to connect back here itself. So let me know. Let me know, like, once you're done with the step two. Okay. Yeah. Done. Having issues. Do you install the library? Oh, look, your code is also not uploaded right yet. Ah, we need to use this one. Embed. Okay. Then try. Now try. Let's see. It's not connected yet, right? Can you close the ID and reopen it? Okay. Then try. You can choose the port. No, actually, it is not connected yet. It is not detecting how to compile. No, actually, the blinks gets this way. Try it again. Do you install the library? Yeah. Not this one. You need to use the Arduino one. That's why you should. I'm sorry. I'm going to see it today. You can go below and choose. You can remove that one. Don't you need to add the board as a... Yeah, I think you already added it. Okay. Then it should be... It's a class difference. Okay. Anybody completed the step two? Step two? You done? Oh, step four. That's good. Yeah. We'll get the price. All done. Still having issues? Okay. Okay. Can you just move? Try this board. Did you get me? Yeah. Yeah. Yeah. Yes. Yeah. So you got the data, right? Yes. Perfect. So we got one complete. Okay. So I think you have an old Arduino. You can go to the library, include library. Yeah. You need to go to manage library. So there's another window. So there you can enter the library name. So, yep. Here you can enter the name, the number. Make sure to download the seed library. Issue? Oh, okay. Let's see. Yep. So it's going. Okay. You might have some issues. So let me see. Shower. Number four. That's good. Okay. Let's upload. Let's see. Okay. It will be... The lady will turn on if it's successful. Okay. Looks good so far. No. It has some issues. It's too far. Okay. Good. It should work right now. Next step. Where did you get? So you went to the fourth step?  Yes. Oh, perfect.  Let me take a video of you like doing the complete step. Perfect. Okay. Okay. Cool. The next step is like we need to send the data to the edgimples. Before that, you need to install some tools. Like, did you integrate an edgimples account? So, yep. You can just go back. I think you can get started. Sorry. Yeah, you already have that account. That's good. Yeah. You already did it with the edgimples? Oh, that's good. Good, good, good. Can we accept the project? Is it connected by myself? Yeah, you can collect your data yourself. Yeah. Yeah, sure, sure, sure. So, you want my project link? You need to access my project? Yes. Okay. Let me... It takes a lot of time to collect. Yeah. So, we already have the collected data.  There should be some links where I collected the data here. So, if you have any issues, you can already use the collected data that I already collected before. So, I see people are going. That's good. Okay. The next step should be... So, the next step is like we need to send this data to edgimples. Okay. Because you remember so, in machine learning, what we are doing is like we need to train the data. We need to train the data first. Then only we can use the data. Right? So, to train the data, we are using a platform called edgimples. So, edgimples is a tool where we can upload our data, then do some training, then we can download the like header files for the C++ or C. Okay. Cool. For that, now we already have the data here. We have the data like let me show you once. So, this is the data we have. We are collecting the data, but we don't know. This is meaningless data. Right? There are so many data. It's listed there. So, we need to like log into first edgimples. So, you can create a new account. It's free. You can create a new project if you don't have any. Like I can say magic van force. Okay. I'll create a new project, magic van force. So, I just need my personal project created. So, I have magic van force. This is my project. Okay. Cool. So, there's a two method you can do. You can upload the data in two method. One is like you can go here and you can find, you can install the CLI command line interface to upload the data. Otherwise, you can go here and click. If you click here, you can download the data set. Okay. Cool. So, I am going to download the data set. Before that, the magic van too. It's going on here. It's not detecting. Okay. What I can do is I can give you my shell. Try this. Okay. Thank you. So, again, right? Perfect. So, it's awesome. I actually fixed it. Actually, there are some two types of boot loader. So, it might be skipped sometimes. So, that's why. So, we can fix that by with a small eraser button, right? You can tap that two times and it will pop up like it's a flash drive. Then we can do the firmware. So, that time, see? Okay. Cool. So, like, yes, with the examples. Okay. This one, right? This is because you don't have the C++ libraries. So, what we can do is try to know is like, okay, did you try to install this one? Right? So, next what you can do is like, we don't need to go this way. You can do, you can skip this one, states, and you can download the data, then upload directly to edge gimbals. Okay. So, some do miss out with big issues. So, it's maybe due to the computer. That's why we already have the data. Good. So, you can go to the, yeah, sketch, include library and manage library then you can delete it. So, you might receive your magic band with you, right? So, you can attach your shower with it. You can attach your shower. We have some tapes. So, you can try to attach magic band with the shower. So, yeah, try to attach. So, you can attach. So, how many? Like, if you only give this one. Okay. So, yeah, that's good. Okay, perfect. You guys are also trying, right? Okay, yeah, install. Yeah, install, yes. Okay, perfect. This one, mpadrode. Second board. It will take even more time since it's a big board. So, you got the guide, right? This guide you have, right? Okay, meanwhile, it's come barely. You can try to attach the stop stick to the board. It's not a stop stick. It's a magic band. Let me see, like, if you want to delete, right? Okay. So, yeah, manually delete. So, if you go here, so, do you know this one, right? Yeah. So, you can delete it. Yeah, and did he install the ride library? Okay, okay. Then it should be work fine. We'll see. Okay, try to attach. Uh, his computer, shut it down. What happened? Who was shut it down? His computer. Oh, no battery? Yes. No battery? Yes. Do I charge it with you? Oh, that's, that's sad. I was going, I was yours. What happened? You have some issues. That's because you don't, I think you don't have the library, okay? So, you can go here. Did he install the library? Yeah, you already have the library, right? So, what happened? Show everybody, right? Okay. Okay, we can remove this one. So, it's make some conflict between two libraries. That's why they should go and see if it's work. So, try to complete. You will get some prices, okay? So, try to complete. Really? Yeah, you can try to attach your shower. Everybody done? I think we missed some part because you can follow the guide. It's fine. We should sit. It should be there. Yeah, you need to search for it. Like, where I didn't get the library. Yeah, the library. Yeah, you can like L as some, I think that's the library, right? You said L as some should be here. See the lesson, lesson, what's the library name? L as some, lesson D lesson six, right? Six D. Yes. It should be somewhere here. Yeah, that's because it's you should make it a capital. Yeah. Yep. That should be another one. Yeah, this one. This your laptop? Where do you go to the stickers? So, yeah, after that, try to upload the data to here. So, I'll show you how to do that. Go here and like download the data set from the page. Download the data set from the page. You can download the data set. So, here you can see the data set. Okay. Now we are going to the example spot from here. You can see add access in data. So, click here. Add access in data. Then you can mention upload data, then choose where the data is coming from. So, I'm taking a folder. So, I already have the data like not that one basically. Just a moment, like, so you need to unzip the file before uploading. So, I'm going here. So, I need to unzip it like, okay. So, now that our page is uploaded. So, select a folder then downloads. This is the folder I'm selecting the data that I already have. So, click upload. The data should be uploaded here. Okay. And now I need to use upload data. So, once we click upload the data, all the data will be uploaded to edge gimbals. Okay. Download the data and upload it. Okay. Once you upload the data, you can open here. You can open here and see the data is actually uploaded to the edge gimbals. See. So, there is a tool method. You can collect data directly from the edge gimbals because we don't have enough time. We are directly uploading the data. So, you can see different kind of data. Up and down, idle. When the van is not moving, it will be idle. And if it should be an up and down, it's like this. And if it's a left and right, it should be like this. Okay. Okay. Okay. Cool. The next step is after you upload the data, you can go to the create gimbals. This is where we are actually creating the machine learning part. Okay. So, you can sell. This is our input data, the time series data. This is our input. Next, we need to make some processing. What kind of processing are we using? So, here we are using the spectral analysis. Spectral analysis we are trying to do because that's actually good for accelerometer. And you can see these are our axis like x, y, z. These are our input axis. The next one is we need to do some machine learning part, the algorithm, what kind of algorithm we choose for that click here. So, here we are using classification. So, we need to classify whether it's a left and right, whether it's up and down. Okay. So, click classification. Then, then same builds. So, these will be the input data and we get output task like left, right or right. So, this will be the we get so many data, but we will process, then we'll get these are the output. Okay. Great. Save impulse, then we'll go to the spectral analysis. Now, we need to define what is spectral and what kind of power we are using. So, here you can see. So far, so far, we don't need to change anything to make it simple and generate the features. So, this part, the spectral analysis try to understand the data, they will do some performance and they will try to differentiate it. Let's see if we can find it. It takes some time. Normally, to do with your computer, you need a high power like GP or something like that in your computer. For now, we are using a jimbal. So, we don't need to much more power. Yeah, did you upload the data? You can create login, you can create an account. So, it's uploading the data. So, I'm going to make the project to public. So, you can also access the data. So, once you're done with the impulse like spectral features, you can see the data like this one. See, these are the like a feature explorer. So, we can see this will be the up and down and this will be the idle and this will be the left and right. So, computer trying to distinguish between different data. So, that means if it's like this, that means it's good. Computer can easily recognize the difference between different data sites. So, that's good. It's very much mixed. So, it's very difficult. So, we need to do more performance. After that, you can do to the classifier. The classifier is where we create the artificial neural network. So, here you can see this is our neural architecture, neuron architecture. So, you can see we have some input layer, 39 features extracted from here. Then we use like two dense neurons, neural layers. And we are like at the last, we have some output layers with the three classes. Okay. And yeah, once you've done, we can try to click. You can see start training once we click start training the Michelin model will try to run different kind of approach. We can try to set how many approach we need to run, etc. So, this part is called confusion metrics. How many percentage it actually have false positive or false negative, etc. So, you can see it's actually have a 100% accuracy. That's good. And you can see the RAM usage 1.4 KB of RAM only we use and 15.1 K of flash memory we are using right now with this year we have another 50 to take 40 cents. So, that's good. So, once you're done with that, you can go to deployment. Okay. And you can click that you can search for Arduino and you can search for the next one. You can click build. So, this will be create generate an Arduino library for you. Okay. Next, what you can do is like, once you're done, you can download the library. So, you can download the library from here. This is the library I have. Okay. So, I just need to copy the code, you need to add as a zip file, then I need to go to the code, paste it, then again, I'm going to upload. So, I'm using my own magic land. I think it's somewhere here. So, we are running out of time. So, try to complete as soon as possible. So, now we are uploading them final. Okay. No power. You guys forget your charges. Okay. Okay. Okay. That's good. You can do the classification. For now you can select the default one. Go ahead and try it. So, I make it very simple. So, you don't need to change the parameters. So, okay. I think one person is doing the compilation. That's good. We are at the end. That's good. Okay. You don't need to do that right now. So, we can skip that like I can go here because it has some issues. It will take some time. So, it's already done, right? Step two, you already done, right? So, now you can go here. You can go here. Download the data set, then upload to there. Okay. Cool. That will be make easy. Okay. So, yeah. It will do. So, it will take some time to come build the machine learning library. You can see. Yeah. It's almost done right now. So, once it's done, we can see the data. Okay. How's it going? Going well? Combination, right? Yep. You upload the library. Michelle, any part? Yeah. That's good. You are the first one. Okay. Cool. Oh, yeah. I got some error. Some file was not there. Oh, you installed everything, right? Some file. Okay. Let's see. See. Okay. Let me show the error. Okay. It shouldn't be there is an error because it's working on cloud because we didn't change anything, right? So, yeah. Anyway. Okay. Let's do the combination. Let's wait. So, you can see, I just explained the code. Okay. So, these are our like libraries that we use. This one from that edge symbols we already generated. And this one from the extra meter. And these are the some parameter for the extra meter, like how much force, how much g, etc. This will be our ITUC address. And this is actually the machine learning part is actually happening. You can see here. We are just comparing the difference like values. See if it can do. Take bit time to compare everything. Oh, you upload it. That's good. Now we can go to the create symbols. Can you open the edge symbols? And create symbols. Create symbols. Then like you can order processing data. You can choose to say, yeah, keep there. Yeah, keep there. In terms of spectral analysis, that's we are using today's first one. And clicking to add a learning block. So, then click on that classification and do the same. So, now you made the architecture for the examples. Next, you can go to the spectral features. You can create a generate feature. Yep. And generate feature. Yep. We are part is the uploader. That's good for four o'clock, right? We have a few minutes left. Try to complete. So, this is, this is our final part. Now, if I open the serial monitor, you can see it to try to recognize. See, right now the board is okay. I think the algorithms different that I'm using. Okay. Not this file we need. This is not the file we need. So, few moments. Yeah, we can't. Oh, it's actually start on four. So, we can stop before that. Well done. If you're done, you can return the boards there. Okay. I mean, choose. Okay. If you're done, you can return the boards. Done, right? Yeah. You can put back. You can place your board here once you're done. Okay. Table and sticks. So, those are completed like almost. You can distribute. Hello, everyone. Well, thank you so much for Tatoon until now for the final sessions of Room 102. And for the final sessions, I want to introduce to you Mr. Masafumi Ota. He's the Founders and Representative of Japanese Raspberry Pi User Group. And he is also in Japan's and have Raspberry Pi based project and business in the Asia area. Now he's a moderate the Japan Language History on Raspberry Pi official forum. And he's also teaching open source lessons at Japanese Major's University. He's now looking into incidents by FOSS for license violation to find a practice. And now welcome him with the diff diving to Raspberry Pi 5. Thank you. Okay. Thank you very much for coming. Final question for the after a question, you know, the final keynote. Please join final keynote afterwards. My name is Masafumi. And I would like to talk deep dining Raspberry Pi. We will demonstrate some and to hold you to you. Anyway, thank you very much for attending. Many of you know me. This is me and the leading Raspberry Pi committee in Japan. And has been collaborating Raspberry Pi over a decade. And spending a while on the Raspberry Pi and the use cases and for agent, not only in Japan. I feel the many of the bikes. My hobby is riding a bike. And this is my bike and I took pictures on the Japanese lake. And it is on the good bike hobby. And I rode the bike off over the years. I have talked, I have talking on the many countries talking about Raspberry Pi. And I was, and talk about automotive grade renax. I thought it was a connected car on the Raspberry Pi at the Taiwanese and Raspberry Pi community. I have, and I hope all four, the last few years I talked about make-up fears, Shenzhen, and Raspberry Pi meet-up, you know, see the studio, and last session was on the hands-on. I will talk to you and see the event in the last few years. Today, and the team is press, and talking about, I would like to talk about Raspberry Pi. Now, you know, some of you don't know. So, and now, and Raspberry Pi is not sweet, and in X, because of the some of the, and the few discounted issues on the using X. Now, if you and get the latest information about Raspberry Pi, and take things, and you check them, and after the account, and the, their phone account, and they, and they notice many more information, and about that. And, and the benchmarks, and the, at the Taiwanese community, and Raspberry Pi 5, even now, and very much faster than old model. And later, I will, I will, and I will show you some demos, and the, about alien things, and it is very faster than, and using the Raspberry Pi as a product. And I will do a detail aspect, and looking into the Raspberry Pi. First, and you, you checked in the Raspberry Pi, and they now only have button, power button. And it's very good for the, and the power of your safety, and they, and if you, something, an issue, and the, and the, and the using, and the Raspberry Pi, you can put that, and the push the button, and the, and it is same as, and as you, and the active, same as activity with other PC, and shutdown, and the factory, by 40, and 40th.  And it is, and very input, and the input aspect for the issue, and the hardware, the proper, and the, you can check, and the, and the firmware booting, and the, and the build with the debug proof. If, if not, if still, and supported only Raspberry Pi OS, and now Ubuntu is under deployment. So, and the, if you, and you send it for Raspberry Pi OS, you can see, and the firmware booting, and the, and checking, and the PD, and the PD communication by USB-C, and more, and the feature, and the, and the, by, as a hardware. And Raspberry Pi 5, very, very, very concerned with Raspberry Pi Pico, and if, and you, and it is an application of the Pico knowledge, and Raspberry Pi even now, now support has, and so, and the IO controller, and it is really same as, and the Raspberry Pi Pico, and it is, and it also, you can check the near write here, and the, which memory, which memory supported, and on Raspberry Pi, and 5. Some questioning, and why they don't support 60 gigabytes. And I, and I have talked about engineers about that. If I, they don't support, and because it is, and it is for the package management, you know, if a single board PC is very, very small, and need to be controlled, and by, and easy, in small packages. So, they cannot support, and even for PC, and PCIe, and supported 60 gigabytes, but they could, they could not support 80 gigabytes, over 80 gigabytes of memories, and the, and the Raspberry Pi 4, and 5. And, you know, Jeff Garing, American YouTube, tried, have tried to, and the, soldering, soldering 60 gigabytes memory, and, and, and the Raspberry Pi 4, it didn't work. He wondering, and they saw, why Raspberry Pi 4 doesn't support, even for PCIe, and the supports, over 6, and up to 60 gigabytes. It is a packaging issue on, on the Raspberry Pi 4. It is famous on the Raspberry Pi. It is, it is the same issue as Raspberry Pi on the computer module 4, Iobot. Why USB 2.0? It is an issue on the packages, and it is the same issue as the Raspberry Pi 5. I'm looking deeply for the, about Raspberry Pi 5, for the, our committee member, and the Nishinaka-san, they tried to hack the Raspberry Pi 5 and the JTAG connected, connecting. I think it is an RP1 connected to, to control, and they, as a, by, by software on Raspberry Pi 5. Why he would like to do that is, what he would like to do that is, and, and to control Iobot by software. So, if you are interested, so, and please check his, our website to check that, sorry, I would like to, sorry, writing Japanese, and, and the first time he scared Raspberry Pi engineer by, by, by him, but, but, and sorry, and the, and the writing in Japanese, I hope that someone translating is a Google translator, and they, and they, you can, and they, controlling, and JTAG, and he, he, and interested in, and Raspberry Pi 4, Raspberry Pi, and they, and using the open OCD to, to build a bare metal OSS. And he, and the soldering, I, I borrowed his, and Raspberry Pi to him, he, and the soldering, and, and, and so hacking, and they say, and they, and with open OCD to, and the, and he tried to do a control, and so, and the, and RPA one controller to, with programming, and some of, and magazine to, and so misunderstandings for, and it is Raspberry, RPA one port is not fast, and like fast bridge, it is program of a controller, but, and they don't, they, and Raspberry Pi do not, do not discover, but I hope they, they discuss, and say a lot, and a lot of people and specs to program, and they, and they, are, are your programming by your programmer. So I continue to, sorry, sorry. So really, I, I introduce the detail for the previous, the, the blocks are, and if you interested the open OCD and the bare metal programming, and hack Raspberry Pi 5 itself. So, and a few interest in the Raspberry Pi, Chrome OSS, now on the improvement, and first time, so many of applications doesn't work, we go from the, it is huge changes on the build to core 7 processor and the GPU processor and more, and first time it does, Vulkan doesn't work, and why I was testing as field testing. Now, I suppose there's a many more applications on the Chrome, but please be careful, and if so, are you developer with the Python and the Debian, not, that's the power, Debian bookworm, not recommended using a pip, you know, so if you use the pip install, and you have, you got the error message, say, Debian now, and they're not recommended using a pip, so if you are developer with the Python development with Raspberry Pi, and you should use Uft or VM, virtual environment, so please be careful, so you are developing Raspberry Pi on, with Raspberry Pi OS on Python, and more, I have noticed there's something different as a SVC board, I have been using a jet phone, regular call, and some other SVC board, and what is the difference with, and from other SVC board is, almost, and such SVC, based on the Debian and, Debian itself, but Raspberry Pi is a recompiling, and the Raspberry Pi itself, and it is checked and customized and suitable for Raspberry Pi, so you can feel safety use on Raspberry Pi rather than other OSS, it is the point, and so Raspberry Pi supports many things, and RTC is a really important element, and so it is a request for many more enterprise users, why RTC is needed for the B2B enterprise business? I'm sorry, and I will not bother under such a, on the synths and products, I have checked on the GPD pocket too, or in some other Shenzhen, and the low end, low cost PCs doesn't have this, I checked on the GPD pocket, and chewy, and chewy to the install on Linux, I got a trouble to, and so file buttoning is empty, and so time, reset, and so re-adjust, I have to re-adjust the time for it, and I checked, I checked the cover, I'm looking for this RTC, and they don't have it, thus I have to re-adjust, it is not good for the B2B users, so B2B users request this RTC unit, it. And Oshakura is now, I say, it's non-mandatory because BCM-2712 is now improving and it is controlled heat cooling for, and when it is idle for cool and cooler is stopped and for the, for the, for the, for the, for the using for the, and I check the field testing for the, for the, and check the fan. So, if idle in, finally stop, finally stop. So, I, I, I, I have made underlings about that. But and it is, and it is good and only heat sink and makes cool and CPUs. It is improved on the, on the, on the Broadcom for features. But OVIMS, if doesn't, OVIMS doesn't support it, support it for under, you might check, and so under OVIMS department and check the, and check the details. And now, if you are using OVIMS, and they found, and they're learning, learning, learning, if you are the, if CPUs idle. And, and, and I, I have not recommend, and I'm not, I, I, I don't recommend, sorry, I don't recommend using the expensive FD card. I check the field, I, I have checked the field, at the field testing. And so, I'm checking it for many more FD cards and benchmarked. And I, and the field testing members in our, in our community and found it is up to 60 megabyte per second. It is, and the base card, S3 card, it is, can be free using all of the VEPA 5. You, you should not, and the, so the expensive under, and yeah, S3 card and the whole of VEPA 5. And some, some people for bench, some people check the, like me, but I do not recommend the expensive cards. And so, and you, some of the enterprise users know, and the S3 cards are not good for the enterprise using for S3. And I have been talked to many time for a long time, so they talked about the Raspberry Pi engineers about the boot system and what boot system good and using on Raspberry Pi. And now, supporting with PCIe and Express, and using, and for many using for the booting, NVME and the, and the FD cards, they are several booting, booting, and the, and the ways, and the, using Raspberry Pi. And I think it may be, it may be better for now, NVME and the low end classes that they, and the get, get, get much cheaper for, and you, and more such ethnic guard, and, and such an NVME card, and, and the bodies are not so cheap, and not so expensive. So, and I, I recommend, especially in the enterprise, and B2B use, and I recommend using, and this, and such an NVME card. And it is very, very annoyed issue that you think on the, on the AC adapter on Raspberry Pi 5. Why? It is, it is annoyed. And it is only have a, and a table and a 5 volt, 5 amperes. And Raspberry Pi 5 recommended 5.5 amperes. And it is, and very, very specific, and so, and PD futures on it. And so, and so I did not recommend, I, I recommended to you using an OSHA, and the AC adapter. And I, I do not recommend such, and the, and the electric service, but, and it, it works, and it works good, it works fine. But I recommend, I do not recommend multiple adapters, and the, and the, once using adapters for the, and the PD resetting to, to, to reconnect to the PD communications. And so, and I will recommend, I will not recommend such a PD and the multiple adapters. And next features on it. Raspberry Pi weakest point is using AI. Phony kindly develop and the cameras and the IMX 500 and the using for AI, including the Cortex M3, M3 chip on it. It is, and they analyze and analyze the object to, and to upload to, and so analyze any, any edges or the cloud. And the Raspberry Pi branding to, combine it with such Phony and the AI camera with, and the Raspberry Pi. It is something again changes for me. So, so, and fine. Sorry. And I, I don't have answer any time on it. And so, I would like to have a time. I would like to, I would like to show, show a, show a bit using on the, to, on the, a tiny LLM. If you use, and the time, but you, you should check, you should check the LLM, on the tiny LLM, on the Phony and the, well-fite. So, I take the time, I take the time to have the tiny LLM and the Christian and Raspberry Pi and the average on the within and the 10 or the five seconds. And, and then, on the other hand, if you use a Raspberry Pi 4 or, or other like there or something, and the answer is, well, home, home minutes, 40, 40 minutes. So, sorry. So check is like, so, so, and with fine, this is fine. So please, and purchase, ocean reseller, there are some, and I have any, especially in Asia area, and there are many, and more purchasing issues. and they purchase the Raspberry Pi on the Taobao on the amazon.com website. It is double expensive than Raspberry Pi or cell refiller. So please, please and purchase in the Raspberry Pi refiller, also refiller on it. I recommend, do recommend to do that. So I would like to if there is a bank coming here. Sorry if there isn't a Vietnam. Sorry, you can talk a bit. Okay, hello everyone. So this is Vance and I'm from Vietnam. So we are Citron Technologies and our headquarters is in Malaysia. So we are the outright reseller of Raspberry Pi in Southeast Asia, including Malaysia, Singapore, Thailand and recently Vietnam. So besides Raspberry Pi, we also the outright resellers of Arunos and Microbit. So besides the trainings, we do manufacturing our own products based on the Raspberry Pi Compute Model 4 from Raspberry Pi or based on the RT Mega processor from RT Mega for sure. And we do develop our products also come with guidebook for Microbit learning solution. So we have some product that is for people, for students from primary to secondary and to university level. So if you are interested in the product, you can head out to citron.io to explore more. Yeah, thank you. Thank you very much for me. Thank you very much for your interaction. So thank you. So you please ask us and bound to other parts of Raspberry Pi in the Vietnam and Malaysia and from Italy. So thank you very much for attending and any questions. So I am welcome to answer. All right, everyone. So this session will be closing now and this will be the final sessions for today in this room. So now please you can head to the main hall to take in for the last of all the sessions today. Thank you so much again.


It's great to be on the campaign trail again, especially when I'm campaigning for somebody else. In fact, several somebody else's. You know, on the way in, though, just a little while ago, we met a Westbound plane. And I think it was the Raiders on their way back to California. I'm sure it was. It's the first time I've ever seen an airplane cry. In this election, I'd like to count on you to do for our candidates what the Broncos did for all of Colorado yesterday. 1986 is a watershed year for Colorado Republicans. The people we elect this year will lead Colorado to its destiny in this decade and beyond. And you have some great candidates. Having had some experience in the business, I recognize good governor material when I see it, and Ted Strickland is good material. He'll do the job that needs to be done in Colorado. He won't be like that fellow that wanted a job at the zoo taking care of the animals. And he got the job, but then they told him the first thing he'd have to do was wear a gorilla suit and perform for the kids because the gorilla had died and he was a little upset, but they said you'll only have to do that until the new gorilla gets here. So he was in the cage and finally with all the kids out there looking at him, he got carried away and he was swinging on a trapeze and he swung himself clear over into the lion's cage. And a lion came roaring at him and jumped on him and he went down screaming for help.  Well, we have great candidates for the United States Senate, the Lieutenant Governor and each of the six congressional districts, candidates who will help further our program for a strong and growing America. We have great candidates for the state legislature here and our constitutional offices and for each of the counties across the state. I understand from all that I've learned that the Republican Party in Colorado is the strongest and the most unified than it has ever been. This will be one of the most important elections in the decade for Colorado and for America. This election will determine if America stays on the road of progress committed to the Opportunity Society at home and strength abroad. The present leader of the opposition would drag us back into the failed policies of the past and our answer to that must be no way. Let's move ahead into the future with Ted Strickland as governor, Kathy Arnold as Lieutenant Governor, Ken Kramer in the Senate and one of the best darned group of House candidates that I've ever seen. It's going to be a tough fight but with your continued help we'll win. Vote for Ken Kramer so that we can have a Republican Senate that I can work with for these next two and a half years and vote for Ted Strickland and Kathy Arnold so you can have the same kind of leadership in Denver that we've been trying to provide in Washington. And one thing that makes our country unique in all the world is that we are a federation of sovereign states. Now there are those in recent years who have been in charge in Washington and some were still there who would like to change that. They would like to make the federal government all powerful and make the state simply administrative districts of that federal government. Well our strength comes from this system that was designed to keep authority and autonomy over our domestic affairs as close to the people as possible. I know that Ken Kramer in the United States Senate and your A-team of Colorado congressional candidates will work to preserve this present system that we have and that's been so good to us all these years in Washington and Ted Strickland and Kathy Arnold will wisely and conscientiously administer the power here in Colorado. I thank you very much. I know that I'm due inside to speak to some other people that are waiting right now. I hate to leave but then that's the way it always is but God bless all of you. Thank you for coming out of here and send all these good people to Washington and to your state capitol. Thank you very much.


How to keep discipline balanced in the classroom. Disciplinary issues are some of the most common challenges of teachers worldwide. Every lesson depends on many factors to attain an acceptable level of success, one of which is discipline in the classroom. No one can deny that little or no learning takes place in a chaotic class. What is discipline? Discipline is a set of rules and regulations that remind students of the proper or acceptable standard of behavior. When properly practiced, discipline will go along to not only to ensure success in the classroom, but also help students to achieve their goals and dreams later in life. Discipline gives the students a sense of responsibility, realization, determination to strive hard each time after failure, and stay grounded after achieving success. Using an analogy to explain this, the discipline is like a canal that a farmer builds for irrigating his fields. The nature of water is to flow where gravity takes it. If there is no canal to give it a specified path, it will disperse everywhere thus becoming useless to the farmer and his fields. In the same way, a student's mind is playful by nature. It will go in every direction unless the student, is guided by the teacher to follow a specific direction. As building and maintaining a canal is no easy task, so is discipline in the classroom. Research suggests that in order to maintain a well-disciplined classroom, teachers must establish rules and expectations, enforce limits of rules, and encourage and reinforce positive behavior. Effective Strategies. Effective discipline begins with rules, enforced with logical, and meaningful consequences. Setting clear firm rules and expectations, which leave little room for interpretation, will establish a solid foundation by which a classroom environment will function. Rules set the tone of the classroom. They provide broad guidelines about what should or should not be happening as a whole in the classroom. Some schools already have a system of rules and consequences that they will expect the teacher to use, such as check marks or tallies, which track misbehavior and enforce punishments. Setting positive rules and expectations or goals will give teachers and students the right mindset to start the school year off right. The Power of Consequences. When enforcing the limits of rules, consequences should be logical and related to the offense. Logical consequences make sense to children, especially when explained calmly to them and enforced consistently. Teachers should also correct misbehavior and broken rules as soon as they are noticed. Punishment should be done privately, however correction should be immediate. If a teacher ignores one broken rule or misbehavior, students will continue to test the limits of the established rules. Punishment should be simple and let students know that the teacher is aware of what is happening. Also when rules are being enforced, teachers should focus on the broken rule, not the problem. For instance, a student is talking while another student is addressing the class. When correcting the behavior of the students who is talking, the teacher should focus on the rule. Be respectful to all students and teachers. The situation can easily be corrected by saying something like, you were talking while another student was giving a book report. Our rules say we are to be respectful to all students and teachers. This method allows students to understand that talking is not always a problem, but they must follow the rules. Use action to enforce rules when needed. Action shows students that the teacher is in control. When action is required, it should be swift and firm without negotiation. Teachers should avoid yelling at students as a control measure. Teachers will upset or intimidate students instead of controlling their behavior. Do you want to teach English abroad? Take a TEFL course today. Finally, reinforcement and encouragement of positive behavior by teachers are necessary for students to exhibit good behavior. Positive reinforcement can be used very effectively in the classroom to create or enhance the desired behavior. Positive reinforcement for classroom behavior means that the students are rewarded when they make a good choice. The idea is basically to not focus on the negative aspects of the student's behavior, but instead to focus on the positive aspects. The more focus that is placed on positive behavior, the more that behavior will be enhanced. As a result, the negative behaviors will naturally become less important and thus less active. In short, students are more likely to make good choices when they receive some type of reward or acknowledgement for doing so. Thanks so much for watching. We are ITTT, the leading provider for TEFL and TESOL training courses. If you liked this video, please subscribe by clicking that button down here and click on any of the videos here on the left for more interesting teaching tips for getting certified to teach English abroad and online.