 Hello, and welcome to this video explaining how to migrate an STM32 Cube-based application between different STM32 series. This video provides guidelines through a practical reduced cost application example by migrating an STM32F4 application to the STM32L0 series using STM32 Cube with ARMKyle IDE. Now, let's start with a project using the STM32 Cube F4 package running on STM32F411 Nucleo, using an ADA Fruit 1.8-inch TFT shield with joystick and microSD card. First, search for the STM32 Cube F4 package on www.st.com. Click the STM32 Cube F4 link and search for the STM32 Cube F4 software package. Save and unzip it to a local directory. Once this is done, download the STM32 Cube L0 package. Now, open the STM32F411RE Nucleo project and compile it. Before running the project, open the doc directory here and look at the readme.txt file to learn how to operate the demonstration application. Now, let's start the migration process. First, change the device target in the option for target tab sheet. In our case, we are going to migrate the code to the STM32L053R8 Nucleo. Now, we are going to replace the specific library and product files. Replace the device startup file, the device interruption file, the Nucleo board driver file, the device CMSIS driver, and the device hardware abstraction layer files. Then add the new file in the project directory that you want to migrate by right-clicking on the project directory to add the new file. As a startup file, we can use the template given for the STM32L053 device located in drivers slash CMSIS slash device slash ST slash STM32L0XX slash source slash templates slash ARM directory of the STM32 cube FWL0 package. Now, remove the STM32F411 file. Then, create your new interrupt file. You can get help with examples from the different Nucleo projects or you can also copy and change the name of the original interrupt file then change the include file name to STM32L0XX underscore IT dot H and map your application interrupts according to your new hardware. In our case, the user button is on EXTI4 underscore 15. Replace the file STM32FXX underscore Nucleo dot C with the STM32L0XX underscore Nucleo C file located in the drivers slash BSP slash STM32L0XX dash Nucleo directory of the STM32QL0 package. Also, replace the file system underscore STM32F4XX dot C with the file system underscore STM32L0XX dot C located in drivers slash CMSIS slash device slash ST slash STM32L0XX slash source slash templates directory of the STM32QL0 package. And now, replace all driver files used in your application located in drivers slash STM32L0XX underscore HAL underscore drivers slash SRC directory of the STM32QL0 package. Change the defined names in the C slash C plus plus tab sheet and change the related include path of the source files that you have changed. Now you see that red crosses appear in your code. Don't worry, a few adjustments remain to be done. You have to update all old product references with your new file names here in main dot C and dot H files. Now change your STM32F4XX underscore HAL underscore CONF dot H file to STM32L0XX underscore HAL underscore CONF dot H. The easiest way to perform it is to take one of the examples provided in the cube package and customize it for your application. For example, we can use the one in the projects slash STM32L053R8 dash nucleo slash demonstrations slash ink directory. Here you have to uncomment the defines according to the hardware peripherals and associated driver files used in your project. The last adaptation to perform is inside the system clock underscore config in the main dot C file. Here again, you can paste the code from one of the examples provided in the L0 cube package. We can use this BSP example in the STM32L053R8 dash nucleo directory. Simply copy and paste the code of the function into your main file. Now all the errors have disappeared. You can now compile your code. You can see that no errors remain. The code was successfully migrated. Verify the programming tool settings. Set the flash loader for the STM32L0 and select ST link v2. Now load and run your application. Let's now test your application and fine tune your new code. Here the demo name should be nucleo dash L053R8. You can see the difference of performances between the STM32L0 and STM32F4 nucleo demos. We have seen how to migrate a cube based application between two different STM32 series. To learn more about ARM Kyle's integrated development environment please visit www.kyle.com and see our Kyle getting started video available on ST's YouTube channel. Thank you for your attention.