Usage with boards

List installed boards

From python:

>>> from confduino.boardlist import boards
>>> boards()
AutoBunch(LilyPadUSB=AutoBunch(bootloader=AutoBunch(extended_fuses='0xce', file='Caterina-LilyPadUSB.hex', high_fuses='0xd8', lock_bits='0x2F', low_fuses='0xff', path='caterina-LilyPadUSB', unlock_bits='0x3F'), build=AutoBunch(core='arduino', f_cpu='8000000L', mcu='atmega32u4', pid='0x9208', variant='leonardo', vid='0x1B4F'), name='LilyPad Arduino USB', upload=AutoBunch(disable_flushing='true', maximum_size='28672', protocol='avr109', speed='57600')), atmega168=AutoBunch(bootloader=AutoBunch(extended_fuses='0x00', file='ATmegaBOOT_168_ng.hex', high_fuses='0xdd', lock_bits='0x0F', low_fuses='0xff', path='atmega', unlock_bits='0x3F'), build=AutoBunch(core='arduino', f_cpu='16000000L', mcu='atmega168', variant='standard'), name='Arduino NG or older w/ ATmega168', upload=AutoBunch(maximum_size='14336', protocol='arduino', speed='19200')), atmega328=AutoBunch(bootloader=AutoBunch(extended_fuses='0x05', file='ATmegaBOOT_168_atmega328.hex', high_fuses='0xDA', lock_bits='0x0F', low_fuses='0xFF', path='atmega', unlock_bits='0x3F'), build=AutoBunch(core='arduino', f_cpu='16000000L', mcu='atmega328p', variant='standard'), name='Arduino Duemilanove w/ ATmega328', upload=AutoBunch(maximum_size='30720', protocol='arduino', speed='57600')), atmega328p_1000000=AutoBunch(build=AutoBunch(core='arduino', f_cpu='1000000L', mcu='atmega328p', variant='standard'), name='atmega328p@1MHz', upload=AutoBunch(maximum_size='32768', using='usbasp')), atmega328p_20000000=AutoBunch(build=AutoBunch(core='arduino', f_cpu='20000000L', mcu='atmega328p', variant='standard'), name='atmega328p@20MHz', upload=AutoBunch(maximum_size='32768', using='usbasp')), atmega328p_8000000=AutoBunch(build=AutoBunch(core='arduino', f_cpu='8000000L', mcu='atmega328p', variant='standard'), name='atmega328p@8MHz', upload=AutoBunch(maximum_size='32768', using='usbasp')), atmega8=AutoBunch(bootloader=AutoBunch(file='ATmegaBOOT-prod-firmware-2009-11-07.hex', high_fuses='0xca', lock_bits='0x0F', low_fuses='0xdf', path='atmega8', unlock_bits='0x3F'), build=AutoBunch(core='arduino', f_cpu='16000000L', mcu='atmega8', variant='standard'), name='Arduino NG or older w/ ATmega8', upload=AutoBunch(maximum_size='7168', protocol='arduino', speed='19200')), atmega88_1000000=AutoBunch(build=AutoBunch(core='arduino', f_cpu='1000000L', mcu='atmega88', variant='standard'), name='atmega88@1MHz', upload=AutoBunch(maximum_size='8192', using='usbasp')), atmega88_12000000=AutoBunch(build=AutoBunch(core='arduino', f_cpu='12000000L', mcu='atmega88', variant='standard'), name='atmega88@12MHz', upload=AutoBunch(maximum_size='8192', using='usbasp')), atmega88_20000000=AutoBunch(build=AutoBunch(core='arduino', f_cpu='20000000L', mcu='atmega88', variant='standard'), name='atmega88@20MHz', upload=AutoBunch(maximum_size='8192', using='usbasp')), atmega88_8000000=AutoBunch(build=AutoBunch(core='arduino', f_cpu='8000000L', mcu='atmega88', variant='standard'), name='atmega88@8MHz', upload=AutoBunch(maximum_size='8192', using='usbasp')), atmega8_1000000=AutoBunch(build=AutoBunch(core='arduino', f_cpu='1000000L', mcu='atmega8', variant='standard'), name='atmega8@1MHz', upload=AutoBunch(maximum_size='8192', using='usbasp')), atmega8_12000000=AutoBunch(build=AutoBunch(core='arduino', f_cpu='12000000L', mcu='atmega8', variant='standard'), name='atmega8@12MHz', upload=AutoBunch(maximum_size='8192', using='usbasp')), bt=AutoBunch(bootloader=AutoBunch(extended_fuses='0x00', file='ATmegaBOOT_168.hex', high_fuses='0xdd', lock_bits='0x0F', low_fuses='0xff', path='bt', unlock_bits='0x3F'), build=AutoBunch(core='arduino', f_cpu='16000000L', mcu='atmega168', variant='eightanaloginputs'), name='Arduino BT w/ ATmega168', upload=AutoBunch(disable_flushing='true', maximum_size='14336', protocol='arduino', speed='19200')), bt328=AutoBunch(bootloader=AutoBunch(extended_fuses='0x05', file='ATmegaBOOT_168_atmega328_bt.hex', high_fuses='0xd8', lock_bits='0x0F', low_fuses='0xff', path='bt', unlock_bits='0x3F'), build=AutoBunch(core='arduino', f_cpu='16000000L', mcu='atmega328p', variant='eightanaloginputs'), name='Arduino BT w/ ATmega328', upload=AutoBunch(disable_flushing='true', maximum_size='28672', protocol='arduino', speed='19200')), diecimila=AutoBunch(bootloader=AutoBunch(extended_fuses='0x00', file='ATmegaBOOT_168_diecimila.hex', high_fuses='0xdd', lock_bits='0x0F', low_fuses='0xff', path='atmega', unlock_bits='0x3F'), build=AutoBunch(core='arduino', f_cpu='16000000L', mcu='atmega168', variant='standard'), name='Arduino Diecimila or Duemilanove w/ ATmega168', upload=AutoBunch(maximum_size='14336', protocol='arduino', speed='19200')), esplora=AutoBunch(bootloader=AutoBunch(extended_fuses='0xcb', file='Caterina-Esplora.hex', high_fuses='0xd8', lock_bits='0x2F', low_fuses='0xff', path='caterina', unlock_bits='0x3F'), build=AutoBunch(core='arduino', f_cpu='16000000L', mcu='atmega32u4', pid='0x803C', variant='leonardo', vid='0x2341'), name='Arduino Esplora', upload=AutoBunch(disable_flushing='true', maximum_size='28672', protocol='avr109', speed='57600')), ethernet=AutoBunch(bootloader=AutoBunch(extended_fuses='0x05', file='optiboot_atmega328.hex', high_fuses='0xde', lock_bits='0x0F', low_fuses='0xff', path='optiboot', unlock_bits='0x3F'), build=AutoBunch(core='arduino', f_cpu='16000000L', mcu='atmega328p', variant='standard'), name='Arduino Ethernet', upload=AutoBunch(maximum_size='32256', protocol='arduino', speed='115200')), fio=AutoBunch(bootloader=AutoBunch(extended_fuses='0x05', file='ATmegaBOOT_168_atmega328_pro_8MHz.hex', high_fuses='0xDA', lock_bits='0x0F', low_fuses='0xFF', path='arduino:atmega', unlock_bits='0x3F'), build=AutoBunch(core='arduino', f_cpu='8000000L', mcu='atmega328p', variant='eightanaloginputs'), name='Arduino Fio', upload=AutoBunch(maximum_size='30720', protocol='arduino', speed='57600')), leonardo=AutoBunch(bootloader=AutoBunch(extended_fuses='0xcb', file='Caterina-Leonardo.hex', high_fuses='0xd8', lock_bits='0x2F', low_fuses='0xff', path='caterina', unlock_bits='0x3F'), build=AutoBunch(core='arduino', f_cpu='16000000L', mcu='atmega32u4', pid='0x8036', variant='leonardo', vid='0x2341'), name='Arduino Leonardo', upload=AutoBunch(disable_flushing='true', maximum_size='28672', protocol='avr109', speed='57600')), lilypad=AutoBunch(bootloader=AutoBunch(extended_fuses='0x00', file='LilyPadBOOT_168.hex', high_fuses='0xdd', lock_bits='0x0F', low_fuses='0xe2', path='lilypad', unlock_bits='0x3F'), build=AutoBunch(core='arduino', f_cpu='8000000L', mcu='atmega168', variant='standard'), name='LilyPad Arduino w/ ATmega168', upload=AutoBunch(maximum_size='14336', protocol='arduino', speed='19200')), lilypad328=AutoBunch(bootloader=AutoBunch(extended_fuses='0x05', file='ATmegaBOOT_168_atmega328_pro_8MHz.hex', high_fuses='0xDA', lock_bits='0x0F', low_fuses='0xFF', path='atmega', unlock_bits='0x3F'), build=AutoBunch(core='arduino', f_cpu='8000000L', mcu='atmega328p', variant='standard'), name='LilyPad Arduino w/ ATmega328', upload=AutoBunch(maximum_size='30720', protocol='arduino', speed='57600')), mega=AutoBunch(bootloader=AutoBunch(extended_fuses='0xF5', file='ATmegaBOOT_168_atmega1280.hex', high_fuses='0xDA', lock_bits='0x0F', low_fuses='0xFF', path='atmega', unlock_bits='0x3F'), build=AutoBunch(core='arduino', f_cpu='16000000L', mcu='atmega1280', variant='mega'), name='Arduino Mega (ATmega1280)', upload=AutoBunch(maximum_size='126976', protocol='arduino', speed='57600')), mega2560=AutoBunch(bootloader=AutoBunch(extended_fuses='0xFD', file='stk500boot_v2_mega2560.hex', high_fuses='0xD8', lock_bits='0x0F', low_fuses='0xFF', path='stk500v2', unlock_bits='0x3F'), build=AutoBunch(core='arduino', f_cpu='16000000L', mcu='atmega2560', variant='mega'), name='Arduino Mega 2560 or Mega ADK', upload=AutoBunch(maximum_size='258048', protocol='wiring', speed='115200')), micro=AutoBunch(bootloader=AutoBunch(extended_fuses='0xcb', file='Caterina-Micro.hex', high_fuses='0xd8', lock_bits='0x2F', low_fuses='0xff', path='caterina', unlock_bits='0x3F'), build=AutoBunch(core='arduino', f_cpu='16000000L', mcu='atmega32u4', pid='0x8037', variant='micro', vid='0x2341'), name='Arduino Micro', upload=AutoBunch(disable_flushing='true', maximum_size='28672', protocol='avr109', speed='57600')), mini=AutoBunch(bootloader=AutoBunch(extended_fuses='0x00', file='ATmegaBOOT_168_ng.hex', high_fuses='0xdd', lock_bits='0x0F', low_fuses='0xff', path='atmega', unlock_bits='0x3F'), build=AutoBunch(core='arduino', f_cpu='16000000L', mcu='atmega168', variant='eightanaloginputs'), name='Arduino Mini w/ ATmega168', upload=AutoBunch(maximum_size='14336', protocol='arduino', speed='19200')), mini328=AutoBunch(bootloader=AutoBunch(extended_fuses='0x05', file='optiboot_atmega328-Mini.hex', high_fuses='0xd8', lock_bits='0x0F', low_fuses='0xff', path='optiboot', unlock_bits='0x3F'), build=AutoBunch(core='arduino', f_cpu='16000000L', mcu='atmega328p', variant='eightanaloginputs'), name='Arduino Mini w/ ATmega328', upload=AutoBunch(maximum_size='28672', protocol='arduino', speed='115200')), nano=AutoBunch(bootloader=AutoBunch(extended_fuses='0x00', file='ATmegaBOOT_168_diecimila.hex', high_fuses='0xdd', lock_bits='0x0F', low_fuses='0xff', path='atmega', unlock_bits='0x3F'), build=AutoBunch(core='arduino', f_cpu='16000000L', mcu='atmega168', variant='eightanaloginputs'), name='Arduino Nano w/ ATmega168', upload=AutoBunch(maximum_size='14336', protocol='arduino', speed='19200')), nano328=AutoBunch(bootloader=AutoBunch(extended_fuses='0x05', file='ATmegaBOOT_168_atmega328.hex', high_fuses='0xDA', lock_bits='0x0F', low_fuses='0xFF', path='atmega', unlock_bits='0x3F'), build=AutoBunch(core='arduino', f_cpu='16000000L', mcu='atmega328p', variant='eightanaloginputs'), name='Arduino Nano w/ ATmega328', upload=AutoBunch(maximum_size='30720', protocol='arduino', speed='57600')), pro=AutoBunch(bootloader=AutoBunch(extended_fuses='0x00', file='ATmegaBOOT_168_pro_8MHz.hex', high_fuses='0xdd', lock_bits='0x0F', low_fuses='0xc6', path='atmega', unlock_bits='0x3F'), build=AutoBunch(core='arduino', f_cpu='8000000L', mcu='atmega168', variant='standard'), name='Arduino Pro or Pro Mini (3.3V, 8 MHz) w/ ATmega168', upload=AutoBunch(maximum_size='14336', protocol='arduino', speed='19200')), pro328=AutoBunch(bootloader=AutoBunch(extended_fuses='0x05', file='ATmegaBOOT_168_atmega328_pro_8MHz.hex', high_fuses='0xDA', lock_bits='0x0F', low_fuses='0xFF', path='atmega', unlock_bits='0x3F'), build=AutoBunch(core='arduino', f_cpu='8000000L', mcu='atmega328p', variant='standard'), name='Arduino Pro or Pro Mini (3.3V, 8 MHz) w/ ATmega328', upload=AutoBunch(maximum_size='30720', protocol='arduino', speed='57600')), pro5v=AutoBunch(bootloader=AutoBunch(extended_fuses='0x00', file='ATmegaBOOT_168_diecimila.hex', high_fuses='0xdd', lock_bits='0x0F', low_fuses='0xff', path='atmega', unlock_bits='0x3F'), build=AutoBunch(core='arduino', f_cpu='16000000L', mcu='atmega168', variant='standard'), name='Arduino Pro or Pro Mini (5V, 16 MHz) w/ ATmega168', upload=AutoBunch(maximum_size='14336', protocol='arduino', speed='19200')), pro5v328=AutoBunch(bootloader=AutoBunch(extended_fuses='0x05', file='ATmegaBOOT_168_atmega328.hex', high_fuses='0xDA', lock_bits='0x0F', low_fuses='0xFF', path='atmega', unlock_bits='0x3F'), build=AutoBunch(core='arduino', f_cpu='16000000L', mcu='atmega328p', variant='standard'), name='Arduino Pro or Pro Mini (5V, 16 MHz) w/ ATmega328', upload=AutoBunch(maximum_size='30720', protocol='arduino', speed='57600')), uno=AutoBunch(bootloader=AutoBunch(extended_fuses='0x05', file='optiboot_atmega328.hex', high_fuses='0xde', lock_bits='0x0F', low_fuses='0xff', path='optiboot', unlock_bits='0x3F'), build=AutoBunch(core='arduino', f_cpu='16000000L', mcu='atmega328p', variant='standard'), name='Arduino Uno', upload=AutoBunch(maximum_size='32256', protocol='arduino', speed='115200')))
>>> boards().diecimila.build.f_cpu
'16000000L'
>>> boards()['diecimila']['build']['f_cpu']
'16000000L'

