Resolving LOGO! Soft Comfort PC to LOGO Download Failed on Linux

David Krause13 min read
HMI ProgrammingSiemensTroubleshooting
Licensed PE Working through this on a live machine? A Maine-licensed engineer can take it from here — included with IMD hardware, by the hour for everything else. Book an engineer

1. Problem Statement and Failure Symptom

The Siemens LOGO! 0BA8 Standard controller, when programmed from a Linux workstation running LOGO!Soft Comfort V8.0, V8.1, or V8.2, can reach the point of an Ethernet handshake on the same subnet (ICMP echo passes both directions between 192.168.1.56 and 192.168.1.251) but the programming software refuses the program transfer with the exact dialog message:

Download PC → LOGO!  Failed

The diagnostic footprint is specific and recognizable:

  • Both PC and LOGO! are configured with static IPv4 addresses and a /24 subnet mask (255.255.255.0).
  • Bidirectional ICMP echo (ping) is healthy from both ends, including from the LOGO! to the PC.
  • On a separate subnet (where the two devices cannot ping each other) the transfer dialog opens but no LOGO! is found on the network scan, as expected.
  • The same LOGO!Soft Comfort V8.x installation, when copied to a Windows partition, transfers programs without error to the same physical LOGO! 0BA8. This eliminates the cable, the switch, and the LOGO! hardware as the failure point and isolates the cause to the Linux runtime of the Siemens software.

This is a known class of failure for LOGO!Soft Comfort on Debian-derived Linux distributions. The fix does not require a different PC, a different cable, or a firmware change on the LOGO! 0BA8. Three independent root causes are documented in the field, and all three are addressed in the procedure below.

2. Affected Environment and Software Versions

Component Verified Configuration Notes
LOGO! Hardware LOGO! 0BA8 Standard FS04 variants are also affected; all 0BA8 generations share the same LSC transport
LOGO!Soft Comfort V8.0 / V8.1 / V8.2 Linux runtime introduced in V8.0; V8.2 is the latest verified for the sysconfig workaround
Linux Distro Ubuntu 18.04/20.04/22.04, Linux Mint 19, Linux Mint 22.3 Cinnamon 64-bit All Debian-family; SUSE-family distros do not exhibit the sysconfig failure
PC IPv4 192.168.1.56 / 255.255.255.0 (static) DHCP can be used as a last resort but the LOGO! 0BA8 must be static
LOGO! IPv4 192.168.1.251 / 255.255.255.0 (static) Default factory IP of a 0BA8 is in this range
Java Runtime Amazon Corretto 11.0.13.8.1 (recommended) Per Siemens Support Entry 25447431
Critical: The combination of a single-NIC Linux workstation, a built-in WiFi adapter, and the LOGO!Soft Comfort V8.x Linux transport stack is the highest-risk configuration. A successful Windows transfer with the same project is the diagnostic that confirms the issue is in the Linux runtime, not the project file.

3. Root Cause Analysis

Three independent root causes have been reproduced on the same LOGO! 0BA8, same cable, same subnet, and same static IP configuration. They are not mutually exclusive: a workstation that fails after Fix 1 is applied will frequently still fail until Fix 2 is also applied.

3.1 Routing Conflict via Active WiFi Interface

When the Linux PC has both an Ethernet interface (eth0) and an active WiFi interface (wlan0), the kernel routing table can install a default route through the WiFi adapter with a lower metric than the Ethernet default route. The user-space application then sends the LSC transfer TCP segments out the WiFi interface, while the LOGO! 0BA8 responds on the Ethernet segment. The transfer fails with a TCP timeout that the application surfaces as Download PC → LOGO! Failed. ICMP ping succeeds because ping uses the ICMP echo subsystem which is interface-bound in the opposite direction and appears to work inconsistently.

3.2 Missing SUSE-Style Network Skeleton Files

