Skip to Content
All case studies

Case study · OEM laundry machine · Raspberry PLC 58

One controller design. Every machine in the series.

The same PLC, panel and I/O in every laundry machine. Service over 4G.

63I/O on the Raspberry PLC 58: 39 inputs, 24 outputs
2RS-485 ports: remote I/O on one, the drive on the other
4GLTE Cat 4 board on the PLC for remote service
7"Linux touch panel, IP65 front on the FLEX version

A machine builder does not build one machine. It builds the same machine many times.

So the controller is part of the product: one bill of materials, one test, one way to service it.

This case describes a pattern, not a customer. It starts from the hardware that a builder of industrial laundry machines fits in its series: a Raspberry PLC 58 with a 4G board, a TouchBerry Pi Panel PC and moduleX remote I/O. It does not name the builder, the machines or where they work, and it does not publish the machine program. The signals, options, test steps and fault codes on this page are examples of a typical way to do it.

The challenge

One machine is a project. A series is a product.

A laundry machine builder ships the same machine to many laundries. Each machine needs the same control, the same screen and the same checks before it leaves the factory. The models change in size and options, and the builder does not want a new cabinet for each one. When a machine stops in a laundry far away, the service team needs to know why before a technician travels.

01

One bill of materials

Every machine in the series uses the same controller, the same panel and the same main cabinet.

02

Options without a new design

More dosing pumps or a water recovery tank add remote I/O modules on a bus. The main cabinet stays the same.

03

Tested before it ships

Each controller runs the same end-of-line test, and the result is saved with the serial number.

04

The builder's screen

The operator sees the machine builder's interface on the panel, with its own programs and menus.

Service from a distance, with a person at the machine

The machines work in laundries that the builder does not run. Over 4G, the controller sends its state and its alarms to the builder. A service engineer can read a fault and prepare a change. The change is applied only when the machine is stopped and a person accepts it on the panel.

How it works

Three moments in the life of each machine: configure, test, service.

Each panel shows one moment. Press the buttons and move the controls. The panels are illustrative simulations: the signals, options, steps, times and codes are examples, not the program of a real machine.

Moment 1 · Configure

Three models, one main cabinet. Options go on the bus.

The base machine uses a fixed set of PLC inputs and outputs: door, safety status, level, temperature, water meter, valves, heating and the drive. Options that change from one order to the next, such as dosing pumps or a water recovery tank, go on moduleX remote I/O, on RS-485. The model size changes only a parameter set. Pick a model, move the pumps and tick the tank.

  • Base signals on the Raspberry PLC 58
  • Options on moduleX modules, Modbus RTU over RS-485
  • One parameter set per model
Main cabinetPLC 587" panelsame inevery modelRS-485MDosing pumps
4
PLC inputs used0
PLC outputs used0
moduleX modules0
Parameter set0
BASE MACHINEOPTIONS ON MODULEXSAME MAIN CABINET

