INSIGHTS
2025-08-21 24 View

"NEW" - Middleware, The Smart Bridge

Middleware Architecture for the MIO333 on KIWI330


In embedded systems, bridging the gap between high-level software and low-level hardware is essential for flexibility, scalability, and efficient development. On the KIWI330 platform, this connection is achieved through a robust middleware layer, explicitly designed to interface with modular hardware expansions such as the MIO333. This particular module provides access to critical I/O interfaces—including GPIO, PWM, I²C, SPI, and UART—enabling interaction with sensors, actuators, and control systems in industrial and embedded environments.

To operate the MIO333 effectively, the KIWI330 relies on a dedicated hardware abstraction layer  in the form of middleware. This layer facilitates seamless communication between the main system-on-chip (SoC, based on Intel® Alder Lake or Amston Lake) and the microcontroller (MCU) embedded within the MIO333. The MCU is responsible for executing the real-time low-level operations required by the module’s I/O interfaces.

Communication Architecture


The KIWI330 handles all core computing and user applications, while the MIO333 focuses on real-time control. Communication between them takes place via a USB-based Virtual COM port, establishing a reliable serial link between the SoC and the MCU. Through this connection, the application processor sends hardware control commands—such as setting GPIO states, initiating I²C reads, or configuring PWM signals—to the MCU. The MCU firmware then interprets and executes these commands directly on the physical hardware.

This architecture supports bidirectional communication, allowing the MCU not only to receive instructions but also to return results and status information back to the application layer. This is crucial for building reactive and synchronized systems in fields like industrial automation, edge computing, and smart infrastructure.

What is the middleware for MIO333?


The middleware is implemented as a platform-specific shared library, providing a clean and consistent API for developers to access the MIO333's hardware functions from user-space applications.

On Windows, the library is distributed as a Dynamic Link Library (Kiwi.dll)

On Linux, it is compiled as a Shared Object file (Kiwi.so)

Instead of writing low-level drivers or firmware code, developers simply call the exposed functions in the middleware. These functions abstract away the complexity of command formatting, data transmission, and communication protocols. Internally, the middleware handles all aspects of serial communication over the virtual COM port, ensuring reliable interaction with the MCU firmware.

For Python users, a custom wrapper called PyKiwiUtility.py allows middleware access via Python’s ctypes module, making it easy to build cross-platform applications with minimal overhead.

About KIWI board


KIWI board is a complete solutions provider, supporting every aspect of your project, from hardware to software and system integration, to get your application functioning securely, reliably, and at peak performance. KIWI board builds its products for high reliability, high performance, security, scalability, and versatility so customers can expect extended service life, quickly adapt to evolving system requirements, and adopt future technologies as they emerge.

Next steps


Ready to talk about your projects with a KIWI board expert? Contact us

Want to hear more from KIWI board?  for our newsletterSign up

Or request a quotation