add firmware download method