Skip to main content

SOFT FOLDERS

SOFT FOLDERS
QM Download, Features & Setup: Official QP Modeler Guide
Table of Contents

QM Download, Features, Setup, and Alternatives: Official QP Modeler Guide

You want to turn state machine sketches into working C or C++ code, and you want a tool that does it without fuss. QM download searches usually come from embedded developers in exactly that spot. This guide covers what QM (QP Modeler) is, where to get it safely, how to set it up, and whether it’s worth your time.

Good to know: I checked the official Quantum Leaps materials and GitHub documentation for this guide. Details such as version numbers change, so always confirm them on the official QM site before you download.

What Is QM (QP Modeler)?

Quick answer: QM (QP Modeler) is a freeware graphical modeling tool from Quantum Leaps. It lets you design UML state machines visually and generate C or C++ code for embedded software built on the QP frameworks.

What Is QM Software Used For?

Developers use QM to draw event-driven behavior as hierarchical state machines, then turn that drawing into source code. It replaces long hand-written switch statements with a diagram you can read at a glance.

QM and Quantum Leaps: Understanding the Connection

Quantum Leaps is the company behind QM and the QP real-time embedded frameworks. QM was built to work with QP, so the two share a design philosophy: small, event-driven, and friendly to resource-limited microcontrollers.

How QM Supports UML State Machines and Statecharts

QM supports hierarchical state machines, often called UML statecharts. You can nest states, so a child state inherits behavior from its parent. That keeps diagrams small, because shared behavior is drawn only once.

QM’s Role in Model-Based Embedded Software Development

In model-based design, the model is the main design artifact, not an afterthought. QM sits at that center. You change the diagram, regenerate the code, and the two stay in sync.

Who Should Use QM Modeler?

QM suits embedded engineers, firmware teams, students learning statecharts, and anyone working with QP/C or QP/C++. It’s less useful if you only want generic UML class diagrams for documentation.

QM Official Website, Download, and Documentation

Quick answer: Get QM from the Quantum Leaps website (state-machine.com) or the official QuantumLeaps/qm repository on GitHub. Avoid third-party mirrors and repackaged installers.

QM QP Modeler free download from the official source
Always start your QM download from the official Quantum Leaps sources.

Where to Download QM From the Official Quantum Leaps Website

The official documentation recommends the QP-bundle, which packages QM with the QP frameworks and the QTools collection. It is the easiest route because the examples and tools arrive ready to go.

Prefer the official source for the main link, which is state-machine.com. Its QM section also holds the online manual.

QM Latest Version and Release Information

At the time of writing, the QM project listing on SourceForge shows the 7.0.x series, with 7.0.3 dated March 2026. Release numbers move, so treat that as a snapshot. The QM revision history page on the official site lists what changed in each release.

QM Download for Windows

The Windows build targets 64-bit systems. The official repository offers a digitally signed installer named like qm_<version>-windows.exe. It creates a desktop shortcut and associates QM model files (.qm and .qmp).

QM Download for Linux

Linux users download a zip archive named like qm_<version>-linux.zip. Unzip it into any folder. The documentation suggests ~/qp/ as a tidy default location.

QM Download for macOS

The macOS build is distributed as a .dmg disk image and, according to the current repository, targets Apple Silicon (ARM64). Older documentation mentions Intel builds, so check the release notes for your Mac.

QM Installer, ZIP Package, and Standalone Download Options

You have three practical paths:

OptionBest forNotes
QP-bundleMost peopleIncludes QM, QP frameworks, QTools
Windows installer (.exe)Quick setupDigitally signed, adds file associations
ZIP or DMG packageNo admin rightsUnzip or drag into place

QM User Manual and Official Documentation

The online QM manual lives on the official site. Offline HTML documentation also ships with each release, so you can open html/index.html in a browser without internet access.

QM Examples, Sample Projects, and Tutorials

Example models come with the QP baseline distributions, not the standalone QM download. That’s another reason the QP-bundle is the friendlier choice for beginners.

How to Verify a QM Download

Take a few simple steps before you run anything:

  1. Download only from state-machine.com or the QuantumLeaps GitHub page.
  2. On Windows, right-click the installer and check the digital signature.
  3. Compare the version number with the official release page.
  4. Be wary of sites that bundle QM with other software or ask for payment.

