Problem Overview: 0BA4 PLC Rejects V8.4 Program
The Siemens LOGO! 0BA4 is a legacy logic module from the early 2000s that is functionally incompatible with programs authored in LOGO!Soft Comfort V8.x. The error pattern is consistent: communication succeeds (the USB cable establishes a link), but the upload aborts with a parameter error or "the LOGO! selected in the LSC program does not match the real LOGO!" message. A second error appears when the user then attempts to load the program onto the device.
This is not a software bug and it is not a cable defect. The 0BA4 hardware predates a number of function block families, the integrated TD (Text Display) key set, and the flag numbering scheme used in current-generation LSC projects. The PLC cannot be firmware-upgraded in the field by the end user; the firmware burned into the 0BA4 at production is final. The only path forward is to retro-fit the LSC project so the program fits within what the 0BA4 actually supports, then re-attempt the transfer with the correct hardware target selected.
LOGO! Hardware Generation Matrix (0BA0 through 0BA8)
Every LOGO! generation exposes a different function-block library, maximum program size, flag count, and I/O count. The 0BA4 is two generations behind the 0BA6 introduction of the LOGO! TD and three generations behind the 0BA8 TDE/web server feature set. Refer to the official Siemens LOGO! product page and the LOGO! manual set on the Siemens Industry Online Support portal for the full documentation tree.
| Generation | Approx. Year | Max FBs | Flags (M) | Keypad Notes | Text Display |
|---|---|---|---|---|---|
| 0BA0 (Standard) | 1996 | ~19 | M0–M7 | No cursor keys | None |
| 0BA1 | 1998 | ~27 | M0–M7 | Cursor keys | None |
| 0BA2 | 2000 | ~30 | M0–M15 | Cursor keys | None |
| 0BA3 | 2002 | ~30 | M0–M15 | Cursor keys | None |
| 0BA4 (target) | 2003 | ~30 | M0–M15 | No F1–F4 text keys | None |
| 0BA5 | 2006 | 130 | M0–M24 | F1–F4 added | LOGO! TD optional |
| 0BA6 | 2008 | 200 | M0–M31 | F1–F4 + Ethernet | LOGO! TD supported |
| 0BA7 | 2012 | 200 | M0–M31 | F1–F4 + Ethernet | LOGO! TD supported |
| 0BA8 | 2014+ | 400 | M0–M63 | F1–F4 + TDE | LOGO! TDE (touch) |
Three takeaways from this matrix explain every symptom of the original failure:
- The 0BA4 does not implement F1–F4 cursor keys and has no TD/TDE block. The "F1 key" referenced in the upload error corresponds to the LOGO! TD key set introduced in 0BA5/0BA6.
- The 0BA4 has only 16 flag bytes (M0–M15). V8.4 may compile references to M25–M63 which the 0BA4 cannot resolve.
- The maximum program size and number of supported special function blocks (SFBs) is roughly an order of magnitude smaller than what the 0BA8 allows.
Root Cause: Function Block and Feature Mismatch
LOGO!Soft Comfort V8.4 defaults to the newest hardware target when a new project is created. If the developer does not switch the project to 0BA4 before inserting blocks, LSC silently inserts SFBs that the 0BA4 cannot execute. At upload time the LSC translator compares the project's required feature set against the connected device's actual capability set and rejects the transfer when the device is too small. The error text is generic ("parameter error" or "hardware does not match") because the LSC UI does not surface which block is the offender.
Common Block Types That Break 0BA4 Uploads
| Block / Feature | First Generation That Supports It | Symptom on 0BA4 |
|---|---|---|
| Message text with F1–F4 cursor | 0BA5 | Upload rejects; "F1 key not recognized" |
| LOGO! TD block | 0BA6 | Block grayed out / upload aborts |
| LOGO! TDE block (touch) | 0BA8 | Block grayed out / upload aborts |
| Flags M16–M63 | 0BA6+ | Flag reference disappears or faults at runtime |
| PI controller (analog closed-loop) | 0BA5 | Upload rejects |
| Math instructions beyond basic +/−/×/÷ | 0BA6+ | Upload rejects |
| UDF (User-Defined Function) | 0BA6+ | Upload rejects |
| Shift register SFB | 0BA4 partial | Verify count ≤ 8 stages |
The F1 key specifically refers to a cursor key on the LOGO! TD or TDE used to acknowledge or scroll message texts. The 0BA4 has no such key, no TD, and no TDE. The block must be removed or re-mapped to a 0BA4-supported input.
Why Firmware Updates Will Not Save the Project
Unlike some modern controllers (for example, those that can take an operating-system update through a vendor utility), the LOGO! 0BA4 has no user-loadable firmware. The firmware version is fixed at manufacture and is bound to the same silicon mask that defines the instruction set. A "check for updates" path is not offered in LSC for this device. Any attempt to push newer firmware is therefore guaranteed to fail. The only mitigations are (a) port the program to a newer LOGO!, or (b) trim the program to fit the 0BA4's native capability set. This document covers (b).
Prerequisites Before You Begin
- Full (paid) license of LOGO!Soft Comfort V8.4. The demo version compiles but disables the "PC → LOGO!" download direction. A free upgrade from an older paid license is normally honored by the activation server.
- Original or compatible Siemens USB programming cable (6ED1057-1AA01-0BA0 for newer 0BA6+; older 0BA4 stock uses the PC-LOGO! serial cable 6ED1057-1AA00-0BA0 with a USB-to-serial converter). A third-party USB clone will work for communications if the CP210x or FTDI driver is installed.
- USB driver installed for the cable's bridge chip (Silicon Labs CP210x or FTDI FT232). On Windows 10/11 these install automatically through Windows Update when the cable is first plugged in; on older Windows builds the driver must be installed manually from the cable vendor's package.
- Project backup (.lsc file) before any conversion.
- Documentation of the original logic in case a block has to be re-implemented.
Step-by-Step Fix Procedure
Step 1 — Switch the Hardware Target to 0BA4
- Open the project in LOGO!Soft Comfort V8.4.
- Choose
File → Properties → LOGO! Settings. - Under Hardware Type, select
0BA4.Standard. - Click OK. LSC will immediately gray out (or remove) any block that the 0BA4 cannot host.
This is the single most important step. The project now describes the target it must run on, and LSC will refuse to let you insert unsupported blocks going forward.
Step 2 — Audit the Program for Unsupported References
Open the Diagram view and inspect each block. Use the FBD/Editor "Show Block Information" mode to confirm every block's generation support level. Particular attention should be paid to:
- F1 / F2 / F3 / F4 cursor key inputs on message text blocks — remove the input and use a digital input instead.
- TD or TDE message text blocks — remove the block and replace with a 0BA4 message text that uses only the four built-in cursor keys of the base module.
- Flag references above M15 — re-number to a free slot in the M0–M15 range.
- Analog-comparator and PI-controller blocks — confirm each is in the 0BA4 SFB library; some analog SFBs were added in 0BA5.
- UDF instances — UDFs were introduced in 0BA6, so any UDF call must be inlined back into the main program.
Step 3 — Re-Map TD Keys to Base-Module Cursor Keys
On a 0BA4 the cursor keys are named C1, C2, C3, C4. If the program referenced F1 for a TD-based acknowledgment, change the input source from F1 to C1. Then rebuild any message text so the cursor key on the LOGO! base unit serves the same function. If a physical front-panel key is required, wire an actual digital input to the block in place of the removed F-key.
Step 4 — Verify the Program Size
Use Tools → Program Info to compare the current program footprint against the 0BA4 limits:
| Resource | 0BA4 Limit |
|---|---|
| Function blocks total | 30 (typical) |
| Flag bytes | 16 (M0–M15) |
| Program memory (RAM) | 2 KB (approximate) |
| Analog inputs | 0–2 (depends on variant) |
If the program exceeds any limit, the upload will fail with a memory overflow message. Trim the logic, consolidate timers using the on-delay/retentive-on-delay pair, and remove unused message texts.
Step 5 — Configure the PC Interface in LSC
- Choose
Tools → Options → Interface. - Set the interface to
LOGO! Cable USB(or "Serial" if using a classic COM cable). - Click Detect — LSC should show the connected device order number and firmware suffix.
- If the detect window shows the wrong 0BAx suffix, re-check the cable and the COM port; the most common cause of a "no LOGO! found" error is a missing USB driver or a wrong COM port number.
Step 6 — Transfer the Program (PC → LOGO!)
- With the project open, click the PC → LOGO! icon (or press
Ctrl + D). - Confirm the target device summary matches the 0BA4 you own.
- Toggle the LOGO! to STOP mode (the LOGO! 0BA4 must not be in RUN for the transfer).
- Watch the progress bar. A successful transfer shows "Transfer completed" in the status window.
- Place the LOGO! back in RUN and observe the LEDs.
Diagnostic Matrix: Upload Error → Cause → Action
| Error Symptom | Likely Root Cause | Corrective Action |
|---|---|---|
| "No LOGO! found" | USB driver missing or wrong COM port | Install CP210x/FTDI driver; verify COM number in Device Manager; click Detect in LSC |
| "Hardware does not match" | Project target is 0BA6/7/8; 0BA4 detected | File → Properties → LOGO! Settings → Hardware Type → 0BA4.Standard |
| "Parameter error" / "F1 key" | TD/TDE or F-key block in program | Remove TD/TDE blocks; remap F1–F4 to base-module cursor keys C1–C4 |
| Transfer hangs at 50% | LOGO! in RUN mode | Toggle LOGO! to STOP, retry |
| Transfer completes but RUN is silent | Flag reference above M15 | Re-number flags to M0–M15 range |
| "Memory overflow" | Program exceeds 0BA4 capacity | Reduce FB count; consolidate timers; remove redundant message texts |
Verification Checklist
-
Detect passes:
Tools → Options → Interface → Detectreturns the 0BA4 article number. - Compile passes: After the hardware-type switch, the diagram no longer shows any red exclamation icons.
- Transfer passes: Status bar reports "Transfer completed" without warnings.
- Power-cycle test: Disconnect the cable, cycle power to the LOGO!, and confirm the program auto-starts in RUN.
- I/O test: Force each input and observe the expected output, with the on-board display toggling to confirm internal state.
- Message text test: If a message text was kept, trigger the condition and confirm the cursor keys on the base module perform the intended action (no TD, no TDE).
Preventing the Same Problem in Future Projects
The single highest-value habit is to set the hardware target before you write a single block. In LSC V8.4 this is the File → Properties → LOGO! Settings → Hardware Type dialog. Pressing F2 in LSC also opens the status window that lists the LOGO! required to run the active project, and the version of LSC the program was created in. If the project is to be deployed to a known device, lock the hardware type at the start; if the project may run on multiple generations, the older of the two will dictate the function-block set used.
For test and education work, consider purchasing a current-generation LOGO! 0BA8 module to match the default target of recent LSC versions. A 12/24 RCE or 230 RCE starter kit is the lowest-cost entry point and ships with the LOGO!Soft Comfort DVD and a valid license key. The 0BA8 will accept any program the 0BA4 can run plus every modern SFB and the TDE-style message texts.
When to Abandon the 0BA4
If the program is too large, depends on Ethernet, requires the TDE, or uses the UDF feature set, porting to 0BA4 is not productive. In that case, the correct action is to:
- Save the existing V8.4 project as a master reference.
- Re-create the program in a new project whose hardware target is 0BA8.
- Take advantage of the 0BA8's larger memory, the PI controller, UDF, and the web server to clean up the logic.
- Re-test, then deploy to the 0BA8 module.
Reference: LOGO! 0BA4 Function Block Library
For convenience, the SFBs known to be available on the 0BA4 are listed below. Anything not on this list should be treated as unsupported and removed before upload.
- AND, OR, NOT, NAND, NOR, XOR
- RS / SR latches
- On-delay, Off-delay, On-/Off-delay, Retentive on-delay
- Symmetrical pulse generator (clock)
- Asynchronous pulse generator
- Edge-triggered bistable
- Counter up / down (typically 0–9999)
- Hour counter
- Threshold trigger (analog)
- Analog comparator
- Analog ramp
- Basic arithmetic (+, −, ×, ÷)
- PWM output (on variants with PWM-capable outputs)
For the authoritative list, consult the LOGO! 0BA4 system manual (article 6ED1050-1AA00-0BA4 in the Siemens Industry Online Support portal) — the block list above is a field-engineer summary, not a specification of record.
FAQ
Can I update the firmware of a LOGO! 0BA4 to make it accept modern programs?
No. The 0BA4 has no user-loadable firmware path. The firmware burned in at production is final, and the instruction set, maximum block count, and flag count are bound to that firmware. The only fix is to rewrite the program to use only the 0BA4 native SFB set, or to migrate to a newer LOGO! generation.
Why does LOGO!Soft Comfort V8.4 reject a program on a 0BA4 with a "parameter error"?
The most common cause is a TD/TDE block, an F1–F4 cursor key reference, a UDF instance, or a flag number above M15 — all features introduced in 0BA5/0BA6 or later. Open File → Properties → LOGO! Settings and change the hardware target to 0BA4.Standard; LSC will then refuse to keep unsupported blocks in the diagram.
Do I need a special USB cable for the 0BA4?
Yes. The 0BA4 expects a serial-style PC-LOGO! cable (Siemens article 6ED1057-1AA00-0BA0 or compatible) and works with a USB-to-serial bridge. The 0BA6+ USB cable (6ED1057-1AA01-0BA0) is electrically different and will not enumerate on a 0BA4. If communication does not establish, check Device Manager and confirm the CP210x or FTDI driver is loaded for the bridge chip.
Can I use a demo version of LOGO!Soft Comfort to upload a program?
No. The demo version compiles projects but disables the PC → LOGO! download direction. A full paid license is required for the transfer. Upgrades from older paid versions are normally free; confirm with the Siemens license portal.
How do I find the exact hardware suffix of my LOGO!?
Look at the article number printed on the front of the module, for example 6ED1052-1MD00-0BA4. The last four characters (0BA4) identify the hardware generation. In LSC choose File → Properties → LOGO! Settings and pick the matching "Hardware Type" entry — for a 0BA4, the choice is "0BA4.Standard".