imperix bbos

Hard real-time operating system

At the heart of imperix devices, BBOS, the operating system, takes care of keeping things simple, configurable, and safe at all times.
BBOS and its surrounding software help accelerating power electronics-related developments, independently from the hardware.

You are here:

Home | Software | BBOS operating system
  • Inter-device operability: A user code can be seamlessly loaded onto different hardware platforms. No need to rebuild!
  • Trans-generational compatibility: The code developed today will still be usable in a few years on next-generation hardware devices.
  • Multi devices: Thanks to the rigorous clocking and inter-device error handling, the inputs/outputs can be expanded at any time, by connecting more devices together.
  • Security: BBOS continuously checks for configuration errors, overruns, data consistency,… and stops execution in case any problem occurs.

A flexible and open framework

BBOS and its surrounding software have been specifically developed for the stringent and specific constraints power electronics. From the management of sampling scenarios to that of faults, everything has been made to guarantee that all technical challenges are addressed appropriately. Furthermore, BBOS has been designed such that various profiles of users can find their marks.

On the one hand, beginners, like students, can start working without taking care of the system configuration. Commonly-used parameters are applied by default. This way, standard applications can be set up very quickly and without extensive technical knowledge.

On the other hand, experts, who are able to tune specific parameters can do so very easily. In this respect, many are surprised to see how flexible the system becomes. Almost every setting can be changed so that a broad range of applications can be covered very rapidly and without effort. Furthermore, for the rare cases that require special functions that aren’t built-in, the possibility to edit the FPGA firmware opens a virtually unlimited range of possibilities.

Advanced built-in capabilities
Thanks to BBOS, imperix controllers can readily cover a broad range of requirements, being simultaneously easy to use and vastly configurable.

  • Rigorous clocking: A parent-pending technology make I/Os and as well as the sampling time-coherent, even across devices. Time resolution is small as 2.5ns!
  • Multi-rate support: Tasks with different priorities and execution periods can be configured, hence enabling the execution of complex control implementations.
  • Variable-frequency and phase support: Switching frequencies and carrier phases can be updated periodically, so that it can drive resonant converters.
  • Configurable over-sampling: Get more than one sample per period, to get more details on the sensed waveforms, or to smoothly control interleaved converters.
  • Protection management: Key execution parameters are continuously monitored. Faults  automatically trigger a safe shutdown in order to avoid damages.
  • Simple debugging / monitoring: Every user-defined variable can be effortlessly brought back to BB Control software, hence allowing an easy debugging.
FPGA-based capability extension

In case a special feature would be missing, user can easily develop and implement additional IP blocks and peripheral drivers.

  • Simple data transfers: Data exchange between the processor and the FPGA is made simple and flexible by using shared registers.
  • Transparent network support: BBOS and the FPGA-based peripherals are automatically handling the master-slave data transfers, with a predictable latency.
  • Unlimited expandability: Custom FPGA implementations can access almost every I/O, hence conveniently interfacing with 3rd party hardware.



BBOS associated with fully FPGA-based peripherals are forming a strong hardware abstraction layer.

As such, any control code is guaranteed to keep working across future generations of hardware, facilitating maintenance and upgrade, while benefiting from technology advances brought by up-to-date technologies.


Similarly, B-Box RCP and B-Board PRO are fully cross-compatible, although the underlying hardware differs.

This allows users to switch over very easily from one controller to the other.
Moreover, the cross-compatibility can be extended to almost any custom-built control hardware that is running BBOS.

A Tailor-made Architecture

The software implementation used for BBOS is strongly layered. Therefore, the programmer has no need to fully understand the operation of the underlying hardware; the focus can be set on the application and its control only. This way, time-to-application is significantly reduced compared to other approaches.


The user-level application is the free space where the user programs its control algorithm, either with our CPP or ACG SDKs. Thanks to our extensive function libraries, the programming tasks are within reach for everyone. 

The interrupts management is the time keeper of BBOS. It makes sure that the desired execution periods are guaranteed – and not excessed! It also schedules tasks with lower priority, like supervisory controllers.

The hardware abstraction layer takes care of the hardware management (eg. interface to the FPGA-based IP)  as well as hangling all data exchange with the outside world (e.g. for monitoring, CAN, Ethernet,…).


The choice to develop our own OS has been made with performance considerations in mind. Thus, BBOS as been organized so that it runs as fast as possible on a given processor, while keeping it within reach of every developer.


Before each release, our software is thoroughly tested with real converters. Furthermore, thanks to the hardware protections of the B-Box, BBOS also makes sure that everything runs smoothly, and raises errors otherwise.


Developers can always extend the functionalities of a given hardware setup. For example, expanding I/Os is simple thanks to our RealSync communication technology. Also, FPGA can be easily edited to add specific IPs.

One API for Multiple workflows

With performance and flexibility in mind, BBOS can be directly interfaced with C++ code using CPP SDK. Alternatively, the ACG SDK provides a convenient interface to visual programming from within mainstream development software.


The C++ Software Development Kit (SDK) supports the direct implementation and validation of converter control techniques using C/C++ code.

Users have direct access to the API provided by BBOS. This allows to easily manage and control all FPGA-based peripherals.


The Simulink blockset enables easy coding of imperix controllers from the widely spread and versatile Simulink environment.

The blockset takes advantage of both the simulation and code generation engines of Simulink to offer ultra-fast development of control algorithms.


Similarly to Simulink blockset, this blockset takes advantage of the well-known, power electronics focused, PLECS simulation software.

In all versions of PLECS simulation software, imperix controllers can be coded from within the same tool that is reknown for its accurate modeling of power electronics.

Related products

Want to know more?

For all questions related to our software, feel free to get in touch with our technical team. We're here to help! Online demos can also be organized upon request.

Alternatively, you can always download and install the software. As our licenses are hardware-related, our software is essentially unrestricted and all features can be tested free of charge.