Abstract
Miniwinwm is an open-source Internet of Things (IoT) project. Open source embedded window manager with overlapped windows. This project is actively maintained and free support is provided via the website. New features can be added on request. Consultancy can provided for commercial use. MiniWin is a generic open source overlapped window manager for small embedded systems with a touch screen. It is written in compliant C99 and is easily portable. It is built using C, Arduino. The complete source code is publicly available on GitHub under the MIT License, making it a useful reference for students building an Internet of Things (IoT) mini project or final-year project.
1. Introduction
MiniWin is a generic open source overlapped window manager for small embedded systems with a touch screen. It is written in compliant C99 and is easily portable. The hardware interface is separated out into a small hardware abstraction layer making the rest of the system re-targetable to a wide variety of processors. MiniWin will run easily on ARM Cortex M0 or above, PIC32 or Renesas RX processors. MiniWin has a simple easy to understand API giving access to fully overlapped windows. The standard look and feel is easy to customize to your needs. Included with MiniWin are two sets of standard controls in standard and large sizes and a growing library of standard dialogs windows. All code developed for MiniWin and MiniWin generated code is MISRA 2012 'required' compliant.
October 2025 MiniWin is being updated for all the latest compilers and development environments. This is a major task with 160 projects to update, rebuild and test. See the spreadsheet in the Miniwin/docs forlder for progress.
Written specifically for small embedded systems with a LCD display and a touch screen Apart from a small hardware abstraction layer, platform independent Supports multiple overlapped windows with Z ordering Supports display rotation Incorporates a flexible graphics library Comes with a 2 sets of user interface controls - standard size for use with a touch screen and stylus, and large size for touch screen with finger input. Includes a set of standard dialogs that need no further code written to use. No dynamic memory used - all data structures allocated at compile time Two different sized standard bitmapped fonts included - fixed width and proportional - and 4 further optional bitmapped fonts. Any bitmapped font can be plotted in 4 rotations. TrueType font rendering support allowing you to to render justified, kerned, anti-aliased text on screen using a TrueType font of your choice. A clean easy to use API Comprehensive documentation and example code Runs in bare metal systems or within a single thread of a RTOS. Example projects showing FatFS (with USB host or SD interface), FreeRTOS integration, and TrueType font rendering. Requires minimal memory. Compiles without warning with GCC, clang, CL, XC32 or CC-RX Doxygen documentation for every function and type In-built touch screen calibration capability the first time the window manager is started. Code generator to create all your windows and controls from a simple configuration file in JSON format. Windows and Linux simulations allow for rapid user interface code development before hardware is available and without time consuming reflashing.
2. Objective
Open source embedded window manager with overlapped windows. This project is actively maintained and free support is provided via the website. New features can be added on request. Consultancy can provided for commercial use.
This project demonstrates how C, Arduino can be applied to a real-world Internet of Things (IoT) problem.
4. Technology Stack
5. System Requirements
General requirements for this technology stack — check the README for exact versions.
- Arduino IDE / PlatformIO or a C compiler (gcc)
- Target board where applicable
- Git (to clone the repository)
6. Installation & Setup
git clone https://github.com/miniwinwm/miniwinwm.git
cd miniwinwmFull setup instructions are in the project README.
7. Future Enhancements
Suggested extensions you can add to make this your own project.
- Add a mobile dashboard using Blynk or Firebase
- Store readings in a cloud database for history charts
- Add alerts via SMS / Telegram when thresholds are crossed
8. Viva / Review Questions
Common questions examiners ask for projects in this domain.
- Which microcontroller / board and sensors are used and why?
- How does the device send data (Wi-Fi, MQTT, HTTP, Bluetooth)?
- Where is the sensor data stored and visualised?
- How is power consumption managed?
- How would you secure the device and its communication?
9. Source Code & License
This project is developed by miniwinwm and published on GitHub under the MIT License. Please follow the license terms and credit the original author when you use or modify this code.
Want to build this as your internship project?
Work on an Internet of Things (IoT) project like this with mentor guidance, weekly reviews and an internship certificate from Training Trains, Erode — online or offline.
Apply for Internet of Things (IoT) Internship