Files
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

5.2 KiB
Raw Permalink Blame History

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. Полный список изменений этого форка и их текущий статус — в 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.

Структура репозитория

Путь Что там
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.
  2. Подключите по схеме hardware/connection_diagram.webp (Gerber-файлы переходной платы — в hardware/gerber/, если делаете свою плату; фото платы — 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.

Лицензия

В этом репозитории вендорится libsmb2 (LGPL-2.1) в каталоге src/third_party/libsmb2 — см. его собственные файлы COPYING и LICENCE-LGPL-2.1.txt.