Software — Beta

Free DeveloperTool

Simplify STM32 Development!

Simplify STM32 Development!

Are you a software or hardware developer looking for a hassle-free way to sell your products while ensuring the security of your intellectual property and seamless post-sales product management? Look no further! BeingRobotic offers a unique solution that allows you to focus solely on software and hardware development, leaving the standard itinerary and complexities to us.

Our Standard Itinerary:

  • Idea Formation
  • Development of Idea
  • Hardware Development
  • Hardware Testing
  • Software Development and Testing
  • Software Distribution
  • Protecting Intellectual Property
  • Secure Update Distribution
  • Customer Request Management

Key Features:

Secure Software Updates:
Effortlessly perform software updates using SD cards, Wi-Fi, or USB while ensuring your software remains encrypted. Only the microcontroller can decrypt it during the writing phase.

Memory Protection:
Access to the microcontroller's memory is impossible, ensuring the safety of your secrets.

Direct Management and Customization:
Our software modification service allows your customers to customize their software without requiring your intervention for maintenance.

BeingRobotic's system empowers you to concentrate solely on the creative aspects of your project, whether it's software, hardware, or both. We handle the production of the board and the distribution of your software. Your software remains hidden from both us and your customers, thanks to our encryption system designed to safeguard your intellectual property.

System description:

FileManager

This interface has a 'New project' button that, when clicked, allows you to upload a project. The only requirement is that the project is generated using STM32CubeIDE.

  1. The multi-selection allows you to choose the target of your project. If you don't have our boards, you can create a custom board project by clicking on Custom.
  2. Here, it's possible to update the project. You have to zip the entire project folder (.zip is required) and then upload it using the 'Choose file' button.
  3. The project name helps to identify your project; it must be unique and without spaces.
  4. A project description is strongly recommended as it significantly enhances the understanding of the project.
  5. After filling in all the required fields, proceed by clicking the upload button, and the magic will unfold. Your project will undergo a check and compilation process. (Make sure to verify if the project is compilable before uploading; otherwise, a terminal displaying errors will open).
  6. If the project is compilable, and optionally, the generated tags are placed with the correct syntax, you will see a tab containing your project information at the bottom of the page.
  7. If you want to modify your project, you'll need to press the 'Delete' button and upload the project again. Keep in mind that once the 'Delete' button is pressed, all the information will be permanently removed from the server, and recovery will be impossible, even for us.
FileManager interface

Device dashboard

This interface enables you to choose a device to use. If you haven't purchased any device yet, you can select a Custom device. It provides a simple way to organize your projects.

  1. Search bar that allows you to filter devices by hardware Id or product Id.
  2. At the bottom of the page, you can find a list of all available devices. The Custom device is always preset, providing access to Custom projects.
  3. The first number indicates the hardware specification, while the other pieces of information are used to identify the device.
  4. Click on 'Manage' to choose your preferred device. If the device is online, the label changes to 'Control' and the background turns green.
  5. Clear pending button allows resetting wifi updates, in the case of failure.
  6. After selecting a device, it will appear in the top-right corner. To choose another device, simply navigate away from this page and make a new selection.
Device dashboard

Software category

This page allows you to distinguish between your own software and the software distributed by us.

  1. In the lower part of the page, you can choose the software category.
  2. Clicking 'Select' allows you to choose the category. The first one in the top-left is always the user Custom category, where you'll find your uploaded projects.
Software category

Software management

This section is the core of innovation! You can completely control your project: edit, download, and also send wirelessly the project to the top-right selected device.
To start a new project, click on "New Software" and select an available project (they are subsets of your updated projects, divided by hardware type).

  1. This drop-down selection allows you to choose from your updated projects.
  2. The Generate button will take you to the project configurator, but it will be discussed in detail in the section Edit and Create Project.
  3. Each generated project is categorized by name and chronological order. Every project version comes with various labels aiding in project identification, with the most crucial information located next to the project name.
  4. These symbols serve to distinguish project features and will be discussed in the section Project Features.
  5. The 'Select' button opens a new interface that provides the option to download, send the project to the target using WiFi, or delete the project version. This will be discussed in the section Manage Project.
Software management

Edit and Create Project

This is the core of our system!
The possibility to change firmware variables' values with a very intuitive and fully customizable graphical interface. This interface is available when the user creates a new project or edits an existing project.
The interface is automatically generated starting from software tags added by project developers (explained in the next session). Users can change the variable values of the project directly from this interface. For users with more demanding requirements, it's possible to merge custom .c code and .h library into the final project or insert custom configuration files like .dbc for CanBus systems, directly from this interface, making the customization possibilities endless.

Below the explanation of principal graphical elements:

  1. The interface is divided into different groups, which are created directly by users. In each group, it is possible to add different variables. Interaction is possible using standard graphical elements such as slicer, number input, or text input.
  2. Slicer allows the insertion of numerical values, with the option to set minimum and maximum values, as well as step values. This ensures input validation and matches the variable type in C.
  3. File .dbc updater permits the update of the .dbc library for your specific application. Therefore, if your CanBus traffic changes, you only need to modify this file.
  4. The numerical input allows the insertion of numerical values. It is possible to set minimum and maximum values, as well as a step, to ensure input validation and match C variable types.
  5. The text input feature allows the insertion of characters or strings. You can specify minimum and maximum lengths to ensure input validity and match the C variable type.
  6. In this section, it is possible to change project information.
  7. This option permits locking the possibility to download the project source code*.
  8. This button allows you to download the source code with the files/parameters selected in this interface. This option is particularly useful for debugging purposes.
  9. This button permits generating a new project with the selected files/parameters. Each time a project is generated, it is possible to find the project in the Software Managmenent.

