C/C++ SDK

STRAIGHTFORWARD PROGRAMMING

The C/C++ Software Development Kit (SDK) provides a direct way to implement converter control techniques without requiring any simulation software. This approach also offers superior performance and flexibility over automatically-generated control code such as using the ACG SDK.

Content
  • BBOS operating system
  • imperix IDE
  • Extensive functions libraries
  • Code examples
  • BB Control Utility software
C/C++ SDK
your price


Icon
C/C++ SDK
TRIAL VERSION
Operating system +
Simulink™ blockset
= ACG SDK
Operating system = C/C++ SDK

The Simulink™ blockset is no longer offered as an option of the Software Suite, but is rather proposed as a standalone development kit: the ACG SDK. Consequently, the C/C++ coding environment has been rearranged into a dedicated kit: the C/C++ SDK. As such, users can now choose between either kits depending on their preferred coding approach.

FEATURE ACG SDK C/C++ SDK
BBOS operating system
Simulation and code generation from Simulink™ *
C/C++ coding environment
BB Control Utility software
Code examples
User-editable area inside the FPGA (Kintex 7)
Stacked operation (multiple B-Boxes)

* Requires a paid MATLAB™ license issued by MathWorks™ and an installation of the following Simulink™ blocksets: Embedded Coder, MATLAB™ Coder and Simulink™ Coder

C/C++ SDK

STRAIGHTFORWARD PROGRAMMING

The C/C++ Software Development Kit (SDK) provides a direct way to implement converter control techniques without requiring any simulation software. This approach also offers superior performance and flexibility over automatically-generated control code such as using the ACG SDK.

Content
  • BBOS operating system
  • Toolchain integration for Xilinx SDK development environment
  • Extensive functions libraries
  • Code examples
  • BB Control Utility software
Operating system +
Simulink™ blockset
= ACG SDK
Operating system = C/C++ SDK

The Simulink™ blockset is no longer offered as an option of the Software Suite, but is rather proposed as a standalone development kit: the ACG SDK. Consequently, the C/C++ coding environment has been rearranged into a dedicated kit: the C/C++ SDK. As such, users can now choose between either kits depending on their preferred coding approach.

FEATURE ACG SDK C/C++ SDK
BBOS operating system
Simulation and code generation from Simulink™
C/C++ coding environment
BB Control Utility software
Code examples
User-editable area inside the FPGA (Kintex 7)
Stacked operation (multiple B-Boxes)

* Requires a paid MATLAB™ license issued by MathWorks™ and an installation of the following Simulink™ blocksets: Embedded Coder, MATLAB™ Coder and Simulink™ Coder

C/C++ SDK
your price


Icon
C/C++ SDK
TRIAL VERSION
Superior performance

Programming the B-Box RCP using C/C++ code generally offers superior performance over the graphical approach. Indeed, human-generated code still remains of superior quality than automatically-generated code, such as using the ACG SDK from MATLAB™ Simulink™. A difference of few tens of percents is often noticeable.

Improved flexibility

With the C/C++ SDK, there are virtually no limitations to what can be implemented. The provided function libraries indeed give direct and full access to all modulation parameters, possible sampling configurations, or even customized FPGA-based peripherals. Also, already-existing code can often be very easily ported to B-Box RCP.

Teaching

C/C++ programming offers a convenient way to either learn, understand or teach about the constraints of hard real-time systems. As such, the C/C++ SDK is particularly suitable for teaching purposes, where the students can face the needs of a rigorous control implementation, while benefiting from easy-to-use API functions.

Intuitive and comprehensive API

The C/C++ SDK provides an API (Application Programming Interface) that contains all the necessary routines and objects to implement any control algorithm simply and efficiently. Starting with a basic template or one of the available code examples also facilitates the control implementation.

Coding with c/C++ SDK

In addition to offering libraries of pre-optimized routines, the SDK also provide a very easy-to-use coding template. As such, for basic projects, users only need to complete two functions. An example is given below.

Initialisation

Here is what an initialization function may look like. It contains the configuration of an interrupt frequency, a PWM channel, a sampling phase and a PID controller.

Main interrupt

Inside the main interrupt, users may typically want to retrieve measurements, run a PLL to synchronize with the grid, run controllers and apply the appropriate duty-cycles to the PWM outputs.

Getting started with the C++ SDK

Configure the environment

Download the base template from imperix’s website and import it into imperix IDE. All environment parameters get configured instantly along with the function libraries, licensing and the latest version of BBOS.

Start writing control code into the provided template. Looking for a helper or library function, just hit CTRL+Space. You get then a list of all available library and OS functions, such as: GetADC(), SetPWMDutyCycle(), etc.

Develop control code
Get inspiration from examples

At any time, browse through code examples to get some hints and more ideas. You can also access and freely edit the open source code libraries provided in the API folder, such as: RunPIDController(), ConfigPRController(), RunDQPLL(), ConfigMPPTracker(), etc.

Compile, upload and launch executable code directly from imperix IDE. Everything is fully automated and all it takes is just a bit of waiting.

Executable code can also be put on flash memory so that B-Box boots up in a standalone fashion, without needing a computer at its side.

Upload run-time code
Extract experimental results