Caution: QM is freeware from Quantum Leaps. If a site asks you to pay for the download or wraps it in an extra installer, leave and use the official links.

How to Install and Set Up QM

Quick answer: Download the package for your system, install or unzip it, and open QM. Uninstall any older QM version first, because the documentation specifically advises this.

QM installation on a Windows PC
Install QM in a simple folder such as C:\qp\ for the smoothest setup.

QM Installation on Windows

Run the signed installer and follow the prompts. If you prefer the ZIP version, unzip it into a folder like C:\qp\.

The documentation advises against installing QM under “Program Files.” Paths with spaces and permission rules can cause trouble later.

QM Installation on Linux

Unzip the archive, then make the launch files executable. The documentation says both qm.sh and the qm executable need executable permissions.

chmod u+x qm.sh

Then start the tool with qm.sh from the bin folder.

QM Installation on macOS

Open the .dmg file and drag qm.app into Applications. Because the file doesn’t come from the App Store, macOS may block it. The repository explains how to clear the quarantine attribute from the downloaded file, so follow those steps.

QM First-Time Setup and Configuration

Launch QM and open one of the bundled example models. Exploring a working model teaches more than starting from a blank page. Then set your preferences for fonts and diagram appearance.

QM System Requirements and Compatibility

Current repository notes list Windows x64, Linux x64, and macOS ARM64. QM is a lightweight desktop application, so modern laptops handle it easily. A C or C++ compiler is needed later to build the generated code, not to run QM.

Updating QM to the Latest Version

Uninstall the old version first. If you used the ZIP, just delete the folder. Then install the new release and reopen your models. Keep backups of your .qm files before major updates.

Caution: Keeping an old QM version installed next to a new one can cause problems. Remove the old one first, and back up your models.

Common Installation Problems and Solutions

ProblemLikely fix
QM won’t start on LinuxMake qm.sh and qm executable
Missing Qt library error on LinuxInstall libxcb-cursor0 (the documented fix on Debian-based systems)
macOS blocks the appClear the quarantine attribute as the repository instructs
Odd behavior on WindowsMove QM out of “Program Files,” for example to C:\qp\

QM Features: What Can You Do With QP Modeler?

Quick answer: QM lets you draw UML state machines, organize them into a model, and generate C or C++ code that works with the QP frameworks.

Graphical UML State Machine and Statechart Modeling

You build state diagrams by placing states and drawing transitions between them. The result looks like the diagrams in your design documents, but it is also the real source of your code.

Hierarchical State Machine Design

Hierarchy is QM’s core strength. A superstate can hold shared behavior, and substates only add what is different. Imagine a drone where every flight state handles a “low battery” event the same way. You draw that once in the parent.

Visual Model Editing and Diagram Organization

QM keeps the model in a tree view alongside the diagram. You can rearrange elements, rename them, and keep large systems manageable by splitting them into packages.

Model-Based Software Development

With QM, a change in design means a change in the model first. That discipline reduces drift between documentation and code, which is a common headache in embedded projects.

Automatic C and C++ Code Generation

QM generates source files straight from the model. You get the state handlers and structure without writing the repetitive plumbing yourself.

Embedded Software and Real-Time Application Modeling

The generated code is designed for QP, a lightweight framework aimed at microcontrollers. That makes QM a natural fit for resource-constrained firmware.

QP Framework Integration

QM targets QP/C and QP/C++. The generated code assumes the framework’s event and state machine APIs, so the model and the framework fit together by design.

Active Object Modeling and Event-Driven Design

QM models active objects, which are event-driven components with their own state machine and event queue. This style avoids many shared-data problems common in multithreaded code.

Model Validation and Design Organization

A visual model makes mistakes easier to spot. Unreachable states, missing transitions, and tangled logic show up quickly in a diagram, even before you compile anything.

Managing QM Models and Project Files

QM stores models in files with the .qm extension, and .qmp is also associated with it. Being plain files, they work well with version control systems like Git.

How QM’s UML State Machine Editor Works

Quick answer: You create a state machine inside a class in the model tree, then draw states and transitions on a canvas. QM keeps the diagram and the model linked.

Creating UML State Machine Diagrams

