ESP32 CYD MiniTV

Versie 1.0.1 is de huidige stabiele release van deze Wi-Fi-editie.

Dit project is gebaseerd op DynaMight1124/ESP32-MiniTV-Player, wat op zijn beurt weer voortbouwt op het werk aan de Mini Lego TV / Mini Retro TV door Eric N. (ThatProject) en moononournation. Zie de sectie Credits en projectgeschiedenis voor de volledige toeschrijving.

Belangrijkste kenmerken

  • Speelt één video/audio-paar af per genummerd kanaal.
  • Optioneel willekeurig kanaal met meerdere bijpassende mediaparen.
  • Webbediening voor kanaalkeuze, dempen (mute), volume, helderheid, herstarten en slaapstand.
  • Betrouwbare "chunked" uploads met voortgangsindicatie, retries, annulering en controle op vrije schijfruimte.
  • Mogelijkheid om kanalen en bijbehorende mediaparen aan te maken, te hernoemen, te herordenen en te verwijderen.
  • Wi-Fi-instelportaal bij eerste gebruik, inclusief bewerkbare netwerk- en hostname-instellingen.
  • Optionele wachtwoordbeveiliging voor beheerders.
  • OTA-firmware-updates via een geëxporteerd Arduino .bin-bestand.
  • Back-up en herstel van instellingen.
  • SD-kaart gezondheidsscan, opschoonhulpmiddelen, eventlog en downloadbare diagnostiek.
  • Onthoudt het kanaal, volume, helderheid, mute-status en instellingen na een herstart.
  • Fysieke bediening via één knop blijft beschikbaar zonder de webinterface.

Webinterface

Het responsieve lokale dashboard scheidt de weergavebediening van de onderhoudstools via een consistente zijbalk.

Weergavebediening

Bedien de weergave, selecteer kanalen en pas volume en helderheid in realtime aan.

Media uploaden

Upload bijpassende .mjpeg- en .mp3-bestanden samen, inclusief kanaalselectie en voortgangsrapportage.

Kanalen en bestanden

Hernoem kanalen en titels, wijzig de volgorde van kanalen en verwijder bijbehorende mediaparen.

Instellingen

Configureer slaaptimers, apparaatidentiteit, beheerdersbeveiliging, Wi-Fi en planning.

Ondersteunde hardware

De meegeleverde profielen ondersteunen:

  • CYD / ESP32-2432S028: met ILI9341-display, microSD-slot, ingebouwde versterker en DAC-audio op GPIO 26.
  • CYD RetroTV-variant: met alternatieve knop-/displayinstellingen.
  • Originele Mini TV-hardware: gebruikmakend van een 288×240 ST7789-display en externe I2S-audio.

Het geteste doel voor deze release is de klassieke ESP32-2432S028 CYD. ESP32-S3 en andere CYD-varianten kunnen andere pinnen of displaycontrollers gebruiken en zijn niet direct compatibel.

Benodigdheden

Hardware

  • ESP32-2432S028 CYD of een ander ondersteund profiel.
  • FAT32-geformatteerde microSD-kaart.
  • 8-ohm miniatuur luidspreker aangesloten op de SPEAKER-poort van de printplaat.

Software

  • Arduino IDE 2.x.
  • ESP32 boards package 2.0.17.
  • Arduino_GFX 1.6.0.
  • JPEGDEC.
  • libhelix / codec-helix 0.8.1 of 0.9.x.

Let op: De firmware maakt gebruik van API's van ESP32 core 2.0.17. Nieuwere 3.x cores vereisen compatibiliteitswijzigingen en worden niet aanbevolen voor deze release.

Installatie met Arduino IDE

  1. Download of clone deze repository.
  2. Open MiniTV/MiniTV.ino in de Arduino IDE. Houd alle bronbestanden in de MiniTV-map.
  3. Installeer de bovengenoemde bibliotheken via de Library Manager of hun GitHub-releases.
  4. Installeer het ESP32 boards package 2.0.17.
  5. Activeer in MiniTV/config.h precies één hardwareprofiel. Het standaard CYD-profiel is standaard ingeschakeld.
  6. Selecteer ESP32 Dev Module als board.
  7. Kies een partitieschema met voldoende applicatieruimte voor OTA-updates (bijvoorbeeld een compatibel OTA-schema in plaats van een "no-OTA" schema).
  8. Compileer en upload via USB.

Wi-Fi-gegevens hoeven niet in de sketch te worden gecompileerd. Laat WIFISSID en WIFIPASSWORD op CHANGE_ME staan om het instelportaal bij de eerste keer opstarten te gebruiken.

Eerste Wi-Fi-configuratie

Wanneer er geen opgeslagen netwerk beschikbaar is, start de TV zijn eigen setup-toegangspunt en toont de verbindingsgegevens op het scherm.

  1. Verbind je telefoon of computer met het MiniTV-setupnetwerk dat op het display wordt getoond.
  2. Open http://192.168.4.1.
  3. Selecteer je lokale 2.4 GHz Wi-Fi-netwerk en voer het wachtwoord in.
  4. Na de herstart open je http://minitv.local of het IP-adres dat in de Serial Monitor wordt geprint.

