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 |
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:
-
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\packagesand the legacy sketchbook underDocuments\Arduino\libraries\ProductivityBlocks, paths that the AppX container does not expose to the system-wide installer. - 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.
-
Process Token: The Store build is launched by AppXSvc under a different session token than the Win32 build. ProductivityBlocks registers a
prebuilder.jarhook that introspects the runningarduino_debug.exeprocess; when the host is the AppX shim (Arduino IDE.exemapped toMicrosoftCorporationII.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, anddownloads.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
-
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).
-
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.
-
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.
-
Install the Win32 Arduino IDE.
- Right-click the installer → Run as administrator.
- Accept the default
C:\Program Files (x86)\Arduinoinstall path. - Allow the installer to install the Adafruit / Arduino USB drivers when prompted.
-
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.
-
Download the latest ProductivityBlocks release.
- Go to the ProductivityBlocks Releases page and pull the most recent
.exeinstaller. - Close any open Arduino IDE windows before continuing.
- Go to the ProductivityBlocks Releases page and pull the most recent
-
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.
-
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
- Open Arduino IDE 1.8.x (Win32 build). Confirm the splash screen and version string in the window title.
- Launch ProductivityBlocks and create a new project.
- Drag a "Digital Write" block onto the canvas, set pin 13, and click Upload to P1AM.
- Verify the sketch compiles and uploads to the P1AM-ARDUINO shield without error.
- 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. - Cycle power on the Productivity Series CPU and confirm the last uploaded sketch starts automatically (bootloader recovery).
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:
- Registers a custom Arduino library path under
%USERPROFILE%\Documents\Arduino\libraries\ProductivityBlocks. - Adds a
prebuilder.jarhook that runs prior toarduino-builderto inject P1AM-ARDUINO board definitions. - Writes CLI symlinks for the ProductivityBlocks upload protocol over the P1AM serial bridge.
- Installs a Windows registry key under
HKLM\SOFTWARE\Arduino\Arduino IDEused 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.ArduinoIDEpackage 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.