SDK Architecture¶
The following diagram illustrates the architecture of the Software Development Kit (SDK) designed for the 280 Instrument Displays, powered by the STM32H743II microcontroller:

Microcontroller Abstractor Layer (MCAL)¶
The MCAL acts as the low-level interface between the 280 ST-SDK and the display hardware. It is predominantly auto-generated using STM32CubeMX and encapsulates direct hardware access, including GPIO, timers, ADCs, and communication peripherals. This layer is designed to remain stable and typically does not require manual modification. In rare cases where hardware-specific customizations are necessary, it is strongly recommended to seek support rather than altering the layer directly.
Platform Services¶
The Platform Services layer orchestrates the MCAL and abstracts physical hardware data into logical application-level data. It acts as a bridge between hardware and higher-level software components, enabling data storage and retrieval via the Data Layer.
Configuration of this layer is user-driven and documented in 280 ST-SDK Services. Manual changes are rarely required, except in cases involving advanced application-specific optimizations.
CAN Communication Stack¶
This layer includes support for two industry-standard CAN protocols: CANOpen and J1939. Users can select the appropriate stack based on application requirements, as detailed in the 280 ST-SDK Services.
FreeRTOS¶
Platform Services operates within a FreeRTOS environment, enabling real-time task scheduling. Users can configure task rates and priorities through the SDK configuration interface, as described in the 280 ST-SDK Services.
TouchGFX¶
TouchGFX is responsible for GUI rendering and interaction with the TFT-LCD display. Using TouchGFX Designer, developers can define visual elements, colors, backgrounds, and user interactions.
TouchGFX generates C++ code based on the Model-View-Presenter (MVP) design pattern, promoting clean separation between UI rendering and business logic. This layer is the primary focus for application-level customization.
Data Layer¶
The Data Layer provides a centralized interface for data exchange between services and the application. It supports both input and output data operations, enabling data to be displayed or processed as part of the application logic.
Manual modifications are infrequent but may be necessary for complex or performance-critical applications.
GET_DL API¶
This API allows the application to retrieve data from a service. Each data field is identified by a field id defined in the database.h header.
SET_DL API¶
This API enables the application to send input data to a Platform Service. Like GET_DL, it uses a field id from database.h to identify the target data field.
Application Layer¶
At the top of the architecture is the Application Layer, which represents the user-defined logic and interface. This layer is developed using TouchGFX Designer or Qt for MCU with the development/debugging support of STM32CubeIDE, and integrates all underlying services to deliver a customized 280 Instrument Display solution tailored to Off-Highway market requirements.