 Hello my name is Shahrukh Ashraf and I'm an FAE for ST Microelectronics. Today I'll be demonstrating an over-their update or OTA implementation using our SPC 5A series chorus device. The device in particular we're using today is chorus 4M and as the name suggests it features four megabytes of flash and dual power PCZ for cores running up to 180 megahertz. This device targets gateway and body applications. This demo today will demonstrate how we can manage two separate firmware images on a microcontroller without a hardware virtualization or a memory management unit. This is a software solution where we develop position-dependent firmware along with a static bootloader which makes it possible for us to compile this code for one partition and execute it on different partitions with a different base address. Before we move on to the actual demo let's just quickly overview how the memory space looks like for this application. Consider this green box as the whole code flash area for this microcontroller. We have application A and application B residing in either of the partition. Application A is single LED toggling and application B we have two LED toggling with a different pattern. It is important to note here that both the applications are built for partition 0 and our position dependent. We will start this demo with only application A flash to the microcontroller and the other partition is completely erased. Okay so let's start our demo. So this is our PC application which communicates to our discovery board over the UART. So as soon as we power up the evaluation board it should automatically detect. So here we go. It's detected the connection. Now if we check the version of what softwares are on there let's do go ahead and do that by click read version and tells me that there's no alternate version detected. That's expected because right now we have only application A flashed onto the microcontroller. Now what we'll do is we'll go ahead and try to flash a new firmware application B or version 6. I open the strike selected the application parses it and 16 bytes blocks and as soon as I hit flash device it is going to start the erase process for the partition and the important point to note here is that the application is still running while the erase was going and now the flashing has started and still the application A is running. So it's a non-blocking operation because we're using a task based system. This implementation provides zero downtime. You can see the one LED blinking signifying application A is running. You can see the progress bar also here. It's telling us how much the flashing is complete. Once this is done we'll get a notification that the flash is complete. Let's wait for that. So now our flashing is complete. I hit OK and now I again try to read the versions. Now it's telling me that we have version 5 or application A as the active and alternate version number 6 or application B in there. So it's still running application A and let me show you even if I power it off and on it's still going to be application A until we click the swap application. So let's go ahead and do that. So devices reset and application swap is complete now. Now if I read back again the versions so as expected now the active version is version number 6 and we can see the new LEDs are blinking now. So we can go ahead and try to turn it off and on and see which application it boots to. So see as expected it's booting up to application B now and we can always revert back to our older application if we just click this swap application again. Device reset and if we read our versions again now they're flipped again. So now the active version is version 5 and you can see on the evaluation board also that our application A is back. So this way we can keep both the application until a new one. The third one arrives we can erase the older one and replace it. That's it for today's demo. Thank you for joining.