Table of Contents
All imperix products subject to user programming from the ACG SDK or the CPP SDK require a software license. This concerns the B-Box controllers family as well as the B-Board PRO and the TPI8032.
This page provides background information on the particular policy employed at imperix, as well as practical details regarding the procurement, implementation and maintenance of the corresponding licenses with the following controllers:
| Product | Environments | License required | User Manual |
| B-Box 4 | ACG SDK and CPP SDK | YES | Link |
| B-Box RCP 3 | ACG SDK and CPP SDK | YES | Link |
| B-Board PRO 3.0 | ACG SDK and CPP SDK | YES | Link |
| B-Box micro | ACG SDK and CPP SDK | YES | Link |
| TPI 8032 | ACG SDK and CPP SDK | YES | Link |
Further details and comparisons about the different hardware variants are given in PN250.
License types
Imperix commercializes two license types corresponding to two distinct computer-based software developement environments for which they are intended; these two environments corresponding themselves to two Software Development Kits (SDK) sold by imperix.
- License for use with the ACG SDK (automated code generation from Simulink/PLECS). Product: SDK-ACG3
- License for use with the CPP SDK (code development in C/C++. Product: SDK-CPP3
In the vast majority of cases, imperix licenses are time-unlimited, but hardware-locked and non-transferable. They are generally provided as a file that comes pre-loaded inside the controller (on its SD card).
Both licenses are subject to imperix’s End User License Agreement, which can be consulted during the software installation process.
– Matlab, Simulink, Simulink Coder, Embedded Coder and Matlab Coder from Mathworks Inc.
– PLECS and PLECS Coder from Plexim GmbH.
Licensing policy
Target-based licensing
Thanks to this, users benefit from the following advantages:
- The desired development environment can be installed on an unlimited number of computers (e.g. staff, students, etc.).
- Control models can be developed and simulated on a different computer (e.g. personnal or office computer) than the one used for programming the system (e.g. shared computer in the lab).
- Software can be installed and evaluated free of charge before having real equipment in hands.
- Internet access is never required (neither from the computer, nor the controller).
This second particularity has the following implications:
- All systems implementing a single controller require a programming license. In this case, the controller is inevitably the master, receiving and executing some code. Therefore, users who only possess one B-Box or one TPI8032 (for instance) naturally fall into this category.
- In master-slave configurations with stacked controllers, licenses are not required for the slaves. The latter are used as I/O extensions only, and their CPUs are not programmaed and left unused.
- In multi-master configurations, only the units meant to receive a run-time code (i.e. the masters) require a license. Those operated as slaves don’t (see above).
This strategy also has the following further benefits and implications:
- Slaves are cheaper than masters. Therefore, a system with twice the number of I/Os is not twice the price. In our opinion, this is more fair, as the computing power doesn’t double in this case.
- Customizing the firmware of the FPGA is always free of charge. It is indeed possible to upload a custom bitfile into a slave, even if the latter doesn’t possess a CPU programming license.
- Volume discounts are provided so that users with more targets than computers are not disadventaged when compared to a computer-locked approach.
Volume discounts
In order to consider the total history of purchases, a specific discount is applied to the Nth license (see left table below), so that the equivalent aggregated discount is implemented (see right table below).
| License purchase | Unit discount on Nth |
| 1st (first) | 0% |
| 2nd (second) | 41% |
| 3rd (third) | 49% |
| 4th (fourth) | 53% |
| 5th (fifth) | 55% |
| 10th (tenth) | 62% |
| 20th (twentieth) | 67% |
| 50th (fiftieth) | 73% |
| 100th (hundredth) | 76% |
| Total # of licenses | Aggregated discount |
| 1 | 0% |
| 2 | 20.5% |
| 3 | 29.8% |
| 4 | 35.5% |
| 5 | 42.5% |
| 10 | 49.8% |
| 20 | 57.6% |
| 50 | 65.5% |
| 100 | 70.1% |
Besides, in case both the ACG and CPP licenses are activated on a controller, a 50% additional price reduction is granted on the CPP license.
Maintenance
Thanks to permanent licenses with free maintenance, users can continuously use imperix software throughout the entire life of the controller(s), and can also leverage all updates at no extra cost. Future software releases can be downloaded and used without restrictions of any kind. Imperix does not charge any maintenance fee at any point in time.
Free product support is also offered to customers facing trouble with an imperix product not operating as intended. Technical or engineering assistance beyond this point is however provided on a discretionary basis. Imperix reserves the right to offer consulting services in lieu of extensive support demands.
Practical considerations
License file
The right to use the software is embodied by a license file containing a digital key, stored on the designated controller. To ensure that the software only operates with the intended hardware, a cryptographic challenge is executed at the code startup.
The CPP and the ACG licenses are fully independent, so that a controller may be supported by either one or both environments at once.
Manual update
Licensing information can be accessed in the “Target information” section of each controller, using Cockpit. If necessary, the licensing can be updated by uploading a newer license file.
Going further
Imperix publishes two software releases, generally available simultaneously. Both releases support all imperix controllers and are available at imperix.com/downloads.
- A STABLE release, containing thoroughly-tested features and capabilities.
- A BETA release, featuring the most recent developments.
Specific user manuals are available for each product and supporting software:
| Imperix SDK | For use with | User Manual |
| ACG | Simulink | Getting-started Simulink |
| ACG | PLECS | Getting-started PLECS |
| CPP | Imperix IDE (Eclipse) | Getting-started C/C++ |
| (both) | FPGA programming | Getting-started FPGA |





