Advertisement
orborbson

esptool.py wrapper

Oct 7th, 2024 (edited)
32
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.21 KB | Source Code | 0 0
  1. #!/usr/bin/env bash
  2.  
  3. PORT="/dev/ttyUSB0"
  4. BAUD="115200"
  5. SCRIPT_NAME="`basename ${0}`"
  6.  
  7. usage(){
  8.     echo -e "\nUżycie: ${SCRIPT_NAME} [nazwa_pliku_firmware]\n" && exit 0
  9. }
  10.  
  11. check_file(){
  12.     [[ ! -f "${1}" ]] && echo -e "\nBrak pliku firmware o nazwie \"${1}\".\n" && exit 1
  13. }
  14.  
  15. no_file(){
  16.     echo -e "\nBrak podanej nazwy pliku firmware.\n\nPoprawne użycie: ${SCRIPT_NAME} [nazwa_pliku_firmware]\n" && exit 1
  17. }
  18.  
  19. check_port(){
  20.     [[ ! -e "${PORT}" ]] && echo -e "\nNie można otworzyć portu \"${PORT}\". Sprawdź połączenie ESP32 z portem USB.\n" && exit 1
  21. }
  22.  
  23. check_pkgs(){
  24.     pkg=("esptool.py")
  25.     no_pkg=""
  26.    
  27.     for (( i=0; i<${#pkg[@]}; i++ )); do
  28.         command -v "${pkg[$i]}" &>/dev/null || {
  29.             no_pkg="${no_pkg}${pkg[$i]}, "
  30.         }
  31.     done
  32.    
  33.     [[ ! -z "${no_pkg}" ]] && {
  34.         echo -e "\n\"${SCRIPT_NAME}\" do działania wymaga pakietów: ${no_pkg::-2}\n"
  35.         exit 1
  36.     }
  37. }
  38.  
  39. flash(){
  40.     echo -e "\nRozpoczynam flashowanie firmware \"${1}\" ...\n"
  41.     esptool.py --chip esp32 --port "${PORT}" erase_flash && esptool.py --chip esp32 --port "${PORT}" --baud "${BAUD}" write_flash -z 0x1000 "${1}"
  42. }
  43.  
  44. check_pkgs
  45. case "${1}" in
  46. "--help") usage ;;
  47. "") no_file ;;
  48. *) check_file "${1}"; check_port ;;
  49. esac
  50. flash "${1}"
  51.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement