ZIPP-PL

From diychristmas.org wiki
Jump to navigation Jump to search
Warning ZIPP-PL is a proposed future ZIPP project. The concepts described on this page are preliminary and substantial development and testing have not yet been performed. Hardware, firmware, file formats, communications, scheduling, and specifications may change as development begins.


ZIPP-PL Sequence Player

ZIPP-PL (pronounced "zipple") is the proposed standalone sequence and show-player branch of the ZIPP project family.

ZIPP-PL is intended to provide a small, inexpensive ESP32-based device capable of playing complete lighting sequences without requiring a Windows show computer to remain connected during normal operation.

The original concept is to load xLights sequence files and associated audio onto local storage, schedule their playback, and transmit the resulting show data over Ethernet to the display network.

Project Status: Concept / future development.

Development of ZIPP-PL is currently deferred while other ZIPP projects are being developed.

Original Purpose

The original ZIPP-PL concept was developed around a simple objective:

Replace the dedicated show computer with a small embedded player.

During sequence development, xLights and a conventional computer would still be used normally.

Once the show is ready, the required sequence and audio files could be transferred to ZIPP-PL.

Normal show operation could then become:

xLights
   |
Upload Sequence / Audio
   |
ZIPP-PL
   |
Local Storage
   |
Scheduled Playback
   |
Ethernet
   |
Display Network
   |
Controllers

The development computer would no longer be required to generate the show data in real time.

Design Goals

Initial ZIPP-PL design goals include:

  • ESP32-based standalone operation
  • Playback of xLights FSEQ sequence data
  • Local microSD/TF storage
  • Associated audio playback
  • Approximately 40 FPS sequence output
  • Ethernet output to the display network
  • Show scheduling
  • Network time synchronization
  • Simple configuration interface
  • Sequence and audio upload
  • Reliable unattended operation
  • No local pixel outputs required

The exact implementation has not yet been finalized.

Ethernet Show Output

ZIPP-PL is intended primarily as a network show player rather than a pixel controller.

The player does not need to directly generate WS2811 or other pixel waveforms.

Instead:

FSEQ Sequence
     |
  ZIPP-PL
     |
Network Output
     |
  Ethernet
     |
Network Switch
     |
Display Controllers

This allows the individual display controllers to remain responsible for their own outputs while ZIPP-PL performs the sequence playback and scheduling functions.

Local Storage

Sequence and audio files are expected to be stored on removable flash storage such as a microSD or TF card.

Local storage allows the player to operate without maintaining a connection to the development computer.

Conceptually:

microSD / TF
     |
     +--> Sequence Files
     |
     +--> Audio Files
     |
     +--> Configuration
     |
     +--> Schedule

The exact filesystem layout has not yet been established.

xLights FSEQ Playback

The initial design target is playback of xLights FSEQ sequence files.

Rather than rendering effects such as Butterfly, Bars, Text, or other xLights effects, ZIPP-PL would use the already-rendered channel data stored in the FSEQ file.

Conceptually:

xLights Effects
     |
xLights Rendering
     |
   FSEQ
     |
  ZIPP-PL
     |
Network Channel Data

This keeps the embedded player considerably simpler because it does not need to reproduce the xLights rendering engine.

The required FSEQ formats and compression methods have not yet been selected or tested.

Audio Playback

ZIPP-PL is intended to support synchronized audio associated with a sequence.

The exact audio hardware and output method have not yet been finalized.

The development of ZIPP-A may eventually provide useful audio-output or network-audio options for ZIPP-PL.

Maintaining synchronization between sequence frames and audio playback will be an important part of future development.

Scheduling

ZIPP-PL is intended to operate as an unattended show player.

A future scheduler could allow configuration such as:

Monday-Thursday
5:00 PM - 10:00 PM
Friday-Saturday
5:00 PM - 11:00 PM
Sunday
5:00 PM - 10:00 PM

The scheduler could select playlists or sequences and automatically start and stop the display.

The exact scheduling system has not yet been designed.

Network Time

Accurate time is required for scheduled operation.

One proposed approach is:

Power ON
   |
Connect Wi-Fi
   |
Obtain time using NTP
   |
Store / maintain time locally
   |
Disable Wi-Fi
   |
Operate show over Ethernet

This would allow the player to obtain accurate Internet time when available without requiring Wi-Fi to remain active throughout the show.

The display Ethernet network itself could remain isolated from the Internet.

The exact timekeeping and resynchronization method has not yet been determined.

Configuration Interface

A future ZIPP-PL configuration interface could provide functions such as:

  • Network configuration
  • Time configuration
  • Sequence management
  • Audio management
  • Playlist creation
  • Schedule configuration
  • Controller/output configuration
  • System status
  • Diagnostics

A web-based interface has been proposed because it would avoid requiring special configuration software.

Uploading Sequences

A long-term goal is to make transferring a completed show to ZIPP-PL straightforward.

Possible methods include:

  • Upload from a web interface
  • Upload directly from xLights
  • Copy files to the microSD card
  • Network file transfer

Direct integration with xLights would provide the most convenient workflow if practical.

No xLights upload integration has yet been implemented.

Development Hardware

Two ESP32 Ethernet platforms have been considered for early development:

  • LILYGO T-ETH-Lite ESP32 Ethernet board
  • Waveshare ESP32-S3 Ethernet board with onboard TF storage

The Waveshare board is particularly interesting because Ethernet and removable storage are available on the same development board.

Neither platform should currently be considered the final ZIPP-PL hardware.

Relationship to ZIPP

ZIPP-PL does not replace the individual ZIPP controllers.

Instead, it potentially replaces the computer that normally supplies the real-time show data.

A future complete system could resemble:

               ZIPP-PL
                  |
               Ethernet
                  |
            Network Switch
             /    |    \
            /     |     \
         ZIPP   ZIPP   ZIPP Master
         Pixel  Pixel       |
                          ESP-NOW
                         /   |   \
                    ZIPP-R ZIPP-I ZIPP-M

Audio could potentially also be coordinated with ZIPP-A.

This would allow much of a display to operate using small embedded devices after sequence development has been completed on a conventional computer.

Relationship to xLights

xLights remains the sequencing and content-creation system.

ZIPP-PL is not intended to replace xLights.

Instead, the division of responsibilities is:

xLights
Create, edit, render, and prepare the show.
ZIPP-PL
Store, schedule, and play the completed show.

This keeps the complex sequencing and rendering work on the computer while assigning repetitive show playback to the embedded player.

Future Development

Possible ZIPP-PL development includes:

  • FSEQ file parsing
  • Compressed FSEQ support
  • microSD/TF storage
  • 40 FPS playback
  • Ethernet network output
  • DDP output
  • Audio playback
  • Audio/sequence synchronization
  • Playlist support
  • Scheduling
  • NTP time synchronization
  • Local timekeeping
  • Web configuration
  • xLights upload support
  • Diagnostics
  • Automatic startup and recovery
  • Integration with other ZIPP projects

Project Author

ZIPP-PL is a proposed DIY Christmas member project developed by Ernest Horning as part of the ZIPP project family.

The project is being documented before active development so that the original design goals and intended architecture are preserved for future work.

See Also