You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Raphaël Vinot b81f2a512e add multiple easy samples 7 years ago
PoC a life simulator on an 8x8 building (the life array is 12x8) 9 years ago
clients some more clients and test code for arduino 8 years ago
displayclient Some improvements in the readme 8 years ago
entec-driver - Information about DMX driver 9 years ago
frameserver new displayclient for arduino with ethernet shield and neopixels 8 years ago
ola-test cleaned up a few things 12 years ago
open-lighting-architecture added protobuf 12 years ago
tutorial - Structure clean-up, moved examples to understand C/C++ better out of the way 9 years ago
v2 add multiple easy samples 7 years ago
.gitignore add very simple code randomly lighting up LEDs 8 years ago
HACKING documented the frame format 9 years ago
LICENSE Initial commit 8 years ago - Added more information of current state of the project 8 years ago
casino.svg description of casino museum project in an svg file 8 years ago
frameserver.dia updated flow diagram 12 years ago
frameserver.png added frameserver diagrams 12 years ago new displayclient for arduino with ethernet shield and neopixels 8 years ago

syndilights v1

This is the first iteration of the syndilights (syn2lights) project code. Very solid (read complex) C++ implementation of the frameserver.

For the current state of the art please see the 'v2' directory.

For historical reasons see this Video for the initial implementation idea: (Spoken language is Luxembourgish, sorry no translation available but the images speak for themselves)

Install dependencies

sudo apt-get install libboost-all-dev libncurses5-dev libglibmm-2.4-dev build-essential


The system is set up of various parts. See frameserver.png

Latest setup is:

  • displayclient/html/ws_udp.js

A nodejs server => $ node displayclient/html/ws_udp.js This listens for UDP packets to show on a virtual building This server creates a webserver where a browser can connect to see a simulation of the building. => $ firefox/chromium displayclient/html/visionneuse.html

  • frameserver

A c++ program receiving UDP frames combining them to generate the final display

  • clients

Written in any language, creates UDP packets which are sent to the frameserver

Building configuration

The main configuration of the frameserver is done in <defines.h>

Main tuneables:

// where to send the UDP output of the frameserver
#define REMOTE_IP ""
#define REMOTE_PORT 1234

// description of the frame this server understands
#define HASH "s2l\n8>18> "
// one byte number + 10 character hash plus newline

// 12 windows per floor, 8 floors, Value:Alpha
#define WIDTH 12
#define HEIGHT 8
// always has an alpha channel so for rgb it's 3+1=4
#define CHANNELS 4

// 8 segments per window (7 seg plus dot), 12 segments per floor, RGBA
#define SEGNUM 8
#define SEGWIDTH 12