2025-05-02 15:13:04
Отличный выбор с **ESP32-C3-Zero** и **CircuitPython**! 😊 Да, проблема с отсутствием автоматического монтирования как USB-диска (как у некоторых других плат) действительно раздражает, но её можно решить несколькими способами.
### 🔹 **Почему ESP32-C3-Zero не появляется как USB-диск?**
1. **Отсутствие встроенного USB-UART чипа** (как CP2102/CH340 у других плат).
2. **CircuitPython требует USB-масс-хранилища (MSC)**, но на ESP32-C3 это не всегда работает "из коробки".
3. **Прошивка может не включать поддержку MSC** (Mass Storage Class) по умолчанию.
---
### 🔹 **Способы заливки файлов без ampy/rshell**
#### **1. Включение USB-MSC в CircuitPython (если поддерживается)**
Некоторые сборки CircuitPython для ESP32-C3 позволяют включить режим USB-диска вручную. Попробуй:
1. Подключи плату по USB.
2. Открой **REPL** (через `screen /dev/ttyACM0` или Thonny).
3. Выполни в REPL:
```python
import storage
storage.enable_usb_drive() # Активирует USB-диск (если функция есть)
```
4. Перезагрузи плату (возможно, появится диск).
#### **2. Использование Web Workflow (самый удобный способ!)**
CircuitPython 8.0+ поддерживает загрузку файлов **через браузер** по Wi-Fi!
1. Обнови прошивку до **новой версии CircuitPython** (скачай с [оф. сайта](https://circuitpython.org/board/espressif_esp32c3_devkitm_1/)).
2. В файле `boot.py` или `code.py` добавь:
```python
import wifi
from supervisor import set_usb_identification
# Настрой Wi-Fi (указать свои SSID и пароль)
wifi.radio.connect("SSID", "PASSWORD")
# Включи Web Workflow
import socketpool
import microcontroller
microcontroller.on_next_reset(microcontroller.RunMode.NORMAL)
```
3. После перезагрузки в REPL появится IP-адрес.
4. Введи этот IP в браузере — откроется **веб-интерфейс для загрузки файлов**!
#### **3. Альтернатива: UART + `circup` или `mpfshell`**
Если USB-диск не работает, можно заливать файлы через UART:
1. Установи **`circup`** (менеджер пакетов для CircuitPython):
```bash
pip install circup
circup install --auto
```
2. Или используй **`mpfshell`** (аналог ampy, но удобнее):
```bash
pip install mpfshell
mpfshell -o ttyUSB0
```
Команды в `mpfshell`:
- `put main.py` – загрузить файл.
- `get main.py` – скачать файл.
- `ls` – список файлов.
#### **4. Ручная прошивка с поддержкой USB-MSC**
Если твоя сборка CircuitPython не поддерживает USB-диск, попробуй **кастомную прошивку**:
1. Скачай прошивку с поддержкой MSC (например, [здесь](https://circuitpython.org)).
2. Прошей через `esptool.py`:
```bash
esptool.py --chip esp32c3 --port /dev/ttyACM0 write_flash 0x0 firmware.bin
```
---
### 🔹 **Совет для будущих проектов**
Если хочешь "автоматический" USB-диск, выбирай платы **с чипом USB-UART** (например, **ESP32-C3-DevKitM-1** или **Seeed XIAO ESP32-C3**). У них CircuitPython работает как флешка "из коробки".
---
### **Вывод**
- **Лучший вариант** → **Web Workflow** (заливка по Wi-Fi).
- **Если не работает** → `circup`/`mpfshell` через UART.
- **Экспериментально** → кастомная прошивка с USB-MSC.
Попробуй и расскажи, какой способ сработал! Если остались вопросы — помогу разобраться. 😉🚀
P.S. Если хочешь, могу подсказать, как настроить **автоматическую синхронизацию файлов** через VS Code!
Back to list