<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[BareMetal-PLCs-Vault]]></title><description><![CDATA[Obsidian digital garden]]></description><link>http://github.com/dylang/node-rss</link><image><url>site-lib/media/favicon.png</url><title>BareMetal-PLCs-Vault</title><link/></image><generator>Webpage HTML Export plugin for Obsidian</generator><lastBuildDate>Fri, 13 Feb 2026 11:02:17 GMT</lastBuildDate><atom:link href="site-lib/rss.xml" rel="self" type="application/rss+xml"/><pubDate>Fri, 13 Feb 2026 11:02:13 GMT</pubDate><ttl>60</ttl><dc:creator/><item><title><![CDATA[index]]></title><description><![CDATA[
<a data-href="BareMetal PLC M" href="baremetal-plc-m.html" class="internal-link" target="_self" rel="noopener nofollow">BareMetal PLC M</a>
<br><a data-href="BareMetal PLC L" href="baremetal-plc-l.html" class="internal-link" target="_self" rel="noopener nofollow">BareMetal PLC L</a>
<br><a data-href="BareMetal PLC XL" href="baremetal-plc-xl.html" class="internal-link" target="_self" rel="noopener nofollow">BareMetal PLC XL</a>
<br>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 <a data-tooltip-position="top" aria-label="https://github.com/RoboticsHardwareSolutions/.github/tree/main/profile#rlibs" rel="noopener nofollow" class="external-link is-unresolved" href="https://github.com/RoboticsHardwareSolutions/.github/tree/main/profile#rlibs" target="_self">here</a> . 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. 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.For creating your application you can use next languages:
C C++
To build your applications, we offer:
<br>Cmake - <a data-tooltip-position="top" aria-label="https://cmake.org/cmake/help/latest/manual/cmake-language.7.html" rel="noopener nofollow" class="external-link is-unresolved" href="https://cmake.org/cmake/help/latest/manual/cmake-language.7.html" target="_self">link</a>
Operating systems used for development:
<br>freeRTOS - <a data-tooltip-position="top" aria-label="https://www.freertos.org" rel="noopener nofollow" class="external-link is-unresolved" href="https://www.freertos.org" target="_self">link</a>
<br>ThreadX - <a data-tooltip-position="top" aria-label="https://threadx.io" rel="noopener nofollow" class="external-link is-unresolved" href="https://threadx.io" target="_self">link</a>
<br>Zephyr - <a data-tooltip-position="top" aria-label="https://zephyrproject.org" rel="noopener nofollow" class="external-link is-unresolved" href="https://zephyrproject.org" target="_self">link</a>
You can also use the following IDEs:
<br>Clion - <a data-tooltip-position="top" aria-label="https://www.jetbrains.com/clion/" rel="noopener nofollow" class="external-link is-unresolved" href="https://www.jetbrains.com/clion/" target="_self">link</a>
<br>VSCode - <a data-tooltip-position="top" aria-label="https://code.visualstudio.com" rel="noopener nofollow" class="external-link is-unresolved" href="https://code.visualstudio.com" target="_self">link</a>
<br>CubeIDE - <a data-tooltip-position="top" aria-label="https://www.st.com/en/development-tools/stm32cubeide.html" rel="noopener nofollow" class="external-link is-unresolved" href="https://www.st.com/en/development-tools/stm32cubeide.html" target="_self">link</a>
All BareMetal PLC supports RLibs:
<br>Download and install Visual Studio Code - <a data-tooltip-position="top" aria-label="https://code.visualstudio.com/" rel="noopener nofollow" class="external-link is-unresolved" href="https://code.visualstudio.com/" target="_self">Visual Studio Code</a>
<br>Download and install Github Desktop - <a data-tooltip-position="top" aria-label="https://desktop.github.com/download/" rel="noopener nofollow" class="external-link is-unresolved" href="https://desktop.github.com/download/" target="_self">link</a>
or:
Download and install Git and Enable SSH on Github: <br><a data-tooltip-position="top" aria-label="https://git-scm.com/downloads???windows" rel="noopener nofollow" class="external-link is-unresolved" href="https://git-scm.com/downloads???windows" target="_self">Git - Downloads</a> <a data-tooltip-position="top" aria-label="https://youtu.be/GsG5roSGha0?si=gLXZ9XRwuIu_4bxO" rel="noopener nofollow" class="external-link is-unresolved" href="https://youtu.be/GsG5roSGha0?si=gLXZ9XRwuIu_4bxO" target="_self">YouTube Man RU</a><a data-tooltip-position="top" aria-label="https://youtu.be/iYkLrXobBbA?si=cfZSbxH9yn8IQFo-" rel="noopener nofollow" class="external-link is-unresolved" href="https://youtu.be/iYkLrXobBbA?si=cfZSbxH9yn8IQFo-" target="_self">YouTube Man EN</a>
<br>Generating a new SSH key and adding it to the ssh-agent - <a data-tooltip-position="top" aria-label="https://docs.github.com/en/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent?platform=windows" rel="noopener nofollow" class="external-link is-unresolved" href="https://docs.github.com/en/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent?platform=windows" target="_self">Github Man</a>
<br>Auto-launching&nbsp;ssh-agent&nbsp;on Git for Windows <a data-tooltip-position="top" aria-label="https://docs.github.com/en/authentication/connecting-to-github-with-ssh/working-with-ssh-key-passphrases#auto-launching-ssh-agent-on-git-for-windows" rel="noopener nofollow" class="external-link is-unresolved" href="https://docs.github.com/en/authentication/connecting-to-github-with-ssh/working-with-ssh-key-passphrases#auto-launching-ssh-agent-on-git-for-windows" target="_self">Github Man</a>
<br>Perhaps this link will also be useful - <a data-tooltip-position="top" aria-label="https://gbeifuss.github.io/p/installing-openssh-server-on-windows-11/" rel="noopener nofollow" class="external-link is-unresolved" href="https://gbeifuss.github.io/p/installing-openssh-server-on-windows-11/" target="_self">Installing OpenSSH Server on Windows 11</a>
<br>Download and install SourceTree - <a data-tooltip-position="top" aria-label="https://www.sourcetreeapp.com/" rel="noopener nofollow" class="external-link is-unresolved" href="https://www.sourcetreeapp.com/" target="_self">link</a>
Add in SourceTree App your Github account and add your SSH key $ brew install git
$ brew install cmake
$ brew install homebrew/cask/gcc-arm-embedded - install GCC ARM Embedded <br>Download and install Visual Studio Code - <a data-tooltip-position="top" aria-label="https://code.visualstudio.com/" rel="noopener nofollow" class="external-link is-unresolved" href="https://code.visualstudio.com/" target="_self">Visual Studio Code</a> in process ... The&nbsp;.vscode/extensions.json&nbsp;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 ]
}
The&nbsp;.vscode/launch.json&nbsp;is automatically generated during build via CMake. The template is located in:
<br><a data-tooltip-position="top" aria-label="https://github.com/RoboticsHardwareSolutions/RHS-BareMetalCore/blob/main/launch.json.in" rel="noopener nofollow" class="external-link is-unresolved" href="https://github.com/RoboticsHardwareSolutions/RHS-BareMetalCore/blob/main/launch.json.in" target="_self">rhs_core/launch.json.in</a> Note: Requires Cortex-Debug extension for ARM microcontroller debugging.
git clone https://github.com/RoboticsHardwareSolutions/RPLC_Quick_Project
cd RPLC_Quick_Project
git submodule update --init --recursive Fork the repository: <br>Navigate to&nbsp;<a data-tooltip-position="top" aria-label="https://github.com/RoboticsHardwareSolutions/RPLC_Quick_Project" rel="noopener nofollow" class="external-link is-unresolved" href="https://github.com/RoboticsHardwareSolutions/RPLC_Quick_Project" target="_self">RPLC_Quick_Project</a>
Click "Fork" (creates&nbsp;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
In&nbsp;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
]]></description><link>index.html</link><guid isPermaLink="false">index.md</guid><pubDate>Tue, 27 Jan 2026 15:01:35 GMT</pubDate></item><item><title><![CDATA[BareMetal PLC L]]></title><description><![CDATA[
<a data-tooltip-position="top" aria-label="BareMetal PLC L Description" data-href="#BareMetal PLC L Description" href="baremetal-plc-l.html#BareMetal_PLC_L_Description_0" class="internal-link" target="_self" rel="noopener nofollow">BareMetal PLC L Description</a> <br><a data-tooltip-position="top" aria-label="Overview" data-href="#Overview" href="baremetal-plc-l.html#Overview_0" class="internal-link" target="_self" rel="noopener nofollow">Overview</a>
<br><a data-tooltip-position="top" aria-label="Hardware description" data-href="#Hardware description" href="baremetal-plc-l.html#Hardware_description_0" class="internal-link" target="_self" rel="noopener nofollow">Hardware description</a>
<br><a data-tooltip-position="top" aria-label="Pinout and symbols" data-href="#Pinout and symbols" href="baremetal-plc-l.html#Pinout_and_symbols_0" class="internal-link" target="_self" rel="noopener nofollow">Pinout and symbols</a>
<br><a data-tooltip-position="top" aria-label="Dimensions" data-href="#Dimensions" href="baremetal-plc-l.html#Dimensions_0" class="internal-link" target="_self" rel="noopener nofollow">Dimensions</a>
<br><a data-tooltip-position="top" aria-label="Functional Diagram" data-href="#Functional Diagram" href="baremetal-plc-l.html#Functional_Diagram_0" class="internal-link" target="_self" rel="noopener nofollow">Functional Diagram</a> Bare-metal PLC L Controller has various powerful features and can service a wide range of applications. The controller has the following interfaces on board: CAN bus, RS485, RS422, RS232, 5 relay outputs, 5 discrete inputs, 5 discrete outputs. The main microcontroller is built on the Cortex-M7 core with a clock frequency of 216 MHz and also supports DSP instructions and FPU instructions. <br>Onboard <a data-tooltip-position="top" aria-label="https://github.com/RoboticsHardwareSolutions/rlink" rel="noopener nofollow" class="external-link is-unresolved" href="https://github.com/RoboticsHardwareSolutions/rlink" target="_self">Rlink</a> programmer
MCU Cortex-M7: 216 MHz SRAM: 512 Kbytes 1 Mbytes of MCU flash memory + Quad SPI 16 Mbytes memory 5 Relay outputs 55V 1.5A ( Max switch frequency 3Hz )
5 Discret Outputs (12-24V 70mA)
5 Discret Inputs CAN Bus RS485 RS232
RS422
<br><img alt="BareMetal-PLC-L/doc/pinout/pinout.png" src="baremetal-plc-l/doc/pinout/pinout.png" target="_self">“Чертеж.bmp” could not be found.<br> 3D model in .stp <a data-tooltip-position="top" aria-label="https://github.com/RoboticsHardwareSolutions/BareMetal-PLC-L-assembly/blob/main/doc/assembly.stp" rel="noopener nofollow" class="external-link is-unresolved" href="https://github.com/RoboticsHardwareSolutions/BareMetal-PLC-L-assembly/blob/main/doc/assembly.stp" target="_self">here</a>]]></description><link>baremetal-plc-l.html</link><guid isPermaLink="false">BareMetal PLC L.md</guid><pubDate>Tue, 27 Jan 2026 15:01:34 GMT</pubDate><enclosure url="baremetal-plc-l/doc/pinout/pinout.png" length="0" type="image/png"/><content:encoded>&lt;figure&gt;&lt;img src="baremetal-plc-l/doc/pinout/pinout.png"&gt;&lt;/figure&gt;</content:encoded></item><item><title><![CDATA[BareMetal PLC M]]></title><description><![CDATA[
<a data-tooltip-position="top" aria-label="BareMetal PLC M Description" data-href="#BareMetal PLC M Description" href="baremetal-plc-m.html#BareMetal_PLC_M_Description_0" class="internal-link" target="_self" rel="noopener nofollow">BareMetal PLC M Description</a> <br><a data-tooltip-position="top" aria-label="Overview" data-href="#Overview" href="baremetal-plc-m.html#Overview_0" class="internal-link" target="_self" rel="noopener nofollow">Overview</a>
<br><a data-tooltip-position="top" aria-label="Hardware description" data-href="#Hardware description" href="baremetal-plc-m.html#Hardware_description_0" class="internal-link" target="_self" rel="noopener nofollow">Hardware description</a>
<br><a data-tooltip-position="top" aria-label="Functional Diagram" data-href="#Functional Diagram" href="baremetal-plc-m.html#Functional_Diagram_0" class="internal-link" target="_self" rel="noopener nofollow">Functional Diagram</a>
<br><a data-tooltip-position="top" aria-label="Pinout and symbols" data-href="#Pinout and symbols" href="baremetal-plc-m.html#Pinout_and_symbols_0" class="internal-link" target="_self" rel="noopener nofollow">Pinout and symbols</a>
<br><a data-tooltip-position="top" aria-label="Dimensions" data-href="#Dimensions" href="baremetal-plc-m.html#Dimensions_0" class="internal-link" target="_self" rel="noopener nofollow">Dimensions</a> BareMetal PLC M Controller has various powerful features and can service a wide range of applications. The controller has the following interfaces on board: CAN bus, RS485, RS422, RS232, 5 relay outputs, 5 discrete inputs, 5 discrete outputs, USB Device, EEPROM. The main microcontroller is built on the Cortex-M3 core with a clock frequency of 72 MHz. <br>Onboard <a data-tooltip-position="top" aria-label="https://github.com/RoboticsHardwareSolutions/rlink" rel="noopener nofollow" class="external-link is-unresolved" href="https://github.com/RoboticsHardwareSolutions/rlink" target="_self">Rlink</a> programmer MCU Cortex-M3: 72 MHz RAM: 64 Kbytes FLASH: 512 Kbytes 256K EEPROM
5 Relay outputs 55V 1.5A ( Max switch frequency 3Hz )
5 Discret Outputs (12-24V 70mA)
5 Discret Inputs CAN Bus RS485 RS232
RS422
USB Device
USB HubCAN BusRS485RS422RS232MCURlink (debuggger)EEPROMmemory5-outputs5-inputs5-SSR(solidstaterelay)RTC batteryUSB1USB2I2CUARTSWDBuzzer<br><img alt="BareMetal-PLC-M/doc/pinout/pinout.png" src="baremetal-plc-m/doc/pinout/pinout.png" target="_self"><br><img alt="Screenshot 2025-08-05 at 22.21.13.png" src="attach/screenshot-2025-08-05-at-22.21.13.png" target="_self"><br><img alt="Screenshot 2025-08-05 at 22.21.29.png" src="attach/screenshot-2025-08-05-at-22.21.29.png" target="_self"><br>
<img alt="Screenshot 2025-08-05 at 22.21.38.png" src="attach/screenshot-2025-08-05-at-22.21.38.png" target="_self"><br> 3D model in .stp <a data-tooltip-position="top" aria-label="https://github.com/RoboticsHardwareSolutions/BareMetal-PLC-L-assembly/blob/main/doc/assembly.stp" rel="noopener nofollow" class="external-link is-unresolved" href="https://github.com/RoboticsHardwareSolutions/BareMetal-PLC-L-assembly/blob/main/doc/assembly.stp" target="_self">here</a>]]></description><link>baremetal-plc-m.html</link><guid isPermaLink="false">BareMetal PLC M.md</guid><pubDate>Tue, 27 Jan 2026 15:01:34 GMT</pubDate><enclosure url="baremetal-plc-m/doc/pinout/pinout.png" length="0" type="image/png"/><content:encoded>&lt;figure&gt;&lt;img src="baremetal-plc-m/doc/pinout/pinout.png"&gt;&lt;/figure&gt;</content:encoded></item><item><title><![CDATA[BareMetal PLC XL]]></title><description><![CDATA[
<a data-tooltip-position="top" aria-label="BareMetal PLC XL Description" data-href="#BareMetal PLC XL Description" href="baremetal-plc-xl.html#BareMetal_PLC_XL_Description_0" class="internal-link" target="_self" rel="noopener nofollow">BareMetal PLC XL Description</a> <br><a data-tooltip-position="top" aria-label="Overview" data-href="#Overview" href="baremetal-plc-xl.html#Overview_0" class="internal-link" target="_self" rel="noopener nofollow">Overview</a>
<br><a data-tooltip-position="top" aria-label="Hardware description" data-href="#Hardware description" href="baremetal-plc-xl.html#Hardware_description_0" class="internal-link" target="_self" rel="noopener nofollow">Hardware description</a>
<br><a data-tooltip-position="top" aria-label="Functional Diagram" data-href="#Functional Diagram" href="baremetal-plc-xl.html#Functional_Diagram_0" class="internal-link" target="_self" rel="noopener nofollow">Functional Diagram</a>
<br><a data-tooltip-position="top" aria-label="Pinout and symbols" data-href="#Pinout and symbols" href="baremetal-plc-xl.html#Pinout_and_symbols_0" class="internal-link" target="_self" rel="noopener nofollow">Pinout and symbols</a>
<br><a data-tooltip-position="top" aria-label="Dimensions" data-href="#Dimensions" href="baremetal-plc-xl.html#Dimensions_0" class="internal-link" target="_self" rel="noopener nofollow">Dimensions</a> Bare-metal PLC XL Controller has various powerful features and can service a wide range of applications. The controller has the following interfaces on board: Fast Ethernet , CAN bus, RS485, RS232, 5 relay outputs, 5 discrete inputs, 5 discrete outputs. The main microcontroller is built on the Cortex-M7 core with a clock frequency of 216 MHz and also supports DSP instructions and FPU instructions. <br>Onboard <a data-tooltip-position="top" aria-label="https://github.com/RoboticsHardwareSolutions/rlink" rel="noopener nofollow" class="external-link is-unresolved" href="https://github.com/RoboticsHardwareSolutions/rlink" target="_self">Rlink</a> programmer
MCU Cortex-M7: 216 MHz SRAM: 512 Kbytes 1 Mbytes of MCU flash memory + Quad SPI 16 Mbytes memory Ethernet port (Fast Ethernet)
5 Relay outputs 55V 1.5A ( Max switch frequency 3Hz )
5 Discret Outputs (12-24V 70mA)
5 Discret Inputs CAN Bus RS485 RS232
USB HubCAN BusRS485EthernetRS232MCURlink (debuggger)5-outputs5-inputs5-SSR(solidstaterelay)RTC batteryUSB1USB2UARTSWDBuzzer<br><img alt="BareMetal-PLC-XL/doc/pinout/pinout.png" src="baremetal-plc-xl/doc/pinout/pinout.png" target="_self"><br><img alt="Screenshot 2025-08-04 at 22.23.22.png" src="attach/screenshot-2025-08-04-at-22.23.22.png" target="_self"><br>
<img alt="Screenshot 2025-08-04 at 22.24.19.png" src="attach/screenshot-2025-08-04-at-22.24.19.png" target="_self"><br>
<img alt="Screenshot 2025-08-04 at 22.25.24.png" src="attach/screenshot-2025-08-04-at-22.25.24.png" target="_self"><br> 3D model in .stp <a data-tooltip-position="top" aria-label="https://github.com/RoboticsHardwareSolutions/BareMetal-PLC-XL-assembly/blob/main/doc/assembly.stp" rel="noopener nofollow" class="external-link is-unresolved" href="https://github.com/RoboticsHardwareSolutions/BareMetal-PLC-XL-assembly/blob/main/doc/assembly.stp" target="_self">here</a>]]></description><link>baremetal-plc-xl.html</link><guid isPermaLink="false">BareMetal PLC XL.md</guid><pubDate>Tue, 27 Jan 2026 15:01:34 GMT</pubDate><enclosure url="baremetal-plc-xl/doc/pinout/pinout.png" length="0" type="image/png"/><content:encoded>&lt;figure&gt;&lt;img src="baremetal-plc-xl/doc/pinout/pinout.png"&gt;&lt;/figure&gt;</content:encoded></item></channel></rss>