*To lock the project source code, it is necessary to lock each project instance. In the software interface, all projects with the same name should display a red padlock. A locked project allows the generation of only locked instances.

Edit and create project

How is the interface generated?

The interface, as explained earlier, is generated from special tags inserted within the code by developer. These tags are easily generated using TagGenerator. The meaning of the fields is explained below:

  1. Tags are divided into categories, the most important is the group tag.
  2. The group tag must have a unique name because this name serves as the reference for other tags belonging to the same group and inserted in the same file.
  3. Primary and Secondary color of the tag background.
  4. Label text color.
  5. Useful to explain to the final user the meaning of the group.
  6. When all the fields are filled, the tag is automatically calculated.
  7. Button to copy the tag easily.
  8. Input tag used to generate input elements.
  9. Element name: used to identify the tag inside the Edit interface.
  10. Info: used to describe the tag meaning.
  11. Min value: lower saturation of the input, it is impossible to insert less than min. Useful for unsigned numbers.
  12. Max value: upper saturation of the input, it is impossible to insert more than max. Useful to avoid number overflow.
  13. Step value: the number can assume a value that is a multiple of the step, it is impossible to insert a value different from a multiple of the step. Useful for inserting int numbers, using step = 1.
  14. Default value: the starting value displayed when the edit interface is loaded.
  15. Group name: an important parameter that assigns this element to a specific group defined with the same name.
  16. When all fields are filled, the tag is calculated automatically
  17. Button to copy the tag easily.
  18. The name of the CanBus tag will be the name of the converted CanBus library. Ex: name=test -> test.h test.c became the name of .dbc converted.
  19. Min len: in the case of text tag, it is the minimum number of characters allowed.
  20. Max len: in the case of text tag, it is the maximum number of characters allowed.
  21. Default string: the starting string displayed when the edit interface is loaded. Check that the length is inside the correct min, max length boundaries.
TagGenerator

Tag Uses

In this section is explained how to use tags inside STM32CubeIDE project:

  1. STM32CubeIDE project tree.
  2. It is possible to insert a tag in a file inside the "Src" folder. Our system automatically scans all the folders to find tags.
  3. In this example, we use main.c file.
  4. Group tag copied from TagGenerator must be pasted within the same file, where tags that belong to this group are used.
  5. This is an example of a text tag that belongs to WIFI group. The tag string is generated inside TagGenerator and must be pasted next to the variable to be changed, like in the example.
  6. This is an example of a value tag that belongs to WIFI group. The tag value is generated inside TagGenerator must be pasted next to the variable to be changed, like in the example.

Each tag group must be pasted only one time inside the file and also the input tag must have a unique name.

Tag uses in STM32CubeIDE

Project Features

In this section, project features dependent on the type of project and software will be analyzed.

  1. Encryption property is enabled only for our boards and permits performing software-encrypted updates (the firmware is decrypted only during the flash writing phase, and the flash is permanently not accessible). This feature is designed to protect the intellectual property of developers who want to deploy updates at a later time.
  2. Firmware downloadable indicates that it is possible to download the source code of the project. It is configurable by the user and permits protecting intellectual property once the project is debugged and distributed.
  3. Global firmware indicates who is the owner of the project. The green circle means that the owner is the user, red that the project is distributed by us and is available for each user.
  4. We offer a powerful licensing feature to safeguard your projects: software protected by a license can only run on our designated hardware. This feature helps stop counterfeiting and piracy of your software. If the shield is green, the license protection feature is always active and is available only with software distributed by us. If the shield is yellow, you can use the license protection feature, but you have to put a specific function inside your custom code (license protection features are available only with our boards or for specific projects). If the shield is red, the license protection feature is not active. When creating a new project instance, licenses are generated only for the boards currently in the dashboard. To extend capabilities to a new board, regenerate your custom software.
Project features

Manage Project

When you press select on the desired project, a new menu appears, and different actions are available; those actions depend on project features.

  1. All encrypted projects permit only downloading and sending with encryption and are not possible to download directly as .bin files, but .enc files will be downloaded instead. This file is compatible with our board, guaranteeing firmware encryption and safeguarding intellectual property. It can be flashed using USB or uSD. When the 'Send' button is clicked, the selected firmware is sent to the device selected in the top-right corner. If the device is disconnected, nothing happens; otherwise, a progress indicator appears!
  2. Not encrypted projects permit only project edit and file download in the standard .bin extension, and the file could be written directly using STM32CubeProgrammer.
  3. The intellectual property of Local projects belongs only to the user, so the user has full control over edit, delete, download, and send.
  4. The user has no possibility to delete or edit Global projects because they are distributed by BeingRobotic, but the user can use the projects.
Manage project

Debug Terminal

Our system analyzes your project and tags. In case of errors, it can display how to resolve them.

  1. The terminal is automatically opened when an error occurs.
  2. Permits to close the terminal.
  3. Debug information. If you cannot solve problems, please write us.

Read the Disclaimer

Debug terminal

Do you want to collaborate?

Check the possible ways of working with our product or under our consulting.

Write Us