Jeff Karau

Without using QP, I don't believe we could have delivered on our given schedule dates with the same level of quality."

Jeff Karau, Sr. Software Engineer, General Dynamics C4 Systems

Henrik Bohre

...After trying out a couple of CASE tools we came to the conclusion that expensive round-trip-engineering UML tools were cumbersome and did not fit our way of working. However, the innovative QP way to map UML state machines to C/C++ code was exactly what we were looking for..."

Henrik Bohre, Embedded Systems Consultant, GotCom AB, Göteborg, Sweden

Michael_Barr

I'm speaking from first-hand experience when I say this is really good stuff. I just hope others will recognize that and we can get past the old main+ISR vs. RTOS dilemma for a large variety of applications."

Michael Barr, President Netrino and former editor-in-chief of the ESP magazine

Haitham Hindi

Practical Statecharts in C/C++ has been an indispensible reference for my embedded systems work. The clear and succinct conceptual and software framework, along with the immediately usable code enabled us to get a working prototype of our control system in a few weeks."

Dr. Haitham Hindi, Palo Alto Research Center (PARC)

Paul Montgomery

...QP has been adopted accross the company and is used in all our products on a variety of OS platforms..."

Dr. Paul Montgomery, Director of Engineering, Novariant, Fremont CA

Stratos Product Development

We're glad to keep giving Quantum Leaps our business. QP has been really valuable for us—we've had a great experience working with Quantum Leaps frameworks and tools. It's been a big help in terms of delivering high-quality software within our clients' budgets, so thank you!"

Jason Machacek, Software Engineer, Stratos Product Development LLC, Seattle WA

EIM Controls, Inc.

I used the traditional RTOS approach for about 10 years. With the real-time debug log of QSPY and the ability to see what is going on in the logic flow, the code is very easy to debug and modify. It makes the code very modular and deterministic... You end up talking about the codes logic flow, and not the semantics of the software. QP is a great product."

Paul Walker, Software Engineer, EIM Controls, Inc.

Apple Computer, Inc.

I recently rewrote a major piece of code to utilise the QP framework and it has worked wonders. My previous code used a more traditional state machine and had quickly evolved into spaghetti code. The hierarchical state machine approach made the new code smaller, more robust, and much easier to maintain and extend."

Bob Bradley, Apple Computer, Inc., from Amazon.com review

Honeywell International

Quantum Leaps software has revolutionized not just the way we write our software, but the way we approach our design. It is intuitive, easy to implement and comes in an incredibly small package. If you're in the 8-bit world, you need this software!"

Chad Koster, Software Engineer, Honeywell

Rich Wooley

Simply put, designing sofware using the QP framework lets you code the way you think..."

Rich Wooley, Sofware Engineer, Nipro Diabetes Systems, Florida

more user stories...

Open Source and Our Mission

Our mission at Quantum Leaps is to bring quantum-leaps of innovation to embedded systems programming. We believe that opening up the QP™ frameworks for widespread use and scrutiny of the open source community is the best way of achieving this goal.


NOTE: If your company has a policy forbidding open source in your product, all QP™ frameworks can be licensed commercially, in which case you don't use any open source license and you do not violate your policy.
learn more about commercial licensing


The Open Source License Used

All QP™ frameworks are released as open source under the GNU General Public License (GPL) as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

GPLv3

GPL is probably the best known and most established open source license. It is fully compatible with the Open Source Definition, is endorsed by the Free Software Foundation, and has been approved by the Open Source Initiative (OSI). Software distributed under the GPL can be marked with the OSI certification mark.

Please note that the GPL can be restrictive, so if it doesn't meet your needs, you might consider licensing the QP™ frameworks under different terms of our commercial licenses (dual licensing).


Arduino Projects:

Arduino

If you are developing and distributing Arduino projects, you can use QP under the modified GPLv3 license with the QP-Arduino Exception. Specifically, the Exception removes the requirement to expose your proprietary source code as long as you deploy it on an Arduino-Certified board.

Arduino GPL Exception

ARM mbed Projects:

ARM mbed

If you are developing and distributing ARM mbed projects, you can use QP under the modified GPLv3 license with the QP-mbed Exception. Specifically, the Exception removes the requirement to expose your proprietary source code as long as you deploy it on an mbed-Enabled board.

Mbed GPL Exception

Raspberry Pi Projects:

Raspberry Pi

If you are developing and distributing Raspberry Pi projects, you can use QP under the modified GPLv3 license with the QP-Raspberry Pi Exception. Specifically, the Exception removes the requirement to expose your proprietary source code as long as you deploy it on a genuine Raspberry Pi board.

Raspberry Pi GPL Exception

Third-party software mentioned or linked-to from this website might be licensed under different terms than the QP™ frameworks. In particular, you should not assume that such software is open source. Please refer to the corresponding owner's websites for the licensing information.


Quantum Leaps' Guidelines for Distributing Dependent Software

GPL instructs the licensees to contact the owner of the copyright to the software for guidance regarding the distribution of their programs that depend on the original code.

Our guidelines for distributing any third-party software dependent on QP™ frameworks are that all such third-party software must also be distributed under the terms of the GPL.

