* Removed -HUP so the default -TERM signal is sent instead.
- hyperiond only listens for TERM and INT. HUP is often used to get an exe to reread its config
Changed pgrep to add '-x' so it wont partial match on the exe name.
- I have multiple instances with multiple hyperiond-instance1 names
- this ensures the service script only kills the right process
* reversing errant change to hyperion.systemd.sh
* added bonjour/zeroconf service discovery to the json interface.
When clients are also modified, they can
- find hyperiond on the network much more quickly than ping/portscan;
- find multiple instances running on different ports instead of assuming 19444
* Moved zeroconf calls to hyperiond.cpp
* Added mDNS/zerconf/bonjour registration for proto server
Added config options.
"jsonServer" :
{
"port" : 49444,
// "mDNSDescr" : "hyperiond jsonServer blah de blah",
"mDNSService" : "_hyperiond_json._tcp"
},
* cleaned up a couple of compiler warnings
* moved bitpair_to_byte initialiser to (hopefully) work with older GCC
* compiler warning in udp driver
removed some tabs in ws2812b.cpp
* formatting - spaces to tabs
* moved rpi_281x to tag sk6812-v1.0
* moving to my fork of rpi_281x
* Now uses the led device name and hostname to create the annouce name
Former-commit-id: abfa51bcf359cafa63338181c1b83ecfd231bc87
* Removed -HUP so the default -TERM signal is sent instead.
- hyperiond only listens for TERM and INT. HUP is often used to get an exe to reread its config
Changed pgrep to add '-x' so it wont partial match on the exe name.
- I have multiple instances with multiple hyperiond-instance1 names
- this ensures the service script only kills the right process
* reversing errant change to hyperion.systemd.sh
* cleaned up a couple of compiler warnings
* moved bitpair_to_byte initialiser to (hopefully) work with older GCC
* compiler warning in udp driver
removed some tabs in ws2812b.cpp
* formatting - spaces to tabs
* moved rpi_281x to tag sk6812-v1.0
* moving to my fork of rpi_281x
* half way thru re merging the newudp support
* Whoops.... dont know how it compiled before..
* Removed debugging that was commented out
Former-commit-id: ac4330422f93f3d594dfcba5593759288298d25e
* Removed -HUP so the default -TERM signal is sent instead.
- hyperiond only listens for TERM and INT. HUP is often used to get an exe to reread its config
Changed pgrep to add '-x' so it wont partial match on the exe name.
- I have multiple instances with multiple hyperiond-instance1 names
- this ensures the service script only kills the right process
* reversing errant change to hyperion.systemd.sh
* cleaned up a couple of compiler warnings
* moved bitpair_to_byte initialiser to (hopefully) work with older GCC
* compiler warning in udp driver
removed some tabs in ws2812b.cpp
* formatting - spaces to tabs
Former-commit-id: 42cc7325177c9fcc3d1bd29cbfe72f02118d3233
Only apply color channel if color is dominant. Grey color independent from color channels. Linear increase of color channel from grey to maximum.
Former-commit-id: cda9fca0084174877c45a7e9a867e6209ffe9e44
* dispmanx: fix grabber issues with certain widths and support cropping
The dispmanx grabber will produce garbage output if the destination
pitch is not set to a multiple of 64 bytes (16 RGBA pixels).
It can also fail when retrieving only a part of the image
(eg in 3DSBS or TAB mode).
Handle these cases by capturing the full image into a separate
buffer with the pitch set to an appropriate value and manually
handle 3D SBS/TAB left/top half copying.
At this point supporting cropping like in the V4L2 grabber is
rather easy and added as well. This'll help handling overscan
setups (old TVs) and removing (possibly asymmetric) overscan
borders.
Cropping is disabled in video capture mode (when the
DISPMANX_SNAPSHOT_FILL flag is set).
Signed-off-by: Matthias Reichl <hias@horus.com>
* hyperion-dispmanx: add optional crop values and 3D mode options
Signed-off-by: Matthias Reichl <hias@horus.com>
* hyperiond: support cropping on the dispmanx grabber
Honor cropLeft, cropRight, cropTop and cropBottom settings in
the framegrabber section of the conf file to control cropping.
Signed-off-by: Matthias Reichl <hias@horus.com>
Former-commit-id: bbb55f6621b90384e417f37da4f2543d112ef57a
* Kodi video checker patch to make it compliant with recent JSON RPC API specs.
* Updated inline documentation for Kodi video checker.
Former-commit-id: e0760f55e1ddd61f10ae457c485aa01ae4507260
* Removed -HUP so the default -TERM signal is sent instead.
- hyperiond only listens for TERM and INT. HUP is often used to get an exe to reread its config
Changed pgrep to add '-x' so it wont partial match on the exe name.
- I have multiple instances with multiple hyperiond-instance1 names
- this ensures the service script only kills the right process
* reversing errant change to hyperion.systemd.sh
* This add a new device type - ws2812spi.
I've (ab)used the SPI interface to send the correct timing pulses to keep the ws2812 happy.
THE RATE IS IMPORTANT!
A FIXED CORE_CLK IS IMPORTANT!
Attach the SPI MOSI pin on the Pi to the DIN pin on your ws2812
"device" :
{
"name" : "MyPi",
"type" : "ws2812spi",
"colorOrder" : "grb",
"output" : "/dev/spidev0.0",
"rate" : 3800000
},
* updated hyperiond.test-binary
* Updated default SPI speed to the "correct" value.
My Pi was undervolted so was dropping the core clock confusing everything
* Code cleanups
explicitly set the final 3 bytes to 0
* Removed latchtime option - not applicable
* updated test binary
Former-commit-id: d3c19c8374999f7a554bb25ca181a8a483f86289
* Removed -HUP so the default -TERM signal is sent instead.
- hyperiond only listens for TERM and INT. HUP is often used to get an exe to reread its config
Changed pgrep to add '-x' so it wont partial match on the exe name.
- I have multiple instances with multiple hyperiond-instance1 names
- this ensures the service script only kills the right process
* reversing errant change to hyperion.systemd.sh
* started bug fixes for APA strips with more physical leds than configured
* 1st cut of changes to APA102.
now looks at config for "leds" which is the # of hardware leds in the strip.
This enables us to write the correct trailer length in the packet.
Also fixed a bug where switchoff was writing the wrong # of leds
* removed commented out old code
removed debug printf
* included prebuild test binary for Pi2
* Second attempt at the fix.
BEFORE:
If you have more physcial LEDs than defined in the "leds" "index" section of the config there is random junk added to the end of the strip.
WITH THIS FIX:
In the "device" section specify the number of physical leds with:
"leds" : 212,
If this is greater than the number of led indexes, additional LEDs are set to black
If this is smaller than the number of led indexes, it is ignored
* included test binary
* Clean exit if the device config is missing or a non-supported device type is specified
Former-commit-id: 8ae96188fa74d91b13a921e7d5faf6d6ac1c42ee
* Removed -HUP so the default -TERM signal is sent instead.
- hyperiond only listens for TERM and INT. HUP is often used to get an exe to reread its config
Changed pgrep to add '-x' so it wont partial match on the exe name.
- I have multiple instances with multiple hyperiond-instance1 names
- this ensures the service script only kills the right process
* reversing errant change to hyperion.systemd.sh
* Experimental changes to piblaster code to work how i think it should
It is now assumed that the PWM pins in groups of 3 correspond to RGB channels of the led.
"assignment" : "rgbrgbrgb",
Would result in:
//Channel number GPIO number Led channel
// 0 4 0 red
// 1 17 0 green
// 2 18 0 blue
// 4 27 1 red
// 5 21 1 green
// 6 22 1 blue
// 7 23 2 red
// 8 24 2 green
// 9 25 2 blue
* Ammend pwm channel mapping comments to match the code
* 1st cut of the new more flexible piblaster pin mapping support
it works but is still rough
* removed old "assignment" handling
- prints an error messaage if found and terminates
fixed the switchoff method
* removing iPins hard coded list of valid GPIO pins
* removed iPins array for switchOff function
* code cleanups
input validation
* Handle catching (and ignoring) SIGPIPE.
You can now kill and restart pi-blaster daemon and hyperiond will gracefully recover
* added a binary for testing
* Added sample config and my modified pi-blaster version to support more GPIOs
* moved hyperiond
* removed testing binaries
move sample configuration to the configs directory
* re enabled device config display
* removed sample configuration
Former-commit-id: 95e4d4ea2fb7cb5439e8cd597883a638da61a574
* Updated smoothing options for AtmoOrb, can now choose between Orb external or Hyperion's internal smoothing.
With skipSmoothingDif you can set the maximum allowed color difference before overriding / clearing Orb smoothing during faster color change like for instance color <-> black.
* Updated inline documentation.
* Fixed command type typo in AtmoOrb device.
* Corrected variable spelling in AtmoOrb device.
* Make smoothing also match equal values for AtmoOrb smoothing differential
Former-commit-id: 3eede43c2f76fa324f0144aeac0526b8125ad149
No functional changes, but
- files have been renamed
- the device name is now "file" not "test"
Former-commit-id: 3fbc03c3fe1d764654c1d28ebb80562ce6276ab1
2. Adds support for level shifters that invert the data
Config option - "invert" (integer)
if omitted, do not invert
if == 0, do not invert
if !=0, invert
Former-commit-id: fd5b2863a85b11ac3a8444d1e02822f852feb556
The RPi 2 and 3 have two PWM channels and 3 PWM pins available to the
gpio header. BCM18 and BCM12 run on PWM channel 0. BCM13 runs on PWM
channel 1. This change allows BCM13 to be used by allowing the PWM
channel to be specified.
Former-commit-id: 3693ab438c2b369e6307c262d32bba509409e5b9
Add a new WS281x driver which is a wrapper around jgarff's ws281x library which
works on Pi B+, Pi 2, Pi Zero and probably Pi 3 as well.
jgarff's ws281x library is included as a submodule
Former-commit-id: e473dfd36d31b14598da5e56e4b8bf9f2aa7bb24
But this doesn't protect if not forwarded to localhost "127.0.0.1". Loop connections across different hosts arn't detected too.
Former-commit-id: 464a80708ebd11c0f7c83dc87a1afe0f10e0e078
Adalightapa102 now inherits from RS232Device.
Due to bad initialization, previous CPU usage on RPI1 could reach 60%.
ON RPi2 20%. Now its about 3% with grabber in use.
Former-commit-id: 7ebb72f503ad74a7768deedf648b9e84c0a7cf3c
Added the new Lightstrip plus, hue go and Aura. The first two come with
a new Gamut profile and the Aura is from Living Colors.
Former-commit-id: 83b676bf136095f3069c219810ea361829d81558
I have removed the 'hack' that allowed to use APA102 with original
version of adalight. I have modified adalight code and placed it into
dependencies folder. This change is not backward compatible, so it won't
work with original adalight code.
The reason for the change is that last leds were not acting as they
should (last led red). Additionally with this change and new arduino
code, performance is lot better and lights change much smoother.
I have also changed switchOff method that requires different data sent
to apa102 to turn all leds off.
Enjoy :)
Jacek
Former-commit-id: 624fe6c429aee896b150d23289f0be19e040474d
This fixes a compatibility issue when compiling with gcc 4.6 (which is
the version distributed with raspbian by default)
Former-commit-id: ff8518cbc0627049526138b67f4965cedfdfd4be
This fix the previous limit of 64 APA102 leds, because of too short end frame. Now the end frame is computed accordling to this documentation: https://cpldcpu.wordpress.com/2014/11/30/understanding-the-apa102-superled/. Tested on my 98 leds, it works fine.
I suggest to modify hyperion to allow LED drivers to apply the brightness parameter because APA102 has a parameter for that, without the need to elaborate RGB color to simulate it (result is wrong colors!). Is it possible to introduce such parameter in LED drivers and let the driver apply that?
Former-commit-id: 2d714e6eb075ec57e0973839fe96d2d7a051c57f