{"id":310,"date":"2021-03-20T09:51:22","date_gmt":"2021-03-20T09:51:22","guid":{"rendered":"https:\/\/imperix.com\/doc\/?p=310"},"modified":"2025-05-07T08:27:27","modified_gmt":"2025-05-07T08:27:27","slug":"getting-started-bb-control","status":"publish","type":"post","link":"https:\/\/imperix.com\/doc\/help\/getting-started-bb-control","title":{"rendered":"Getting started with BB Control"},"content":{"rendered":"\n<p>This note explains how to build, load, and execute the control code that is generated from Simulink, PLECS or imperix IDE (C\/C++ code). It notably details how to connect the target to the host computer, using the monitoring software <strong>BB Control<\/strong>.<\/p>\n\n\n\n<div class=\"wp-block-simple-alerts-for-gutenberg-alert-boxes sab-alert sab-alert-info\" role=\"alert\"><strong>Discontinuation Notice<br><\/strong>From release v.3.7 of both ACG SDK and CPP SDK,\u00a0BB control has been discontinued.<br>Please visit <a href=\"https:\/\/imperix.com\/doc\/help\/programming-imperix-controllers\">Programming and operating imperix controllers<\/a> instead.<br>BB Control has been replaced by <a href=\"https:\/\/imperix.com\/software\/cockpit\/\">imperix Cockpit<\/a>, which offers an extended set of features and a superior user experience. To learn more please visit the <a href=\"https:\/\/imperix.com\/doc\/help\/cockpit-user-guide\">Cockpit user guide<\/a> page.<\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-related-content\">Related content<\/h2>\n\n\n\n<div class=\"wp-block-columns are-vertically-aligned-top full_width_content is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-vertically-aligned-top is-layout-flow wp-block-column-is-layout-flow\">\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/imperix.com\/doc\/help\/installation-guide-acg-sdk\">Installation guide for the ACG SDK<\/a><\/li><\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-with-simulink\">With Simulink<\/h4>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/imperix.com\/doc\/help\/getting-started-acg-sdk-simulink\">Getting started with Simulink<\/a><\/li><li><a href=\"https:\/\/imperix.com\/doc\/help\/simulation-essentials-simulink\">Simulation essentials with Simulink<\/a><\/li><\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-with-plecs\">With PLECS<\/h4>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/imperix.com\/doc\/help\/getting-started-acg-sdk-plecs\">Getting started with PLECS<\/a><\/li><li><a href=\"https:\/\/imperix.com\/doc\/help\/simulation-essentials-plecs\">Simulation essentials with PLECS<\/a><\/li><\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-with-imperix-c-sdk\">With imperix C++ SDK<\/h4>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/imperix.com\/doc\/help\/getting-started-with-cpp-sdk\/installation-and-utilisation-of-cpp-sdk\">Installation and utilization of  C++ SDK<\/a><\/li><\/ul>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-top is-layout-flow wp-block-column-is-layout-flow\">\n<div style=\"height:1px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n<\/div>\n<\/div>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-related-video\">Related video<\/h4>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Getting started with imperix ACG SDK on Simulink [Part 3]\" width=\"720\" height=\"405\" src=\"https:\/\/www.youtube.com\/embed\/N1tkcRJZV8Y?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-generating-run-time-code\">Generating run-time code<\/h2>\n\n\n\n<p>To generate the code and load it to the B-Box RCP or B-Board PRO controller, the procedure is as follows:<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p><strong>Simulink<\/strong><\/p>\n\n\n\n<p>Make sure that \u201cAutomated Code Generation\u201d is selected in the Configuration block of the model, and click the \u201cBuild\u201d button (Ctrl+B).<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p><strong>PLECS<\/strong><\/p>\n\n\n\n<p>Open the \u201cCoder &gt; Coder option\u201d window (Ctrl+alt+B) and click the \u201cBuild\u201d button.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p><strong>C\/C++<\/strong><\/p>\n\n\n\n<p>Click on the \u201crun\u201d icon within the imperix IDE.<\/p>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-simple-alerts-for-gutenberg-alert-boxes sab-alert sab-alert-info\" role=\"alert\">The build procedure is done such that everything takes place automatically. This encompasses code generation, compilation, and upload on the controller. Also, the BB Control monitoring software automatically launches and starts the code on the connected target.<\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-loading-and-executing-code\">Loading and executing code<\/h2>\n\n\n\n<p>After a code has been successfully built, if BB Control is not running yet, it will be automatically launched. At first launch, the target IP address must be entered indicated before connecting to the target. Once connected, the code is started automatically. From the second launch, BB Control tries to connect to the last used IP address. Alternatively, BB Control can be launched from the Windows start menu, in which case the user must indicate the path to the project folder, as well as the target IP address (see fig. below).<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/image-41.png\" alt=\"BB Control starting page\" class=\"wp-image-325\" width=\"394\" height=\"408\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/image-41.png 484w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/image-41-290x300.png 290w\" sizes=\"auto, (max-width: 394px) 100vw, 394px\" \/><figcaption>BB Control starting page<\/figcaption><\/figure><\/div>\n\n\n\n<p>By clicking the \u201cConnect\u201d button, BB Control connects to the target and loads the executable. Project settings (including the IP address and project path) are then written in a configuration file named \u2018config.dxv\u2019 and stored in the project folder. Hence, any future launch won\u2019t hence require any configuration.<\/p>\n\n\n\n<div class=\"wp-block-simple-alerts-for-gutenberg-alert-boxes sab-alert sab-alert-info\" role=\"alert\">If another project is built from a different path, a new instance of BB Control will automatically be launched.<\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-ethernet-link-configuration\">Ethernet link configuration<\/h3>\n\n\n\n<p>All communications between the target and the computer use the Ethernet port located at the front of the B-Box, or on the carrier board of the B-Board. However, two different scenarios must be distinguished, depending on how the IP address is assigned to the target:<\/p>\n\n\n\n<p><strong>1) The target is part of an Ethernet network<\/strong> and has a dynamic IP address, assigned by a <a href=\"https:\/\/en.wikipedia.org\/wiki\/DHCP\">DHCP<\/a> server. On a B-Box RCP, this address can be seen by simply turning the push button of the front panel at the end of the startup sequence.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/image-42-1024x506.png\" alt=\"B-Box IP address display\" class=\"wp-image-327\" width=\"426\" height=\"210\" title=\"Product notes &gt; PN139: Getting started with BB Control &gt; B-Box IP screen.png\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/image-42-1024x506.png 1024w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/image-42-300x148.png 300w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/image-42-768x380.png 768w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/image-42.png 1076w\" sizes=\"auto, (max-width: 426px) 100vw, 426px\" \/><figcaption>B-Box IP address display<\/figcaption><\/figure><\/div>\n\n\n\n<p>With a B-Board PRO, the dynamic IP address can be found using a device browser (e.g. Bonjour browser) and searching for a device with hostname starting with \u201cBB-\u201d.<\/p>\n\n\n\n<div class=\"wp-block-simple-alerts-for-gutenberg-alert-boxes sab-alert sab-alert-info\" role=\"alert\">In a DHCP-enabled network, you may want to ask your network administrator to configure a static lease for the target IP address.<\/div>\n\n\n\n<p><strong>2) The target is directly tied to the host computer<\/strong> and doesn\u2019t receive any dynamic IP address. Therefore, the pre-configured static IP address is used (default value is 192.168.222.22).<\/p>\n\n\n\n<p>In this case, the user must configure the host computer accordingly. To do so:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Navigate to \u201cControl Panel\u201d &gt; \u201cNetwork and Internet\u201d &gt; \u201cNetwork Connections\u201d.<\/li><li>Right-click on the Ethernet adapter that is connected to the target and select \u201cProperties\u201d.<\/li><li>Highlight \u201cInternet Protocol Version 4 (TCP\/IPv4)\u201d and click \u201cProperties\u201d.<\/li><li>Check the box \u201cUse the following IP address\u201d, enter the first three bytes of the static IP address of the device, and choose the last byte, different from that of the target. Also, change the network mask to \u201c255.255.255.0\u201d.<\/li><\/ul>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"400\" height=\"455\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/image-43.png\" alt=\"Ethernet port configuration pane\" class=\"wp-image-328\" title=\"Product notes &gt; PN139: Getting started with BB Control &gt; ethernet_driver_configuration.PNG\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/image-43.png 400w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/image-43-264x300.png 264w\" sizes=\"auto, (max-width: 400px) 100vw, 400px\" \/><figcaption>Ethernet port configuration pane<\/figcaption><\/figure><\/div>\n\n\n\n<div class=\"wp-block-simple-alerts-for-gutenberg-alert-boxes sab-alert sab-alert-info\" role=\"alert\">In case an Ethernet port is not available, the target can be connected with a USB-to-Ethernet dongle.<\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-operating-the-target\">Operating the target<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-enabling-disabling-pwm-signals\">Enabling\/disabling PWM signals<\/h3>\n\n\n\n<p>Right after the connection, BB Control automatically loads and starts the code. However, PWM signals are not physically produced until outputs are enabled.<\/p>\n\n\n\n<p>By default, after the user code is launched, the device is in <code>BLOCKED<\/code> state (i.e. PWM signals inhibited) for safety reasons. Enabling and disabling the gating signals is done by clicking the \u201cEnable\/Disable outputs\u201d button located at the top of the BB Control window.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/image-54.png\" alt=\"Enable\/disable outputs buttons\" class=\"wp-image-566\" width=\"287\" height=\"52\"\/><figcaption>Enable\/disable outputs buttons<\/figcaption><\/figure><\/div>\n\n\n\n<p>The enabling\/disabling process is completely independent from the control algorithm running and acts as a gating switch on all PWM signals:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/image-55-1024x201.png\" alt=\"PWM outputs enabling mechanism\" class=\"wp-image-567\" width=\"388\" height=\"76\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/image-55-1024x201.png 1024w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/image-55-300x59.png 300w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/image-55-768x151.png 768w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/image-55.png 1324w\" sizes=\"auto, (max-width: 388px) 100vw, 388px\" \/><figcaption>PWM outputs enabling mechanism<\/figcaption><\/figure><\/div>\n\n\n\n<div class=\"wp-block-simple-alerts-for-gutenberg-alert-boxes sab-alert sab-alert-warning\" role=\"alert\">The enabling\/disabling mechanism shall not be confused with the activation\/deactivation of a CB-PWM block, which is designed to <strong>selectively <\/strong>configure which channel\/lane should produce PWM signals once enabled.<\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-understanding-the-operating-states\">Understanding the operating states<\/h3>\n\n\n\n<p>The B-Box RCP and B-Boar PRO have four possible core states:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><code>CONFIG<\/code>: the system is checking that the resources are correctly configured.<\/li><li><code>BLOCKED<\/code>: the system is configured correctly and PWM outputs are ready to be enabled.<\/li><li><code>OPERATING<\/code>: The PWM outputs are enabled, and the system is operating without error.<\/li><li><code>FAULT<\/code>: An error occurred and the system waits for its acknowledgment.<\/li><\/ul>\n\n\n\n<p>The controller conforms to the state diagram below. It goes into <code>OPERATING<\/code> state when the gating signals are enabled, and goes back to <code>BLOCKED<\/code> state when disabled. In case of error (e.g. due to a hardware fault such as an overcurrent), the controller goes immediately into <code>FAULT<\/code>, which immediately disables the PWM outputs. The source of the fault is described in the \u201cMessage Log\u201d tab of BB Control. The return to the <code>OPERATING<\/code> mode is only allowed once the fault is cleared and acknowledged.<\/p>\n\n\n\n<div class=\"wp-block-simple-alerts-for-gutenberg-alert-boxes sab-alert sab-alert-info\" role=\"alert\">Some faults, such as those happening during the <code>CONFIG<\/code> state, are unrecoverable. They mostly result from a misconfiguration and must be resolved before the code can be launched. The most common design issues resulting in unrecoverable faults include:<br>&#8211; A physical resource (e.g. analog input) being used by multiple peripherals.<br>&#8211; An excessive interrupt frequency considering the computational complexity of the code.<\/div>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img decoding=\"async\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/image-44-1024x778.png\" alt=\"Operation states of the controller OS\n\" class=\"wp-image-329\" width=\"380\" title=\"Product notes &gt; PN139: Getting started with BB Control &gt; PN136_8col.png\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/image-44-1024x778.png 1024w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/image-44-300x228.png 300w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/image-44-768x584.png 768w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/image-44-1536x1167.png 1536w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/image-44.png 1994w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption>Operation states of the controller OS<\/figcaption><\/figure><\/div>\n\n\n\n<div class=\"wp-block-simple-alerts-for-gutenberg-alert-boxes sab-alert sab-alert-dark\" role=\"alert\"><strong>B-Box RCP only<\/strong><br>Faults triggered by the overvalue detection mechanism of the analog inputs can be traced from the front panel. Each analog input has an orange LED that turns on when the measurement triggers the upper or the lower safety limit. The user can use the button on the front panel to navigate through the menus of the screen and get more information about the fault:<br>&#8211; Under \u201cFaults\u201d > \u201cList hardware faults\u201d, the screen indicates which limit was triggered.<br>&#8211; Under \u201cFaults\u201d > \u201cAcknowledge inputs faults\u201d, the user can acknowledge hardware faults.<br>After hardware faults are acknowledged, the B-Box returns into <code>BLOCKED<\/code>state.<\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-watching-and-altering-variables\">Watching and altering variables<\/h3>\n\n\n\n<p>In the \u201cDebugging\u201d tab, variables can be added to the watch list by typing their name in the top field and pressing Enter. Their current value can then be monitored in real-time in the list below. The user can also alter a variable\u2019s value by double-clicking on it (see figure above). Additionally, by dragging a variable from the watch list and dropping it over the plot below, the variable\u2019s evolution in time can be viewed.<\/p>\n\n\n\n<div class=\"wp-block-simple-alerts-for-gutenberg-alert-boxes sab-alert sab-alert-info\" role=\"alert\">When using Simulink, in order to be accessible, the corresponding signal must be connected to a <em>Probe <\/em>or a <em>Tunable parameter<\/em> (part of the imperix blockset). The supported data types are <code>float<\/code>, <code>int32<\/code> and <code>uint32<\/code>.<\/div>\n\n\n\n<p>The maximum update rate of this plot is a few tens of Hertz, so this type of plots is only suited to observe the evolution of slow-varying quantities (e.g. DC link voltage). For fast phenomena and\/or in order to retrieve consecutive samples, we recommend using the datalogging feature described below.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img decoding=\"async\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/image-45-1024x637.png\" alt=\"BB Control Debugging tab\" class=\"wp-image-332\" width=\"800\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/image-45-1024x637.png 1024w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/image-45-300x186.png 300w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/image-45-768x477.png 768w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/image-45.png 1287w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption>BB Control Debugging tab<\/figcaption><\/figure><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-data-monitoring-and-logging\">Data monitoring and logging<\/h3>\n\n\n\n<p>The \u201cDatalogging\u201d tab acts similarly to an oscilloscope. This means that at each control execution step, the variables are logged and made available on the PC at the end of the sampling window. This allows logging <strong>each and every sample<\/strong> acquired by the digital controller.<\/p>\n\n\n\n<p>Four different graphs can be used, and up to 8 variables can be plotted on each graph. BB Control can display up to <strong>200\u2019000 points per variable<\/strong>. Different options can be configured, such as the trigger or the gain of the variables.<\/p>\n\n\n\n<p>The trigger can be configured on a signal, using the corresponding parameters on the top left of the \u201cDatalogging\u201d tab, or it can be forced by clicking on \u201cForce trigger\u201d. The variables are displayed on the graphs after each trigger. The sampling frequency is the same as the control frequency. Auto-refresh is available when trigger parameters are configured accordingly.<\/p>\n\n\n\n<p>The \u201cTransient\u201d tab allows the user to schedule events, such as a step of voltage\/current reference, that will be applied simultaneously with the acquisition window. In order to be active, the transient generator has to be enabled from the \u201cDatalogging\u201d tab.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/image-46.png\" alt=\"BB Control Datalogging tab\" class=\"wp-image-334\" width=\"620\" height=\"503\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/image-46.png 920w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/image-46-300x243.png 300w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/image-46-768x623.png 768w\" sizes=\"auto, (max-width: 620px) 100vw, 620px\" \/><figcaption>BB Control Datalogging tab<\/figcaption><\/figure><\/div>\n\n\n\n<div class=\"wp-block-simple-alerts-for-gutenberg-alert-boxes sab-alert sab-alert-info\" role=\"alert\">Plots can be exported in a CSV file by clicking the \u201cSave data\u201d button.<\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-configuring-analog-inputs\">Configuring analog inputs<\/h2>\n\n\n\n<p>BB Control offers the possibility to read, edit, and save configuration files for the analog front-end of the B-Box RCP. This notably allows switching easily between several configurations, related to different systems. The related information can be found in&nbsp;<a href=\"https:\/\/imperix.com\/doc\/help\/analog-front-end-configuration-on-b-box-rcp\">Analog front-end configuration on B-Box RCP (PN105)<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-further-monitoring-options\">Further monitoring options<\/h2>\n\n\n\n<p>On top of the above-described capabilities offered by BB Control, monitoring and logging data can be done using third-party tools and interfaces using either Ethernet or CAN.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-graphical-user-interface\">Graphical user interface<\/h3>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p><a href=\"https:\/\/imperix.com\/doc\/help\/gui-with-matlab-app-designer\">PN130<\/a> addresses how to set up a customized graphical user interface using Matlab App Designer.<\/p>\n\n\n\n<p>This approach however requires additional support on the application side, and therefore additional efforts, when compared to the monitoring capabilities that are built-in inside BB Control.<\/p>\n\n\n\n<p>The same communication mechanisms can furthermore also be used when the controller must exchange data with a programmable logic controller (PLC) or a similar platform.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img decoding=\"async\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/image-47.png\" alt=\"Example of GUI using App Designer\" class=\"wp-image-337\" width=\"400\" title=\"Product notes &gt; PN139: Getting started with BB Control &gt; a7455486-a4ec-48bb-b463-ae3bcdf39a99.png\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/image-47.png 606w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/image-47-224x300.png 224w\" sizes=\"(max-width: 606px) 100vw, 606px\" \/><figcaption>Example of GUI using App Designer<\/figcaption><\/figure><\/div>\n<\/div>\n<\/div>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>This note explains how to build, load, and execute the control code that is generated from Simulink, PLECS or imperix IDE (C\/C++ code). It notably&#8230;<\/p>\n","protected":false},"author":2,"featured_media":3009,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"categories":[12,3],"tags":[],"software-environments":[],"provided-results":[],"related-products":[50,31,32,166,51],"guidedreadings":[],"tutorials":[],"user-manuals":[],"coauthors":[63],"class_list":["post-310","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-getting-started-acg-sdk","category-help","related-products-acg-sdk","related-products-b-board-pro","related-products-b-box-rcp","related-products-b-box-rcp-3-0","related-products-cpp-sdk"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Getting started with BB Control - imperix<\/title>\n<meta name=\"description\" content=\"This page provides an overview and getting started instructions for the BB Control debugging and monitoring software.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/imperix.com\/doc\/help\/getting-started-bb-control\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Getting started with BB Control - imperix\" \/>\n<meta property=\"og:description\" content=\"This page provides an overview and getting started instructions for the BB Control debugging and monitoring software.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/imperix.com\/doc\/help\/getting-started-bb-control\" \/>\n<meta property=\"og:site_name\" content=\"imperix\" \/>\n<meta property=\"article:published_time\" content=\"2021-03-20T09:51:22+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-05-07T08:27:27+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/3_2_ratio_PN139.png\" \/>\n\t<meta property=\"og:image:width\" content=\"450\" \/>\n\t<meta property=\"og:image:height\" content=\"300\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Julien Orsinger\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Julien Orsinger\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/help\\\/getting-started-bb-control#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/help\\\/getting-started-bb-control\"},\"author\":{\"name\":\"Julien Orsinger\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#\\\/schema\\\/person\\\/65ef663818eab76f53cc627ab80e0a51\"},\"headline\":\"Getting started with BB Control\",\"datePublished\":\"2021-03-20T09:51:22+00:00\",\"dateModified\":\"2025-05-07T08:27:27+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/help\\\/getting-started-bb-control\"},\"wordCount\":1691,\"commentCount\":1,\"publisher\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/help\\\/getting-started-bb-control#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/imperix.com\\\/doc\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/3_2_ratio_PN139.png\",\"articleSection\":[\"Getting started with ACG SDK\",\"Product notes\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/imperix.com\\\/doc\\\/help\\\/getting-started-bb-control#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/help\\\/getting-started-bb-control\",\"url\":\"https:\\\/\\\/imperix.com\\\/doc\\\/help\\\/getting-started-bb-control\",\"name\":\"Getting started with BB Control - imperix\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/help\\\/getting-started-bb-control#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/help\\\/getting-started-bb-control#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/imperix.com\\\/doc\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/3_2_ratio_PN139.png\",\"datePublished\":\"2021-03-20T09:51:22+00:00\",\"dateModified\":\"2025-05-07T08:27:27+00:00\",\"description\":\"This page provides an overview and getting started instructions for the BB Control debugging and monitoring software.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/help\\\/getting-started-bb-control#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/imperix.com\\\/doc\\\/help\\\/getting-started-bb-control\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/help\\\/getting-started-bb-control#primaryimage\",\"url\":\"https:\\\/\\\/imperix.com\\\/doc\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/3_2_ratio_PN139.png\",\"contentUrl\":\"https:\\\/\\\/imperix.com\\\/doc\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/3_2_ratio_PN139.png\",\"width\":450,\"height\":300,\"caption\":\"BB Control starting page\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/help\\\/getting-started-bb-control#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Knowledge base\",\"item\":\"https:\\\/\\\/imperix.com\\\/doc\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Product notes\",\"item\":\"https:\\\/\\\/imperix.com\\\/doc\\\/category\\\/help\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Getting started with BB Control\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#website\",\"url\":\"https:\\\/\\\/imperix.com\\\/doc\\\/\",\"name\":\"imperix\",\"description\":\"power electronics\",\"publisher\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/imperix.com\\\/doc\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#organization\",\"name\":\"imperix\",\"url\":\"https:\\\/\\\/imperix.com\\\/doc\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/imperix.com\\\/doc\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/imperix_logo.png\",\"contentUrl\":\"https:\\\/\\\/imperix.com\\\/doc\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/imperix_logo.png\",\"width\":350,\"height\":120,\"caption\":\"imperix\"},\"image\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#\\\/schema\\\/person\\\/65ef663818eab76f53cc627ab80e0a51\",\"name\":\"Julien Orsinger\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/0a0328b09c6abe61fa1e263a1066dcb26ea8f3b9e8b1d78056047620947bb388?s=96&d=mm&r=g6545a7220411572e799ad58574cce259\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/0a0328b09c6abe61fa1e263a1066dcb26ea8f3b9e8b1d78056047620947bb388?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/0a0328b09c6abe61fa1e263a1066dcb26ea8f3b9e8b1d78056047620947bb388?s=96&d=mm&r=g\",\"caption\":\"Julien Orsinger\"},\"description\":\"Julien is a senior power electronics engineer. On the knowledge base, he is acting as the editorial manager and is therefore the co-author of numerous articles on a broad variety of topics.\",\"sameAs\":[\"https:\\\/\\\/www.linkedin.com\\\/in\\\/julien-orsinger-640ab2129\\\/\"],\"url\":\"https:\\\/\\\/imperix.com\\\/doc\\\/author\\\/orsinger\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Getting started with BB Control - imperix","description":"This page provides an overview and getting started instructions for the BB Control debugging and monitoring software.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/imperix.com\/doc\/help\/getting-started-bb-control","og_locale":"en_US","og_type":"article","og_title":"Getting started with BB Control - imperix","og_description":"This page provides an overview and getting started instructions for the BB Control debugging and monitoring software.","og_url":"https:\/\/imperix.com\/doc\/help\/getting-started-bb-control","og_site_name":"imperix","article_published_time":"2021-03-20T09:51:22+00:00","article_modified_time":"2025-05-07T08:27:27+00:00","og_image":[{"width":450,"height":300,"url":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/3_2_ratio_PN139.png","type":"image\/png"}],"author":"Julien Orsinger","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Julien Orsinger","Est. reading time":"10 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/imperix.com\/doc\/help\/getting-started-bb-control#article","isPartOf":{"@id":"https:\/\/imperix.com\/doc\/help\/getting-started-bb-control"},"author":{"name":"Julien Orsinger","@id":"https:\/\/imperix.com\/doc\/#\/schema\/person\/65ef663818eab76f53cc627ab80e0a51"},"headline":"Getting started with BB Control","datePublished":"2021-03-20T09:51:22+00:00","dateModified":"2025-05-07T08:27:27+00:00","mainEntityOfPage":{"@id":"https:\/\/imperix.com\/doc\/help\/getting-started-bb-control"},"wordCount":1691,"commentCount":1,"publisher":{"@id":"https:\/\/imperix.com\/doc\/#organization"},"image":{"@id":"https:\/\/imperix.com\/doc\/help\/getting-started-bb-control#primaryimage"},"thumbnailUrl":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/3_2_ratio_PN139.png","articleSection":["Getting started with ACG SDK","Product notes"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/imperix.com\/doc\/help\/getting-started-bb-control#respond"]}]},{"@type":"WebPage","@id":"https:\/\/imperix.com\/doc\/help\/getting-started-bb-control","url":"https:\/\/imperix.com\/doc\/help\/getting-started-bb-control","name":"Getting started with BB Control - imperix","isPartOf":{"@id":"https:\/\/imperix.com\/doc\/#website"},"primaryImageOfPage":{"@id":"https:\/\/imperix.com\/doc\/help\/getting-started-bb-control#primaryimage"},"image":{"@id":"https:\/\/imperix.com\/doc\/help\/getting-started-bb-control#primaryimage"},"thumbnailUrl":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/3_2_ratio_PN139.png","datePublished":"2021-03-20T09:51:22+00:00","dateModified":"2025-05-07T08:27:27+00:00","description":"This page provides an overview and getting started instructions for the BB Control debugging and monitoring software.","breadcrumb":{"@id":"https:\/\/imperix.com\/doc\/help\/getting-started-bb-control#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/imperix.com\/doc\/help\/getting-started-bb-control"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/imperix.com\/doc\/help\/getting-started-bb-control#primaryimage","url":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/3_2_ratio_PN139.png","contentUrl":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/3_2_ratio_PN139.png","width":450,"height":300,"caption":"BB Control starting page"},{"@type":"BreadcrumbList","@id":"https:\/\/imperix.com\/doc\/help\/getting-started-bb-control#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Knowledge base","item":"https:\/\/imperix.com\/doc\/"},{"@type":"ListItem","position":2,"name":"Product notes","item":"https:\/\/imperix.com\/doc\/category\/help"},{"@type":"ListItem","position":3,"name":"Getting started with BB Control"}]},{"@type":"WebSite","@id":"https:\/\/imperix.com\/doc\/#website","url":"https:\/\/imperix.com\/doc\/","name":"imperix","description":"power electronics","publisher":{"@id":"https:\/\/imperix.com\/doc\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/imperix.com\/doc\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/imperix.com\/doc\/#organization","name":"imperix","url":"https:\/\/imperix.com\/doc\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/imperix.com\/doc\/#\/schema\/logo\/image\/","url":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/imperix_logo.png","contentUrl":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/imperix_logo.png","width":350,"height":120,"caption":"imperix"},"image":{"@id":"https:\/\/imperix.com\/doc\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/imperix.com\/doc\/#\/schema\/person\/65ef663818eab76f53cc627ab80e0a51","name":"Julien Orsinger","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/0a0328b09c6abe61fa1e263a1066dcb26ea8f3b9e8b1d78056047620947bb388?s=96&d=mm&r=g6545a7220411572e799ad58574cce259","url":"https:\/\/secure.gravatar.com\/avatar\/0a0328b09c6abe61fa1e263a1066dcb26ea8f3b9e8b1d78056047620947bb388?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/0a0328b09c6abe61fa1e263a1066dcb26ea8f3b9e8b1d78056047620947bb388?s=96&d=mm&r=g","caption":"Julien Orsinger"},"description":"Julien is a senior power electronics engineer. On the knowledge base, he is acting as the editorial manager and is therefore the co-author of numerous articles on a broad variety of topics.","sameAs":["https:\/\/www.linkedin.com\/in\/julien-orsinger-640ab2129\/"],"url":"https:\/\/imperix.com\/doc\/author\/orsinger"}]}},"_links":{"self":[{"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/posts\/310","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/comments?post=310"}],"version-history":[{"count":32,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/posts\/310\/revisions"}],"predecessor-version":[{"id":30852,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/posts\/310\/revisions\/30852"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/media\/3009"}],"wp:attachment":[{"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/media?parent=310"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/categories?post=310"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/tags?post=310"},{"taxonomy":"software-environments","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/software-environments?post=310"},{"taxonomy":"provided-results","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/provided-results?post=310"},{"taxonomy":"related-products","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/related-products?post=310"},{"taxonomy":"guidedreadings","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/guidedreadings?post=310"},{"taxonomy":"tutorials","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/tutorials?post=310"},{"taxonomy":"user-manuals","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/user-manuals?post=310"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/coauthors?post=310"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}