index
About BareMetal PLC's
Devices
Overview
Bare-metal PLC's Controllers has various powerful features and can service a wide range of applications. Software programming, and commissioning are achieved with the Cmake and C++ languages. To speed up development, you can use the RLibs from here . RLibs are libraries that provide a higher level of abstraction than HAL (Hardware Abstraction Layers). Rlibs it is PAL (Platform Abstraction Layer), they solve the most common problems when programming automation, robots, and more.
Main benefits
The key advantage of Bare-metal PLC's over standard PLC's is the flexibility and convenience of software development. To create software, you can use ready-made project templates in which all the necessary libraries are connected. The controller is also equipped with step-by-step debugging and programming tools. Development can be carried out using a convenient operating system for you: Linux, macOS, Windows. For development, you can use the C/C++ languages. All development tools are cross-platform. You can also take advantage of CI/CD when developing your products, unlike standard PLCs.
Programming Languages and Tools
For creating your application you can use next languages:
- C
- C++
To build your applications, we offer:
- Cmake - link
Operating systems used for development:
You can also use the following IDEs:
All BareMetal PLC supports RLibs:
Quick Start Guide
Installation
Installation Windows
- Download and install Visual Studio Code - Visual Studio Code
- Download and install Github Desktop - link
or: - Download and install Git and Enable SSH on Github:
- Git - Downloads YouTube Man RUYouTube Man EN
- Generating a new SSH key and adding it to the ssh-agent - Github Man
- Auto-launching
ssh-agenton Git for Windows Github Man - Perhaps this link will also be useful - Installing OpenSSH Server on Windows 11
- Download and install SourceTree - link
- Add in SourceTree App your Github account and add your SSH key
Installation Mac
$ brew install git$ brew install cmake$ brew install homebrew/cask/gcc-arm-embedded- install GCC ARM Embedded- Download and install Visual Studio Code - Visual Studio Code
Installation Linux
- in process ...
VSCode Setup for BareMetal PLC Development
1) Recommended Extensions
The .vscode/extensions.json file provides automatic tool recommendations when opening the project:
{
"recommendations": [
"ms-python.black-formatter", // Python formatter
"amiralizadeh9480.cpp-helper", // C++ assistance
"marus25.cortex-debug", // ARM Cortex debugging
"mcu-debug.rtos-views", // RTOS visualization
"twxs.cmake", // CMake language support
"ms-vscode.cmake-tools", // CMake integration
"zixuanwang.link" // Symbolic link helper
],
"unwantedRecommendations": [
"ms-vscode.cpptools", // Conflicts with cortex-debug
"llvm-vs-code-extensions.vscode-clangd" // Alternative C++ extension
]
}
2) Debug Configuration
The .vscode/launch.json is automatically generated during build via CMake. The template is located in:
Note: Requires Cortex-Debug extension for ARM microcontroller debugging.
Project Setup Guide
Option 1: Basic Clone (For End Users)
git clone https://github.com/RoboticsHardwareSolutions/RPLC_Quick_Project
cd RPLC_Quick_Project
git submodule update --init --recursive
Option 2: Fork & Clone (For Contributors)
- Fork the repository:
- Navigate to RPLC_Quick_Project
- Click "Fork" (creates
github.com/your-username/RPLC_Quick_Project)
- Clone your fork:
git clone https://github.com/your-username/RPLC_Quick_Project
cd RPLC_Quick_Project
git submodule update --init --recursive
git remote add upstream https://github.com/RoboticsHardwareSolutions/RPLC_Quick_Project
Hardware Target Selection
In CMakeLists.txt, specify your PLC model by uncommenting one of:
set(RPLC_M) # Basic model
# set(RPLC_L) # Intermediate model
# set(RPLC_XL) # Advanced model
This automatically configures:
- Compiler flags
- Peripheral libraries
- Memory mapping
- Hardware-specific drivers