Skip to content

Instantly share code, notes, and snippets.

@carlossless
Last active February 22, 2023 12:01
Show Gist options
  • Star 8 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save carlossless/31dc73963d589f18a20b582e787b6206 to your computer and use it in GitHub Desktop.
Save carlossless/31dc73963d589f18a20b582e787b6206 to your computer and use it in GitHub Desktop.
ATMEL ICE on OS X

Getting ATMEL ICE to work on OS X (Catalina)


⚠️ This solution doesn't work on latest versions of macOS (Big Sur, Ventura). Check comments for more up-to-date solutions. ⚠️


The following sequence of commands will download the included Info.plist file and install it into the system kext directory as a dummy kext.

sudo mkdir -p /System/Library/Extensions/AtmelICE.kext/Contents
curl https://gist.githubusercontent.com/carlossless/31dc73963d589f18a20b582e787b6206/raw/Info.plist > /System/Library/Extensions/AtmelICE.kext/Contents/Info.plist
sudo chown -R root:wheel /System/Library/Extensions/AtmelICE.kext`
sudo chmod -R 755 /System/Library/Extensions/AtmelICE.kext
sudo kextcache -system-caches

Product IDs

Take note of the product ids of your actual device. I've seen different ones being used. An easy way to check that is to use lsusb. Then convert the product id from hex (base 16) to dec (base 10) and change the idProduct value in the plist.

AVRDUDE ISP speed

ISP flashing might be very slow when using AVRDUDE, to make it faster use the -B 1 flag.

Note: this requires a higher clock speed of the device too.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleIconFile</key>
<string></string>
<key>CFBundleIdentifier</key>
<string>com.atmel.driver.dummy</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundlePackageType</key>
<string>KEXT</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1.0.0d1</string>
<key>IOKitPersonalities</key>
<dict>
<!-- The Atmel ICE USB interface -->
<key>AtmelICE</key>
<dict>
<key>CFBundleIdentifier</key>
<string>com.apple.kpi.iokit</string>
<key>IOClass</key>
<string>IOService</string>
<key>IOProviderClass</key>
<string>IOUSBInterface</string>
<key>bConfigurationValue</key>
<integer>1</integer>
<key>bInterfaceNumber</key>
<integer>0</integer>
<key>idProduct</key>
<integer>8513</integer>
<key>idVendor</key>
<integer>1003</integer>
</dict>
</dict>
<key>OSBundleLibraries</key>
<dict>
<key>com.apple.iokit.IOUSBFamily</key>
<string>1.8</string>
</dict>
</dict>
</plist>
@ThFischer
Copy link

ThFischer commented Jan 29, 2021

Hi,
Thanks for all the information!
I followed exactly your instructions to get my Atmel-ICE running on macOS Catalina 10.15.7 but without success 🥺

But I found a working solution at https://www.avrfreaks.net/comment/2394561#comment-2394561

@felias-fogg
Copy link

Doesn't work under Big Sur any longer. Even with the above mentioned trick. However, there are programs that run under Big Sur and can communicate with the Atmel-ICE, namely, MPLAB X IDE. So, there must be way to talk with the ICE!

@felias-fogg
Copy link

I came up with a solution: http://hinterm-ziel.de/index.php/2021/07/13/avrdebug-and-atmel-ice-under-macos/

I basically set up a brew formula that you can use to install avrdude from the most recent codebase.

@jdar
Copy link

jdar commented Jul 14, 2021

Under Big Sur:
"sudo mkdir -p /System/Library/Extensions/AtmelICE.kext/Contents
Password:
mkdir: /System/Library/Extensions/AtmelICE.kext/Contents: Read-only file system"

@felias-fogg
Copy link

Hi jdar,

Under Big Sur:
"sudo mkdir -p /System/Library/Extensions/AtmelICE.kext/Contents
Password:
mkdir: /System/Library/Extensions/AtmelICE.kext/Contents: Read-only file system"

have a look at my solution: http://hinterm-ziel.de/index.php/2021/07/13/avrdebug-and-atmel-ice-under-macos/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment