 Hello, and welcome to this presentation of STM32 Cube, our tool for developers using STM32 microcontrollers that is aimed at simplifying development with a set of tools and embedded software. STM32 Cube is a 100% free offer made and supported by ST Microelectronics and proposed to all STM32 developers. It combines a PC software tool and a set of embedded software bricks. The software tool, available under Windows, Linux, and macOS operating systems, called STM32 Cube MX, allows the user to graphically configure by simple clicks how the STM32 will be used in the application. The user is able to configure the product from the simple IO allocation on the selected STM32 package up to high level TCP-IP stack settings when applicable. Once the appropriate device configuration has been set up, simply pressing a button triggers the generation of initialization code written in C according to user choices. The generated code sits on top of the STM32 Cube embedded software part. This embedded software includes not only an abstraction layer, portable from one STM32 series to another, but also the low-layer APIs, a lightweight optimized, expert-oriented set of APIs designed for both performance and runtime efficiency, as well as a collection of middleware stacks coming from ST or the open source market for RTOS, USB, TCP-IP, and so on. Time and effort for writing the application code are greatly reduced. The user code can rely on the lower-level code that has been prepared with the STM32 Cube. Low-layer initialization code generation is currently available within STM32 Cube MX for STM32 L4, L0, F0, and F3 families. End of this feature is ongoing and is planned for all STM32 families. Let's start with the initialization code generator tool running on a PC. This free tool is called STM32 Cube MX. It goes much further and proposes a step-by-step approach to configure the microcontroller. First, the application allows the user to select exactly the right microcontroller required from the large STM32 portfolio using either enhanced filtering capabilities or by selecting an ST board model. Once the microcontroller is selected, the user can configure it using powerful wizards. The pinout wizard solves conflicts and helps the user to clearly identify how the package pins will be used. The clock tree wizard provides a clear interface to select the right compromises in terms of the internal frequencies used. The peripherals and middleware wizard allows the user to set all the parameters. For instance, from the simple I2C cell configuration up to USB stack settings. The power consumption wizard enables the user to check if the application fits a particular power consumption scenario. Once the user is satisfied with the configuration, code can be generated based on these choices. Even better, some project files for the user's favorite IDE are created, thus making it ready to append the user code in the development environment. The generated initialization code relates to the STM32 Cube embedded software bricks. Let's look at these in detail. The first layer consists of the hardware abstraction layer, HAL, and low-layer LL APIs. The former ensures high portability between different STM32 series, while the latter is a lightweight and performance-oriented set of APIs. The STM32 Cube is available for the complete STM32 series from the ultra-low-power STM32L0 up to the high-performance STM32H7 series. The STM32 series being used is abstracted from one series to another, using a highly portable API, thus ensuring an easy path from one STM32 to another. This highly portable set of application programming interfaces is completed with an additional set of function calls to support specific STM32 features. The high quality of the hardware abstraction layer and low-layer APIs is ensured using a code static analysis tool, Code Sonar from Gramitech. This tool is an industry standard and ensures safer implementations for the final user. In addition, more than 200 examples, depending on the MCU and hardware board, are provided to help you use the software and the microcontroller. Last but not least, the hardware abstraction layer and low-layer APIs come with a BSD license, one of the best open-source and business-friendly licenses. For user convenience, middleware bricks also come with embedded software deliveries. These bricks are portable to any series where the function is available. Middleware bricks also come for free, and most of them are based either on open-source de facto standards or ST deliverables with permissive and business-friendly license terms. Of course, the user can replace a middleware brick with any other. ST uses lightweight IP, LWIP, for the TCP-IP stack, our proprietary USB library for host and device when applicable, STMWIN as the graphical stack based on our partnership with Sega, FATFS as the file system, FreeRTOS as the real-time operating system, and our touch-sensing library. In addition, roughly 50 examples, depending on the MCU and hardware board are provided to help you use the middleware with the selected microcontroller. You can then create your own application on top of all the components provided by ST so you can focus on your own added value. ST can provide a full demonstration showing how to put all the components together. You will find further information about these products on ST's website at www.st.com slash stm32cube. Thank you for your attention.