LOGO!Soft Comfort V8.x for Linux is built on the SUSE RPM package conventions. During network interface discovery the application reads the contents of /etc/sysconfig/network/ifcfg-eth0 and /etc/sysconfig/network/ifcfg-wlan0 to determine the active interface list. On Debian-family distributions this directory and these files do not exist, and the application aborts the network probe silently. Creating empty placeholder files satisfies the probe and allows the program transfer to proceed.

3.3 Java Runtime Mismatch

The LSC V8.x Linux transport stack is built against a specific Java runtime. OpenJDK builds shipped with Ubuntu and Linux Mint will launch the GUI but will fail the LSC internal discovery and transfer protocol with no error in the GUI. Siemens officially documents Support Entry 25447431 endorsing Amazon Corretto 11.0.13.8.1 as the supported JRE for the LOGO!Soft Comfort V8.x Linux runtime.

4. Pre-Flight Network Checklist

Before applying any fix, capture the current state so that the three fixes below can be applied in isolation if needed. All commands require a root shell or sudo:

  1. Verify the PC and LOGO! share a /24 subnet:
    ip -4 addr show | grep -E 'inet |state UP'
    ping -c 4 192.168.1.251
  2. Verify the LOGO! responds on its Ethernet port. The 0BA8 ships with IP 192.168.1.251 by default; if the user has changed it, set the PC to a same-subnet address:
    sudo ip addr add 192.168.1.56/24 dev eth0
    sudo ip link set eth0 up
  3. Check the kernel routing table for two default routes:
    ip route show default
    If two default via entries appear, the routing-conflict root cause (3.1) is active.
  4. Confirm the active interfaces and their states:
    ip link show
    nmcli device status
  5. Capture the LOGO! MAC from the device front panel sticker or from the discovery:
    arp -n | grep 192.168.1.251
  6. Capture a baseline TCP attempt against the LOGO! transfer port to confirm the failure is not a physical-layer issue:
    timeout 3 bash -c 'cat </dev/tcp/192.168.1.251/1352' || echo "no service"
    The LSC transfer service listens on TCP/1352; a refusal here means the LOGO! is reachable but not yet in server mode, which is normal until a transfer is initiated.

5. Fix 1: WiFi Interface Isolation

This is the fastest fix and the most commonly reported resolution in the field. It addresses root cause 3.1.

5.1 Disable WiFi via NetworkManager

  1. Right-click the NetworkManager tray icon on Cinnamon, GNOME, KDE, or XFCE.
  2. Select Enable Wi-Fi to toggle it off (uncheck).
  3. Verify the wireless interface is administratively down:
    nmcli radio wifi off
    ip link show wlan0   # state should be DOWN

5.2 Disable WiFi via rfkill (Hard Block)

If the toggle does not stick, hard-block the wireless radio at the kernel level:

sudo rfkill block wifi
ip link show wlan0   # state should be DOWN, rfkill list confirms hard block

5.3 Disable WiFi via Interface Teardown

For headless or scripted environments:

sudo ip link set wlan0 down

5.4 Persistent WiFi Disable on Boot

For Linux Mint 22.3 / Ubuntu 22.04+ with NetworkManager, create a NetworkManager dispatcher rule:

sudo tee /etc/NetworkManager/dispatcher.d/pre-down.d/99-logo-wifi-off <<'EOF'
#!/bin/sh
if [ "$1" = "wlan0" ]; then
  exit 0
fi
nmcli radio wifi off
EOF
sudo chmod +x /etc/NetworkManager/dispatcher.d/pre-down.d/99-logo-wifi-off

6. Fix 2: Sysconfig Network Skeleton Files

This fix addresses root cause 3.2 and is the most reliable of the three. It is mandatory on Debian-family distributions and harmless on SUSE-family. The exact commands verified in the field are:

sudo mkdir -p /etc/sysconfig/network
sudo touch /etc/sysconfig/network/ifcfg-eth0
sudo touch /etc/sysconfig/network/ifcfg-wlan0

