Industrial PCs sit at the heart of factory automation systems, monitoring sensors, executing control logic, managing actuator outputs, and providing operators with a local interface to the process. For a system integrator with an established industrial automation portfolio, the hardware platform underpinning their PC product had reached end of life, creating pressure to migrate to a modern, cost-effective SoC while preserving their investment in a field-proven .NET Compact Framework application that had accumulated years of industrial control logic.
The customer approached Embien to develop a production-quality Windows Embedded Compact 2013 BSP on the Allwinner A20 - a dual-core ARM Cortex-A7 platform running at 1GHz that offered a compelling combination of processing performance, peripheral richness, and cost for the PC application. The BSP had to support the full complement of industrial I/O interfaces required by the PC, a local 5-inch LVDS operator display, Modbus RTU connectivity over RS485, and Ethernet for integration with industrial networks and supervisory systems. Critically, the customer's existing .NET Compact Framework application, the software embodiment of their industrial automation expertise, had to be adapted and validated to run on the new platform with the same functional behaviour as on the legacy hardware.
Developing a production BSP for Windows Embedded Compact 2013 on the Allwinner A20 presented the full set of challenges inherent to Windows CE BSP work on a platform without an existing CE vendor BSP. Every peripheral driver had to be developed within the Windows CE driver model from first principles, a disciplined but demanding process requiring deep knowledge of both the CE OAL and driver framework and the Allwinner A20's hardware registers and peripheral architecture.
The Allwinner A20's dual-core Cortex-A7 architecture offered the opportunity to distribute the PC's workload across both cores, separating the real-time control and I/O processing functions from the HMI and communication tasks. Exploiting this effectively under Windows CE required careful partitioning of the software architecture and management of inter-core resource sharing within the CE kernel's threading and scheduling model.
The industrial I/O requirement, eight digital inputs, eight digital outputs, four analog inputs, and four analog outputs, called for both digital GPIO driver development and analog front-end integration with the platform's ADC and DAC interfaces. Industrial signal conditioning for the analog channels, and appropriate electrical protection for the digital I/O, had to be addressed at both hardware and driver levels to ensure reliable operation in the electrically noisy environments typical of factory floors.
Adapting the customer's .NET Compact Framework application to the new platform required careful analysis of platform-specific dependencies in the existing codebase. While Windows CE 2013 provides a broadly compatible .NET Compact Framework runtime, hardware-specific interface calls, timing assumptions, and peripheral access patterns tied to the legacy hardware had to be identified, mapped to the new platform's capabilities, and validated for correct functional behaviour. This adaptation had to be achieved without altering the application's core control logic, preserving the field-proven behaviour that the customer's end users depended on.

Platform Bring-Up and Dual-Core OAL
BSP bring-up began with the Allwinner A20 bootloader configuration, establishing the DDR3 memory initialisation, clock tree configuration, and hardware initialisation sequence required before the Windows CE kernel could load. The CE OAL was implemented to bridge the CE kernel's abstraction requirements with the A20's interrupt controller, system timer, and memory management hardware. Both Cortex-A7 cores were initialised and made available to the CE scheduler, with the software architecture partitioned to direct real-time control and I/O processing tasks to one core and HMI rendering and network communication tasks to the other, distributing the computational load to make effective use of the dual-core architecture.
LVDS Display and Operator Interface
A 5-inch LVDS TFT-LCD at 800×480 resolution was enabled through a custom display driver integrating the Allwinner A20's display engine with the CE display driver interface. The display serves as the local operator interface for the PC, presenting process status, alarm conditions, configuration menus, and trend data to plant operators. Capacitive touch was enabled through a dedicated I2C touch controller driver, allowing operators to interact with the HMI through direct touch input. An ambient light sensor drives automatic backlight brightness adjustment, reducing glare in brightly lit plant environments and conserving power during periods of low ambient illuminance.
Industrial Digital I/O
Eight digital inputs and eight digital outputs were implemented through GPIO driver development on the Allwinner A20's GPIO controller. The digital inputs support active-high and active-low configurations, with debounce filtering applied in the driver to eliminate spurious transitions from industrial switch and sensor contacts. The digital outputs drive relay-compatible loads, controlling actuators, motor starters, valve solenoids, and indicator lamps in the controlled process. Interrupt-driven input change detection enables the PC control application to respond to digital input transitions with minimal latency, a key requirement for closed-loop control applications.
Industrial Analog I/O
Four analog input channels were implemented through the platform's ADC interface with appropriate signal conditioning circuitry at the hardware level to accept standard industrial 4-20mA and 0-10V sensor signals, covering the full range of industrial transducer output formats used for temperature, pressure, flow, and level measurement. Four analog output channels provide 4-20mA and 0-10V control signals to drive analog-controlled actuators and variable speed drives in the process. The analog driver layer presents calibrated, engineering-unit values to the .NET application through a clean API, abstracting the ADC raw counts and DAC register writes behind physical-unit interfaces that the application logic works with directly.
Modbus RTU over RS485 was implemented to enable the PC to communicate with field instruments, remote I/O modules, and other Modbus-compatible devices on the plant floor serial network. The RS485 driver handles the half-duplex direction control required by RS485 transceiver hardware, with precise timing management to ensure reliable Modbus RTU framing at industrial baud rates. Ethernet connectivity supports integration with supervisory SCADA systems, historian servers, and plant IT infrastructure over TCP/IP, enabling the PC to report process data, receive setpoint commands, and participate in plant-wide data collection architectures.
NET Compact Framework Application Adaptation
The customer's existing .NET Compact Framework application, embodying their industrial control logic developed over multiple product generations, was analysed for platform-specific dependencies before the adaptation work began. Hardware interface calls tied to the legacy platform's specific driver model were identified and remapped to equivalent interfaces on the new CE 2013 BSP. Timing-sensitive sections of the application were profiled on the Allwinner A20 platform to identify any execution timing differences relative to the legacy hardware, with adjustments made where necessary to preserve control loop timing behaviour. The core control logic, PLC ladder logic execution, alarm management, trend logging, and operator interface behaviour, was preserved without modification throughout the adaptation process.
The adapted application was validated against the functional specification of the legacy system, with particular attention to analog I/O scaling and calibration, digital I/O response timing, Modbus communication behaviour, and HMI display correctness. The validated application was then packaged for deployment on the production hardware.
Benefits
This Windows Embedded Compact 2013 BSP project demonstrates Embien's capability to deliver production-quality OS porting and BSP development for industrial automation applications, combining deep Windows CE platform expertise with the domain knowledge required to address the specific reliability, I/O, and connectivity requirements of industrial PC hardware. By enabling the customer's field-proven .NET Compact Framework application on a modern dual-core SoC platform through careful adaptation rather than rewrite, Embien delivered both a hardware platform upgrade and a preserved software investment, a combination that significantly reduced the customer's migration risk and time to market. This engagement was the beginning of a longer technology partnership, with the customer subsequently migrating from Windows CE to Linux,a journey that Embien supported through the next phase of their platform evolution.
Partner with Embien for expert Windows CE and Linux BSP development and application porting services for industrial PLC and automation platforms.