id = "avrdude" name = "AVRDUDE" homepage = "https://github.com/avrdudes/avrdude" description = "AVRDUDE is a utility for programming AVR microcontrollers." executables = ["avrdude"] platforms = ["macos", "linux"] [dotfiles] # Description wording is from the project's official README. # https://github.com/avrdudes/avrdude # AVRDUDE 8.0's official manual, Chapter 4 and Appendix A.1.2, documents the # XDG per-user override `${XDG_CONFIG_HOME}/avrdude/avrdude.rc` (falling back # to `~/.config`) and the legacy `~/.avrduderc` fallback. These are Unix paths; # Windows' user override is beside the executable rather than in the home tree. # https://avrdudes.github.io/avrdude/8.0/avrdude.pdf paths = [ "[configHome]/avrdude/avrdude.rc", "~/.avrduderc", ] exclude = [] # The personal file contains programmer and part defaults, not credentials. secret = [] # AVRDUDE reads the personal configuration during each invocation and exits. side_effect = false [commands] format = 1 label = "Program an AVR" description = "Read, write or verify a memory of an AVR device through a programmer. Several -U operations, programmer extended parameters and developer wildcards are left out." quality = "ai-draft" parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = false } [[commands.source]] id = "help" kind = "help" url = "https://github.com/avrdudes/avrdude/blob/main/src/main.c" revision = "main 2026-10-27" evidence = """ -p --part Specify AVR device; -p ? lists all known parts -b --baud Override RS-232 baud rate -c --programmer Specify programmer; -c ? and -c ?type list all -P --port Connection; -P ?s or -P ?sa lists serial ones -F --force Override invalid signature or initial checks -e --erase Perform a chip erase at the beginning -U --memory :r|w|v:[:fmt] -n --test-memory Do not write to the device whilst processing -U -V --noverify-memory Do not automatically verify during -U -v --verbose Verbose output; -v -v for more """ [[commands.field]] id = "part" label = "AVR part" description = "Device name, for example atmega328p. Use -p ? to list known parts." type = "string" option = ["--part", "-p"] sources = ["help"] [[commands.field]] id = "programmer" label = "Programmer" description = "Programmer id, for example arduino or usbasp." type = "string" option = ["--programmer", "-c"] sources = ["help"] [[commands.field]] id = "port" label = "Port" description = "Serial device or other connection of the programmer." type = "string" option = ["--port", "-P"] sources = ["help"] [[commands.field]] id = "baud" label = "Baud rate" type = "integer" option = ["--baud", "-b"] sources = ["help"] [[commands.field]] id = "memory" label = "Memory operation" description = "Format mem:r|w|v:file[:fmt], for example flash:w:firmware.hex:i." type = "string" option = ["--memory", "-U"] multiple = true effect = "overwrite" sources = ["help"] [[commands.field]] id = "erase" label = "Chip erase first" type = "boolean" option = ["--erase", "-e"] effect = "overwrite" sources = ["help"] [[commands.field]] id = "force" label = "Override signature check" type = "boolean" option = ["--force", "-F"] effect = "overwrite" sources = ["help"] [[commands.field]] id = "test_memory" label = "Dry run (do not write)" type = "boolean" option = ["--test-memory", "-n"] sources = ["help"] [[commands.field]] id = "noverify" label = "Skip verification" type = "boolean" option = ["--noverify-memory", "-V"] sources = ["help"] [[commands.field]] id = "verbose" label = "Verbose" type = "count" option = ["--verbose", "-v"] sources = ["help"] [[commands.task]] id = "flash" label = "Flash firmware" fields = ["part", "programmer", "port", "baud", "memory", "erase", "verbose"] required = ["part", "programmer", "memory"] [[commands.task]] id = "dry-run" label = "Test without writing" set = { test_memory = [true] } lock = ["test_memory"] fields = ["part", "programmer", "port", "memory", "test_memory", "verbose"] required = ["part", "programmer", "memory"] [[commands.group]] id = "basic" label = "Basic" fields = ["part", "programmer", "port", "memory", "baud"] [[commands.group]] id = "advanced" label = "Advanced" fields = ["erase", "force", "test_memory", "noverify", "verbose"]