Support this project:
or send me something from my Amazon wishlist.

The following instructions are from early 2007 and are pretty outdated by now. They are still here for reference, but they are not maintained anymore and very likely won't work with recent versions of MacOS anymore.

After having developed software for the AVR under Windows and Linux the only major plattform missing was MacOS X. Since we recently got a Mini Mac in our home office i decided to build a working development chain for MacOS X as well.

This page will tell you all the Mac specific stuff. It will not cover the basics of AVR programming. Please look e.g. here, here or just ask google.

A simple AVR development chain usually consists of the following parts:

The compiler toolchain

If you want a powerful, free and portable compiler for the AVR you'll end up with gcc. Fortunately, gcc is supporting the AVR cpu for quite some time now and e.g. the WinAVR toolchain for AVR development under windows is based on this compiler. Many people have already ported these compilers to MacOS X incl. the fink project and others. Unfortunately i had either trouble getting some parts to install properly (fink didn't offer to install all the required libs) or the compilers were just outdated versions and a long time ago updated to the latest gcc version. I therefore tried my script that i am using to achieve the same under linux. This script has the advantage of being easily updated to use the latest compiler. Furthermore it installs the entire toolchain into /usr/local/avr which keeps the setup seperated and you can easily remove everything for your system without a trace just by deleting the entire tree under /usr/local/avr.

In order to have the script run successfully you'll need to have some applications installed on your system. First of all this is the XCode development suite. This is necessary since the installation script needs the gcc that comes with XCode to build the mac port of the avr-gcc. Furthermore the wget, bison and flex tools are required to build the toolchain. You can get these three from the fink project as well.

Once you have all this set up, just run from the command line. The script will first download all source code required and then start to build everything. You can now take a break as this will take some time.

Once the script is done, your new compiler is installed. Type /usr/local/avr/bin/avr-gcc to test-run it.

A demo program

A simple demo application (led-blink.tgz) is available to test your setup. It was meant to be used with a Atmega8 CPU. Just untar the archive and type make blinky.hex to compile it.

The hardware programmer

Most cheap AVR programmers are little more than a cable that directly attaches to a PCs printer port. Unfortunately todays Macs don't come with the necessary parallel printer port and a standard USB-to-printer-converter cable only works with printers but not with this kind of adapter cables.

There are commercial USB solutions for this problem, but these are usually quite expensive. Luckily Thomas Fischl has developed his usbasp, a cheap do it yourself USB programmer that works under windows, linux and under MacOS X.

The programming software

Usbasp comes with patches for avrdude. You'll need the avrdude source code. Then apply the patches from usbasp. Recent versions of avrdude even include usbasp support out of the box and you might not have to patch them at all. The usbasp enabled version of avrdude uses the libusb to access the usbasb hardware. I therefore installed libusb for macos from the fink project. Since the avrdude configure script didn't find libusb under /sw/lib and /sw/include i made two symbolic links from /sw/include/usb.h to /usr/include/usb.h and from /sw/lib/libusb.a to /usr/lib/libusb.a. Avrdude compiled fine afterwards. To test your installation with our led-blink example just connect the usbasp to your Mac (no AVR required yet) and type make program. If you end up with avrdude complaining that it can't read the fuses of your target everything went fine, the toolchain is working, the usbasp interface is fine and avrdude can access it. You can now start developing AVR based devices under MacOS X.

Debugging via RS232

Most AVR programs do some basic debugging output via RS232. But an RS232 interface is also lacking on the latest Macs. A standard USB-to-RS232 converter cable will do fine and you just have to make sure that there are MacOS X drivers available for your cable. The OS-X driver for PL2303 will e.g. work for plenty of these cables. Finally you'll need some terminal software like e.g. ZTerm to communicate via rs232.

Working in Xcode

This AVR toolchain is usually being used from the command line by invoking make. Here are some instructions telling you how to run everything inside Xcode.

Download the installation script

The current version was last updated by Bram Daams on 05/28/06, download it here.