Start by adding a package and a class, then give the class a state machine. A diagram canvas opens, and you begin placing states.

Designing Hierarchical State Machines

Drag a state inside another state to nest it. Children inherit the parent’s transitions unless they override them. This is how you avoid drawing the same “reset” arrow ten times.

Adding States, Transitions, and Events

Each state can have entry and exit actions. Transitions connect states and are triggered by events, optionally with guard conditions. Keep action code short, and call functions for longer logic.

Working With Statecharts and State-Based Logic

Statecharts extend simple state machines with hierarchy and richer behavior. A microwave oven is a classic example. “Door open” overrides everything, whether you were heating or idle.

Modeling Event-Driven Application Behavior

Think in events, not loops. A button press, a timer tick, or a sensor reading arrives as an event, and the current state decides what happens. This mindset makes embedded logic easier to reason about.

Organizing and Managing State Machine Models

Name states clearly and keep one state machine per active object. Group related classes in packages. Small, focused diagrams beat one giant canvas every time.

Using State Machines for Embedded Software Design

State machines suit devices that react to the world: motor controllers, medical pumps, user interfaces, and protocol handlers. The diagram doubles as documentation you can show a reviewer.

QM Model-Based Design and Embedded Software Development

Quick answer: Model-based design treats a diagram as the source of truth. In QM, you design behavior visually and let the tool generate the code that implements it.

Understanding Model-Based Design With QM

QM’s approach is described as “low ceremony.” You don’t need heavy UML formality, only the parts that help you design behavior. That keeps the learning curve reasonable.

Creating Graphical Models for Embedded Systems

Begin with the system’s events and the objects that handle them. Then model each object’s states. This top-down view often reveals design flaws before any code exists.

Designing Real-Time Software With State Machines

Real-time code must respond predictably. State machines make responses explicit, so each event in each state has a defined outcome. That clarity helps with testing and reviews.

Developing Event-Driven Embedded Applications

An event-driven program waits for events and reacts. This saves power on microcontrollers because the system can idle when nothing is happening.

Modeling Embedded Software Architecture

QM models classes, active objects, and their relationships, not only state machines. You can sketch the structure of the whole application alongside its behavior.

Using UML Models in C and C++ Development

You don’t need to master the full UML specification. For many embedded projects, state machine diagrams carry most of the value, with a few class elements for structure.

Benefits of Model-Based Embedded Development

BenefitWhy it matters
Clearer designDiagrams are easier to read than nested conditionals
Fewer repetitive bugsGenerated code removes boilerplate errors
Better documentationThe model stays current with the code
Easier reviewsTeammates can discuss the diagram, not the syntax

QM Automatic Code Generation: C and C++

Quick answer: QM generates C or C++ source files from your model. The generated code is built to run on the QP/C or QP/C++ framework.

How QM Generates Source Code From Models

You define output files in the model and tell QM which elements go where. When you generate, QM writes those files, filling in state handlers, structures, and functions based on the diagram.

Generating C Code From UML State Machines

For QP/C, the output follows the framework’s C conventions. State handlers become functions, and the framework dispatches events to them.

Generating C++ Code From Statecharts

For QP/C++, the output uses classes and methods. The structure feels more object-oriented, while the behavior is the same as in the C version.

Understanding Generated Source Files

Expect header and source files containing your active object definitions and state handler logic. Read them once. Knowing what QM produces makes debugging far less mysterious.

Integrating Generated Code Into Embedded Projects

Add the generated files to your IDE or build system, alongside the QP framework and your board support code. The QP example projects show the typical layout for many boards.

Customizing and Maintaining Generated Code

The model, not the generated file, is the source of truth. If you hand-edit generated sections, your changes disappear on the next generation. Put custom logic in the model’s action code or in separate files.

Code Generation Workflow and Limitations

A healthy workflow is: edit the model, generate, build, test, repeat. Note the licensing detail covered in the licensing section below. QM models without a valid QP license certificate are assumed to be under GPL, and the documentation says they are limited to a certain number of states.

Caution: Don’t hand-edit generated code. The next generation run will overwrite your changes.

Understanding the QP Framework and Active Objects

Quick answer: QP is a family of lightweight real-time embedded frameworks from Quantum Leaps. They implement active objects and hierarchical state machines, and QM generates code for them.

