ZIPP-PL
| 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.