Lightpack project with Prismatik flavour
Modified version which includes various improvements for Windows, esp. a Desktop Duplication API Grabber
Table of Contents:
Short Description
Main Features
Supported Devices and Protocols
Making Plugins
Useful URLs
Build Prismatik with Windows
Build with Linux
Build with OS X
Build Firmware
Lightpack is a fully open-source and simple hardware implementation of the backlight for any computer. It's a USB content-driven ambient lighting system.
Prismatik is an open-source software we buid to control Lightpack devices. It grabs the screen, analyzes the picture, calculates resulting colors, and provides soft and gentle lighting with a Lightpack device. Moreover, you can handle other devices with Prismatik such as Adalight, Ardulight, or even Alienware LightFX system.
Main Features:
-
Fully open-source under GPLv3 (hardware, software, firmware)
-
Cross-platform GUI (Qt)
-
USB HID (no need to install any drivers)
-
The device is simple to build (just Do-It-Yourself)
-
Ambilight
-
Sound Visualizers
-
Mood Lamps
-
Profiles
-
Network accessible API (documentation)
Supported Devices and Protocols:
- Lightpack PC/v1
- Serial
- Adalight
- Ardulight
- Arduino
- ESP8266/ESP32 (WLED firmware highly recommended)
- Wi-Fi UDP:
- WARLS
- DRGB
- DNRGB
- ESP8266/ESP32 (WLED firmware highly recommended)
Making Plugins:
Useful URLs:
- Project mothership
- Original project mothership
- Binary downloads
- Wiki with DIY and documentation ENG / RUS
- Post new issue
- Team
Prismatik Build Instructions for Windows
Prerequisites:
- Qt SDK, you may need to set
%QTDIR%
(sysdm.cpl → Advanced → Environment Variables → New) to something likeC:\Qt\x.xx.x\msvc_xxxx\
. - Visual Studio, Windows SDK or Microsoft DirectX SDK
- optional (if you want to create an installer) POSIX shell utilities MSYS for example.
- optional any OpenSSL binaries to include them in the setup. If you just want to build, you can skip them in
build-vars.prf
(this will render the update check ineffective). - optional BASS and BASSWASAPI for the Sound Visualizer. You can skip them in
build-vars.prf
.
Build Process:
- Go to
<repo>/Software
- Copy and edit
build-vars.prf
according to your machine - Optional: if locales changed: run
update_locales.bat
or./update_locales.sh
(slow on Windows) - Run
scripts/win32/generate_sln.bat
(from the Visual Studio Developer prompt /vcvarsall.bat
) - Build
Lightpack.sln
with MSBuild / VisualStudio
Building an Installer:
- Run
scripts/win32/prepare_installer.sh
. (This builds the autoupdater (UpdateElevate), needs the submodule checked out and currently works only with VS2015). - Build
dist_windows/script.iss
(64bit) orscript32.iss
(32bit) with ISCC (the InnoSetup compiler)
Build Instructions for Linux
Prerequisites:
You will need the following packages, usually all of them are in distro's repository:
qt5-default
qttools5-dev-tools
libqt5serialport5-dev
build-essential
pkg-config
libusb-1.0-0-dev
libudev-dev
- if you are using Unity DE:
libappindicator-dev
libnotify-dev
libgtk2.0-dev
- if you are using gnome you'll need
gnome-shell-extension-appindicator
for a working tray icon - not required, but the update checker uses SSL sockets:
openssl
- for sound visualizer:
libpulse-dev
,libfftw3-dev
(editbuild-vars.prf(.default)
and comment outPULSEAUDIO_SUPPORT
to disable the feature)
(this is a Debian based example, see Software/dist_linux/*/Dockerfile for your particular package backend if available)
Build Process:
- Go to
<repo>/Software
- Optional: if locales changed: run
./update_locales.sh
- Run
qmake -r
- Run
make
- Resulting binary will be in
<repo>/Software/bin
Building a Package:
If you target your current system / package backend:
cd Software/dist_linux
- Run
./build-natively.sh
to list available backends (dpkg
,pacman
,flatpak
, ...) - Run
./build-natively.sh <package-backend>
- Resulting package should be in
<package-backend>/
folder
You can also target a different distribution / backend combination via docker (this assumes docker is up and running on your system):
cd Software/dist_linux
- Run
./build-in-docker.sh
to list backends - Run
./build-in-docker.sh <package-backend> <os-image-name> <os-image-tag>
:./build-in-docker.sh dpkg debian 10.6
./build-in-docker.sh dpkg ubuntu 18.04
./build-in-docker.sh pacman archlinux latest
- Resulting package should be in
<package-backend>/
folder
(os-iamge-name
/os-image-tag
should be available on hub.docker.com or existing on your system, they will be used as a base for the Prismatik builder image)
Manual Deployment:
Instead of building a deb package, you can:
- Add a rule for UDEV. See comments from
<repo>/Software/dist_linux/deb/etc/udev/rules.d/93-lightpack.rules
for how to do it. - Make sure
<repo>/Software/qtserialport/libQt5SerialPort.so.5
is available for loading by Prismatik (place it in appropriate dir or use LD_LIBRARY_PATH variable)
Build Instructions for OS X
Prerequisites:
- Qt SDK (5.0+)
- MacOSX 10.9.sdk
Whole Dependencies List for Prismatik 5.10.1:
- QtCore.framework
- QtGui.framework
- QtNetwork.framework
- QtOpenGL.framework
Build Process:
- Download and unpack 5.0+ Qt SDK from www.qt-project.org
- Go to
<repo>/Software
- Optional: if locales changed: run
./update_locales.sh
- CLI
- Run
qmake -r
- Run
make
- Run
- or Xcode
- Run
./scripts/macos/generate_xcode_project.sh
- Open
Lightpack.xcodeproj
- Run
Building a dmg package:
- Run
macdeployqt bin/Prismatik.app -dmg
Firmware Build Instructions
Updating Firmware on Windows: If you don't want to build the firmware yourself, you can follow the documentation for flashing the latest firmware on Windows.
Please note that these instructions are for Debian based systems.
Compiling Firmware Only:
- Install AVR GCC Toolchain:
sudo apt-get install gcc-avr binutils-avr avr-libc
- Compile the firmware:
cd Firmware
make LIGHTPACK_HW=7
(or any other hardware version 4-7)- Alternatively, you can do
./build_batch.sh
to build the firmware for all hardware versions
- The firmware can be found in the same directory (individual build) or Firmware/hex (batch build).
Compiling and Uploading Firmware to Device:
- Install AVR GCC Toolchain and dfu-programmer:
sudo apt-get install gcc-avr binutils-avr avr-libc avrdude dfu-programmer
- Reboot device to bootloader (via the secret button on the device)
- Compile and upload the firmware:
cd Firmware
make LIGHTPACK_HW=7 && make dfu LIGHTPACK_HW=7
(or any other hardware version 4-7)
Please let us know if you find mistakes, bugs or errors. Contributions are welcome.
Post new issue : https://github.com/psieg/Lightpack/issues