What Is the Quantum Leaps QP Framework?

QP provides the runtime: event queues, event dispatching, timers, and scheduling support. QM provides the design tool. Together they cover design to execution.

QP/C and QP/C++ Frameworks Explained

QP/C is written for the C language, and QP/C++ for C++. Choose the one that matches your project, since QM can generate code for either.

How QM Works With QP Frameworks

QM generates code that calls into the framework’s APIs. That is why the framework must be part of your build. The QP-bundle gives you both in one download.

Understanding the Active Object Design Pattern

An active object owns its data and has a private event queue. Other parts of the program talk to it only by sending events. This removes the need for many locks and mutexes.

Modeling Active Objects in QM

In QM, you create a class and mark it as an active object, then attach a state machine to it. The diagram becomes that object’s complete behavior.

Hierarchical State Machines in QP

QP supports hierarchical state machines at runtime. States, entry and exit actions, and nested transitions all map to code the framework understands.

Event-Driven Real-Time Software Architecture

A typical QP application has several active objects exchanging events. A sensor object might publish readings, and a controller object might react. The design reads like a conversation between components.

QM Code Generation for QP Applications

Because QM knows QP’s conventions, you rarely wrestle with glue code. That is the key advantage over a generic UML tool with a general-purpose code generator.

How to Use QM: Beginner’s Tutorial

Quick answer: Open QM, create a model, add a class with a state machine, draw states and transitions, then generate code. Start from a bundled example if you feel unsure.

Getting started with QM QP Modeler
Start with a bundled example model, then build your own state machine.

Exploring the QM Editor Interface

You’ll see a model tree on one side and a diagram canvas in the middle. Properties appear in a separate panel. Spend ten minutes clicking around an example model.

Creating Your First QM Model

Choose to create a new model and pick the target framework, such as QP/C or QP/C++. Then save the file, because QM models are stored as .qm files.

Building a Basic UML State Machine

Try a simple light switch. Add two states, “Off” and “On,” and an initial transition into “Off.” The model is tiny but teaches the whole workflow.

Adding States, Events, and Transitions

Define a “button pressed” event. Draw a transition from “Off” to “On” triggered by it, and another back again. Add entry actions that call your LED functions.

Creating a Hierarchical State Machine

Now add a parent state called “Powered.” Move “Off” and “On” inside it. Add a “power lost” transition from the parent, and both children obey it automatically.

Generating C or C++ Source Code

Define an output file in the model, then run code generation. Open the resulting files and trace each state in the diagram to its function.

Working With a QP Framework Project

Place the generated files in a QP example project, such as a console-type example on your computer. Build it and run. Seeing your state machine react in a terminal is satisfying.

Saving, Opening, and Managing QM Model Files

Save often and use version control. To open an existing model, use the open command, or double-click a .qm file if the Windows installer set up file associations.

QM Model Files, Examples, and Project Management

Quick answer: QM models are saved as .qm files. Example models ship with the QP distributions, so the QP-bundle gives you plenty of working samples.

Understanding the QM Model File Format

The model file holds your classes, state machines, and code generation settings in one place. It is designed to be stored and tracked like any other source file.

How to Open Existing QM Files

Launch QM and open the file from the menu. On Windows, the installer links .qm files to QM, so double-clicking works. If a file won’t open, check that your QM version is recent enough.

Working With Sample QM Projects

Examples cover console programs for Windows, Linux, and macOS, plus embedded boards such as ARM Cortex-M. Pick the one closest to your hardware and modify it.

Finding QM Example Models

Look inside the examples directory of your QP framework installation. The documentation states that examples sit in the folder where you installed QP/C or QP/C++.

Organizing and Reusing Model Components

Group related classes into packages. Reuse proven state machines by copying their structure into new projects. Consistent naming makes this far easier.

Backing Up and Sharing QM Projects

Keep models in Git alongside your source. For sharing with a colleague, send the .qm file and note the QM version you used.

QM Compatibility and Development Environment

Quick answer: QM runs on 64-bit Windows and Linux and on Apple Silicon Macs. It generates standard C and C++ that you build with your usual toolchain.

Supported Operating Systems and Platforms

SystemCurrent build
Windowsx64
Linuxx64
macOSARM64

