Files
ossm_overkill_edition/software/helper_scripts/flash.py
2024-03-07 03:37:47 -08:00

40 lines
1.2 KiB
Python

import esptool
import requests
from pathlib import Path
DOWNLOADS_FOLDER = Path('.downloads')
DEFAULT_BINARY = "https://micropython.org/resources/firmware/ESP32_GENERIC_S3-20240222-v1.22.2.bin"
DEFAULT_PORT = "/dev/ttyACM0"
def save_binary(url: str, file_path: Path):
response = requests.get(url)
response.raise_for_status()
file_path.parent.mkdir(exist_ok=True)
file_path.write_bytes(response.content)
def flash_binary(file_path: Path, port):
esptool.main(["--chip", "esp32s3", "--port", port, "erase_flash"])
print(["-chip", "esp32s3", "--port", port, "write_flash", "-z", "0", file_path])
esptool.main(["--chip", "esp32s3", "--port", port, "write_flash", "-z", "0", str(file_path)])
"""
esptool.py --chip esp32s3 --port /dev/ttyACM0 erase_flash
esptool.py --chip esp32s3 --port /dev/ttyACM0 write_flash -z 0 board-20210902-v1.17.bin
"""
if __name__ == '__main__':
binary_url = None or DEFAULT_BINARY
downloads_folder = None or DOWNLOADS_FOLDER
esp_port = None or DEFAULT_PORT
binary_file_path = Path(downloads_folder, Path(binary_url).name)
if not binary_file_path.exists():
save_binary(binary_url, binary_file_path)
flash_binary(binary_file_path, esp_port)