07-15-2023
08:09 PM
- last edited on
09-26-2023
08:27 AM
by
Danny
I am having issues connecting my R8 to my Mac via the EOS Utility. I have the latest software and have gone through the user manual. The message I keep getting is:
"Communication with the camera via USB cannot be established.
Start EOS Utility after closing all the apps that communicate with the camera, and then turn on the camera again."
I am unaware of any apps that I have that would be trying to communicate with my camera in the background. Anyone know what's going on? Thanks in advance.
Solved! Go to Solution.
01-23-2025 03:31 AM - edited 01-23-2025 03:32 AM
The problem here is Lightroom cannot make folders “YYYY_MM_DD”. I have this format of names since 2005 and I don’t want to change it. The second problem is Lightroom does not allow to create custom folder name templates. Is it rocket science to implement?
01-23-2025 07:39 AM
Thank you, this would be a great solution if I didn't need live view. I take photos of the jewelry I make so I need to have the larger view while taking the photos.
01-23-2025 11:10 PM
Why you need to bother with the format "YYYY_MM_DD"? Just download first and then rename the folder with whatever format you want. I use DD-MM-YYYY format in LR. You can rename the folder inside Lightroom as well.
01-24-2025 06:23 AM
Why? Because I'd like to spend as less effort as possible.
03-22-2025 09:08 PM
I had this issue with my R10 on Mac. I found out it was Google Drive accessing the USB port - stopping the EOS Utility from accessing it. Even though I had told Google Drive to ignore the drive, it was still accessing it. Once I quit Google Drive, it popped up right away in the EOS Utility. Hope this helps.
03-24-2025 10:27 AM
I can confirm, that quitting Google Drive on macOS Sequoia worked for me. Thank you for the solution.
06-25-2025 01:38 AM
For anyone facing this problem on any version of MacOS or any version of EOS Utility, as has been said here across various posts, the EOS utility is looking for an exclusive connection to the camera. When it cannot receive this connection, we all see the dreaded message mentioned in the first post.
On PAGE 5, a post by "ltahb", on PAGE 7 a post by "kolkul" and on PAGE 8 a post by "miric" tells us the common applications which could take control of the USB port there by denying the exclusive access to the camera. Restarting, rebooting and going into safe mode as well as running shell scripts are various ways to stop the offending applications running in the background which could be using USB port denying exclusive access. Properly closing these applications will get you back to a working state.
MacOS native PREVIEW application, Dropbox, Google Drive, Lightroom are most common offenders which if running in the background will get you in this error situation.
Now that I know what is happening, I always check if any application is running in the background that I need to close. Once EOS utility is able to establish the connection, these applications can be started without any issue.
My assessment is that Canon's EOS Utility is looking for it be FIRST in the USB Port connection chain. I wish they can improve their connectivity like all these other applications which are NOT looking for FIRST in the connection chain for USB port access. Modern USB ports are chained, offered via hubs etc. so switching to a different port also does not help. It seems Canon does not have skilled Mac OS developers in comparison to Windows development team.
I hope this message helps someone facing this problem. It took me almost 2 years to figure it out so sharing back to make your life easier.
06-25-2025 03:04 AM
That's why I used my solution, because closing Dropbox and Google Drive every time I want to connect my camera and import photos via Canon EOS Utility sounds too weird. Canon does not pay me for this kind of exercise. I'm tired of playing this special Olympic game, and I started importing photos into Lightroom Classic. More than that, I bought a card reader, and now I use Finder to import my photos into my library. My "chears" to Canon 🤮
08-28-2025 04:07 PM
In my case, I have no alternative as I am using my EOS 5D Mark III as a webcam and I really need the EOS Utility to keep the camera from shutting down every 29 minutes and 59 seconds ( a Canon introduced limitation that has recently been removed on select few DSLR cameras so that video cameras can be sold ).
11-07-2025 07:47 PM
This script worked VERY well for me, I had troubles with the other ones.
#!/usr/bin/env bash
# free-eos.sh — kill apps/agents that commonly seize Canon cameras on macOS
# Usage: ./free-eos.sh [--dry-run]
# Note: Does NOT kill EOS Utility itself.
set -euo pipefail
DRY_RUN=false
[[ "${1:-}" == "--dry-run" ]] && DRY_RUN=true
# Exact process names known to grab PTP/MTP cameras or Photos library tasks
# (We avoid killing EOS Utility itself.)
TARGETS=(
"PTPCamera"
"Image Capture" # Apple's Image Capture app
"Photos" # Photos app
"photoanalysisd" # Photos background analyzer
"photolibraryd" # Photos library background service (older/macOS versions)
"applephotolibraryd" # Photos library daemon (some macOS versions)
"imagent" # Can sometimes poke camera sessions
"com.apple.ImageCaptureExtension2" # Image Capture extension host (shown via -f)
)
# Patterns to match via command-line (-f) because their process names vary
PATTERNS=(
"ImageCaptureExtension"
"ICCameraDevice.*"
)
# Processes we explicitly do NOT kill (EOS Utility 3 and helpers)
PROTECT_PATTERNS=(
"EOS Utility"
"EOSUtility"
"EOSUtility3"
"Canon EOS Utility"
)
say() { echo "[free-eos] $*"; }
kill_exact() {
local name="$1"
# -x: exact match; returns nonzero if none
if pgrep -x "$name" >/dev/null 2>&1; then
local pids
pids=$(pgrep -x "$name" || true)
for pid in $pids; do
# skip protected
if ps -o command= -p "$pid" | grep -Eiq "$(IFS='|'; echo "${PROTECT_PATTERNS[*]}")"; then
say "Skipping protected process: $name (pid $pid)"
continue
fi
if $DRY_RUN; then
say "Would kill: $name (pid $pid)"
else
say "Killing: $name (pid $pid)"
kill "$pid" 2>/dev/null || true
# Give it a moment to exit gracefully; then SIGKILL if needed
sleep 0.4
if kill -0 "$pid" 2>/dev/null; then
say "Force-killing: $name (pid $pid)"
kill -9 "$pid" 2>/dev/null || true
fi
fi
done
fi
}
kill_pattern() {
local pattern="$1"
# -f: match against full command line
local pids
pids=$(pgrep -f "$pattern" || true)
for pid in $pids; do
local cmd
cmd=$(ps -o command= -p "$pid" 2>/dev/null || true)
[[ -z "$cmd" ]] && continue
# Skip protected processes
if echo "$cmd" | grep -Eiq "$(IFS='|'; echo "${PROTECT_PATTERNS[*]}")"; then
say "Skipping protected process (pattern match): $cmd (pid $pid)"
continue
fi
if $DRY_RUN; then
say "Would kill (pattern '$pattern'): $cmd (pid $pid)"
else
say "Killing (pattern '$pattern'): $cmd (pid $pid)"
kill "$pid" 2>/dev/null || true
sleep 0.4
if kill -0 "$pid" 2>/dev/null; then
say "Force-killing: $cmd (pid $pid)"
kill -9 "$pid" 2>/dev/null || true
fi
fi
done
}
# 1) Kill exact-name offenders
for name in "${TARGETS[@]}"; do
kill_exact "$name"
done
# 2) Kill by pattern (captures extension hosts / variant names)
for pat in "${PATTERNS[@]}"; do
kill_pattern "$pat"
done
# 3) Specifically swat PTPCamera’s launch-on-connect instance (sometimes re-spawns fast)
# Run this a couple of times to be sure we've caught it after relaunch.
for i in 1 2; do
kill_exact "PTPCamera"
sleep 0.2
done
# 4) Optional: politely relaunch EOS Utility 3 if installed and not already running.
# Comment this block out if you don't want auto-launch.
EOS_APP_CANDIDATES=(
"/Applications/Canon Utilities/EOS Utility/EOS Utility.app"
"/Applications/EOS Utility 3.app"
"/Applications/Canon Utilities/EOS Utility 3/EOS Utility 3.app"
)
if ! pgrep -f "EOS Utility" >/dev/null 2>&1; then
for app in "${EOS_APP_CANDIDATES[@]}"; do
if [[ -d "$app" ]]; then
if $DRY_RUN; then
say "Would launch: $app"
else
say "Launching: $app"
open -a "$app" || true
fi
break
fi
done
else
say "EOS Utility already running; not relaunching."
fi
say "Done. If EOS Utility still can’t see the camera, unplug/replug USB and re-run this script."
12/18/2025: New firmware updates are available.
11/20/2025: New firmware updates are available.
EOS R6 Mark III - Version 1.0.1
EOS R5 Mark II - Version 1.2.0
PowerShot G7 X Mark III - Version 1.4.0
PowerShot SX740 HS - Version 1.0.2
10/15/2025: New firmware updates are available.
Speedlite EL-5 - Version 1.2.0
Speedlite EL-1 - Version 1.1.0
Speedlite Transmitter ST-E10 - Version 1.2.0
7/17/2025: New firmware updates are available.
02/20/2025: New firmware updates are available.
RF70-200mm F2.8 L IS USM Z - Version 1.0.6
RF24-105mm F2.8 L IS USM Z - Version 1.0.9
RF100-300mm F2.8 L IS USM - Version 1.0.8
RF50mm F1.4 L VCM - Version 1.0.2
RF24mm F1.4 L VCM - Version 1.0.3
Canon U.S.A Inc. All Rights Reserved. Reproduction in whole or part without permission is prohibited.