Such a policy is the cornerstone of the quid pro quo ("something for something") guiding principle behind the dual-licensing business model practiced by Quantum Leaps and most other second-generation open source companies. The policy ensures that the users of the software must either contribute application code to the community (GPL licensees), or contribute licensing revenue to the original software vendor by purchasing commercial licenses (commercial licensees).

Please note that Quantum Leaps has no rights, and does not claim any rights, to the application software developed by third parties, regardless if QP™ frameworks used in these applications is licensed under the GPL or commercial licenses.



Non-Profits, Academic Institutions

If you represent a non-profit organization or an academic institution, we recommend you publish your application as an open source software project using GPL. Thereby, you'll be able to use QP™ frameworks free of charge under GPL. We believe that if you have strong reasons to not publish your application in accordance with GPL, you should purchase commercial licenses.

Non-profit organizations, or academic institutions engaged in peaceful research can apply for free commercial licenses, which will be liberally granted in such cases.


Private Individuals

If you are a private individual you are free to use QP™ frameworks for your personal applications as long as you do not distribute them. If you distribute code containg any version of QP™ in any way, you must make a decision between the GPL and the commercial licenses. Please note that the above rules apply, even if you ship (distribute) a free demo version of your own applications.


Reciprocity of the GPL

GPL is an archetypal reciprocal open source license. Here is how GPL formulates the reciprocity requirement (GPL version 3 Section 5c):

"You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy..."

The reciprocity of GPL guarantees that the software community will benefit not just from the original QP™ source code, but more importantly, from ever-growing body of applications build upon the QP™ frameworks.


[from] Support SFLC

The document "A Practical Guide to GPL Compliance" published by the Software Freedom Law Center (SFLC) provides a guide to effective compliance with the GNU General Public License (GPL) and related licenses.

Read the Guide to GPL Compliance from SFLC Download the Guide to GPL Compliance in PDF


GPL Applied to QP™ Frameworks

As Lawrence Rosen explains in his book "Open Source Licensing", GPL applies to software based not upon how it is linked but upon how it is distributed. Here is the pertinent fragment of GPL version 3 Section 2:

If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program."

In many cases, such as Linux®, these provisions are technically trivial to avoid. For example, by separate downloading and installing Linux applications the question of "distribution as a whole" can be easily sidestepped (so applications are not technically distributed with Linux, at least don't need to be).

The GPL leaves it up to the copyright holder to provide a guidance regarding the distribution policies. Quoting from the aforementioned book: "Linus Torvalds has set a policy that software that is merely combined with Linux is not subject to the GPL regardless of how that software is distributed".

However, in the case of QP™ frameworks and in contrast to Linux, the separate distribution of applications based on the QP™ frameworks is practically impossible, especially when the whole software is distributed inside an embedded system and any separate distribution doesn't make sense. Furthermore, in contrast to Linux and other traditional operating systems and some RTOSs, QP applications cannot be "reasonably considered independent" because of the much higher level of reuse that leads to inversion of control between the application and the framework. For example, most of the application code consists of the state machines, which are entirely based on QP™. Therefore, the second sentence in the quoted GPL version 2 Section 2 fully applies to QP™ applications, not just to QP™ itself.



Stallman on Selling Exceptions to the GPL

In the aricle "On Selling Exceptions to the GNU GPL" Richard Stallman, the founder of the GNU project, took a stand in the debate about the ethics of selling exceptions to the GPL (e.g., through dual licensing) and its compatibility with the open source mission. He says:

I've considered selling exceptions acceptable since the 1990s, and on occasion I've suggested it to companies. Sometimes this approach has made it possible for important programs to become free software."


In the same article, Stallman also defines the only ethical form of selling exceptions to the GPL, which is exactly why all Quantum Leaps products are identical under either the GPL license or the commercial licenses:

We must distinguish the practice of selling exceptions from something crucially different: proprietary extensions or proprietary versions of a free program. These two activities, even if practiced simultaneously by one company, are different issues. In selling exceptions, the same code that the exception applies to is available to the general public as free software. An extension or a modified version that is only available under a proprietary license is proprietary software, pure and simple, and no better than any other proprietary software."



Note on Software Piracy

The book Embedded Systems Design on a Shoestring by Lewin A.R.D. Edwards (Newness, 2003) contains a timely note concerning software piracy of the open source code. Here is what Lewin Edwards advises:

With the plethora of useful open-source code floating around the Internet, free for the downloading, there might be a temptation simply to download and use whatever you please and assume that nobody will ever know because nobody will ever see your source code. Even ignoring the moral issues, this is suicidal folly. Anything from a disgruntled (or simply talkative) staff member to an interested hacker to a competitor reverse-engineering your product will destroy your company; discovery is inevitable, particularly if your product turns out to be a success. At the time of writing, several major American corporations are writhing in the throes of government investigations into accounting fraud; if your major product contains plagiarized code, discovery will lead to similar consequences. Worse—and this also applies to privately held companies, because it's not just stock price issue—you may be unable to ship any more units without an expensive major re-write of your operating system. Don't take this kind of risk. If you use free code, honor the license."

Embedded Systems Design on a Shoestring, page 50.


Last updated: October 11, 2014