 Welcome to this self-training video for AutodevKit, a new development approach and toolset for automotive applications. Let's demonstrate AutodevKit's key advantages by implementing an embedded system dedicated to the Blind Spot Warning System. Here you can see the vehicle's blind spots when stopped at an intersection. Blind Spot Detection is a new standard function implemented in today's vehicles to prevent accidents. This is especially useful when one vehicle is overtaking another one. As shown there is an area that cannot be directly observed by the driver. We call this area a blind spot. The warning system detects vehicles in a blind spot and informs the driver. The demo includes a plexiglass panel with a set of boards to drive the application to simulate the loads. In the panel we have a microcontroller discovery board, hosting ST's SPC58EC 32-bit Automative microcontroller, a VI power actuator board with a high-side driver used to power the conveyor belt's geared DC motor, and an LED driver board with four channels at which we use one for our purposes. The demo uses two cars. One is in a fixed position while the other is placed on a conveyor belt driven by a geared DC motor. The LED is placed next to the fixed car and it represents the blind spot warning signal. Replacing the radars of a real detection system, we use a hall effect sensor able to measure the magnetic field of the car with magnets placed on the conveyor belt. Looking at the demo in action, we see that the truck on the conveyor belt approaches the range of the hall effect sensor that informs the microcontroller of the variation in the magnetic field, thus triggering the blind spot warning LED. This flow chart shows the steps required to create the blind spot detection application using AutodevKit. The first step consists of creating a new project and selecting the MCU platform to use. As soon as the project is created, we request SPC-5 Studio to generate the standard project files. The second step consists of adding basic components for initialization and MCU peripheral low-level drivers. The AutodevKit init component installs the board view editor that we will use later. The SPC-5 init component installs the basic hardware management files, including clock configurator, interrupt management, and an operating system abstraction layer, together with bootstrap files. It is now time to select the specific AutodevKit components for the blind spot warning system we intend to build. Therefore, we select the components managing the warning LED, conveyor belt, and hall effect sensor. Once we have added the AutodevKit components, we must configure them. The LED board requires a DSPI interface with two channels, represented by the chip select pins. Once configured, we proceed with the automatic pin allocation and peripheral configuration for the LED board. Now let's configure the VI power board for the conveyor belt's DC motor. For our demonstrator, we will only use the high side output and disable the current sense function. We complete the steps with the pin allocation. The last component is the hall effect sensor. In this case, it is much simpler, so we proceed directly with the pin allocation. We now generate the code for all the components that have been added and configured. In the SPC5 Studio's pin map editor, we can verify the allocated MCU pins, based on the requirements of the added components. Thanks to the board view editor provided by the AutodevKit library plugin, we can proceed with wiring the SPC58EC MCU discovery board to the others. We now see in detail the connections between the hall effect sensor and the MCU board. We now put everything together by writing our main function. To simplify this task, AutodevKit provides high-level APIs dedicated to controlling all the added components. A specific Doxygen documentation is available for each component. Here we present the APIs dedicated to the VI power board and the hall effect sensor. While here we present the APIs dedicated to the LED driver board and the low-level driver function required. The APIs hide all the implementation details, allowing board usage without having to read the related documentation. We paste the C code previously written using the AutodevKit components and we compile the code. All code sections are now highlighted, giving details on the implementation we put in place. In completed and compiled to the code, the next step is to download the firmware to the MCU and proceed with debugging. From the runtime setting, we can select if we want the code to be run from RAM or flash memory. The next step is to select the compiler options. The download and debug are done with the Universal Debug Engine, UDE, by PLS. Since the symbols file is loaded, we program the RAM and then we can start debugging. We set a breakpoint to enable the view to check the values of the local variables. We can now run the code and verify the changes in the values of the local variables. This sequence shows how we use UDE to program the flash memory with the code by our final application. After testing the code on the real system, we realized that there was some noise on the ADC reading of the Hall Sensor and we implemented a simple averaging filter. Thank you for watching this AutodevKit self-training video. Please join our online community and visit www.st.com.autodevkit for more information.