Setting Fuse in Arduino Uno

I am trying to set the Arduino Uno's high fuse to allow the EEPROM to not be erased when programmed. I am using an USBtinyISP programmer.

I have found out that I need to use avrdude in terminal (OSX), but I cannot seem to locate the avrdude itself. Can anyone let me know where it is located?

Thanks in advance,

Fed

Do this:

  • (In the Arduino IDE) File > Preferences > Show verbose output during: > upload (check) > OK
  • Sketch > Upload (it's OK if it fails)
  • After the upload, examine the contents of the black console window at the bottom of the Arduino IDE window until you find the AVRDUDE command. This command will show you the location of AVRDUDE on your computer. You may need to scroll the console window up to see it.

You can also do the same thing with Tools > Burn Bootloader to see what command the Arduino IDE uses to set the fuses on the Uno.

Here is the verbose result of my programming:

Sketch uses 5,298 bytes (16%) of program storage space. Maximum is 32,256 bytes. Global variables use 286 bytes (13%) of dynamic memory, leaving 1,762 bytes for local variables. Maximum is 2,048 bytes. /Users/fed/Library/Arduino15/packages/arduino/tools/avrdude/6.3.0-arduino9/bin/avrdude -C/Users/fed/Library/Arduino15/packages/arduino/tools/avrdude/6.3.0-arduino9/etc/avrdude.conf -v -patmega328p -cusbtiny -Uflash:w:/var/folders/lb/5zdjdm6153jcx_5nq32tt7gw0000gn/T/buildb926e4430d002b65d0ca44bda9d693e2.tmp/LED_strip_08.ino.hex:i

avrdude: Version 6.3, compiled on Jan 17 2017 at 12:01:35 Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/ Copyright (c) 2007-2014 Joerg Wunsch

System wide configuration file is "/Users/fed/Library/Arduino15/packages/arduino/tools/avrdude/6.3.0-arduino9/etc/avrdude.conf"
User configuration file is "/Users/fed/.avrduderc"
User configuration file does not exist or is not a regular file, skipping

Using Port : usb
Using Programmer : usbtiny
avrdude: usbdev_open(): Found USBtinyISP, bus:device: 006:003 AVR Part : ATmega328P Chip Erase delay : 9000 us PAGEL : PD7 BS2 : PC2 RESET disposition : dedicated RETRY pulse : SCK serial program mode : yes parallel program mode : yes Timeout : 200 StabDelay : 100 CmdexeDelay : 25 SyncLoops : 32 ByteDelay : 0 PollIndex : 3 PollValue : 0x53 Memory Detail :

Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack


eeprom 65 20 4 0 no 1024 4 0 3600 3600 0xff 0xff
flash 65 6 128 0 yes 32768 128 256 4500 4500 0xff 0xff
lfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
hfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
efuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
lock 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
calibration 0 0 0 0 no 1 0 0 0 0 0x00 0x00
signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00

Programmer Type : USBtiny
Description : USBtiny simple USB programmer, USBtinyISP - Inexpensive USB AVR Programmer
avrdude: programmer operation not supported

avrdude: Using SCK period of 10 usec avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.01s

avrdude: Device signature = 0x1e950f (probably m328p) avrdude: NOTE: "flash" memory has been specified, an erase cycle will be performed To disable this feature, specify the -D option. avrdude: erasing chip avrdude: Using SCK period of 10 usec avrdude: reading input file "/var/folders/lb/5zdjdm6153jcx_5nq32tt7gw0000gn/T/buildb926e4430d002b65d0ca44bda9d693e2.tmp/LED_strip_08.ino.hex" avrdude: writing flash (5298 bytes):

Writing | ################################################## | 100% 7.80s

avrdude: 5298 bytes of flash written avrdude: verifying flash memory against /var/folders/lb/5zdjdm6153jcx_5nq32tt7gw0000gn/T/buildb926e4430d002b65d0ca44bda9d693e2.tmp/LED_strip_08.ino.hex: avrdude: load data flash data from input file /var/folders/lb/5zdjdm6153jcx_5nq32tt7gw0000gn/T/buildb926e4430d002b65d0ca44bda9d693e2.tmp/LED_strip_08.ino.hex: avrdude: input file /var/folders/lb/5zdjdm6153jcx_5nq32tt7gw0000gn/T/buildb926e4430d002b65d0ca44bda9d693e2.tmp/LED_strip_08.ino.hex contains 5298 bytes avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 4.98s

avrdude: verifying ... avrdude: 5298 bytes of flash verified

avrdude done. Thank you.

So, it looked like the location of avrdude is:

/Users/fed/Library/Arduino15/packages/arduino/tools/avrdude/6.3.0-arduino9/bin/

But when I go to that folder, and try to run avrdude, I get an error stating "command not recognized"

Any idea what I am doing wrong?

No, but I don't have any experience with macOS. Hopefully someone else who does will comment. Do you see the avrdude executable at that location?

I do, but it won't run from the command line.

Feddar:
I am trying to set the Arduino Uno's high fuse to allow the EEPROM to not be erased when programmed.

But a normal Arduino upload to an Uno doesn't erase the EEPROM. You mean you DO want to erase it every time?

The stock Arduino AVR Board Uno fuse settings set EESAVE to 1:

meaning that EEPROM is not preserved through the chip erase cycle which is done every time you do a Sketch > Upload Using Programmer or Tools > Burn Bootloader.

/Users/fed/Library/Arduino15/packages/arduino/tools/avrdude/6.3.0-arduino9/bin/
But when I go to that folder, and try to run avrdude, I get an error stating "command not recognized"

Did you say "avrdude" or "./avrdude"? MacOS Terminal window paths usually don't include .

I usually cut&paste the whole AVRDUDE command, with modifications; it is formed in such a way as to be insensitive to the current directory...

/Users/fed/Library/Arduino15/packages/arduino/tools/avrdude/6.3.0-arduino9/bin/avrdude -C/Users/fed/Library/Arduino15/packages/arduino/tools/avrdude/6.3.0-arduino9/etc/avrdude.conf -v -patmega328p -cusbtiny -Uhfuse:w:0xYY:m

Or something like that.

Yup, that worked! Thank you so much!

Out of interest, if I am in the appropriate folder, I cannot seem to run avrdude. How can I run if from the folder itself without including the path?

Do you get an error message? Read the message. If you don't understand it, post it here.

I type "avrdude"
Error message "cmmand not found"