Klassieke ESP32-boards ondersteunen alleen 2.4 GHz Wi-Fi. Meer details zijn te vinden in MiniTV/WIFI_SETUP.txt.

De SD-kaart voorbereiden

Formatteer de kaart als FAT32 en maak de volgende mappenstructuur aan:

Videos/
├── 1/
│   ├── Mijn Show.mjpeg
│   └── Mijn Show.mp3
├── 2/
│   ├── Andere Show.mjpeg
│   └── Andere Show.mp3
└── random/
    ├── Clip Een.mjpeg
    ├── Clip Een.mp3
    ├── Clip Twee.mjpeg
    └── Clip Twee.mp3

Elk genummerd kanaal is bedoeld om één .mjpeg-bestand en één bijbehorend .mp3-bestand met dezelfde basisnaam te bevatten. De map random mag meerdere bijpassende paren bevatten. MP3 wordt sterk aanbevolen wanneer Wi-Fi is ingeschakeld, omdat AAC/SBR aanzienlijk meer geheugen verbruikt.

Aanbevolen codering

Voor een standaard CYD, gebruik 320×240 bij 24 FPS:

Video: ffmpeg -i input.mp4 -an -pix_fmt yuvj420p -q:v 8 -vf "fps=24,scale=320:240:flags=lanczos" output.mjpeg

Audio: ffmpeg -i input.mp4 -vn -ar 44100 -ac 1 -b:a 24k -filter:a "volume=-8dB" output.mp3

De twee outputbestanden moeten identieke basisnamen hebben. Een GUI-converter is ook beschikbaar via DynaMight1124/MiniTV-Video-Converter.

Bediening

Browser

De zijbalk scheidt de functies: Controls, Upload, Channels & files, SD health, Settings, Backup & restore, Firmware update en Diagnostics. Volume- en helderheidsschuifregelaars worden onmiddellijk toegepast.

Fysieke knop

Op de standaard CYD wordt de BOOT-knop aan de achterzijde gebruikt:

  • Enkele klik: volgend kanaal.
  • Dubbele klik: vorig kanaal.
  • Inhouden (1–3 seconden): dempen/ontdempen (mute/unmute).
  • Inhouden (3+ seconden): launcher/reset-actie geconfigureerd voor het actieve profiel.

OTA-updates

Na de eerste USB-installatie kun je een gecompileerd binair bestand exporteren vanuit de Arduino IDE en dit uploaden via "Firmware update" in de webinterface. De TV valideert het image, installeert het en start opnieuw op. Houd een USB-herstelmethode beschikbaar bij het testen van aangepaste builds.

Probleemoplossing

  • Geen audio: Controleer of er een 8-ohm luidspreker is aangesloten op SPEAKER, of het standaard CYD-profiel is geselecteerd, GPIO 4 de active-low versterker aanstuurt en GPIO 26 de DAC-output is.
  • libhelix callback compilatiefout: Update naar de nieuwste projectbronnen. Deze bevatten callback-overloads voor zowel de drie-argumenten API in libhelix 0.8.1 als de vier-argumenten API in libhelix 0.9.x. Verwijder dubbele of oudere libhelix-mappen uit je Arduino-bibliotheekdirectory als Arduino meerdere kopieën rapporteert.
  • Corrupt beeld of verkeerde kleuren: Bevestig het juiste CYD-profiel en de display-inversie-instelling, en codeer vervolgens opnieuw op exact 320×240, 24 FPS.
  • Wi-Fi valt weg tijdens weergave: Gebruik MP3, ESP32 core 2.0.17 en een stabiele 5V voeding. Vermijd AAC/SBR bij de Wi-Fi-build.
  • Grote uploads lopen vast: Gebruik de ingebouwde Upload-pagina, laat de weergave stoppen en houd de browser open. De uploader verzendt geverifieerde chunks en probeert tijdelijke SD-schrijffouten opnieuw te verwerken.
  • Apparaat is onbereikbaar: Controleer de Serial Monitor voor het huidige IP-adres, bevestig dat de client op hetzelfde 2.4 GHz LAN zit, of reset de opgeslagen Wi-Fi-instellingen via de gedocumenteerde herstelprocedure.
  • Geen video's aanwezig: De webinterface en setupfuncties blijven beschikbaar; upload of voeg een geldig mediapaar toe aan de SD-kaart.

Bij het melden van een probleem wordt aangeraden om eerst de downloadbare diagnostiek en de SD-health pagina te raadplegen.

Beveiligingsopmerking

De webinterface is ontworpen voor een vertrouwde lokale netwerkomgeving en maakt gebruik van HTTP. Schakel het beheerderswachtwoord in via de Instellingen, maar stel het apparaat niet direct open naar het publieke internet.

Bijdragen

Bugrapporten en verbeteringen zijn welkom. Lees CONTRIBUTING.md voordat je een pull request opent en vermeld de firmwareversie, het boardprofiel, de ESP32 core-versie en een diagnostisch rapport waarbij gevoelige netwerkgegevens zijn verwijderd.

Licentie en credits

De code is uitgebracht onder The Unlicense, conform het overgenomen project. Volledige toeschrijving van upstream-bronnen en de geschiedenis van deze editie zijn vastgelegd in docs/CREDITS.md.