vdcd - vdcd - virtual device controller daemon/framework for digitalSTROM

  •        3

"vdcd" is a free (opensource, GPLv3) virtual device connector (vdc) implementation for digitalSTROM systems. A vdc integrates third-party automation hardware as virtual devices into a digitalSTROM system. This vdcd has ready-to-use implementation for various EnOcean devices, DALI lamps (single dimmers or RGB and RGBW multi-channel color lights), Philips hue LED color lights, WS281x RGB LED chains (directly on RPi, via p44-ledchain driver on MT7688), simple contacts and on-off switches connected to Linux GPIO and I2C pins, PWM outputs via i2c, experimental DMX512 support via OLA, Spark Core based devices support and console based debugging devices.

https://github.com/plan44/vdcd

Tags
Implementation
License
Platform

   




Related Projects

rpi-rgb-led-matrix - Controlling up to three chains of 64x64, 32x32, 16x32 or similar RGB LED displays using Raspberry Pi GPIO

  •    C++

A library to control commonly available 64x64, 32x32 or 16x32 RGB LED panels with the Raspberry Pi. Can support PWM up to 11Bit per channel, providing true 24bpp color with CIE1931 profile. Supports 3 chains with many panels each. On a Raspberry Pi 2 or 3, you can easily chain 12 panels in that chain (so 36 panels total), but you can theoretically stretch that to up to 96-ish panels (32 chain length) and still reach around 100Hz refresh rate with full 24Bit color (theoretical - never tested this; there might likely be timing problems with the panels that will creep up then).

node-rpio - Raspberry Pi GPIO library for node.js

  •    C

This is a high performance node.js addon which provides access to the Raspberry Pi GPIO interface, supporting regular GPIO as well as i²c, PWM, and SPI. Newer versions of node.js require you to install the GCC 4.8 packages for C++11 support. If you see compilation problems related to C++11, this is the likely cause.

quick2wire-python-api - Python API for controlling GPIO and I2C devices connected to the Raspberry Pi

  •    Python

A Python library for controlling the hardware attached to the Raspberry Pi's header pins, without running as the root user. The I2C and SPI API depend on support in the kernel. Recent raspbian kernels should be fine.

SwiftyGPIO - A Swift library for hardware projects on Linux/ARM boards with support for GPIOs/SPI/I2C/PWM/UART/1Wire

  •    Swift

A Swift library for hardware projects on Linux/ARM boards with support for GPIOs/SPI/I2C/PWM/UART/1Wire. This library provides an easy way to interact with external sensors and devices using the digital GPIOs, SPI/I2C interfaces, 1-Wire buses, PWM signals and serial ports that boards like the Raspberry Pi provide, on Linux using Swift.

elixir_ale - Interact with hardware in Elixir - GPIOs, I2C and SPI

  •    C

elixir_ale provides high level abstractions for interfacing to GPIOs, I2C buses and SPI peripherals on Linux platforms. Internally, it uses the Linux sysclass interface so that it does not require platform-dependent code. elixir_ale works great with LEDs, buttons, many kinds of sensors, and simple control of motors. In general, if a device requires high speed transactions or has hard real-time constraints in its interactions, this is not the right library. For those devices, it is recommended to look at other driver options, such as using a Linux kernel driver.


Aurora - Unified lighting effects across multiple brands and various games.

  •    CSharp

Project Aurora is a utility that unifies RGB lighting devices across different brands and enables them to work alongside each other, all while adding and improving RGB lighting support for various games that previous had none or little RGB lighting support. Aurora is mainly written in C#, but has C++ components to implement native support for other games.

one-color - An OO-based JavaScript color parser/computation toolkit with support for RGB, HSV, HSL, CMYK, and alpha channels

  •    Javascript

Javascript color object with implicit color space conversions. Supports RGB, HSV, HSL and CMYK with alpha channel.

node-hue-api - Node.js Library for interacting with the Philips Hue Bridge and Lights

  •    Javascript

An API library for Node.js that interacts with the Philips Hue Bridge to control Philips Hue Light Bulbs and Philips Living Color Lamps. This library abstracts away the actual Philips Hue Bridge REST API and provides all of the features of the Phillips API and a number of useful functions to control the lights and bridge remotely.

onoff - GPIO access and interrupt detection with Node.js

  •    Javascript

GPIO access and interrupt detection with Node.js on Linux boards like the Raspberry Pi, C.H.I.P. or BeagleBone.onoff supports Node.js versions 0.10, 0.12, 4, 5, 6, 7, 8 and 9.

