Resolving ProductivityBlocks Install Failure on Windows 10 64-bit

Brian Holt8 min read
AutomationDirectHMI ProgrammingTroubleshooting
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

Problem Overview

AutomationDirect ProductivityBlocks (the graphical block programming environment used with the P1AM-ARDUINO ProductivityOpen shield) fails to install on a 64-bit Windows 10 workstation when the host machine is configured with the Arduino IDE from the Microsoft Store. The installer either terminates silently, hangs at the "extracting" stage, or returns a generic Windows AppX deployment error, even though Arduino IDE 1.8.12 is reported as functional and the P1AM controller is operating normally on its own.

Because the P1AM CPU is actively running ladder logic and the Arduino sketches are uploading successfully, technicians frequently assume the problem is in ProductivityBlocks itself. The actual root cause is an environment mismatch: the ProductivityBlocks installer was built against the legacy Win32 Arduino distribution and cannot register its package metadata against the sandboxed UWP "Arduino IDE" app distributed through Microsoft Store.

Affected Configurations

Component Affected Versions / Builds Status
Operating System Windows 10 1607+ (64-bit), Windows 10 in S Mode Confirmed affected
Arduino IDE (Microsoft Store) UWP build, all current Store releases Incompatible
Arduino IDE (arduino.cc) 1.8.12, 1.8.13, 1.8.19 (Windows 7 and up MSI / EXE) Compatible
ProductivityBlocks Installer Current release on GitHub Releases page Compatible with Win32 IDE only
ProductivityOpen CPU P1AM-ARDUINO with P1-08SIM, P1-15CDR, P1-16TR, P1-16CDR1, P1-16CDR2 Not affected; runs independently
Symptom Check: If ProductivityBlocks installer reaches the "Choose Install Location" dialog and then exits with no error code, or if Windows AppXSvc reports 0x80073CF9 / 0x80073CFD in Get-AppxLog, the Microsoft Store Arduino IDE is almost certainly the cause.

Root Cause Analysis

The Microsoft Store version of the Arduino IDE is delivered as a UWP / MSIX package. Three structural differences make it incompatible with ProductivityBlocks:

  1. Install Path: The Store app installs to %LOCALAPPDATA%\Microsoft\WindowsApps\<package> in a per-user, ACL-restricted AppX container. The ProductivityBlocks installer writes Arduino board package metadata, examples, and CLI tools to %LOCALAPPDATA%\Arduino15\packages and the legacy sketchbook under Documents\Arduino\libraries\ProductivityBlocks, paths that the AppX container does not expose to the system-wide installer.
  2. Elevation Model: "Run as administrator" on a Store app does not grant write access outside the AppX container. Even when the ProductivityBlocks installer is launched elevated, the Arduino registry hive that the installer queries is virtualized per-package and resolves to a non-writable stub.
  3. Process Token: The Store build is launched by AppXSvc under a different session token than the Win32 build. ProductivityBlocks registers a prebuilder.jar hook that introspects the running arduino_debug.exe process; when the host is the AppX shim (Arduino IDE.exe mapped to MicrosoftCorporationII.WindowsAppRuntime...), the introspection fails and the installer aborts the package copy.

