# Esptool²
Component for flashing ESP32 chips using an ESP32 chip.
This component is still in active development and has currently only been tested for programming the ESP32-C6. Many basic esptool functions are not yet supported.
## Usage example
A proper usage example has yet to be written but the block of code below should give an idea.
```
// Initialize
uint32_t chip_id;
esp_log_level_set(TAG, ESP_LOG_DEBUG);
ESP_ERROR_CHECK(et2_detect(&chip_id));
ESP_LOGI(TAG, "ESP32 detected; chip id 0x%08" PRIx32, chip_id);
// Start stub
ESP_ERROR_CHECK(et2_run_stub());
// Write test data to flash
uint8_t* dummy_data = malloc(4096);
for (int i = 0; i < 4096; i++) dummy_data[i] = i;
ESP_ERROR_CHECK(et2_cmd_flash_begin(4096 * 4, 0));
ESP_ERROR_CHECK(et2_cmd_flash_data(dummy_data, 4096, 0));
ESP_ERROR_CHECK(et2_cmd_flash_data(dummy_data, 4096, 1));
ESP_ERROR_CHECK(et2_cmd_flash_data(dummy_data, 4096, 2));
ESP_ERROR_CHECK(et2_cmd_flash_data(dummy_data, 4096, 3));
ESP_ERROR_CHECK(et2_cmd_flash_finish(false));
// Read test data from flash
memset(dummy_data, 0, 4096);
ESP_ERROR_CHECK(et2_cmd_read_flash(0, 4096, dummy_data));
printf("Data read:\r\n");
for (size_t i = 0; i < 4096; i++) {
printf("%02x", dummy_data[i]);
}
printf("\r\n");
free(dummy_data);
```
## License
The contents of this repository are made available under the terms of the MIT license, see [LICENSE](LICENSE) for the full license text.
fd03dc451222b19a1dac9b9ea8ff50a4126364af
idf.py add-dependency "badgeteam/esptool^0.0.2"