# The SLM-RP4

The SLM-RP4 is an industrial controller built around a Raspberry Pi 4 compute
platform. It clips onto DIN rail, takes 24 VDC, and drives a backplane of up to
8 Synergy Logic I/O modules: discrete inputs and outputs, relays, analog current
and voltage, and thermocouples. All are available from the
[Synergy Logic store](https://synergy-logic.store/en/catalog/node/view-products).

```{image} ../images/board/slm-rp4-preview.png
:alt: The SLM-RP4 base controller
:class: dark-light
:width: 240px
:align: center
```

The SLM-RP4 ships from the factory with OpenPLC Runtime and the Python and C++ libraries
pre-installed. The device can be programmed in two ways:

- **OpenPLC Editor**, with the IEC 61131-3 languages (Structured Text, Ladder Diagram,
  Instruction List and Function Block Diagram) and Python and C++ blocks. OpenPLC handles
  all backplane and I/O access.
- **Stand-alone Python or C++ programs**, which access the backplane directly through the
  Synergy libraries. This manual documents their API.

This manual includes worked examples for both.

## Programming options

::::{grid} 1 1 2 2
:gutter: 3

:::{grid-item-card} <p style="text-align: center; font-weight:bold; color:#3174FB;">OpenPLC Editor</p>
:link: getting-started/first-project
:link-type: doc

A development environment for the IEC 61131-3 languages (Structured Text, Ladder Diagram,
Function Block Diagram and Instruction List), with Python and C++ blocks.
:::

:::{grid-item-card} <p style="text-align: center; font-weight:bold; color:#D68910;">C++ or Python</p>
:link: advanced/overview
:link-type: doc

Popular open source programming platforms, with libraries and examples
included.
:::

::::

## Ordering modules

{doc}`hardware/module-catalog` lists every module the SLM-RP4 supports,
with photos and channel counts. Modules can be ordered from the
[Synergy Logic store](https://synergy-logic.store/en/catalog/node/view-products).