The files must exist before LSC V8.x starts its network probe. They are intentionally left empty; the LSC runtime only checks for their presence. If the LOGO! workstation is also running systemd-networkd or netplan, no conflict is introduced because the LSC probe only reads the file path, not the network manager state.

6.1 Verify the Skeleton Files Are Visible to the Process

ls -l /etc/sysconfig/network/
stat /etc/sysconfig/network/ifcfg-eth0
stat /etc/sysconfig/network/ifcfg-wlan0

6.2 Persist Across Reboots

The touch and mkdir commands survive reboots because the files reside on the root filesystem, but a clean reinstall of the OS removes them. For long-term deployments, fold the commands into the /etc/rc.local legacy startup file or a systemd-tmpfiles rule:

sudo tee /etc/tmpfiles.d/logo-sysconfig.conf <<'EOF'
# Type Path                                      Mode User Group Age Argument
f    /etc/sysconfig/network/ifcfg-eth0           0644 root root -
f    /etc/sysconfig/network/ifcfg-wlan0          0644 root root -
d    /etc/sysconfig/network                      0755 root root -
EOF
sudo systemd-tmpfiles --create
Note: If the LOGO! is connected via USB instead of Ethernet, root cause 3.2 is still relevant: the LSC transport also probes the network skeleton files even on a USB-only link. Apply Fix 2 regardless of the physical medium.

7. Fix 3: Java Runtime Environment Configuration

This fix addresses root cause 3.3 and is documented by Siemens in Support Entry 25447431.

7.1 Confirm the Currently Active JRE

java -version
which java
update-alternatives --list java 2>/dev/null || true

If the version string is anything other than 11.0.13.x from Amazon Corretto, proceed with the steps below.

7.2 Install Amazon Corretto 11.0.13.8.1

  1. Download the Debian package from the Amazon Corretto 11 distribution (x64, .deb).
  2. Install and select it as the system default:
    sudo apt install -y ./corretto-11.0.13.8.1-linux-x64.deb
    sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-11-amazon-corretto/bin/java 2000
    sudo update-alternatives --set java /usr/lib/jvm/java-11-amazon-corretto/bin/java
    java -version
  3. Remove any other JDK/JRE so the LSC launcher does not pick the wrong runtime:
    sudo apt remove -y openjdk-11-jre openjdk-11-jdk openjdk-17-jre openjdk-17-jdk 2>/dev/null || true
    sudo apt autoremove -y

7.3 Set JAVA_HOME for the LSC User

LSC V8.x on Linux honors the JAVA_HOME environment variable when present. Pin it to the Corretto install:

cat >> ~/.bashrc <<'EOF'
export JAVA_HOME=/usr/lib/jvm/java-11-amazon-corretto
export PATH=$JAVA_HOME/bin:$PATH
EOF
. ~/.bashrc

7.4 Confirm LSC Launches Under Corretto

/opt/Siemens/LOGOComfort/logoComfort -version 2>&1 | head -n 3

The startup banner should report OpenJDK 64-Bit Server VM (11.0.13.8.1+9-LTS) or equivalent Corretto build.

8. Static IP Configuration for LOGO! 0BA8

The LOGO! 0BA8 IP must be set on the device itself (not via DHCP) and must match the subnet of the Linux PC. The factory default is 192.168.1.251 / 255.255.255.0.

8.1 Configure the LOGO! 0BA8 IP from the Front Panel

  1. On the LOGO! 0BA8, press ESC to enter the main menu.
  2. Navigate to Network and select IP Address.
  3. Enter 192.168.1.251 and confirm.
  4. Enter the subnet mask 255.255.255.0 and confirm.
  5. Set the gateway to 0.0.0.0 (or to the router IP if the LOGO! must reach an HMI outside the subnet).

8.2 Configure the PC Ethernet with Netplan (Ubuntu 22.04+)

