Chapter 2. Development environment
2.4.3 How to ash rmware in macOS and Linux systems?
• For Apple system (macOS), you can use esptool downloaded via brew or git to ash rmware.
• For Linux system (e.g., ubuntu), you can use esptool downloaded via apt-get or git to ash rmware.
2.4.4 Does ESP32 support programming using JTAG pins directly?
Yes, ESP32 supports using JTAG Pins to ash directly. Please refer to Upload application for debugging.
2.4.5 Does ESP_Flash_Downloader_Tool support customized programming control?
• The GUI tool is not open-sourced and does not support embedded executive script.
• The low-level component esptool is open-sourced and can be used to perform all functions such as ashing and
encryption. It is recommended to conduct secondary development based on this component.
2.4.6 Can I enable the Security Boot function for ESP32 via OTA?
• It is not recommended to enable Security Boot function through OTA, as it poses operational risks and requires
multiple OTA rmware updates.
• Since the Security Boot function is in Bootloader, please update Bootloader rst to enable this function.
1. First, check the partition table of your current device to see if it can store the Bootloader with Security
Boot enabled.
2. Then, update an intermediate rmware which can be written in Bootloader partition. By default, the
Bootloader partition cannot be erased or written, you need to enable them via make menucong.
3. Sign the intermediate rmware and upgrade it to the target device through OTA. Then upgrade the Boot-
loader of this rmware and the signed new rmware through OTA.
4. If there are situations as powered-down or network break-down and restart during the Bootloader OTA
process, the device would not be started and needs to be re-ashed.
2.4.7 How to resolve the following error occured when ashing rmware to ESP32-S2
based on ESP-IDF v4.1?
esptool.py v2.9-dev
Serial port /dev/ttyUSB0
Connecting....
Chip is ESP32S2 Beta
Features: Engineering Sample
Crystal is 40MHz
MAC: 7c:df:a1:01:b7:64
Uploading stub...
Running stub...
A fatal error occurred: Invalid head of packet (0x50)
esptool.py failed with exit code 2
Solution
If you are using ESP32-S2 instead of ESP32-S2 Beta, please update ESP-IDF to v4.2 or later versions.
Notes:
Espressif Systems 18
Submit Document Feedback
Release master