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>
74 lines
5.2 KiB
Markdown
74 lines
5.2 KiB
Markdown
# 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`.
|