Bill of materials (example)

    Illustrative simulation. Example values, not data from a machine. Example I/O: the base machine uses 7 inputs and 6 outputs of the PLC. Each dosing pump adds 1 output and 1 low level input; the recovery tank adds 2 outputs and 1 input. The model size changes parameters, not hardware.

    Moment 2 · Test at the end of the line

    The same test for every serial number.

    Before a machine leaves the factory, the controller runs one test program. It checks the panel link, the remote I/O, the analog signals, every output and the 4G link, and saves a report with the serial number. A wrong Modbus ID or a missing antenna stops the machine on the line, not at the customer. Pick a case and press Run the test. For a full end-of-line test bench, see the end-of-line testing case.

    • One test program on the PLC for the whole series
    • The operator confirms what the PLC cannot see
    • A report per serial number
    PLCPanelmoduleXSensorsOutputs4GReport
    Serial number0
    Step0
    Result0
    Reports saved0
    BOOTPANELMODULEXSENSORSOUTPUTS4GREPORT

    Test report (example)

      Illustrative simulation. Example values, not data from a machine. Example steps and serial numbers. A typical way to do it: the test program runs on the PLC itself, the operator confirms what the PLC cannot see, and the report is a text file per serial number (see plain-text test reports from a Raspberry PLC).

      Moment 3 · Service over 4G

      Events go out. Changes come in, and wait for a person.

      In the laundry, the PLC sends its events over 4G: cycle start and end, faults with a code, changes accepted. If the link is down, it keeps the events and sends them later. The service team can send a new parameter, but the panel shows it as waiting, and the PLC applies it only when the machine is stopped and a person accepts it. Run a cycle, simulate a slow drain, cut the link, and send a change. To try machine states, downtime and alarms on a live line, open the Machine Monitor simulator.

      • Events with a code, kept while the link is down
      • Remote changes wait for a stopped machine
      • A person accepts the change on the panel
      Machine4GServiceserverPanel
      Machine0
      4G link0
      Events waiting0
      Parameters0
      IDLERUNNINGFAULTCHANGE WAITINGOFFLINE: EVENTS KEPT

      Events (example)

        Illustrative simulation. Example values, not data from a machine. Example cycle, codes and times, shown much faster than real time. A typical way to do it: events go out over MQTT; a change from the service team waits on the panel and is applied only with the machine stopped.

        System architecture

        How does an OEM build one controller into a series of laundry machines?

        A typical way to do it: the Raspberry PLC 58 reads the door switches, the status of the safety relay and the water meter on digital inputs, and the level and temperature transmitters (4-20 mA, through 500 Ω converters) on 0-10 V inputs. Its digital outputs drive the water valves, the heating contactor, the door lock command and the drive permit, through interposing relays. The first RS-485 port reads the moduleX remote I/O for the options; the second talks Modbus RTU to the drum drive. The TouchBerry Pi panel is on Ethernet. The 4G board sends events to the service server.

        TouchBerry Pi 7"machine screen, service loginEthernetService serverevents, changes4GRaspberry PLC 58Linux, 4G boardInputsDoor switchesclosed and lockedSafety relaystatus onlyLevel 4-20 mAvia 500 ΩTemperature 4-20 mAvia 500 ΩWater meterpulsesDigital outputsWater valvescold, hot, drainHeatingcontactorDoor lockrequestDrive permitvia the safety relayDrum drive (VFD)Modbus RTUmoduleXoptions of each orderRS-485RS-485One possible layout. The case does not publish the machine program, the sensor ranges or the safety circuit.Service serverevents, changes4GTouchBerry Pi 7"machine screen, service loginEthernetRaspberry PLC 58Linux, 4G boardDoor switchesclosed and lockedDigital inSafety relaystatus onlyDigital inLevel 4-20 mAvia 500 ΩAnalog inTemperature 4-20 mAvia 500 ΩAnalog inWater meterpulsesDigital inWater valvescold, hot, drainDigital outHeatingcontactorDigital outDoor lockrequestDigital outDrive permitvia the safety relayDigital outDrum drive (VFD)Modbus RTURS-485moduleXoptions of each orderRS-485One possible layout. The case does not publishthe machine program, the sensor ranges or thesafety circuit.
        InputsDigital outputs (24 Vdc)RS-485, Modbus RTUEthernet4G
        Signals and data (example)
        SignalBetweenTypePurpose
        Door closed, door lockedBetweenDoor switches → PLCTypeDigital inPurposeThe cycle starts only with the door closed and locked. The interlock itself is a safety function (see the FAQ)
        Safety circuit OKBetweenSafety relay → PLCTypeDigital inPurposeThe PLC reads the status. It does not perform the safety function
        Water levelBetweenLevel transmitter 4-20 mA → 500 Ω converter → PLCTypeAnalog in (0-10 V)PurposeFill to the level of each step. Well below 2 V (for example under 1.8 V, about 3.6 mA) means a broken wire
        Water temperatureBetweenTransmitter 4-20 mA → 500 Ω converter → PLCTypeAnalog in (0-10 V)PurposeHeat to the temperature of each step
        Water meterBetweenPulse output → PLCTypeDigital inPurposeWater use per cycle
        Cold, hot and drain valvesBetweenPLC → interposing relays → valvesTypeDigital outPurposeFill and drain
        HeatingBetweenPLC → interposing relay → contactorTypeDigital outPurposeElectric heating on and off
        Door lock, drive permitBetweenPLC → lock and drive, via the safety relayTypeDigital outPurposeRequest to lock the door and to run the drum
        Drum driveBetweenPLC ↔ drive (VFD)TypeRS-485, Modbus RTUPurposeSpeed, direction, drive faults
        Dosing pumps, low levels, recovery tankBetweenPLC ↔ moduleX MX-8DO and MX-8DITypeRS-485, Modbus RTUPurposeOptions of each order, on remote I/O
        Operator screenBetweenPLC ↔ TouchBerry Pi 7"TypeEthernetPurposePrograms, steps, alarms, service login, changes waiting
        Events and changesBetweenPLC ↔ service serverType4G LTE Cat 4PurposeEvents out, kept while offline. Changes in, applied after a local accept

        Why it works

        Fixed hardware. Variants in software and on the bus.

        The hardware does not change per model

        The main cabinet, the PLC and the panel are the same in every machine. A model is a parameter set: drum size, water levels, times. One bill of materials is simpler to buy, stock and repair.

        Options on remote I/O

        moduleX talks Modbus RTU over RS-485. The configurable kit takes up to 6 I/O modules in its enclosure, and the Xbus allows up to 16 per master. The master ID is set by DIP switch. An order with more options adds modules; you can reserve free slots in the enclosure for later.

        Room on the controller

        The Raspberry PLC 58 has 39 inputs and 24 outputs. In this example the base machine uses 7 and 6 of them, so a new feature does not force a new controller.

        Linux for the panel and the services

        The PLC and the TouchBerry Pi run Linux. The machine interface can be a Node-RED dashboard that opens on boot in kiosk mode, with a service login for the technician.

        A clean stop when the power goes

        Both the PLC and the panel have a UPS with supercapacitors that shuts Linux down cleanly, so a power cut does not corrupt the SD card. The PLC also has a real-time clock with its own battery, so events keep the right time.

        Remote, with a person in the loop

        Events go out on their own. Changes come in only as a request: the PLC applies them with the machine stopped and after a person accepts them on the panel. In this pattern, remote access cannot start the drum.

        Hardware used

        A controller, a panel and remote I/O. The same in every machine.

        Raspberry PLC 58, industrial PLC based on Raspberry Pi 4 with 39 inputs and 24 outputs for DIN rail

        Raspberry PLC 58

        An industrial PLC built around a Raspberry Pi 4, with 39 inputs and 24 outputs, two Ethernet ports, two RS-485 ports, Wi-Fi and Bluetooth LE, for DIN rail. It runs Debian 64-bit. In this pattern it runs the machine, reads the remote I/O and the drive on its two RS-485 ports, and sends the events over its 4G board.

        Role
        Machine control, remote I/O, drive, events over 4G
        Inputs
        39: 18 analog/digital (0-10 V, 12-bit), 21 digital optoisolated (5 to 24 Vdc)
        Outputs
        24: 9 analog/digital/PWM (0-10 V), 15 digital optoisolated (5 to 24 Vdc)
        Comms
        1 x Gigabit and 1 x 10/100 Ethernet, 2 x RS-485, Wi-Fi, Bluetooth LE, I2C, SPI
        Expansion
        One board: CAN, LoRa or 4G (LTE-M/NB-IoT or LTE Cat 4)
        Computer
        Raspberry Pi 4, 2, 4 or 8 GB RAM, Debian 64-bit
        Reliability
        UPS for safe shutdown, real-time clock with battery
        Power and mounting
        12 to 24 Vdc, DIN rail TS35, IP20, 0 to 50 °C

        The image shows the Raspberry PLC 58. Choose the 4G (LTE Cat 4) expansion board when you configure it. The outputs are optoisolated transistor outputs, not relays: drive valves and contactors through interposing relays.

        TouchBerry Pi Panel PC 7 inch, industrial touch panel with Raspberry Pi 4

        TouchBerry Pi Panel PC 7" FLEX

        The operator panel of the machine: a Raspberry Pi 4 behind a 7" capacitive touchscreen, on Ethernet to the PLC. It shows the builder's interface, the programs, the alarms and the changes waiting for a person.

        Role
        Machine interface, alarms, local accept of changes
        Screen
        7" IPS, 1024 x 600, capacitive, 900 nits
        Front
        IP20 or IP65 on the FLEX version
        Own I/O
        3 digital in, 2 analog in, 5 digital out
        Comms
        Gigabit Ethernet, 4 x USB, one serial port (RS-485, RS-232 or TTL)
        Power
        12 to 24 Vdc, UPS for safe shutdown

        The family also has a 10.1" model.

        moduleX remote I/O, master module with I/O modules on DIN rail, Modbus RTU over RS-485

        moduleX Inputs Outputs Module

        Remote I/O for the options of each order. A master module talks Modbus RTU over RS-485 to the PLC, and the I/O modules snap onto it. You choose the modules, and the enclosure is sized to your choice.

        Role
        Dosing pumps, low levels, recovery tank
        Modules
        MX-8DI, MX-8DO, MX-4AI, MX-4AOV
        Bus to the PLC
        RS-485, Modbus RTU slave, ID by DIP switch
        Modules per master
        Up to 6 in the enclosure of the configurable kit. The Xbus allows up to 16 per master, 10 ms refresh
        Wiring
        Pluggable push-in terminals, 0.2 to 1.5 mm²
        Mounting
        DIN rail, IP20

        Questions about this case

        How do you choose a PLC for a machine built in series?

        Start from the base machine and leave room. Count its inputs, outputs and buses, then put the options of each order on remote I/O, so the main cabinet does not change. Check the links you need: a bus for the drive, Ethernet for the panel, a remote link for service. And check how the controller behaves on a power cut. In this pattern the Raspberry PLC 58 has 63 I/O, two RS-485 ports, two Ethernet ports, an optional 4G board and a UPS for safe shutdown.

        How do you service laundry machines remotely over 4G?

        A typical way to do it: the PLC publishes events (cycle start and end, faults with a code) over MQTT to a server, and keeps them while the link is down. The server never writes to the outputs. A change from the service team is a request: the PLC shows it on the panel and applies it only with the machine stopped and after a person accepts it. See an MQTT to SQL Server bridge on a Raspberry PLC, and try machine states and alarms in the Machine Monitor simulator.

        What does the EU Machinery Regulation 2023/1230 change for connected machines?

        The Regulation (EU) 2023/1230 applies from 20 January 2027 and replaces the Machinery Directive 2006/42/EC. Its essential requirements add protection against corruption (Annex III, 1.1.9): software and data that are critical for the machine's compliance with the essential health and safety requirements must be identified and protected against accidental or intentional corruption, and the machine must collect evidence of legitimate or illegitimate interventions in that software or its configuration. The control system must also stay safe against reasonably foreseeable malicious attempts by third parties (1.2.1). Compliance is for the whole machine and its builder, not for the controller alone. Logging every change and accepting it locally are two steps in that direction.

        Does the PLC lock the door of a washer-extractor?

        No. The door interlock and the stop of the drum before the door opens are safety functions. They are built with safety-rated components, such as a safety relay and a guard locking device (ISO 14119), following ISO 10472-2 (washing machines and washer-extractors) and ISO 13849-1. The standard PLC asks for the lock, reads the status of the safety circuit and shows it. See safety interlocks and e-stop on a Raspberry PLC.

        How do you read 4-20 mA sensors on a Raspberry PLC 58?

        Its analog inputs read 0-10 V. A 500 Ω resistor turns 4-20 mA into 2-10 V. A DIN rail 500 Ω converter does it in the cabinet. 4 mA gives exactly 2 V, the live zero. A reading well below 2 V (for example under 1.8 V, about 3.6 mA) then means a broken wire or a dead transmitter, so the PLC can raise an alarm instead of filling the drum. See closed-loop current calibration on a Raspberry PLC.

        Why put the options on moduleX remote I/O?

        So the main cabinet is the same in every machine. The options of each order (dosing pumps, low level switches, a recovery tank) go on moduleX modules on RS-485, close to the devices. The PLC reads them as a Modbus RTU master. The configurable kit takes up to 6 modules in its enclosure (the Xbus allows up to 16 per master), and the master ID is set by DIP switch, so the end-of-line test checks it. See a Modbus RTU master over RS-485 (the example runs on an ESP32 PLC; the protocol is the same).

        Download the case study

        4-page PDF with the challenge, the logic, the architecture and the hardware. No form required.

        Building machines in series?

        Tell us about your machine and your series. An engineer will answer.

        Tell us the I/O of the base machine, the options, the drive, the panel and how you want to service it. Tell us if it is one machine or a series. We will propose a configuration and how to test it.

        • You get an answer from our technical team
        • I/O count, options and remote I/O for your series
        • Arduino, ESP32 or Raspberry Pi based PLCs