This is a confirmed, tracked issue on the AutomationDirect/ProductivityBlocks issue tracker (issue #1: Microsoft Store Arduino IDE blocks install).

Prerequisites

  • Local administrator account on the Windows 10 64-bit workstation.
  • Working internet egress to github.com, arduino.cc, and downloads.arduino.cc.
  • Approximately 1.2 GB of free disk space (Arduino IDE 1.8.x + Java JRE + ProductivityBlocks libraries).
  • USB connection to the P1AM-ARDUINO shield installed on a Productivity Series CPU (any P1 CPU with a ProductivityOpen header).
  • Existing ladder program (optional) to confirm Arduino sketches are still uploading to the controller.

Step-by-Step Resolution

  1. Confirm the source of the existing Arduino IDE.
    • Open Settings → Apps → Apps & features.
    • Search for "Arduino IDE". If the publisher shows Microsoft Corporation or the source is Microsoft Store, it is the incompatible build.
    • Note the install path. Store builds are located under C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_* (hidden AppX folder).
  2. Uninstall the Microsoft Store Arduino IDE.
    • From Apps & features, select Arduino IDE → Uninstall.
    • If uninstall is blocked (Store licensing), open an elevated PowerShell and run Get-AppxPackage *ArduinoLLC.ArduinoIDE* | Remove-AppxPackage.
  3. Download the Win32 Arduino IDE installer.
    • Navigate to arduino.cc/en/software and select Windows 7 and up (NOT the "Microsoft Store" option on the page).
    • Save the installer to a local path, e.g. C:\Installers\arduino-1.8.19-windows.exe.
  4. Install the Win32 Arduino IDE.
    • Right-click the installer → Run as administrator.
    • Accept the default C:\Program Files (x86)\Arduino install path.
    • Allow the installer to install the Adafruit / Arduino USB drivers when prompted.
  5. Verify the Win32 install.
    • Launch Arduino IDE from the Start menu and confirm the title bar shows Arduino 1.8.x (the Store build shows "Arduino IDE" without a version number).
    • Open File → Preferences and record the sketchbook location; ProductivityBlocks will install libraries to a sub-folder here.
  6. Download the latest ProductivityBlocks release.
  7. Run the ProductivityBlocks installer elevated.
    • Right-click the downloaded installer → Run as administrator.
    • Accept the license, choose the install path (default is recommended), and complete the wizard.
    • Installer completes in seconds once the Win32 Arduino IDE is in place.
  8. Launch ProductivityBlocks.
    • Open Arduino IDE, then launch ProductivityBlocks from the Start menu or desktop shortcut.
    • Confirm the ProductivityBlocks menu appears under Tools in Arduino IDE.

Verification Procedure

  1. Open Arduino IDE 1.8.x (Win32 build). Confirm the splash screen and version string in the window title.
  2. Launch ProductivityBlocks and create a new project.
  3. Drag a "Digital Write" block onto the canvas, set pin 13, and click Upload to P1AM.
  4. Verify the sketch compiles and uploads to the P1AM-ARDUINO shield without error.
  5. Monitor the P1AM CPU's COM port in Device Manager (Ports & COM) – the port should enumerate as USB Serial Device (COMx) and remain stable across uploads.
  6. Cycle power on the Productivity Series CPU and confirm the last uploaded sketch starts automatically (bootloader recovery).
Field Tip: If the COM port enumerates and disappears repeatedly, the wrong Arduino IDE is still resident. Repeat Step 1 to confirm the source of the IDE currently registered with Windows.

ProductivityBlocks Architecture

ProductivityBlocks is a Java-based visual programming front-end built on Google's Blockly library, packaged with a Windows installer that performs four discrete operations:

  1. Registers a custom Arduino library path under %USERPROFILE%\Documents\Arduino\libraries\ProductivityBlocks.
  2. Adds a prebuilder.jar hook that runs prior to arduino-builder to inject P1AM-ARDUINO board definitions.
  3. Writes CLI symlinks for the ProductivityBlocks upload protocol over the P1AM serial bridge.
  4. Installs a Windows registry key under HKLM\SOFTWARE\Arduino\Arduino IDE used to locate the parent IDE.

Step 4 is the failure point with the Microsoft Store IDE: the AppX package does not write that registry hive, and the ProductivityBlocks installer's discovery routine returns a null path, which is then reported as "no compatible Arduino IDE found."

P1AM-ARDUINO Hardware Compatibility

CPU / Shield Catalog Number ProductivityBlocks Support
P1AM-ARDUINO shield P1AM-ARDUINO Primary target
ProductivityOpen starter kit P1AM-START Fully supported
P1-08SIM CPU P1-08SIM Supported (simulation only)
P1-15CDR / P1-16CDR1 / P1-16CDR2 / P1-16TR — Supported with P1AM-ARDUINO shield
Do-more / Click / BRX series — Not applicable

Troubleshooting Matrix

Observed Symptom Likely Cause Corrective Action
Installer exits silently within 1-2 seconds Microsoft Store Arduino IDE registered Replace with arduino.cc Win32 installer
Error 0x80073CF9 during install AppX package conflict Uninstall Store Arduino IDE first
Installer hangs at "extracting" Antivirus scanning the JAR archive Whitelist installer; disable real-time AV temporarily
ProductivityBlocks menu missing in Arduino IDE IDE closed during install Reopen IDE; check Tools menu
Upload fails: "P1AM-ARDUINO board not found" Wrong board URL in Preferences Add https://raw.githubusercontent.com/AutomationDirect ProductivityBlocks/master/package_productivity_index.json
COM port disappears during upload USB driver mismatch Reinstall Arduino USB drivers from the Win32 IDE installer
Block library is empty after install Skipped elevation step Reinstall elevated; libraries land in Documents\Arduino\libraries

Preventive Controls

  • Establish a deployment standard image that includes the Win32 Arduino IDE 1.8.x and excludes any Microsoft Store Arduino package.
  • Use Group Policy or AppLocker to block the ArduinoLLC.ArduinoIDE package family for engineering workstations.
  • Document the install procedure in the plant's automation workstation setup checklist.
  • Pin the ProductivityBlocks GitHub repository to a monitored watch list to receive notifications on new releases and known-issue updates.
  • When training new technicians, walk through the ProductivityBlocks training video to reinforce the Win32 IDE requirement.

Related Configuration Notes

The ProductivityBlocks installer's reliance on the legacy Win32 Arduino path is intentional: the Microsoft Store IDE is a UWP container and cannot be extended by third-party package installers without explicit MSIX bundle support. AutomationDirect distributes ProductivityBlocks as a Win32 installer for this reason. New technicians should be trained to download Arduino IDE from arduino.cc directly, not from the Windows Store tile on first-run Windows 10 installations.

For technicians working in restricted environments where Microsoft Store apps cannot be removed (for example, Windows 10 in S Mode), ProductivityBlocks is not a viable workflow and the P1AM-ARDUINO should be programmed through standard Arduino sketches (text-based) rather than the block interface.

Why does ProductivityBlocks fail to install when Arduino IDE was downloaded from the Microsoft Store?

The Microsoft Store Arduino IDE is an AppX / UWP package that installs into a per-user, ACL-restricted container. ProductivityBlocks is a Win32 installer that writes Arduino library paths, board definitions, and registry keys outside that container. The installer aborts when it cannot register the parent IDE. Replace it with the Win32 installer from arduino.cc/en/software (select "Windows 7 and up").

How can I tell which Arduino IDE build is installed on a Windows 10 workstation?

Open Settings → Apps → Apps & features and search for "Arduino IDE". If the publisher is Arduino LLC and the install path is C:\Program Files (x86)\Arduino, it is the Win32 build. If the publisher is Microsoft Corporation and the path is under WindowsApps, it is the Microsoft Store build and must be replaced.

Do I need to run the ProductivityBlocks installer as an administrator?

Yes. Right-click the installer and select Run as administrator. The installer must write to C:\Program Files (x86)\... and to the system-wide Arduino registry hive, both of which require elevation. Running it as a standard user will produce a partial install or a UAC prompt that is easy to dismiss.

Will ProductivityBlocks work with Arduino IDE 2.x?

As of the current ProductivityBlocks release, only Arduino IDE 1.8.x (Win32, 1.8.12 or later) is officially supported. The Arduino IDE 2.x line uses a different builder architecture and is not currently compatible with the ProductivityBlocks prebuilder hook.

Where do I download the official ProductivityBlocks installer?

The official installer is hosted on the AutomationDirect/ProductivityBlocks GitHub Releases page. Always pull from the Releases tab rather than third-party mirrors, and verify the publisher before running the installer.

Can I keep the Microsoft Store Arduino IDE installed alongside ProductivityBlocks?

No. The ProductivityBlocks installer queries the registry for the legacy Win32 Arduino install path. If only the Store build is present, the installer's discovery routine returns null and the install aborts. Remove the Store build before installing ProductivityBlocks.

Back to blog