 I believe all of you are techies, so who am I? So basically I'm an electronics developer. I think that around with firmware and hardware is basically, for both professionally I do it for work and also for my own curiosity. So particularly I do embedded software and hardware consultancy. And then I'm also open source contributor to various projects. But recent years I've concentrated on my work on several articles. So that's the area I'm focusing on working and also open source work. So just before I go into the talk, how many of you know what is RTOS, real-time operating system? So quite a number of you, so it can cool. How many of you know Zephyr RTOS particularly? So I just see two hands, so which is good. I can just give a very quick brief of what Zephyr RTOS is about. So Zephyr RTOS is a real-time operating system just like any other RTOS, but it has added some new features. It's kind of like a leading nature, new RTOS open source in nature. And these are the areas I think everyone of us will agree where real-time operating system will go on. Like you can see industrial IOP and asset tracking, all this area. And I think we have gone through the era that between this, if you talk about the many years ago, people will be talking about RTOS or bare metal. RTOS or bare metal. Like you know some people will be argue I will do bare metal. But I think today many of us agree that any embedded system mostly will be running some form of RTOS. Regardless of whatever application it is. So that's why I set the definition. So where Zephyr RTOS lies basically. So Zephyr RTOS is basically, they have two few points, the main points that they target. One is it has to be small, so that it can run on any target. Anything with less than 8KB flash, 5KB RAM, should able to run Zephyr on a very minimum, at least a minimum. And then yet you want to be more powerful. You just don't want to offer only just like other RTOS, just a scheduler and so on. It's very boring or it's very hard. So you have to be scalable. You know you want to handle SLB, multi-processed handling and all these things. So that's another area. And then you also want to be flexible. The kernel, you know basically the kernel supports more than 450 nodes, multiple architectures and so forth. And I think big area that we talk about RTOS and IoT, you want to go to the internet. So if you want to go to internet, you want to make sure that your code is at least secure in nature. It has some vulnerability check and oversauce in nature. So these are the areas that are Zephyr Tows. So on a high level, if you look on the right, you will see on the box what Zephyr offers on all the box. It offers a third party library all the way up to the hunt so that you can integrate with the hunt into your Zephyr and able to use Zephyr and X-Grid. And where Zephyr particularly fits or it's a unique proposition is that wherever Linux doesn't fit, basically Linux might not fit on a MC because Linux is big, but Zephyr can fit in there. And it uses a lot of philosophy or strategy being used in Linux into Zephyr. So that's why I think people started to get interest and started to work on it. And it is highly portable and secure like what we talk about. If you're just like Linux, you can take a Linux kernel, run on ARM, you can run on a V5 and all sorts of things. So different boards are supported. The same things are here. Particularly if you've been working on Linux kernel, there's something called Device Tree A config to do all these magic behind it. So that's what has been happening, what we call a MCU world example. So I think I've just given a very brief introduction what Zephyr is all about. Now particularly about this topic is why Zephyr and RISC-V? What Zephyr are uniquely offered for RISC-V or how the support is like and so forth. So the first point is both are open source in nature. Anybody that's supporting RISC-V I think inherently in their mind is like they want to be open source. The silicon is already open source. Whatever things, the RISC is open source and you don't want to run a closed source software on an open source silicon or RISC basically. So that's I think a good combo. And then the current state of Zephyr is that all common RISC-V that RISC-V supports is already there. So I think the standard thing is if you look at the privileges set, there's this RVM32 iMac, the basic instruction set is fully supported. And there are also some at once extensions are already supported also. So basically you can say pretty good at least ISI level support architecturally it's quite good. And you may ask what about some other standards that RISC-V is already set like we have the intercontroller for the process basically. So that is a building is a standard intercontroller by the RISC-V for completion. And that is also supported as a driver. And also for machine timer. So audio ticks in RISC-V we handle it using something called ceiling. So ceiling to also the driver is supported. And the fourth point is because of RISC-V is so modular and all like modular in nature you want your software to be modular also. So that's where I lie down the point, Zephyr is structured and modular. So it's a very nice fit. So this is a board I did some coding. Basically the boards that we're going to be hands on. So I just want to give you an idea what really been happening behind the scene. So basically we say that this is a SOC RISC-V32 iMac supplier and we are just handling all the instructions that it supports so that the ISA level knows what are the instructions are supported and the entire kernel or basically the Zephyr ecosystem knows what are the ISAs being supported based on the SOC. So you can see I'm just telling RISC-V, ISA, IE, MPA this process supports. So and then when I do that because Zephyr is so modular in nature and the build system is enabled see they can start reading all this configuration file. So it started going okay if ISA external A is supported when you will pass this A A flag to the compiler basically. So you don't have to configure all this thing you know it's all automated in nature. And then one more just for another example like any of you know k conflict queue if you enable like conflicts FPU then the Zephyr know okay if I enable FPU then I need to you know give the IE or DE or FPE or whatever it is you know this all passing to the compiler basically. So it doesn't stop there the architecture level board. So this is one example where the same configuration is pulled into my source code basically. So what you see here is if defined conflict RISC-V, ISA, RG32, IE instruction is enabled. It does a different kind of code. You can see it is accessing register differently. If it's not you know access it differently. So all these things are you know naturally it's on the on the ecosystem basically. Okay so this slide basically you know I thank Phoenix to you know give us opportunity they provided us a FPGA and RISC-V for code to basically play around. So you know just give a quick introduction. So you know it's a most efficient FPGA and you know it's time to success. We want you to get your you know open source RISC-V, ISA easily downloaded into FPGA and you know turning to kind of RISC-V for code and start working on it. And what is so unique is they already have a kind of like a manager. So you can easily configure whatever peripherals you need you know together with RISC-V and you just generate it. The RTL is generated for you and the RTL can be loaded into FPGA and turned into you know from FPGA it becomes basically RISC-V code. Okay this is some I think some important point is it's RISC-V all of us know open source open source scalable and all this thing. But what Epidix offer in site to site is all these things like you know what I mentioned earlier is immediately. So any question before we jump into the to the workshop? So if no question we will jump into the workshop session. So before we jump into the workshop session I would like to tell what exactly the some high level process going on in this workshop. So due to time constraint we have loaded a bit stream on your board. We have generated the RTL and we have loaded the bit stream inside it. So basically when you turn on your FPGA it just acts as a general MCU basically. Pretty clear. So what we got to do today is we have a cloud machine for you. You have a login ID and password and all this thing. You can walk into that and start doing a hands-on build session. You know like how we do in software hello world. We want to you know do the big key session and see get your hand around with supper on you know live session. So that's what the today's you know I mean a challenge of all of us because I think inherently when you talk about embedded system and things like that people will tell you to install or move chains set up all the things even at your home or before you come to the workshop. For what we are challenging ourselves and we want you to join together as today. Do it a hands-on life on cloud and easily install and see. So we have three prerequisites now. So basically first thing is you need to download the workshop guide so that you can follow the guide later on. So I hope you can see the link it's a short link. If you put the link you will get a period of this. Yeah if you guys need some time to type it you can take a picture. It's a good idea okay. And then the second thing is to check is you need these three items with you. I think you should have because we have already pre put on your table. Then the third thing is you need to have that credential like all of you have credentials. And just to ensure you're on your own of course some of the notes are getting dropped so if you have a lot of support please insert out the Okay uh we are pretty good. So uh so you I think a lot of you can turn on your board and all this thing just make sure that you have to switch on the board actually there's a small tech can switch if you turn it on you would have a lights on it just make sure that you have that really something comes up so that your board is powered and you're just this one. Sure. So so have you all got the credentials basically? Uh So, I guess everyone got the credit, everyone got the, hello, hello, hello, hello, hello, hello. So, may I get a raise of hand who is using windows and who is using windows, ok there are some hands, anybody using Linux here to try the hands on, ok cool, open source, ok cool, Mac is unfortunately not, yeah it is, it is a Mac, so you know for now you know, so ok the guy covered both, but something to take note is, if you are on windows you have to do this thing what we have provided on windows type, you need to install this Zadik, so that you can install this particular driver actually. So, you just have to follow this guide, you know you go through all these interfaces, but whichever you see titanium TI-60, you just have to replace it with this BDUSB drive. And next is I think I believe all of you is trying to log into the labs, so I guess all good, right, so good, no, no, no, no, no, no, no, no, no, no, no, no, no, no, no, you can just launch the dashboard for now also that you get this page. And under the, my labs you can just expand it, we will see something about machine labs, ok and then once you click the machine labs you will find something called RTOS lab for a Python, ok another status check, may know how many of you already come to this point So, let us see for some time probably. So, let us see for some time. So, let us see for some time probably. So, let us see for some time probably. So, I think I heard a lot of you using Mac. No worries, we are using Mac, you can't flash the mode, but at least you get the experience how to get the binary at least some time. So, anybody that already got entered this time, you can click default. So that the machine, you know, Linux content has to follow up for you. Pre-configured tool change, hyper and everything is in there. So, basically when you deploy it's on the, it's running on a cloud of the machine. So, content is morning up with all the, you know, all the tool changes and so on. So, once you have put the deployed, basically it's just like turning on your machine. The content is just comes up. And after like a minute or so, you know, it takes like the page to reload. Once the page is reloaded, you can sign on the right hand side something called code. When you click on the load, it will prompt you to something like if you want to launch, something like this. And when you click launch code ID, it might even ask you whether you want to enable popup, because you know it wants to open up another tab basically. And it will ask you password. So, where do you pass, find the password is you go to your dashboard previously. You'll find password and the password is on the last field something called code server password. And you'll see something like a password viewer on the right icon. You press that to see the password and it should copy the password also. You can copy the password if it doesn't. So, if the password is copied, then you just click OK. You should get a full code VS code like anybody in my neighborhood VS code. It just comes up on your browser. You'll see some people already got to the point on their own. They haven't been able to win the number one. Okay. So, I think both of you said the point where you know VSTOOL is up, spawn up, you can see like ID is there, it's a good sign. So the next step is you need to, you know any ID you work on, you open up, it's just ID, you want to go to your project folder. So we have set up the Zephyr project folder, you know, it will be something called a fitting zypher, and then you need to put a slice zypher again, that's where the zypher, you can see on the top, you know, just after the username, you add a slash and an empty zypher, a slice zypher, and then click OK again, and the project will be opened up on ID. To go to the program, you have to file on the site now. Which program you want to, you know, it's already opened, oh, you opened up, you know, and I think most of you now is on the appendix zypher slash zypher, so it should be good. So, like, you know, you need basically a terminal to, you know, to interact with life and basically. And there's some, so to do that, now you have to go to the same site bar and go to terminal and click new terminal, and you'll get a terminal on the bottom. This is just some IDE guide basically for now. So, the thing is now we need to get the ID just, thumbs up for the next step. Okay, so this is your generic Linux kind of batch, you know, batch terminal, like any of you work with Linux, you know, all the lsnpcd, all this command just works, or it works. So, now, if you go to the, basically the guide we have provided, the one on the folder is a command to do that. But let me just explain what this command is doing. Vest is an output to a build for Zypher. So, whatever you want to interact with Zypher kernel, you need to use Vest. It's like a front end of the kernel. And hyphenp means it's a pristine, so that you want to clean the build every time you do some build. So, that's what I give by dashp, hyphenp, and always. And dashp stands for both, what both you want Zypher to build or work with. And the work that currently we are working on is for a titanium TI6KF85. And then the project that we want to build. So, one of the cool things about Zypher is also the sample is part of the kernel both. So, you know, you got the sample basic build key there. And all you have to do is click enter. And if you click enter, the firmware will be built in and you know, it will happen in a certain folder that I'll tell you later. So, I do see some people already got the info like how much RAM it is using and all this information. So that means the build is done and your battery is ready. Let's just get more people before we go to the next step. So, where is the poster right now? Yeah, so that's called the, yeah. So, where is the poster? I don't know why, so, yeah, so it's just gonna pop out. Yeah, just gonna pop out. And then it just goes to the, yeah. So it just goes out, you have to add to switch? Yeah, just to switch. And then it just goes out. Okay. And then it's just gonna pop out. So, yeah, so it's just gonna pop out. And then it just goes out. And then it just goes out. It just goes to the. Okay. And then it just goes out. So it's just gonna pop out. So it's just gonna pop out. Okay. So, I guess most of you got up to the point you got the build done that you see some stats how much RAM it is using and all. So, the next step is actually to download the binary. So, the binary is inside build if you look for build folder or directory and then you go to a folder called build slash a cypher slash a cypher build. So, you download the cypher build, so that is your build key or firmware that you are your operator is. So, and then to download you just have to go to the file right click and click download. Just make sure that you don't save it in a place that you can locate easily later because we have to move these files around a little bit later in your auto-machine. The reason is your cloud won't have access to your world. So, we do all the hard work and all the highly complex of configuration work on the cloud and we take the binary part, we bring it to your local computer and we flash it to the board. So, somebody actually got the blankie up and running. What do you want? You have to right click and download. Okay, so that is basically on your local computer now. It's on your download board or something. Keep the file for now. So, that's where the next step will come in. So, let me check on few people. So, if most of you downloaded the Xalifer campaign, like how many of you bought it like a raise up a hand? Okay, you got most of you? Okay, cool. So, now this is the thing we need to, this is extra step for Linux only. You have to do a git pull currently because we actually just need a live push on a rule. Basically, we missed the rule earlier. So, you do a git pull now, you will get a new file coming into the thing. On your Xalifer directory. The directory you are, the terminal. Just give a git pull. I'm not going to do that because Xalifer has a regular user name. Yeah, git pull. Once you do git pull, this is only for Linux, okay? Windows is socket out because you've done the Z8 TV. Well, you need it because the pin has to be in the mix format. No, so this step is to access on your Linux machine to access your board. So, this is like a driver kind of world. Also, from the browser, it's going to access the U.S. Okay, not ready. So, let me just explain the step one by one. So, we're going to download this thing called Linux.zip in a folder called flashing. And you need to bring to your local computer. To get the correct latest file, you need to do git pull because the file in the container is old file. It doesn't have one of the rules. Any of you know UDAF ADM from UDAF basically. So, there's a UDAF script inside basically. So, just do a git pull and download the latest Linux.zip. For Windows, you can go ahead and download Windows. No changes. Yeah, pretty cool. So, once you download it, you accept the Linux.zip. You can open up on your terminal the current directory and you do a pseudo about the slash USB drive or the message. And what would you do is it would not figure out your things to access the board on your local computer. Like I mentioned earlier, basically, you know, we do the build on the cloud, but we want to install to the target FPGA board using our local machine. So, go to our slash USB drive and run this script from the folder you extracted in because that's how the parts are configured in the script. So, that'll be good work basically. So, you already run the thing. So, for those who have already configured on Linux USB drive and on these things, we can go to the next step. So, the next step is actually installing the firmware basically. So, for Windows, you can just double click the flash. You'll see something called flash. It's basically a batch of files or whatever it is to run the script. You just double click if your board is connected and if your Blinky file is on the same directory as where you downloaded the zip where you extracted it, it will just note that Blinky on your board and your board will start at Blinky. Or on the other hand on the Linux, you need to open up a terminal and do how you run a script dot slash a flash dot s h. So, let's give time for this and let's see how many of you get Blinky out. So, I see another board is Blinky also. When you order it should be anything should be out. Oh, no, no, no. Just a little trouble. The door is in the window. It's in the window. So, we don't see a red. So, we don't see a red. It's all over here. You'd find it really useful. It's not a problem. It's really hard to trust, it's really difficult, but I think that you need to be able to trust it and be able to see it up and down. Okay cool so I think some of you got the blinking light so basically that means you built something using something like a zyper you bought the bike and you brought your computer and you are able to flash it so those that you are those that already done you want to go a little bit further up just want to see how shell works you can actually go to the blink of older the same basic a blinky folder on the project you can handle something called one thing understood shell equal to why any of you work with Linux it's very happy and the shell will be up and technically you can connect to the platform of your laptop and interact with the board like I think this is particularly my favorite thing about cyber is that I know you get a shell out of the box I you know it's pretty nice you get like a shell I don't know or if they shunted the land, this is very good. Music needs to be done, okay? That's a good idea. I think our, you know, the music, the music, the music, the music, the music, the music, the music, the music, the music, you know, in a 120 or whatever it is, maybe it's good Those of you who want to try the shell, you can see my configuration file. So you basically go to samples basic, linky, project.com. You just enable one with the underscore shell equal to yes. And you do the EP again, the measurement for what it is. So you get a new binary and you install all your code code. If you have a serial kind of code access, like on Linux, I use a mini code. So you go to the end right with the shell. So one point to note here is this is something very unique about Hyper also. You just enable something here, the build system knows how to log in. It builds some new source code, some source code, and it just injects inside your thing. And you get a new application. So I think it could write for something like a mic. Yeah. Yeah. Yeah. Yeah. So I think to wrap up a little bit. To wrap up, it says that most of you that go to go over to able to blink, able to build, and you know, have an hands-on session on Zyper. Because I know you can go and learn all this thing, but having a hands-on session is always good. You know, oh, this is how it works. You have, you put your time here. In like one hour time, you need to build and linky. So when you go back home, you can explore more advanced things. So any question, we can open for question also. Like if anybody have any question, go pick it in Zyper. Or are you interested to contribute with us on whatever it is. And have a good chat. Yeah. Yeah. Yeah. Yeah. So, guys, I hope all of you got some insights. Especially in terms of Zyper. And I'm so glad to see, you know, we got a link here. Because this was our challenge also. Like it was the first time we push FPGA. We push Zyper. And we push it live basically. Like on cloud and all these things. So I'm happy to see it's blinking. I hope you are happy also. And I wrap up my session here. And thank you so much for attending this particular workshop. Thank you. Thank you so much. So thank you very much. Please one more time around applause for our speakers Manoj Kumar. So thank you one more time. Thank you. So we get to keep the box, right? That you have to ask. If you touch it, you keep it, right? The boss is there. The boss, can we have it? Boss. Okay, anyways. So let's get the next. Yeah. Thank you very much. Is there any questions? Anybody or anybody ask all the questions you need to ask.