Adafruit-Retrogame - Raspberry Pi GPIO-to-virtual-keyboard utility for classic game emulators

  •    C

Raspberry Pi GPIO-to-virtual-keyboard utility for classic game emulators. Visit forums.adafruit.com (General Project Help) for retrogame-related questions. GitHub's "Issues" tab is for bug reports and feature requests. 99% of retrogame problems are configuration, not bugs. Make sure to follow the "RetroPie 2.0+ Compatibility" directions below. Also, use Broadcom GPIO numbers, not the physical pin index.

python-gpiozero - A simple interface to GPIO devices with Raspberry Pi

  •    Python

A simple interface to GPIO devices with Raspberry Pi. Created by Ben Nuttall of the Raspberry Pi Foundation, Dave Jones, and other contributors.

mraa - Linux Library for low speed IO Communication in C with bindings for C++, Python, Node

  •    C

Libmraa is a C/C++ library with bindings to Java, Python and JavaScript to interface with the IO on Galileo, Edison & other platforms, with a structured and sane API where port names/numbering matches the board that you are on. Use of libmraa does not tie you to specific hardware with board detection done at runtime you can create portable code that will work across the supported platforms. The intent is to make it easier for developers and sensor manufacturers to map their sensors & actuators on top of supported hardware and to allow control of low level communication protocol by high level languages & constructs.

Adafruit_Python_GPIO - Library to provide a cross-platform GPIO interface on the Raspberry Pi and Beaglebone Black using the RPi

  •    Python

Library to provide a cross-platform GPIO interface on the Raspberry Pi and Beaglebone Black using the RPi.GPIO and Adafruit_BBIO libraries. The library is currently in an early stage, but you can see how its used in the Adafruit Nokia LCD library to write Python code that is easily portable between the Raspberry Pi and Beaglebone Black.

LightBulb - Reduces eyestrain by adjusting gamma based on the current time

  •    CSharp

LightBulb is an application that reduces eyestrain produced by staring at a computer screen when working late hours. As the day goes on, it continuously adjusts gamma, transitioning the display color temperature from cold blue in the afternoon to warm yellow during the night. Its primary objective is to match the color of the screen to the light sources of your surrounding environment - typically, sunlight during the day and artificial light during the night.

Darktable - Virtual Lighttable and Darkroom

  •    C

Darktable is a virtual lighttable and darkroom for photographers: it manages your digital negatives in a database and lets you view them through a zoomable light table. It also enables you to develop raw images and enhance them.It supports all basic image operations, Color corrections, watermark, split toning and lot more.

colorjoe - Scaleable color picker with touch and AMD support (MIT)

  •    Javascript

colorjoe was somewhat inspired by ColorJack and RightJS Colorpicker. Unlike those it actually scales pretty well. Essentially this means that you'll be able to define its actual dimensions and layout using a bit of CSS. This way the widget fits well responsive layouts. In addition it's relatively easy to implement missing functionality (RGB fields, whatnot) thanks to the simple API it provides.

webxr - Repository for the WebXR Device API Specification.

  •    CSS

The WebXR device API is for accessing virtual reality (VR) and augmented reality (AR) devices, including sensors and head-mounted displays on the Web. The WebXR Device API Specification is the repository of the Immersive Web Working Group.

chromatic-sketch - Sketch plugin for creating good-looking and perceptually uniform gradients and color scales

  •    Javascript

I came across this blog post recently. It opened my eyes to the Lab color space, and how you can use it to create perceptually uniform gradients and color scales with SASS. Chroma.js is the underlying library powering it. Check it out if you want a deeper understanding of the Lab color space and why it's good for creating color scales. Basically, it's a color space that, unlike RGB, was built to mirror the visual response of the human eye. That makes it very well suited for interpolating colors. This command will take the gradient of the selected shape and add new color stops to create a more aesthetically pleasing one.

PeerVPN - the open source peer-to-peer VPN

  •    C

PeerVPN is a software that builds virtual ethernet networks between multiple computers. Such a virtual network can be useful to facilitate direct communication that applications like file sharing or gaming may need. Often, such direct communication is made impossible or very difficult by firewalls or NAT devices.

go-colorful - A library for playing with colors in go (golang).

  •    Go

A library for playing with colors in go (golang). I love games. I make games. I love detail and I get lost in detail. One such detail popped up during the development of Memory Which Does Not Suck, when we wanted the server to assign the players random colors. Sometimes two players got very similar colors, which bugged me. The very same evening, I want hue was the top post on HackerNews' frontpage and showed me how to Do It Right™. Last but not least, there was no library for handling color spaces available in go. Colorful does just that and implements Go's color.Color interface.