Difference between revisions of "Flash script linux"
Jump to navigation
Jump to search
Line 1: | Line 1: | ||
+ | = Flash script for linux = | ||
+ | |||
To flash an ESP8266 on Linux, you need the esptool as it is shipped with Arduino IDE or as standalone tool, see github [source](https://github.com/igrr/esptool-ck) and [binary releases](https://github.com/igrr/esptool-ck/releases/). | To flash an ESP8266 on Linux, you need the esptool as it is shipped with Arduino IDE or as standalone tool, see github [source](https://github.com/igrr/esptool-ck) and [binary releases](https://github.com/igrr/esptool-ck/releases/). | ||
Line 6: | Line 8: | ||
* the local directory (with the script and firmware files) | * the local directory (with the script and firmware files) | ||
+ | You get a choice of firmware files, either with dialog or by number. | ||
#!/bin/bash | #!/bin/bash | ||
Line 68: | Line 71: | ||
"$esptoolbin" -vv -cd nodemcu -cb 115200 -cp "$serdev" -ca 0x00000 -cf "$choice" | "$esptoolbin" -vv -cd nodemcu -cb 115200 -cp "$serdev" -ca 0x00000 -cf "$choice" | ||
fi | fi | ||
+ | |||
+ | == Example output == | ||
+ | |||
+ | |||
+ | using esptool ./esptool | ||
+ | serial device, (USB2serial devices: /dev/ttyUSB0):/dev/ttyUSB0 | ||
+ | ┌──────────────────────────────────────────────────────────────────────────┐ | ||
+ | │ Select firmware │ | ||
+ | │ ┌──────────────────────────────────────────────────────────────────────┐ │ | ||
+ | │ │ (*) ESPEasy_R147_512.bin ESPEasy_R147_512.bin │ │ | ||
+ | │ │ ( ) ESPEasy_R147_4096.bin ESPEasy_R147_4096.bin │ │ | ||
+ | │ │ ( ) ESPEasy_R147_1024.bin ESPEasy_R147_1024.bin │ │ | ||
+ | │ │ │ │ | ||
+ | │ │ │ │ | ||
+ | │ │ │ │ | ||
+ | │ │ │ │ | ||
+ | │ │ │ │ | ||
+ | │ │ │ │ | ||
+ | │ │ │ │ | ||
+ | │ │ │ │ | ||
+ | │ │ │ │ | ||
+ | │ │ │ │ | ||
+ | │ │ │ │ | ||
+ | │ │ │ │ | ||
+ | │ └──────────────────────────────────────────────────────────────────────┘ │ | ||
+ | ├──────────────────────────────────────────────────────────────────────────┤ | ||
+ | │ < OK > <Abbrechen> │ | ||
+ | └──────────────────────────────────────────────────────────────────────────┘ | ||
+ | ---- | ||
+ | flash ESPEasy_R147_512.bin? [Y/n] | ||
+ | esptool v0.4.9 - (c) 2014 Ch. Klippel <ck@atelier-klippel.de> | ||
+ | setting board to nodemcu | ||
+ | setting baudrate from 115200 to 115200 | ||
+ | setting port from /dev/ttyUSB0 to /dev/ttyUSB0 | ||
+ | setting address from 0x00000000 to 0x00000000 | ||
+ | espcomm_upload_file | ||
+ | espcomm_upload_mem | ||
+ | opening port /dev/ttyUSB0 at 115200 | ||
+ | tcgetattr | ||
+ | tcsetattr | ||
+ | serial open | ||
+ | opening bootloader | ||
+ | resetting board | ||
+ | trying to connect | ||
+ | espcomm_send_command: sending command header | ||
+ | espcomm_send_command: sending command payload | ||
+ | trying to connect | ||
+ | espcomm_send_command: sending command header | ||
+ | espcomm_send_command: sending command payload | ||
+ | espcomm_send_command: receiving 2 bytes of data | ||
+ | espcomm_send_command: receiving 2 bytes of data | ||
+ | espcomm_send_command: receiving 2 bytes of data | ||
+ | espcomm_send_command: receiving 2 bytes of data | ||
+ | espcomm_send_command: receiving 2 bytes of data | ||
+ | espcomm_send_command: receiving 2 bytes of data | ||
+ | espcomm_send_command: receiving 2 bytes of data | ||
+ | espcomm_send_command: receiving 2 bytes of data | ||
+ | Uploading 431376 bytes from ESPEasy_R147_512.bin to flash at 0x00000000 | ||
+ | erasing flash | ||
+ | size: 069510 address: 000000 | ||
+ | first_sector_index: 0 | ||
+ | total_sector_count: 106 | ||
+ | head_sector_count: 16 | ||
+ | adjusted_sector_count: 90 | ||
+ | erase_size: 05a000 | ||
+ | espcomm_send_command: sending command header | ||
+ | espcomm_send_command: sending command payload | ||
+ | setting timeout 15000 | ||
+ | setting timeout 100 | ||
+ | espcomm_send_command: receiving 2 bytes of data | ||
+ | writing flash | ||
+ | ................................................................................ [ 18% ] | ||
+ | ................................................................................ [ 37% ] | ||
+ | ................................................................................ [ 56% ] | ||
+ | ................................................................................ [ 75% ] | ||
+ | ................................................................................ [ 94% ] | ||
+ | ...................... [ 100% ] | ||
+ | starting app without reboot | ||
+ | espcomm_send_command: sending command header | ||
+ | espcomm_send_command: sending command payload | ||
+ | espcomm_send_command: receiving 2 bytes of data | ||
+ | closing bootloader |
Revision as of 14:14, 26 February 2017
Flash script for linux
To flash an ESP8266 on Linux, you need the esptool as it is shipped with Arduino IDE or as standalone tool, see github [source](https://github.com/igrr/esptool-ck) and [binary releases](https://github.com/igrr/esptool-ck/releases/).
The following script tries to find the esptool binary
- in Arduino IDE install paths
- in a dir of the PATH variable
- the local directory (with the script and firmware files)
You get a choice of firmware files, either with dialog or by number.
#!/bin/bash
selectst="" for i in ESPEasy*bin do selectst="$i $i off $selectst" done
# check for esptool esptoolbin=$(which esptool) if [ ! -x "$esptoolbin" ] ; then if [ -x "./esptool" ] ; then esptoolbin="./esptool" else eardu=$(find $HOME/.arduino15/packages/esp8266/tools/esptool/* -name esptool|sort|tail -1) if [ -x "$eardu" ] ; then echo "found esptool: $eardu" esptoolbin="$eardu" fi fi fi if [ ! -x "$esptoolbin" ] ; then echo "esptool not found, you can link it here or put in \$PATH" exit 2 else echo "using esptool $esptoolbin" fi
read -e -p "serial device, (USB2serial devices: $(ls /dev/ttyUSB*)):" -i "/dev/ttyUSB0" serdev
if [ ! -r "$serdev" ] ; then echo "device '$serdev' does not exist" exit 2 fi
if [ -n "$(which dialog)" ] ; then cmd=(dialog --radiolist "Select firmware" 22 76 16) choice=$("${cmd[@]}" ${selectst} 2>&1 >/dev/tty) else # bash only, do it with an array fa=(ESPEasy_*.bin) cnt=0 nfa=${#fa[*]} while [ $cnt -lt $nfa ] do echo $cnt ${fa[$cnt]} ((cnt++)) done read -p "choose number of firmware file to flash [0-$((nfa-1))]: " nsel choice=${fa[$nsel]} if [ ! -f "$choice" ] ; then echo "cannot find file \"$choice\", exiting" exit 2 fi fi
echo "----" read -p "flash $choice? [Y/n]" yn if [ "$yn" != "n" ] ; then "$esptoolbin" -vv -cd nodemcu -cb 115200 -cp "$serdev" -ca 0x00000 -cf "$choice" fi
Example output
using esptool ./esptool serial device, (USB2serial devices: /dev/ttyUSB0):/dev/ttyUSB0 ┌──────────────────────────────────────────────────────────────────────────┐ │ Select firmware │ │ ┌──────────────────────────────────────────────────────────────────────┐ │ │ │ (*) ESPEasy_R147_512.bin ESPEasy_R147_512.bin │ │ │ │ ( ) ESPEasy_R147_4096.bin ESPEasy_R147_4096.bin │ │ │ │ ( ) ESPEasy_R147_1024.bin ESPEasy_R147_1024.bin │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └──────────────────────────────────────────────────────────────────────┘ │ ├──────────────────────────────────────────────────────────────────────────┤ │ < OK > <Abbrechen> │ └──────────────────────────────────────────────────────────────────────────┘ ---- flash ESPEasy_R147_512.bin? [Y/n] esptool v0.4.9 - (c) 2014 Ch. Klippel <ck@atelier-klippel.de> setting board to nodemcu setting baudrate from 115200 to 115200 setting port from /dev/ttyUSB0 to /dev/ttyUSB0 setting address from 0x00000000 to 0x00000000 espcomm_upload_file espcomm_upload_mem opening port /dev/ttyUSB0 at 115200 tcgetattr tcsetattr serial open opening bootloader resetting board trying to connect espcomm_send_command: sending command header espcomm_send_command: sending command payload trying to connect espcomm_send_command: sending command header espcomm_send_command: sending command payload espcomm_send_command: receiving 2 bytes of data espcomm_send_command: receiving 2 bytes of data espcomm_send_command: receiving 2 bytes of data espcomm_send_command: receiving 2 bytes of data espcomm_send_command: receiving 2 bytes of data espcomm_send_command: receiving 2 bytes of data espcomm_send_command: receiving 2 bytes of data espcomm_send_command: receiving 2 bytes of data Uploading 431376 bytes from ESPEasy_R147_512.bin to flash at 0x00000000 erasing flash size: 069510 address: 000000 first_sector_index: 0 total_sector_count: 106 head_sector_count: 16 adjusted_sector_count: 90 erase_size: 05a000 espcomm_send_command: sending command header espcomm_send_command: sending command payload setting timeout 15000 setting timeout 100 espcomm_send_command: receiving 2 bytes of data writing flash ................................................................................ [ 18% ] ................................................................................ [ 37% ] ................................................................................ [ 56% ] ................................................................................ [ 75% ] ................................................................................ [ 94% ] ...................... [ 100% ] starting app without reboot espcomm_send_command: sending command header espcomm_send_command: sending command payload espcomm_send_command: receiving 2 bytes of data closing bootloader