sudo tee /etc/netplan/01-logo.yaml <<'EOF'
network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      addresses:
        - 192.168.1.56/24
      routes:
        - to: 0.0.0.0/0
          via: 192.168.1.1
          metric: 100
EOF
sudo netplan apply

8.3 Configure the PC Ethernet with NetworkManager (Linux Mint 22.3)

nmcli con add type ethernet ifname eth0 con-name logo-eth \
    ipv4.addresses 192.168.1.56/24 \
    ipv4.gateway 192.168.1.1 \
    ipv4.method manual
nmcli con up logo-eth

9. LSC Version Compatibility Matrix

LSC Version Linux Build Required JRE Sysconfig Fix WiFi Fix Field Verified
V8.0 Yes OpenJDK 8 / Corretto 8 Yes Yes Yes (2014-era bug reports)
V8.1 Yes Corretto 11.0.13.x Yes Yes Yes (this article)
V8.2 Yes Corretto 11.0.13.x Yes Yes Yes (Linux Mint 19, 22.3)
V8.3+ Check vendor note Corretto 17 recommended Likely still required Likely still required Not in scope
Compatibility caveat: When upgrading LSC, the sysconfig skeleton files from Fix 2 must be re-applied if the upgrade ships a fresh launcher script or the post-install script removes the files. Verify with ls /etc/sysconfig/network/ after every LSC upgrade.

10. Step-by-Step Recovery Procedure

Apply the three fixes in the order that has the highest field success rate. Stop after the first successful transfer; do not skip a fix that is not strictly needed.

  1. Power-cycle the LOGO! 0BA8 to clear any pending transfer state. Wait 10 seconds with power removed, then re-apply power.
  2. Disable WiFi on the Linux PC (Fix 1, Section 5).
  3. Apply the sysconfig fix (Fix 2, Section 6).
  4. Install Amazon Corretto 11.0.13.8.1 and remove other JREs (Fix 3, Section 7).
  5. Confirm the IP configuration on both ends (Section 8).
  6. Launch LOGO!Soft Comfort from a fresh shell so the JAVA_HOME change is picked up:
    bash -lc '/opt/Siemens/LOGOComfort/logoComfort &'
  7. Open the project and select Tools → Transfer → PC → LOGO! (or F5).
  8. Select the LOGO! 0BA8 in the network dialog. The discovered device should report firmware 0BA8.Standard and IP 192.168.1.251.
  9. Click Transfer and monitor the progress dialog.
  10. Verify on the LOGO! front panel: the program name and date/time should match the project.

11. Verification and Acceptance Test

A successful transfer must satisfy all of the following acceptance checks. If any check fails, return to Section 10 and re-apply the corresponding fix.

Check Expected Result How to Verify
Transfer completes No Download PC → LOGO! Failed dialog Visual confirmation in LSC
LOGO! restart prompt LOGO! prompts to stop and restart the program Confirm on LOGO! front panel
Program runs Output Q1 (or first used output) follows the project logic Force input I1 high via LSC online test
Online monitoring LSC online view shows real-time I/O state Tools → Online Test
Round-trip read LSC reads back the same program from the LOGO! LOGO! → PC transfer succeeds
Persistent sysconfig files Files present after reboot ls /etc/sysconfig/network/

12. Troubleshooting Matrix

Symptom Likely Root Cause Fix Verification
Dialog opens, no LOGO! found 3.1 Routing conflict Disable WiFi ip route show default shows one default route
Dialog opens, no LOGO! found, single default route 3.2 Missing sysconfig files Apply Fix 2 ls /etc/sysconfig/network/ shows two files
Dialog opens, LOGO! found, transfer times out 3.3 JRE mismatch Apply Fix 3 java -version reports Corretto 11.0.13
Transfer fails intermittently every few minutes 3.1 WiFi re-enables via NetworkManager Persistent WiFi disable (5.4) Reboot and recheck
Transfer fails only on first attempt after boot 3.2 Sysconfig files removed by LSC upgrade Re-apply Fix 2 Re-verify file presence
Transfer fails, WiFi is already off, JRE is correct Multiple interfaces with same metric Set Ethernet metric to 100, WiFi to 600 ip route shows Ethernet preferred
LOGO!Soft Comfort never opens on Windows either Not a Linux issue; Windows install corrupted Reinstall LSC on Windows; verify on Linux after Windows LSC opens and discovers LOGO!
USB transfer fails on Linux 3.2 and 3.3 still apply to USB transport Apply Fixes 2 and 3; lsusb shows Siemens LOGO! USB transfer succeeds

13. Quick Command Summary

For an experienced engineer who already understands the three root causes, the canonical fix sequence is:

# 1. WiFi off
sudo nmcli radio wifi off
sudo ip link set wlan0 down

# 2. Sysconfig skeleton
sudo mkdir -p /etc/sysconfig/network
sudo touch /etc/sysconfig/network/ifcfg-eth0
sudo touch /etc/sysconfig/network/ifcfg-wlan0

# 3. JRE (Amazon Corretto 11.0.13.8.1)
sudo apt install -y ./corretto-11.0.13.8.1-linux-x64.deb
sudo update-alternatives --set java /usr/lib/jvm/java-11-amazon-corretto/bin/java
export JAVA_HOME=/usr/lib/jvm/java-11-amazon-corretto

# 4. Static IP on PC
sudo ip addr add 192.168.1.56/24 dev eth0
sudo ip link set eth0 up

# 5. Launch LSC
/opt/Siemens/LOGOComfort/logoComfort &

Why does the LOGO!Soft Comfort PC→LOGO transfer fail on Linux when ping works?

The transfer uses the LSC transport stack on TCP/1352, which depends on a clean routing table (WiFi disabled) and the SUSE-style /etc/sysconfig/network/ifcfg-* skeleton files. The sysconfig directory does not exist on Debian-family distributions, so the LSC transport aborts silently even though ICMP echo appears to work. Create the skeleton files with sudo mkdir -p /etc/sysconfig/network and sudo touch /etc/sysconfig/network/ifcfg-eth0 /etc/sysconfig/network/ifcfg-wlan0, then disable WiFi and reinstall Amazon Corretto 11.0.13.8.1.

Is the sysconfig workaround safe on Ubuntu and Linux Mint?

Yes. The skeleton files are read at LSC launch time and are not interpreted by systemd-networkd, NetworkManager, or netplan. The workaround only affects the LOGO!Soft Comfort V8.x Linux transport. The recommended long-term approach is a systemd-tmpfiles rule that recreates the files on boot, since a clean OS install or a major LSC upgrade can remove them.

Which Java Runtime does Siemens officially support for LOGO!Soft Comfort V8.1 and V8.2 on Linux?

Siemens documents Amazon Corretto 11.0.13.8.1 as the supported JRE in Support Entry 25447431. OpenJDK builds shipped with Ubuntu and Linux Mint will open the GUI but fail the LSC internal transfer protocol. Set JAVA_HOME=/usr/lib/jvm/java-11-amazon-corretto before launching LSC and remove other JREs to prevent the wrong runtime from being selected.

Does the same fix work for a USB connection between the PC and the LOGO! 0BA8?

Yes. The sysconfig skeleton files and JRE requirements apply to the LSC transport regardless of the physical medium (Ethernet or USB). The WiFi-disable fix is not strictly required for a USB transfer because the routing table is not involved, but applying all three fixes is the safest path and is recommended in the field.

How do I confirm the LOGO! 0BA8 was actually programmed after the transfer dialog closes?

Use Tools → Online Test in LOGO!Soft Comfort to read back the program and watch the I/O state update in real time. On the LOGO! front panel, navigate to Program → Card / Memory and confirm the project name and timestamp match the PC project. A successful PC → LOGO transfer always restarts the LOGO! program; if the LOGO! continues running the previous program unchanged, the transfer did not actually complete.

Back to blog