From console:

$ python -m confduino.boardlist
LilyPadUSB
atmega168
atmega328
atmega328p_1000000
atmega328p_20000000
atmega328p_8000000
atmega8
atmega88_1000000
atmega88_12000000
atmega88_20000000
atmega88_8000000
atmega8_1000000
atmega8_12000000
bt
bt328
diecimila
esplora
ethernet
fio
leonardo
lilypad
lilypad328
mega
mega2560
micro
mini
mini328
nano
nano328
pro
pro328
pro5v
pro5v328
uno

verbose (JSON compatible):

$ python -m confduino.boardlist --verbose
{
    "LilyPadUSB": {
        "bootloader": {
            "extended_fuses": "0xce", 
            "file": "Caterina-LilyPadUSB.hex", 
            "high_fuses": "0xd8", 
            "lock_bits": "0x2F", 
            "low_fuses": "0xff", 
            "path": "caterina-LilyPadUSB", 
            "unlock_bits": "0x3F"
        }, 
        "build": {
            "core": "arduino", 
            "f_cpu": "8000000L", 
            "mcu": "atmega32u4", 
            "pid": "0x9208", 
            "variant": "leonardo", 
            "vid": "0x1B4F"
        }, 
        "name": "LilyPad Arduino USB", 
        "upload": {
            "disable_flushing": "true", 
            "maximum_size": "28672", 
            "protocol": "avr109", 
            "speed": "57600"
        }
    }, 
    "atmega168": {
        "bootloader": {
            "extended_fuses": "0x00", 
            "file": "ATmegaBOOT_168_ng.hex", 
            "high_fuses": "0xdd", 
            "lock_bits": "0x0F", 
            "low_fuses": "0xff", 
            "path": "atmega", 
            "unlock_bits": "0x3F"
        }, 
        "build": {
            "core": "arduino", 
            "f_cpu": "16000000L", 
            "mcu": "atmega168", 
            "variant": "standard"
        }, 
        "name": "Arduino NG or older w/ ATmega168", 
        "upload": {
            "maximum_size": "14336", 
            "protocol": "arduino", 
            "speed": "19200"
        }
    }, 
    "atmega328": {
        "bootloader": {
            "extended_fuses": "0x05", 
            "file": "ATmegaBOOT_168_atmega328.hex", 
            "high_fuses": "0xDA", 
            "lock_bits": "0x0F", 
            "low_fuses": "0xFF", 
            "path": "atmega", 
            "unlock_bits": "0x3F"
        }, 
        "build": {
            "core": "arduino", 
            "f_cpu": "16000000L", 
            "mcu": "atmega328p", 
            "variant": "standard"
        }, 
        "name": "Arduino Duemilanove w/ ATmega328", 
        "upload": {
            "maximum_size": "30720", 
            "protocol": "arduino", 
            "speed": "57600"
        }
    }, 
    "atmega328p_1000000": {
        "build": {
            "core": "arduino", 
            "f_cpu": "1000000L", 
            "mcu": "atmega328p", 
            "variant": "standard"
        }, 
        "name": "atmega328p@1MHz", 
        "upload": {
            "maximum_size": "32768", 
            "using": "usbasp"
        }
    }, 
    "atmega328p_20000000": {
        "build": {
            "core": "arduino", 
            "f_cpu": "20000000L", 
            "mcu": "atmega328p", 
            "variant": "standard"
        }, 
        "name": "atmega328p@20MHz", 
        "upload": {
            "maximum_size": "32768", 
            "using": "usbasp"
        }
    }, 
    "atmega328p_8000000": {
        "build": {
            "core": "arduino", 
            "f_cpu": "8000000L", 
            "mcu": "atmega328p", 
            "variant": "standard"
        }, 
        "name": "atmega328p@8MHz", 
        "upload": {
            "maximum_size": "32768", 
            "using": "usbasp"
        }
    }, 
    "atmega8": {
        "bootloader": {
            "file": "ATmegaBOOT-prod-firmware-2009-11-07.hex", 
            "high_fuses": "0xca", 
            "lock_bits": "0x0F", 
            "low_fuses": "0xdf", 
            "path": "atmega8", 
            "unlock_bits": "0x3F"
        }, 
        "build": {
            "core": "arduino", 
            "f_cpu": "16000000L", 
            "mcu": "atmega8", 
            "variant": "standard"
        }, 
        "name": "Arduino NG or older w/ ATmega8", 
        "upload": {
            "maximum_size": "7168", 
            "protocol": "arduino", 
            "speed": "19200"
        }
    }, 
    "atmega88_1000000": {
        "build": {
            "core": "arduino", 
            "f_cpu": "1000000L", 
            "mcu": "atmega88", 
            "variant": "standard"
        }, 
        "name": "atmega88@1MHz", 
        "upload": {
            "maximum_size": "8192", 
            "using": "usbasp"
        }
    }, 
    "atmega88_12000000": {
        "build": {
            "core": "arduino", 
            "f_cpu": "12000000L", 
            "mcu": "atmega88", 
            "variant": "standard"
        }, 
        "name": "atmega88@12MHz", 
        "upload": {
            "maximum_size": "8192", 
            "using": "usbasp"
        }
    }, 
    "atmega88_20000000": {
        "build": {
            "core": "arduino", 
            "f_cpu": "20000000L", 
            "mcu": "atmega88", 
            "variant": "standard"
        }, 
        "name": "atmega88@20MHz", 
        "upload": {
            "maximum_size": "8192", 
            "using": "usbasp"
        }
    }, 
    "atmega88_8000000": {
        "build": {
            "core": "arduino", 
            "f_cpu": "8000000L", 
            "mcu": "atmega88", 
            "variant": "standard"
        }, 
        "name": "atmega88@8MHz", 
        "upload": {
            "maximum_size": "8192", 
            "using": "usbasp"
        }
    }, 
    "atmega8_1000000": {
        "build": {
            "core": "arduino", 
            "f_cpu": "1000000L", 
            "mcu": "atmega8", 
            "variant": "standard"
        }, 
        "name": "atmega8@1MHz", 
        "upload": {
            "maximum_size": "8192", 
            "using": "usbasp"
        }
    }, 
    "atmega8_12000000": {
        "build": {
            "core": "arduino", 
            "f_cpu": "12000000L", 
            "mcu": "atmega8", 
            "variant": "standard"
        }, 
        "name": "atmega8@12MHz", 
        "upload": {
            "maximum_size": "8192", 
            "using": "usbasp"
        }
    }, 
    "bt": {
        "bootloader": {
            "extended_fuses": "0x00", 
            "file": "ATmegaBOOT_168.hex", 
            "high_fuses": "0xdd", 
            "lock_bits": "0x0F", 
            "low_fuses": "0xff", 
            "path": "bt", 
            "unlock_bits": "0x3F"
        }, 
        "build": {
            "core": "arduino", 
            "f_cpu": "16000000L", 
            "mcu": "atmega168", 
            "variant": "eightanaloginputs"
        }, 
        "name": "Arduino BT w/ ATmega168", 
        "upload": {
            "disable_flushing": "true", 
            "maximum_size": "14336", 
            "protocol": "arduino", 
            "speed": "19200"
        }
    }, 
    "bt328": {
        "bootloader": {
            "extended_fuses": "0x05", 
            "file": "ATmegaBOOT_168_atmega328_bt.hex", 
            "high_fuses": "0xd8", 
            "lock_bits": "0x0F", 
            "low_fuses": "0xff", 
            "path": "bt", 
            "unlock_bits": "0x3F"
        }, 
        "build": {
            "core": "arduino", 
            "f_cpu": "16000000L", 
            "mcu": "atmega328p", 
            "variant": "eightanaloginputs"
        }, 
        "name": "Arduino BT w/ ATmega328", 
        "upload": {
            "disable_flushing": "true", 
            "maximum_size": "28672", 
            "protocol": "arduino", 
            "speed": "19200"
        }
    }, 
    "diecimila": {
        "bootloader": {
            "extended_fuses": "0x00", 
            "file": "ATmegaBOOT_168_diecimila.hex", 
            "high_fuses": "0xdd", 
            "lock_bits": "0x0F", 
            "low_fuses": "0xff", 
            "path": "atmega", 
            "unlock_bits": "0x3F"
        }, 
        "build": {
            "core": "arduino", 
            "f_cpu": "16000000L", 
            "mcu": "atmega168", 
            "variant": "standard"
        }, 
        "name": "Arduino Diecimila or Duemilanove w/ ATmega168", 
        "upload": {
            "maximum_size": "14336", 
            "protocol": "arduino", 
            "speed": "19200"
        }
    }, 
    "esplora": {
        "bootloader": {
            "extended_fuses": "0xcb", 
            "file": "Caterina-Esplora.hex", 
            "high_fuses": "0xd8", 
            "lock_bits": "0x2F", 
            "low_fuses": "0xff", 
            "path": "caterina", 
            "unlock_bits": "0x3F"
        }, 
        "build": {
            "core": "arduino", 
            "f_cpu": "16000000L", 
            "mcu": "atmega32u4", 
            "pid": "0x803C", 
            "variant": "leonardo", 
            "vid": "0x2341"
        }, 
        "name": "Arduino Esplora", 
        "upload": {
            "disable_flushing": "true", 
            "maximum_size": "28672", 
            "protocol": "avr109", 
            "speed": "57600"
        }
    }, 
    "ethernet": {
        "bootloader": {
            "extended_fuses": "0x05", 
            "file": "optiboot_atmega328.hex", 
            "high_fuses": "0xde", 
            "lock_bits": "0x0F", 
            "low_fuses": "0xff", 
            "path": "optiboot", 
            "unlock_bits": "0x3F"
        }, 
        "build": {
            "core": "arduino", 
            "f_cpu": "16000000L", 
            "mcu": "atmega328p", 
            "variant": "standard"
        }, 
        "name": "Arduino Ethernet", 
        "upload": {
            "maximum_size": "32256", 
            "protocol": "arduino", 
            "speed": "115200"
        }
    }, 
    "fio": {
        "bootloader": {
            "extended_fuses": "0x05", 
            "file": "ATmegaBOOT_168_atmega328_pro_8MHz.hex", 
            "high_fuses": "0xDA", 
            "lock_bits": "0x0F", 
            "low_fuses": "0xFF", 
            "path": "arduino:atmega", 
            "unlock_bits": "0x3F"
        }, 
        "build": {
            "core": "arduino", 
            "f_cpu": "8000000L", 
            "mcu": "atmega328p", 
            "variant": "eightanaloginputs"
        }, 
        "name": "Arduino Fio", 
        "upload": {
            "maximum_size": "30720", 
            "protocol": "arduino", 
            "speed": "57600"
        }
    }, 
    "leonardo": {
        "bootloader": {
            "extended_fuses": "0xcb", 
            "file": "Caterina-Leonardo.hex", 
            "high_fuses": "0xd8", 
            "lock_bits": "0x2F", 
            "low_fuses": "0xff", 
            "path": "caterina", 
            "unlock_bits": "0x3F"
        }, 
        "build": {
            "core": "arduino", 
            "f_cpu": "16000000L", 
            "mcu": "atmega32u4", 
            "pid": "0x8036", 
            "variant": "leonardo", 
            "vid": "0x2341"
        }, 
        "name": "Arduino Leonardo", 
        "upload": {
            "disable_flushing": "true", 
            "maximum_size": "28672", 
            "protocol": "avr109", 
            "speed": "57600"
        }
    }, 
    "lilypad": {
        "bootloader": {
            "extended_fuses": "0x00", 
            "file": "LilyPadBOOT_168.hex", 
            "high_fuses": "0xdd", 
            "lock_bits": "0x0F", 
            "low_fuses": "0xe2", 
            "path": "lilypad", 
            "unlock_bits": "0x3F"
        }, 
        "build": {
            "core": "arduino", 
            "f_cpu": "8000000L", 
            "mcu": "atmega168", 
            "variant": "standard"
        }, 
        "name": "LilyPad Arduino w/ ATmega168", 
        "upload": {
            "maximum_size": "14336", 
            "protocol": "arduino", 
            "speed": "19200"
        }
    }, 
    "lilypad328": {
        "bootloader": {
            "extended_fuses": "0x05", 
            "file": "ATmegaBOOT_168_atmega328_pro_8MHz.hex", 
            "high_fuses": "0xDA", 
            "lock_bits": "0x0F", 
            "low_fuses": "0xFF", 
            "path": "atmega", 
            "unlock_bits": "0x3F"
        }, 
        "build": {
            "core": "arduino", 
            "f_cpu": "8000000L", 
            "mcu": "atmega328p", 
            "variant": "standard"
        }, 
        "name": "LilyPad Arduino w/ ATmega328", 
        "upload": {
            "maximum_size": "30720", 
            "protocol": "arduino", 
            "speed": "57600"
        }
    }, 
    "mega": {
        "bootloader": {
            "extended_fuses": "0xF5", 
            "file": "ATmegaBOOT_168_atmega1280.hex", 
            "high_fuses": "0xDA", 
            "lock_bits": "0x0F", 
            "low_fuses": "0xFF", 
            "path": "atmega", 
            "unlock_bits": "0x3F"
        }, 
        "build": {
            "core": "arduino", 
            "f_cpu": "16000000L", 
            "mcu": "atmega1280", 
            "variant": "mega"
        }, 
        "name": "Arduino Mega (ATmega1280)", 
        "upload": {
            "maximum_size": "126976", 
            "protocol": "arduino", 
            "speed": "57600"
        }
    }, 
    "mega2560": {
        "bootloader": {
            "extended_fuses": "0xFD", 
            "file": "stk500boot_v2_mega2560.hex", 
            "high_fuses": "0xD8", 
            "lock_bits": "0x0F", 
            "low_fuses": "0xFF", 
            "path": "stk500v2", 
            "unlock_bits": "0x3F"
        }, 
        "build": {
            "core": "arduino", 
            "f_cpu": "16000000L", 
            "mcu": "atmega2560", 
            "variant": "mega"
        }, 
        "name": "Arduino Mega 2560 or Mega ADK", 
        "upload": {
            "maximum_size": "258048", 
            "protocol": "wiring", 
            "speed": "115200"
        }
    }, 
    "micro": {
        "bootloader": {
            "extended_fuses": "0xcb", 
            "file": "Caterina-Micro.hex", 
            "high_fuses": "0xd8", 
            "lock_bits": "0x2F", 
            "low_fuses": "0xff", 
            "path": "caterina", 
            "unlock_bits": "0x3F"
        }, 
        "build": {
            "core": "arduino", 
            "f_cpu": "16000000L", 
            "mcu": "atmega32u4", 
            "pid": "0x8037", 
            "variant": "micro", 
            "vid": "0x2341"
        }, 
        "name": "Arduino Micro", 
        "upload": {
            "disable_flushing": "true", 
            "maximum_size": "28672", 
            "protocol": "avr109", 
            "speed": "57600"
        }
    }, 
    "mini": {
        "bootloader": {
            "extended_fuses": "0x00", 
            "file": "ATmegaBOOT_168_ng.hex", 
            "high_fuses": "0xdd", 
            "lock_bits": "0x0F", 
            "low_fuses": "0xff", 
            "path": "atmega", 
            "unlock_bits": "0x3F"
        }, 
        "build": {
            "core": "arduino", 
            "f_cpu": "16000000L", 
            "mcu": "atmega168", 
            "variant": "eightanaloginputs"
        }, 
        "name": "Arduino Mini w/ ATmega168", 
        "upload": {
            "maximum_size": "14336", 
            "protocol": "arduino", 
            "speed": "19200"
        }
    }, 
    "mini328": {
        "bootloader": {
            "extended_fuses": "0x05", 
            "file": "optiboot_atmega328-Mini.hex", 
            "high_fuses": "0xd8", 
            "lock_bits": "0x0F", 
            "low_fuses": "0xff", 
            "path": "optiboot", 
            "unlock_bits": "0x3F"
        }, 
        "build": {
            "core": "arduino", 
            "f_cpu": "16000000L", 
            "mcu": "atmega328p", 
            "variant": "eightanaloginputs"
        }, 
        "name": "Arduino Mini w/ ATmega328", 
        "upload": {
            "maximum_size": "28672", 
            "protocol": "arduino", 
            "speed": "115200"
        }
    }, 
    "nano": {
        "bootloader": {
            "extended_fuses": "0x00", 
            "file": "ATmegaBOOT_168_diecimila.hex", 
            "high_fuses": "0xdd", 
            "lock_bits": "0x0F", 
            "low_fuses": "0xff", 
            "path": "atmega", 
            "unlock_bits": "0x3F"
        }, 
        "build": {
            "core": "arduino", 
            "f_cpu": "16000000L", 
            "mcu": "atmega168", 
            "variant": "eightanaloginputs"
        }, 
        "name": "Arduino Nano w/ ATmega168", 
        "upload": {
            "maximum_size": "14336", 
            "protocol": "arduino", 
            "speed": "19200"
        }
    }, 
    "nano328": {
        "bootloader": {
            "extended_fuses": "0x05", 
            "file": "ATmegaBOOT_168_atmega328.hex", 
            "high_fuses": "0xDA", 
            "lock_bits": "0x0F", 
            "low_fuses": "0xFF", 
            "path": "atmega", 
            "unlock_bits": "0x3F"
        }, 
        "build": {
            "core": "arduino", 
            "f_cpu": "16000000L", 
            "mcu": "atmega328p", 
            "variant": "eightanaloginputs"
        }, 
        "name": "Arduino Nano w/ ATmega328", 
        "upload": {
            "maximum_size": "30720", 
            "protocol": "arduino", 
            "speed": "57600"
        }
    }, 
    "pro": {
        "bootloader": {
            "extended_fuses": "0x00", 
            "file": "ATmegaBOOT_168_pro_8MHz.hex", 
            "high_fuses": "0xdd", 
            "lock_bits": "0x0F", 
            "low_fuses": "0xc6", 
            "path": "atmega", 
            "unlock_bits": "0x3F"
        }, 
        "build": {
            "core": "arduino", 
            "f_cpu": "8000000L", 
            "mcu": "atmega168", 
            "variant": "standard"
        }, 
        "name": "Arduino Pro or Pro Mini (3.3V, 8 MHz) w/ ATmega168", 
        "upload": {
            "maximum_size": "14336", 
            "protocol": "arduino", 
            "speed": "19200"
        }
    }, 
    "pro328": {
        "bootloader": {
            "extended_fuses": "0x05", 
            "file": "ATmegaBOOT_168_atmega328_pro_8MHz.hex", 
            "high_fuses": "0xDA", 
            "lock_bits": "0x0F", 
            "low_fuses": "0xFF", 
            "path": "atmega", 
            "unlock_bits": "0x3F"
        }, 
        "build": {
            "core": "arduino", 
            "f_cpu": "8000000L", 
            "mcu": "atmega328p", 
            "variant": "standard"
        }, 
        "name": "Arduino Pro or Pro Mini (3.3V, 8 MHz) w/ ATmega328", 
        "upload": {
            "maximum_size": "30720", 
            "protocol": "arduino", 
            "speed": "57600"
        }
    }, 
    "pro5v": {
        "bootloader": {
            "extended_fuses": "0x00", 
            "file": "ATmegaBOOT_168_diecimila.hex", 
            "high_fuses": "0xdd", 
            "lock_bits": "0x0F", 
            "low_fuses": "0xff", 
            "path": "atmega", 
            "unlock_bits": "0x3F"
        }, 
        "build": {
            "core": "arduino", 
            "f_cpu": "16000000L", 
            "mcu": "atmega168", 
            "variant": "standard"
        }, 
        "name": "Arduino Pro or Pro Mini (5V, 16 MHz) w/ ATmega168", 
        "upload": {
            "maximum_size": "14336", 
            "protocol": "arduino", 
            "speed": "19200"
        }
    }, 
    "pro5v328": {
        "bootloader": {
            "extended_fuses": "0x05", 
            "file": "ATmegaBOOT_168_atmega328.hex", 
            "high_fuses": "0xDA", 
            "lock_bits": "0x0F", 
            "low_fuses": "0xFF", 
            "path": "atmega", 
            "unlock_bits": "0x3F"
        }, 
        "build": {
            "core": "arduino", 
            "f_cpu": "16000000L", 
            "mcu": "atmega328p", 
            "variant": "standard"
        }, 
        "name": "Arduino Pro or Pro Mini (5V, 16 MHz) w/ ATmega328", 
        "upload": {
            "maximum_size": "30720", 
            "protocol": "arduino", 
            "speed": "57600"
        }
    }, 
    "uno": {
        "bootloader": {
            "extended_fuses": "0x05", 
            "file": "optiboot_atmega328.hex", 
            "high_fuses": "0xde", 
            "lock_bits": "0x0F", 
            "low_fuses": "0xff", 
            "path": "optiboot", 
            "unlock_bits": "0x3F"
        }, 
        "build": {
            "core": "arduino", 
            "f_cpu": "16000000L", 
            "mcu": "atmega328p", 
            "variant": "standard"
        }, 
        "name": "Arduino Uno", 
        "upload": {
            "maximum_size": "32256", 
            "protocol": "arduino", 
            "speed": "115200"
        }
    }
}

