flash_over_usb() {
    sleep 1s

    dfu-programmer ${MCU} erase
    dfu-programmer ${MCU} flash "${HEX_FILE_PATH}"
    dfu-programmer ${MCU} start
}

flash () {
    prepare_to_flash

    # This is defined in the (optional) user config.
    # shellcheck disable=SC2154
    ${preFlash_HOOKS}

    flash_over_usb || flash_over_usb

    # This is defined in the (optional) user config.
    # shellcheck disable=SC2154
    ${postFlash_HOOKS}
}

NO_RESET=1

DEFAULT_SKETCH="KBD4x"
BOARD="kbd4x"