# Embedded Wizard

Embedded Wizard is a graphical user interface tool developed and distributed by TARA Systems GmbH for creating graphical user interface (GUI) applications mainly for embedded systems, including microcontroller and microprocessor units. It provides a WYSIWYG front-end for editing graphics, effects and logic of the user interface and generates source code for particular target hardware. Embedded Wizard is independent of a specific graphics hardware, color format or input mechanism. It supports object oriented programming and does not require a Real-time operating system/Operating system, allowing GUIs to run on bare metal.
Embedded Wizard is mainly used to develop GUI applications for products in the area of industrial automation, consumer electronics, home appliances, medical industry, automotive industry and products equipped with a graphics display with or without a touch screen. The Free Edition of the tool is available on the Embedded Wizard website: https://www.embedded-wizard.de/download.

## History

The first version of Embedded Wizard was released in 2003 by TARA Systems GmbH, an embedded software development company located in Munich, Germany. It was intended as a successor of previous GUI tools from TARA Systems GmbH, like M2-Builder. In contrast to former tools, Embedded Wizard enabled platform-independent development, introduced its own programming language Chora, and was designed to support object oriented programming and resource-constrained devices, such as microcontroller. Since the first version, the tool has been extended with new features like an integrated debugger, a memory footprint analysis of RAM and flash consumption or support for effects and animations with a 3D perception and vector graphics.
Embedded Wizard was designed and developed by Paul Banach and Manfred Schweyer.

## Architecture

Embedded Wizard consists of the Embedded Wizard Studio, a WYSIWYG IDE for creating and prototyping the user interface application, and a hardware abstraction layer, called Platform Packages, which are available for various embedded chipsets, operating systems and color formats.
Each platform package contains a dedicated code generator and resource converter for bitmaps and TrueType fonts, which are adapted to a specific chipset, and - if available - operating system.
Another platform package can be licensed, which generates JavaScript/WebGL source code instead of ANSI C.

## Workflow

Following the approach of object-oriented programming, each Embedded Wizard project consists of classes which implement a certain part of the design and/or functionality. The class library of Embedded Wizard, called Mosaic, is part of every project and provides the basic functionality for visual objects, focus handling, layouting, event handling and more.
To create a graphical user interface, Embedded Wizard provides basic functions like rectangles, gradients, lines, (multiline) text boxes, import of bitmaps and TrueType fonts, but also GUI widgets like menus, scrollbars, buttons, and sliders. Besides the visual objects, developers can create methods, properties, variables, and enums to implement a certain behavior, using Embedded Wizard's own programming language Chora. Embedded Wizard follows the approach of visual programming. All logical elements, like methods, properties or variables are represented in the IDE as visual bricks. This enables developers, for example, to assign a variable as a parameter for a method by drag-and-drop.
The members of the class library can be flexibly extended by developers according to their needs. The available Knowledge Base accompanied by video tutorials and open community forum Ask Embedded Wizard help the developer to get familiar with the technology.
Embedded Wizard supports rapid prototyping and testing of the user interface. A debugger for the Chora code is integrated as well. During code generation, the Chora code is transformed into ANSI C code or JavaScript for a specific chipset, using the appropriate Platform Package. The generated C code needs to be compiled and linked with the runtime environment (RTE) and graphics engine (GE) of the platform package.

## Availability

The Embedded Wizard Studio is distributed by TARA Systems GmbH or its distributors as a per-developer license. The license consists of two parts: The Embedded Wizard Studio (i.e. the IDE), to develop graphical user interfaces (GUIs) on your Windows PC, and the Embedded Wizard Platform Package, which acts as an abstraction layer to the used embedded system, graphical subsystem and (RT)OS (if any).
Platform Packages are available for more than 70 various chipsets (as of 2024). Embedded Wizard is a selected solution by many semiconductor manufacturers for their chipsets. A complete list of all supported chipsets and operating systems can be found on http://www.embedded-wizard.de/platforms