Burn eFuse
The espefuse burn-efuse command burns eFuses. The arguments to burn-efuse are eFuse names (as shown in summary output) and new values.
Positional arguments:
eFuse namevalue
Optional arguments:
--force. Suppress an error to burn eFuses. The tool checks for incompatible eFuse states to prevent them from burning and potentially bricking the chip. Use this flag only if you are sure. This will suppress the eFuse incompatibility error.--show-token. Display the eFuse token dump for the write operation before the confirmation prompt. This produces anEFSWtoken. If the goal is only to obtain the token, press ENTER to abort (no burning will occur). See Token Dump section for more details on token formats and usage.
It can be list of eFuse names and values (like EFUSE_NAME1 1 EFUSE_NAME2 7 EFUSE_NAME3 10 etc.).
New values can be a numeric value in decimal or hex (with “0x” prefix). eFuse bits can only be burned from 0 to 1, attempting to set any back to 0 will have no effect. Most eFuses have a limited bit width (many are only 1-bit flags). Longer eFuses (MAC addresses, keys) can be set with this command, but it’s better to use a specific command (burn-custom-mac, burn-key) for a specific field.
This command supports simultaneous burning of multiple eFuses, it doesn’t matter if they are from different eFuse blocks or not. The format is the same as for burning just one eFuse, just list the eFuse name and value pairs, see the example below.
> espefuse --port /dev/ttyUSB0 burn-efuse DIS_USB_JTAG 1 VDD_SPI_AS_GPIO 1
=== Run "burn-efuse" command ===
The efuses to burn:
from BLOCK0
- DIS_USB_JTAG
- VDD_SPI_AS_GPIO
Burning efuses:
- 'DIS_USB_JTAG' (Disables USB JTAG. JTAG access via pads is controlled separately) 0b0 -> 0b1
- 'VDD_SPI_AS_GPIO' (Set this bit to vdd spi pin function as gpio) 0b0 -> 0b1
Check all blocks for burn...
idx, BLOCK_NAME, Conclusion
[00] BLOCK0 is empty, will burn the new value
.
This is an irreversible operation!
Type 'BURN' (all capitals) to continue.
By default, espefuse will ask you to type BURN before it permanently sets eFuses. The --do-not-confirm option allows you to bypass this.
BURN
BURN BLOCK0 - OK (write block == read block)
Reading updated efuses...
Checking efuses...
Successful