During run time, the BB Control Utility allows to observe, tune and plot any variable in real time. This can be used to generate transients, tune controllers and extract meaningful experimental results in not time!

Getting started with the C++ SDK

Configure the environment

Download the base template from imperix’s website and import it into imperix IDE. All environment parameters get configured instantly along with the function libraries, licensing and the latest version of BBOS.

Develop control code

Start writing control code into the provided template. Looking for a helper or library function, just hit CTRL+Space. You get then a list of all available library and OS functions, such as: GetADC(), SetPWMDutyCycle(), etc.

Get inspiration from examples

At any time, browse through code examples to get some hints and more ideas. You can also access and freely edit the open source code libraries provided in the API folder, such as: RunPIDController(), ConfigPRController(), RunDQPLL(), ConfigMPPTracker(), etc.

Upload run-time code

Compile, upload and launch executable code directly from imperix IDE. Everything is fully automated and all it takes is just a bit of waiting.

Executable code can also be put on flash memory so that B-Box boots up in a standalone fashion, without needing a computer at its side.

Extract experimental results

During run time, the BB Control Utility allows to observe, tune and plot any variable in real time. This typically allows to generate transients, tune controllers and extract meaningful experimental results in the blink of an eye.

Hardware-independent peripherals

Thanks to its FPGA-based peripherals, the B-Box RCP is built on a strong hardware abstraction layer. This guarantees that a code that works today on a given hardware will still work later, possibly on another hardware. Therefore, two types of portability are guaranteed:

 

  • Portability over hardware: the exact same code can be executed on both the B-Box RCP and the B-Board PRO seamlessly. This allows the user to switchover very easily from one controller to the other.
  • Portability over time: the developed code is ensured to be forward compatible with future generations of hardware, facilitating system maintenance and upgrade and avoiding system obsolescence.

Hardware-independent peripherals

Thanks to its FPGA-based peripherals, the B-Box RCP is built on a strong hardware abstraction layer. This guarantees that a code that works today on a given hardware will still work later, possibly on another hardware. Therefore, two types of portability are guaranteed:

  • Portability over hardware: the exact same code can be executed on both the B-Box RCP and the B-Board PRO seamlessly. This allows the user to switchover very easily from one controller to the other.
  • Portability over time: the developed code is ensured to be forward compatible with future generations of hardware, facilitating system maintenance and upgrade and avoiding system obsolescence.

Ultra light operating system

The B-Box RCP runs its own operating system (BBOS) that has been specifically designed to meet all the requirements of high performance power electronics systems. It has been thought to be light enough to offer a very high level of performance, while being providing rigorous protections and real time management.

As such, BBOS is perfectly suited to support rapid control prototyping applications as well a field applications, in any type of environment. BBOS is present and supports both C++ SDK and ACG SDK.

Ultra light operating system

The B-Box RCP runs its own operating system (BBOS) that has been specifically designed to meet all the requirements of high performance power electronics systems. It has been thought to be light enough to offer a very high level of performance, while being providing rigorous protections and real time management.

As such, BBOS is perfectly suited to support rapid control prototyping applications as well a field applications, in any type of environment. BBOS is present and supports both C++ SDK and ACG SDK.

Monitor and tune in real-time

The BB Control Utility is the built-in software tool for the real time access to B-Box RCP and B-Board PRO controllers. It enables users to access, monitor and tune easily any variable in real time.

This software works side-by-side with a dedicated CPU core inside B-Box, so that it can be guaranteed that monitoring actions have strictly no impact on the real time execution of the application-level software.

Monitor and tune in real-time

The BB Control Utility is the built-in software tool for the real time access to B-Box RCP and B-Board PRO controllers. It enables users to access, monitor and tune easily any variable in real time.

This software works side-by-side with a dedicated CPU core inside B-Box, so that it can be guaranteed that monitoring actions have strictly no impact on the real time execution of the application-level software.

Log and process extensive data

BB Control also embeds datalogging capabilities that show exactly what the user code sees and does, at every sample. The latest enhancements grant access to 2 million points, split into 32 independent channels.

The datalogging can be triggered on any of the logged signals and includes a transient generator as well.  This allows to produce and observe various transient regimes and tune easily control parameters and algorithms.

Log and process extensive data

BB Control also embeds datalogging capabilities that show exactly what the user code sees and does, at every sample. The latest enhancements grant access to 2 million points, split into 32 independent channels.

The datalogging can be triggered on any of the logged signals and includes a transient generator as well.  This allows to produce and observe various transient regimes and tune easily control parameters and algorithms.

Carry individual configurations

The BB Control utility also allows to visually configure the 16 analog inputs of your B-Box RCP and store all monitoring and application-related parameters in a dedicated configuration file.

This way, individual settings can be kept for multiple users of the same hardware, enabling simultaneous use of one platform in several projects.

Carry individual configurations

The BB Control utility also allows to visually configure the 16 analog inputs of your B-Box RCP and store all monitoring and application-related parameters in a dedicated configuration file.

This way, individual settings can be kept for multiple users of the same hardware, enabling simultaneous use of one platform in several projects.

Want to know more?

Feel free to get in touch with our technical or sales teams for all questions related to the BoomBox software package.

Demos can be organized upon request.