Files
ZIFI32--ESP32-/README.md
T
alexandClaude Sonnet 5 44d8c888fd Clarify: the AT-command interface was added by this fork, not upstream
Was previously worded as if AT support pre-existed and this fork only
fixed bugs in it. It was actually added from scratch here, specifically
for backward compatibility with software written for old ESP8266-based
ZiFi modules running Espressif's own AT firmware.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-14 16:17:26 +03:00

74 lines
5.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ZIFI32 — модуль ESP32 WiFi/SPI для ZX Evolution
Прошивка и аппаратная часть модуля ESP32-S3 (WiFi/SPI, "ZiFi32") для
ретро-компьютера ZX Evolution / TS-Conf ("Pentevo"). Даёт WiFi,
аудио-трекер (WAV/XM/MOD/S3M), а также (новое в этом форке, в разработке)
сетевую шару по SMB2/3, открывающую доступ к реальной SD-карте машины с
любого клиента Windows/macOS/Linux.
**Исходная база**: [tslabs/zx-evo](https://github.com/tslabs/zx-evo/tree/master/pentevo/esp32).
Полный список изменений этого форка и их текущий статус — в
[`firmware/README.md`](firmware/README.md).
## Интерфейсы
Модулем можно управлять двумя способами:
- **Родной SPI-протокол** (`esp_spi_defs.h`) — основной, быстрый способ
связи с Z80-стороной (используется, в частности, VFS/SMB-мостом).
- **AT-команды по UART** (`at_uart.cpp`) — добавлены в этом форке для
обратной совместимости с программами, написанными под старые ZiFi-модули
на реальном ESP8266 с оригинальной прошивкой Espressif AT. Поддерживаются
кратко: `AT+RST` (сброс), `AT+GMR` (версия), `AT+CWJAP` (подключение к
WiFi), `AT+CWLAP` (сканирование точек доступа), `AT+CIPSTART`/`AT+CIPSEND`
(TCP-соединение и отправка данных), `AT+CIPSNTPCFG`/`AT+CIPSNTPTIME`
(настройка и получение времени по NTP).
## Требования
- Прошивка ядра платы ZX Evolution/TS-Conf **должна быть собрана с
поддержкой VDAC2 и ESP32 (ZiFi32)** — без этого ядро вообще не увидит
модуль на шине SPI, а видеочип FT8xx работать не будет.
- **Перемычка RESET на разъёме IDE должна быть установлена** — см.
[`hardware/connection_diagram.webp`](hardware/connection_diagram.webp).
## Структура репозитория
| Путь | Что там |
|---------------------|--------------|
| `src/` | Исходный код прошивки ESP32 (проект ESP-IDF) |
| `firmware/` | Готовые к прошивке скомпилированные файлы + инструкция по прошивке + список изменений |
| `hardware/` | Схема подключения переходной платы, фото платы, Gerber-файлы |
| `doc/` | Заметки по протоколу/архитектуре |
| `test/` | Оригинальные тестовые скрипты протокола SPI из апстрима (Python, Raspberry Pi) |
| `spi_gpio_probe/` | Отдельная диагностическая прошивка — логирует сырые фронты на пинах SPI, использовалась для отладки при разработке; НЕ основная прошивка |
## Быстрый старт
1. Прошейте `firmware/esp-spi.bin` (+ bootloader/таблицу разделов) в модуль
ESP32-S3 — точная команда `esptool.py` в
[`firmware/README.md`](firmware/README.md#Прошивка).
2. Подключите по схеме
[`hardware/connection_diagram.webp`](hardware/connection_diagram.webp)
(Gerber-файлы переходной платы — в [`hardware/gerber/`](hardware/gerber/),
если делаете свою плату; фото платы —
[`hardware/pcb_photo.jpg`](hardware/pcb_photo.jpg)).
3. Убедитесь, что выполнено требование по ядру ZX Evolution (см. выше).
4. Собрать из исходников вместо прошивки готового бинарника: ESP-IDF
**v6.1** (не `v6.1-rc1`), `idf.py build flash`.
## Статус
WiFi, воспроизведение аудио-трекера и SMB2/3-мост (просмотр, скачивание,
загрузка, удаление на реальной SD-карте) — всё работает на реальном
железе. Мост к SMB всё ещё **активно дорабатывается** — пока не реализовано
создание директорий, обрезка файла при перезаписи более коротким
содержимым и уведомления об изменениях в реальном времени. Подробности —
в [`firmware/README.md`](firmware/README.md).
## Лицензия
В этом репозитории вендорится [libsmb2](https://github.com/sahlberg/libsmb2)
(LGPL-2.1) в каталоге `src/third_party/libsmb2` — см. его собственные файлы
`COPYING` и `LICENCE-LGPL-2.1.txt`.