Help:

$ python -m confduino.boardlist --help
usage: boardlist.py [-h] [--hwpack HWPACK] [-v] [--debug]

print boards from boards.txt

optional arguments:
  -h, --help       show this help message and exit
  --hwpack HWPACK
  -v, --verbose
  --debug          set logging level to DEBUG

List installed MCUs

From python:

>>> from confduino.mculist import mcus
>>> mcus()
['atmega1280', 'atmega168', 'atmega2560', 'atmega328p', 'atmega32u4', 'atmega8', 'atmega88']

From console:

$ python -m confduino.mculist
atmega1280
atmega168
atmega2560
atmega328p
atmega32u4
atmega8
atmega88

Help:

$ python -m confduino.mculist --help
usage: mculist.py [-h] [--debug]

print boards from boards.txt

optional arguments:
  -h, --help  show this help message and exit
  --debug     set logging level to DEBUG

Install new board

Existing board will not be changed.

From python:

from confduino.boardinstall import install_board
from confduino.util import AutoBunch
from entrypoint2 import entrypoint

TEMPL = '{mcu}@{f_cpu} programmer:{upload}'


@entrypoint
def install(
    board_id='atmega88',
    mcu='atmega88',
    f_cpu=20000000,
    upload='usbasp',
    core='arduino',
    replace_existing=True,
):
    'install atmega88 board'

    board = AutoBunch()
    board.name = TEMPL.format(mcu=mcu, f_cpu=f_cpu, upload=upload)

    board.upload.using = upload
    board.upload.maximum_size = 8 * 1024

    board.build.mcu = mcu
    board.build.f_cpu = str(f_cpu) + 'L'
    board.build.core = core

    # for 1.0
    board.build.variant = 'standard'

    install_board(board_id, board, replace_existing=replace_existing)

console is not implemented

Remove existing board

From python:

>>> from confduino.boardremove import remove_board
>>> remove_board('diecimila')

From console:

python -m confduino.boardremove diecimila

Help:

$ python -m confduino.boardremove --help
usage: boardremove.py [-h] [--debug] board_id

remove board

positional arguments:
  board_id    board id (e.g. 'diecimila')

optional arguments:
  -h, --help  show this help message and exit
  --debug     set logging level to DEBUG

Table Of Contents

Previous topic

Usage with libraries

Next topic

Usage with programmers

This Page