The STM32 Open Development Environment is made up of four components. First is a set of Nucleo development boards that are the base motherboards containing a microcontroller. Next is a set of shield expansion boards, code-named X-NUCLEO. Each expansion board adds a functionality to the base microcontroller board. Third is a set of STM32 Cube embedded SW libraries; one for each STM32 microcontroller family, including drivers and middleware components such as graphics libraries, TCP/IP stack, file system, and USB. Finally, a set of STM32 Cube expansion Software, code named X-CUBE, which is the companion SW of each X-NUCLEO. Each X-CUBE contains all the drivers needed to run the board, with an abstract set of API.