 This is Kranti Kamampati and the IoT Solutions Architect within AVENET. Today, I'll be going through the STM32 DiscoverKit IoT node integration with AVENET's IoT Connect Cloud Platform. So this is going to be a technical deep dive to go through the steps we have gone through in terms of our journey to connect to the platform. So here are the key topics I'll be covering in my presentation today in terms of why we use STM32, the hardware selection, OS selection, development environment, the different protocols and technologies which we used, our IoT Connect platform, how it relates into Azure IoT Hub, some of the security aspects, and also the key things in terms of OTA firmware updates. So from AVENET's perspective, we work with different customers, both at the component level and also completely a product solution from end to end in terms of designing the solution, selecting the right components, developing the firmware, manufacturing a complete end-to-end solution. So here are some of the devices which we've been working with, water meter, air quality sensors, asset trackers, gaming devices, medical equipment, HVAC and industrial systems. So we were looking for a smaller IoT Connect platform, which we can use in solutions like these. And one of the things with the STM32 we prefer or we like is the low power option with the L4. So that's the processor which we used the micro in our solution here. So for example, in this water meter, we were actually tracking the usage and reporting up with the cellular connectivity. So similar type of IoT applications, we've been using the same platform across different solutions. So as part of the journey, we were looking at, okay, where do we get started? How do we go about it? So this is what typically our team goes about, like with starting a new IoT application with the different micros. The first thing what we have done is we have taken the STM32 L4 discovery kit IoT note so I put in the links here in my presentation. So it's easy to access and you can refer to those links later. So this particular platform is very interesting in terms of it's a low power platform. It already has Bluetooth in there. It has Wi-Fi capability, various sensors, magnetometer, gyro. The cool thing is it has the debugger on board the ST link. And also we can use a different environment. So it's a complete solution that we can get started like pretty quickly. So our developer likes this platform pretty much it's like and it's easy for the team to come up to speed as they're switching from one project to the other. This is a familiar environment. So that's one of the reasons why we start most of our ST projects with these discovery node and usually there is some slight variation from one way into the other. But this is kind of our go to hardware platform. OK, so typically once we have the hardware selected, then we look at in terms of the operating system and what we need. So here are kind of the three major things which we consider, especially with an ST platform. There are other options which we do consider. But at a high level, we primarily look at the ST HAL because it's a simpler system with the drivers, APIs and ST has done in terms of the packaging, like the overall project and everything. It's a ready made solution and you can be up and running pretty quickly. So and it could be ported from across a different ST platform. So that's one of the reasons why we like this for a quick solutions. The other two OSes which we do consider is the arm embed OS. So as arm has been actively working on this OS. So there are various libraries that are available, especially the SSL and the TLS libraries that are well proven out with this OS. So that's one of the things which we like about this operating system. And the other one, it's becoming much more prominent is the free RTOS. It's very powerful, tiny and modular structure with the complete ecosystem. So depending upon the project and the complexity of the project, we tend to switch between these different OSes. So if it's a simple solution, we need to get up and running pretty quickly. We use the ST HAL. If we need to bring in like a complex application that has multiple iOS and everything. So depending upon the drivers availability, we tend to switch between either the arm or the free RTOS operating systems. OK, so our typical development environment. So there are different options with the ST platform, which we can select. Most of the most of one we use Eclipse GCC, where we can build the application, generate the hacks, the binary file and a program using the ST link. So that's one of the things we prefer to use Eclipse. But we also use depending upon the project and some of the optimizations we want to make it within the project, be the use skill or IAR. Or in some cases, we use ARM embed online to build up the package. So there are different options. So overall, like each of these platforms, like the development environment has their own pros and cons. It's your choice. You can just pick any of these things. So for anyone getting started, Eclipse GCC is pretty good before you make the investment with some of the other IDs. You for a smaller projects, you don't need to purchase their IDs because they allow like a limited evolution. But if you're looking to make a fairly large project, you definitely want to consider one of those things because they do like a better optimization of the compiled binaries. So here are the high level protocols and technologies like what we tend to use in most of our IOT projects. And these are some of the key ones. There are in some cases, we tend to have to go with other things also as needed, but most of the IOT applications, no matter what you would need to have the HTTP stack and the HTTPS capability for secure connection. So we tend to put in these secure certificates. They can make ensure like it's a valid SSL certificate. So we tend to authenticate to the back end server to make sure like, okay, there is nothing man in middle attacks. So we tend to try to keep the HTTP connection secure. So the TLS and SSL libraries are a must for any IOT applications. So that's one of the things we look for. And depending upon the software stack, you need to pick and choose the SSL library. So there are some pretty good open source libraries, but also there's some commercially available SSL libraries out there, which you can use. In terms of IOT connections with Azure IOT have, in most of the cases, we use MQTT, but in some cases, we use MQP. So most of the MQTT stacks are pretty powerful to taking care of the publishing, subscribing the capabilities with Azure IOT Hub. We have experimented with the different MQTT libraries out there and pretty much all of them are well written. So we tend to depending upon the OS again, we tend to switch between some of the different libraries. The other key thing is having the proper networking stack is important. The reason why the networking stack is important is especially in the next two things, so the Wi-Fi drivers and cellular, you want to have the Wi-Fi and the cellular drivers integrated at the appropriate networking stack layer. So you can call the TCPIP, the socket connections or your HADP library or your MQTT library can use the networking stack with the native calls. Otherwise you would kind of have to bypass those things or you would have to make your own connections using the Wi-Fi or the cellular drivers. So what we tend to do is like depending upon whether it's a cellular, which cellular modem we're gonna use, we tend to abstract the communication with the cellular modem into the networking stack and same thing with the Wi-Fi driver. So depending upon the hardware platform, you tend to kind of like because of the cost reasons and some of the benefit reasons like, so if you're having Wi-Fi and Bluetooth you might use a different chip set if you just need only Wi-Fi, you might use a different chip set and same thing, cellular, there are different modems out there. So depending upon the hardware platform, this is one of the key areas where you need to spend some time understanding the networking stack, how these different the modems work and how you're gonna integrate the components into your networking stack. So that's one of the key areas we tend to help our customers, okay, in the appropriate modem selection because of the region and the carriers, the support we from Avanit work with the different carriers and MVNOs and we have the capability to understand, okay, which region, like what is the cost advantage across the different carriers? And even if it's a global solution, we can work with the different MVNOs and put together the right SIMS and the right carrier, the right cost structure. And then based on that help integrate the corresponding the modem into your software stack is what we tend to do. So it's kind of in some cases, it's pretty simple taking some of the cellular, the stacks like which we have, like in the kits we have as a starting point, but you're trying to look for like a complete IoT solution as a global solution, Avanit can help in that aspect integrating the solution into your product. So we're kind of done like in a combination of things, as a joint team with some of our other customers, but this is as an IoT project, this is one of the key areas that's important to have the proper networking stack with the Wi-Fi drivers and the cellular. And on top of that, the appropriate the security libraries are important. So this is where the overlap between the embedded programming and the cellular of the cloud infrastructure is a must where the teams have to come together because the embedded developers, they have some experience on the low level like on the programming wise, but they're a little bit rough on the networking stack and all the communication onto the cloud. And same thing with the IT teams that are working on the server side, they don't have knowledge in terms of the embedded stack. And that's where you need to bring the teams together to kind of have the common understanding and understanding about these protocols and how these come together within the IoT solution. In terms of the Avanit IoT Connect platform, we have an elaborate platform where we help our customers take an edge device all the way up to the application, connecting the edge device, reading the sensor data, going through the gateways or the actual from the device directly via cellular onto a cloud platform and then showcasing the data into the application. We also have like ready-made solutions that are available, especially in terms of predictor maintenance of recommendation engines analytics. So we have like multiple solutions out there. You can see some of the solutions here, like a smart factory, smart asset monitoring, connected worker, a smart office, smart affiliate management. So these are some of the solutions that Avanit offer using the IoT Connect platform. So the key advantage with the IoT Connect platform is it enables a quick solution deployment, connecting your devices. It takes care of all the user management, device management, security aspects of it. So instead of you trying to figure out each of the individual pieces needed to build an IoT solution. So this is a busy slide. Avanit uses Azure IoT Hub, Azure platform behind the scenes on the IoT Connect platform to put together the complete solution. As you can see from Microsoft side, there are various components that are involved in terms of putting together on a complete IoT solution. So what Avanit has done is brought together all of those different components and created a ready to use solution that can be deployed pretty quickly. And as you can see here, this particular platform takes care of all the authentication, the device management, user management. And the key thing with the IoT solution is the data analytics and the processing. So we can actually deploy AI and ML solution pretty quickly on those things. So this is where our customers come to Avanit to help deploy the complete solution. And it's a one stop shop from the device all the way up to the cloud solution instead of trying to involve multiple teams together and trying to coordinate between them. So that's where Avanit can come into the picture and help a complete end to end solution deployment. So the key areas which I'm focusing in today's presentation is on connecting an STM32 from the embedded perspective to the cloud here. But once the data is published into the cloud, then actual processing of the data, making sense of the data is a whole another big exercise that we go through with our customers. And these data keeps evolving and we keep improving the solution and releasing new versions of it. So Avanit has a big team of data scientists that helps process this particular data and in help of generating AI models that can be deployed onto the hardware. So here are some of the key things. Avanit's IoT Connect platform provides in terms of the device management. So with any IoT solution, you need to understand, okay, how you're gonna manage the devices. So in this case, the devices, you need to have a proper hierarchy structure, proper permission structure to make sure that users have the right access to the right device. So that's where the device management comes into picture. It also involves the appropriate security measure that's needed because you don't want to have your IoT devices exposed out in the wild where anyone can control or can mess with the data that's coming in there. So that's where we work with our teams to understand the security measures that are needed. So I'm gonna be covering some of the security aspects which we consider. So the device management, so that's one of the key things. Troubleshooting, like device connectivity. So that's one of the key things with IoT solutions. There are different aspects, especially going back to my comment about the networking stack. Whether it is cellular or Wi-Fi, in some cases, you have to traverse through firewalls. There are certain ports that are blocked, et cetera. So there are a lot of things that need to be taken care of in terms of device connectivity into the cloud. And that's where the troubleshooting aspect is gonna be an important thing in the platform. So we know, okay, when the device last connected, what is the communication? What are the error logs, et cetera? Those are all the things that are handled in the device management. We also take care of real-time tracking, like the location, the data information that's coming in from the device. And at a granular level, we can turn on and off certain data things that the device can send. In addition to this, we also have like a twin property where we can actually save the settings for the device and that information can be synced with the device. So there are a lot of features in terms of the device management, IoT Connect platform provides. So in addition to the device management, user management is a key aspect which we offer. The user management takes care of the roles and permissions and it also creates a tree-based hierarchy where you can have different levels of permissions for different users. So this is another elaborate area permission structure that IoT Connect supports. Another key aspect would be the firmware management. With all the IoT devices, there is you need to plan for pushing new firmware updates. So as you build the application, there could be bugs, there could be changes, there could be enhancements. So with the IoT Connect platform, we can push new firmware binaries. So you can select which particular hardware, which particular customer group, which user and in the case, the entity we refer to as an entity gets the firmware update. So all of that is managed through the platform. So from an ST, the solution wise, once we build the binary, the initial application is programmed at the end of the line in the factory. But once the device is deployed, all the firmware update, everything is managed through the platform. So we have like a real-time ability to push firmware updates to the device to handle any security issues, any bugs or enhancements through the platform. So these, the three things which I covered earlier are related to the management, the device management, user management and the firmware management. So once the device is connected and you get the data, what to do with the data is where the data analytics and the storage comes into picture. We can provide different alerts, events, notifications based on the data that is provided from the device. And we can make sense in terms of different graphs, dashboarding, reporting, we can do that. So those are all the things we leverage a bunch of Azure IoT tools in accomplishing this. So for example, we use like a Power BI dashboard to put together a nice clean dashboard based on the customer, the requirement. And we do have various connectors where the customers take the data and push the data into their other platform. So that's one of the things that IoT Connect provides as a one-stop shop to handle all of the key features. And the thing is ease of use and ability to get your solution up and running. So once you get the device, the firmware and you get the basic, the data coming through, now how to handle the cloud side of it. So this particular, the exercise, the journey what we are going through is going from end to end from the device all the way up to the cloud. So in terms of the security aspects, there are three approaches we tend to take. One is a certificate based where each device has a certificate, a device certificate, and these certificates are authenticated on the backend. So there are two approaches which we tend to take. One is a self-signed certificate and the other one is a CS signed certificate. So there are pros and cons between the different certificate mechanisms, but this is one of the key things we tend to do like for each of the IoT device that's connected. So at the end of the line at the factory, we program a secure certificate in a secure location for the device. So we know, okay, a valid device only authenticates or connects to the backend to the cloud solution. So this is one of the things. In certain cases, we use key-based authentication, but certificate is what we prefer. In other cases, we actually prefer using a TPM based solution. So it's a trusted platform module. So we connect that to the micro and with all the communication to the backend with the proper endorsement keys, we ensure that it is secure, and securely connected to the cloud platform. So here is another aspect in terms of security. Each device needs a unique ID and you want to track down the device based on a unique ID. So there are different ways of creating a unique ID. STM32, the reason we like it is also it has a unique device or ID that's programmed within the chip itself at the factory. So you can use that as a unique ID. So here is a link at the talks a little bit more about the unique ID of the device. So other key features, as I was referring to about like OTA firmware update is one of the key aspects of an IoT solution. And in terms of STM32, we have seen this particular, the solution is completely built in terms of the dual bank approach, how to program or how to like update the binaries on the micro itself like on the flash partition. So there are certain portions you want to be updatable certain portions. You don't want to be changed. So for example, like a user settings, the device set, certificates, et cetera, security aspects. So you don't want certain things to be changed. So here is the link in terms of the over the air update, how ST recommends building an OTA solution. So this particular document PDF has like elaborate steps on what needs to be done. So we use the solution in most of the projects and we adapt it in some cases, make some adjustments based on the customer requirements. We make some adjustments, but this is typically where we start off like as a starting point for OTA firmware update. Okay. So in terms of the next steps, I would recommend getting an STM32 discovery IoT node. That's definitely a starting point. So getting one of those devices as a must have. Here are a couple of links which I put in, which we use as a starting point. There is a sample application from Microsoft Azure in terms of using the STM32 IoT discovery kit. So the first link. So that's where we take that link and essentially program that binary onto the device and connecting into Azure IoT Hub. So the key thing with IoT Connect, the Avenette IoT Connect is it's based on Azure IoT Hub. And so any connectivity you have into Azure IoT Hub will be sufficient and we can add the additional, the JSON formatting messages to connect into IoT Connect. So that's why we refer to Azure as a starting point and making sure your device is connecting into Microsoft Azure. In addition to Microsoft Azure examples, ST also has provided various libraries to connect into Azure in terms of the networking stack, the TLS, the libraries, et cetera, that is needed, MQTT, et cetera. So here are the links which I would recommend kind of like go following through those links. They're pretty straightforward in terms of building your own application. So this is where I would recommend as a starting point. So this is the end of my presentation. Hope this gives a good starting point and due to the time constraint, I'm not able to go through like details about the different aspects, but if you need any further help, if you have any further questions, you can reach out to me directly or you can reach out to one of the team members here that's present, you can contact one of these that the team members here. Thank you again and looking forward to see your IoT application up and running.