Verify this against the release page, since platform support can change.

Windows, Linux, and macOS Compatibility

The same model file opens on all three. A team with mixed machines can share models without conversion.

C and C++ Development Environment Integration

QM doesn’t replace your IDE. You edit models in QM and edit or build the project in your own environment.

Embedded Toolchains and Project Workflows

QP examples exist for compilers such as IAR, Keil ARM, and GNU toolchains. The Arduino ecosystem is also supported, where the Arduino IDE or PlatformIO handles building and uploading.

Working With Real-Time Embedded Systems

Your target hardware only sees the generated C or C++ and the QP framework. QM itself never runs on the device.

Hardware and Software Requirements

A modest modern computer is enough. You also need a compiler for your target, plus the QP framework sources, which the QP-bundle includes.

QM Free Download, Licensing, and Availability

Quick answer: QM is freeware. It is free to download and use but is not open source. The generated code follows the license of the QP framework you target.

Is QM Free to Download?

Yes. The official documentation describes QM as freeware. You accept a basic end-user license agreement during installation.

Understanding QM Licensing and Usage Conditions

The agreement protects Quantum Leaps from warranty claims and prohibits removing copyright notices. Read it yourself, since terms can be updated.

QM Software Availability for Different Operating Systems

QM is available for Windows, Linux, and macOS, so licensing doesn’t change with the platform. Availability depends mostly on the architecture, as covered earlier.

QM and QP Framework: Understanding Their Different Roles

QM is the modeling tool, while QP is the runtime framework. They are licensed separately. The code QM generates is licensed under the same terms as the QP framework it was generated for.

What to Check Before Using QM in Commercial Projects

Check these points first:

  1. Read the current QP licensing page on state-machine.com.
  2. Note that QP offers open-source (GPL) and commercial licensing.
  3. The documentation says models without a valid QP license certificate are assumed to be GPL and can generate only a limited number of states. One version of the README gives that limit as 20.
  4. Confirm the current rules for your QM version before you plan a large product.

Risk notice: This is not legal advice. For a commercial product, ask a qualified professional or contact Quantum Leaps directly.

QM Pros and Cons

Quick answer: QM’s best points are visual design, hierarchical state machines, and tight QP integration. Its drawbacks are a focused scope, the QP dependency, and licensing details to understand.

Advantages of QM for State Machine Modeling

Pros

  • Clear diagrams for complex behavior
  • Hierarchy that cuts duplicated logic
  • Freeware access
  • Cross-platform desktop support
  • Models that double as documentation

Cons

  • Learning curve for state machine thinking and QP concepts
  • Built around QP, so less flexible for other frameworks
  • Licensing details to understand before commercial use

Benefits of Automatic Code Generation

Generated code is consistent. It removes tedious boilerplate and prevents typo-style bugs. Changing a transition means redrawing an arrow, not hunting through code.

Limitations and Learning Curve

You must learn state machine thinking and the QP concepts. That takes a little time. QM is also built around QP, so it is less flexible if you want to target other frameworks.

QM Compared With Traditional Manual Coding

FactorQM model-basedManual coding
ReadabilityDiagram-drivenDepends on the author
Speed on small tasksSlower to startFast
Speed on complex logicOften fasterGets messy
ConsistencyHighVaries
Learning curveModerateLow initially

QM Review: Is QP Modeler Worth Using?

Quick answer: For embedded developers using QP, yes. QM is a focused, practical tool. If you need a general-purpose UML suite, look elsewhere.

Ease of Use and Visual Modeling Experience

The interface is straightforward and lightweight. Beginners can draw a working state machine within an hour, especially from an example.

UML Statechart and Hierarchical State Machine Capabilities

This is the heart of the product. The hierarchy handling mirrors how QP executes state machines, so the diagram you draw is the behavior you get.

C and C++ Code Generation Workflow

The generate, build, run loop is quick. Keeping generated code out of your hand-edited files keeps the workflow clean.

QP Framework Integration

Integration is the headline feature. Few tools match a framework this closely, because QM and QP are developed by the same company.

Best Use Cases for QM

  • Firmware for IoT devices and sensors
  • Motor and power control
  • Embedded user interfaces
  • Protocol and communication handlers
  • Teaching state machines and event-driven design

Who Should Choose QM?

Choose QM if you write C or C++ for microcontrollers and like the active object approach. Skip it if you only want diagrams for documents, or if your project is committed to another framework.

Best QM Alternatives and Similar UML Modeling Tools

Quick answer: Popular alternatives include MATLAB Stateflow, itemis CREATE (formerly YAKINDU Statechart Tools), IBM Rhapsody, Sparx Enterprise Architect, and the open-source StateSmith. Features and prices change, so check each vendor.

UML State Machine Modeling Software Alternatives

General UML suites such as Enterprise Architect and Rhapsody cover state machines inside a wider modeling platform. They suit large organizations with formal processes.

Statechart Editors for Embedded Software Development

itemis CREATE focuses on statecharts and generates code for several languages. Stateflow lives in the MATLAB and Simulink environment, which is common in control engineering.

Model-Based Design Tools for C and C++ Developers

StateSmith is an open-source option aimed at generating state machine code from diagrams. Check its current documentation for supported languages and diagram tools.

Free UML State Machine and Statechart Editors

Free options exist, including open-source and community-edition tools. QM itself is freeware. Always verify the license and the limits of any “free” edition before relying on it.

QM vs. Other Model-Based Development Tools

Tool typeStrengthTrade-off
QMTight QP integration, lightweightCentered on QP
StateflowSimulation and control designNeeds MATLAB tools
itemis CREATEStatechart focus, multi-languageDifferent workflow from QP
Enterprise Architect / RhapsodyFull UML suitesHeavier and commercial
StateSmithOpen source, flexibleSmaller ecosystem

How to Choose the Right QM Alternative

Ask four questions. What language do you use? Do you need simulation? What’s your budget? Is a framework already chosen? If you’re on QP, QM usually wins. Otherwise compare trial versions.

If you also work with databases next to your embedded projects, tools like the ones covered in this DataGrip guide can help with that side of your workflow.

QM Troubleshooting and Common Problems

Quick answer: Most QM problems come from permissions, missing libraries, outdated versions, or a framework mismatch. Check those first.

QM Not Opening on Windows, Linux, or macOS

On Windows, try moving QM to a simple path like C:\qp\. On Linux, confirm both launch files are executable. On macOS, clear the download quarantine attribute as described in the repository.

QM Installation and Setup Errors

Uninstall previous versions first, as the documentation insists. Avoid “Program Files.” Re-download the file if the installer seems corrupted.

QM Model Files Not Opening

Check that the file is a valid .qm file and that your QM version isn’t older than the one that created it. Restore a backup if the file is damaged.

Missing or Incorrect State Machine Elements

Verify that every transition has a source and target, and that your initial transition exists. Using the model tree helps you find elements that don’t appear on the diagram.

QM C or C++ Code Generation Errors

Confirm your output file definitions and the selected target language. Also check the state count against the licensing note if generation stops unexpectedly.

QP Framework Integration Problems

Match your QP version to the one your model targets. Many integration errors disappear when the QM, QP, and example versions all come from the same QP-bundle.

Updating QM and Resolving Compatibility Issues

Read the revision history before upgrading. Test your build with a copy of your project, and ask questions on the official support forum when stuck.

Frequently Asked Questions About QM

QM is used to design UML state machines visually and generate C or C++ code for embedded software.

Yes. QM stands for QP Modeler, the modeling tool from Quantum Leaps.

Download it from the official Quantum Leaps website or the QuantumLeaps/qm GitHub repository. The QP-bundle is the recommended option.

QM is freeware, but it isn’t open source. Check the QP licensing terms before using it in a commercial product.

QM is the design and code generation tool. QP is the runtime framework that executes the generated code.

Yes. It generates code for the QP/C and QP/C++ frameworks.

Examples ship with the QP distributions, and the official online manual has tutorials and guidance.

Conclusion

QM gives embedded developers a clear way to design behavior and turn it into dependable code. You draw the states, define the events, and let the tool handle the repetitive parts. That freedom to think in diagrams is what makes it feel so good to use.

Start with the QP-bundle, open an example, and change one transition to see how the code reacts. Check the licensing page before shipping a commercial product. Do that, and you’ll be building tidy, event-driven firmware before you know it.

Leave a Reply

Your email address will not be published. Required fields are marked *