1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

SOLVED Another "LEDs don't work" post

Discussion in 'Hardware Support' started by Mama's Fancy Light Box, 29 January 2018.

  1. Mama's Fancy Light Box

    Mama's Fancy Light Box New Member

    Messages:
    8
    Hardware:
    RPi1/Zero, +Arduino
    Hi All and many thanks in advance. Mods: please move this post if this is not the correct forum :)

    I'm thinking there is a communication issue between the Pi and the Arduino as everything works perfectly when the Arduino is connected to a PC running the Adalight Processing sketch but nada when connected to the Pi.

    Hyperion installed without a hitch using HyperCon on the Pi and based on logs, is responding to video, etc and even the remote Android app. However, there seems to be a lack of communication Pi --> Arduino as the indicators (small led arduino lights) show no activity except when connected to the PC.

    Too, other sketches sent to the Arduino work as expected (TwinkleFox, Demo Reel, etc etc). The initial Hyperion rainbow swirl effect never displays and when I select an effect from the Android app such as Knight Rider, it too does not display yet, the log shows the command being executed and seemingly without error.

    I'm using RPi with RasPlex connected to an Arduino Uno controlling 50 WS2811 (3-wire) string LEDs. LEDs are powered with a 5v 10A supply. The Arduino and Pi are powered separately with their respective power supplies so, there is no backpowering of devices in order to rule out those issues. The Arduino is connected to the Pi via USB with no other USB peripherals attached.

    The external frame grabber is disabled as I'm, at this point, going to only use the internal option for videos played via Plex.

    LEDs are connected to pin 6 of the Arduino with LED ground connected as well. Pi is connected via HDMI to the telly along with ethernet, of course.

    Pi is SPI-enabled as confirmed within config.txt:

    Code:
    # Required for hyperion / lightberry
      dtparam=spi=on
    
    Curiously, at the end of the file are these entries which duplicates the spi=on function but also adjusts the UART speed:

    Code:
    [all]
    include distroconfig.txt
    dtparam=spi=on
    
    #Increase UART speed
    init_uart_clock=14745600
    
    Arduino is using the "official" Hyperion sketch:

    Code:
    #include "FastLED.h"
    
    #define ANALOG_MODE_AVERAGE  0
    #define ANALOG_MODE_LAST_LED 1
    
    /**************************************
       S E T U P
    
       set following values to your needs
    **************************************/
    
    #define INITIAL_LED_TEST_ENABLED true
    #define INITIAL_LED_TEST_BRIGHTNESS 32  // 0..255
    #define INITIAL_LED_TEST_TIME_MS 500  // 10..
    
    // Number of leds in your strip. set to "1" and ANALOG_OUTPUT_ENABLED to "true" to activate analog only
    // As of 26/1/2017:
    // 582 leaves ZERO bytes free and this
    // 410 is ok
    // tested with 500 leds and is fine (despite the warning)
    #define MAX_LEDS 200
    
    // type of your led controller, possible values, see below
    #define LED_TYPE WS2812B
    
    // 3 wire (pwm): NEOPIXEL BTM1829 TM1812 TM1809 TM1804 TM1803 UCS1903 UCS1903B UCS1904 UCS2903 WS2812 WS2852
    //               S2812B SK6812 SK6822 APA106 PL9823 WS2811 WS2813 APA104 WS2811_40 GW6205 GW6205_40 LPD1886 LPD1886_8BIT
    // 4 wire (spi): LPD8806 WS2801 WS2803 SM16716 P9813 APA102 SK9822 DOTSTAR
    
    // For 3 wire led stripes line Neopixel/Ws2812, which have a data line, ground, and power, you just need to define DATA_PIN.
    // For led chipsets that are SPI based (four wires - data, clock, ground, and power), both defines DATA_PIN and CLOCK_PIN are needed
    
    // DATA_PIN, or DATA_PIN, CLOCK_PIN
    #define LED_PINS 6        // 3 wire leds
    //#define LED_PINS 6, 13  // 4 wire leds
    
    #define COLOR_ORDER RGB  // colororder of the stripe, set RGB in hyperion
    
    #define OFF_TIMEOUT 15000    // ms to switch off after no data was received, set 0 to deactivate
    
    // analog rgb uni color led stripe - using of hyperion smoothing is recommended
    // ATTENTION  this pin config is default for atmega328 based arduinos, others might work to
    //            if you have flickering analog leds this might be caused by unsynced pwm signals
    //            try other pins is more or less the only thing that helps
    #define ANALOG_OUTPUT_ENABLED false
    #define ANALOG_MODE           ANALOG_MODE_LAST_LED  // use ANALOG_MODE_AVERAGE or ANALOG_MODE_LAST_LED
    #define ANALOG_GROUND_PIN     8                     // additional ground pin to make wiring a bit easier
    #define ANALOG_RED_PIN        9
    #define ANALOG_GREEN_PIN      10
    #define ANALOG_BLUE_PIN       11
    
    // overall color adjustments
    #define ANALOG_BRIGHTNESS_RED   255              // maximum brightness for analog 0-255
    #define ANALOG_BRIGHTNESS_GREEN 255              // maximum brightness for analog 0-255
    #define ANALOG_BRIGHTNESS_BLUE  255              // maximum brightness for analog 0-255
    
    #define BRIGHTNESS 255                      // maximum brightness 0-255
    #define DITHER_MODE BINARY_DITHER           // BINARY_DITHER or DISABLE_DITHER
    #define COLOR_TEMPERATURE CRGB(255,255,255) // RGB value describing the color temperature
    #define COLOR_CORRECTION  TypicalLEDStrip   // predefined fastled color correction
    //#define COLOR_CORRECTION  CRGB(255,255,255) // or RGB value describing the color correction
    
    // Baudrate, higher rate allows faster refresh rate and more LEDs
    //#define serialRate 460800      // use 115200 for ftdi based boards
    #define serialRate 115200      // use 115200 for ftdi based boards
    //#define serialRate 500000         // use 115200 for ftdi based boards
    
    
    /**************************************
       A D A L I G H T   C O D E
    
       no user changes needed
    **************************************/
    
    // Adalight sends a "Magic Word" (defined in /etc/boblight.conf) before sending the pixel data
    uint8_t prefix[] = {'A', 'd', 'a'}, hi, lo, chk, i;
    
    unsigned long endTime;
    
    // Define the array of leds
    CRGB leds[MAX_LEDS];
    
    // set rgb to analog led stripe
    void showAnalogRGB(const CRGB& led) {
      if (ANALOG_OUTPUT_ENABLED) {
        byte r = map(led.r, 0,255,0,ANALOG_BRIGHTNESS_RED);
        byte g = map(led.g, 0,255,0,ANALOG_BRIGHTNESS_GREEN);
        byte b = map(led.b, 0,255,0,ANALOG_BRIGHTNESS_BLUE);
        analogWrite(ANALOG_RED_PIN  , r);
        analogWrite(ANALOG_GREEN_PIN, g);
        analogWrite(ANALOG_BLUE_PIN , b);
      }
    }
    
    // set color to all leds
    void showColor(const CRGB& led) {
      #if MAX_LEDS > 1 || ANALOG_OUTPUT_ENABLED == false
      LEDS.showColor(led);
      #endif
      showAnalogRGB(led);
    }
    
    // switch of digital and analog leds
    void switchOff() {
      #if MAX_LEDS > 1 || ANALOG_OUTPUT_ENABLED == false
      memset(leds, 0, MAX_LEDS * sizeof(struct CRGB));
      FastLED.show();
      #endif
      showAnalogRGB(leds[0]);
    }
    
    // function to check if serial data is available
    // if timeout occured leds switch of, if configured
    bool checkIncommingData() {
      boolean dataAvailable = true;
      while (!Serial.available()) {
        if ( OFF_TIMEOUT > 0 && endTime < millis()) {
          switchOff();
          dataAvailable = false;
          endTime = millis() + OFF_TIMEOUT;
        }
      }
    
      return dataAvailable;
    }
    
    // main function that setups and runs the code
    void setup() {
      Serial.begin(serialRate);
    
      // analog output
      if (ANALOG_OUTPUT_ENABLED) {
        // additional ground pin to make wiring a bit easier
        pinMode(ANALOG_GROUND_PIN, OUTPUT);
        digitalWrite(ANALOG_GROUND_PIN, LOW);
        pinMode(ANALOG_BLUE_PIN , OUTPUT);
        pinMode(ANALOG_RED_PIN  , OUTPUT);
        pinMode(ANALOG_GREEN_PIN, OUTPUT);
      }
    
      int ledCount = MAX_LEDS;
      if (ANALOG_MODE == ANALOG_MODE_LAST_LED) {
        ledCount--;
      }
    
      #if MAX_LEDS > 1 || ANALOG_OUTPUT_ENABLED == false
        FastLED.addLeds<LED_TYPE, LED_PINS, COLOR_ORDER>(leds, ledCount);
      #endif
      // color adjustments
      FastLED.setBrightness ( BRIGHTNESS );
      FastLED.setTemperature( COLOR_TEMPERATURE );
      FastLED.setCorrection ( COLOR_CORRECTION );
      FastLED.setDither     ( DITHER_MODE );
    
      // initial RGB flash
      #if INITIAL_LED_TEST_ENABLED == true
      for (int v=0;v<INITIAL_LED_TEST_BRIGHTNESS;v++)
      {
        showColor(CRGB(v,v,v));
        delay(INITIAL_LED_TEST_TIME_MS/2/INITIAL_LED_TEST_BRIGHTNESS);
      }
    
      for (int v=0;v<INITIAL_LED_TEST_BRIGHTNESS;v++)
      {
        showColor(CRGB(v,v,v));
        delay(INITIAL_LED_TEST_TIME_MS/2/INITIAL_LED_TEST_BRIGHTNESS);
      }
      #endif
      showColor(CRGB(0, 0, 0));
    
      Serial.print("Ada\n"); // Send "Magic Word" string to host
    
    
      boolean transmissionSuccess;
      unsigned long sum_r, sum_g, sum_b;
    
      // loop() is avoided as even that small bit of function overhead
      // has a measurable impact on this code's overall throughput.
      for(;;) {
        // wait for first byte of Magic Word
        for (i = 0; i < sizeof prefix; ++i) {
          // If next byte is not in Magic Word, the start over
          if (!checkIncommingData() || prefix[i] != Serial.read()) {
            i = 0;
          }
        }
    
        // Hi, Lo, Checksum
        if (!checkIncommingData()) continue;
        hi = Serial.read();
        if (!checkIncommingData()) continue;
        lo = Serial.read();
        if (!checkIncommingData()) continue;
        chk = Serial.read();
    
        // if checksum does not match go back to wait
        if (chk != (hi ^ lo ^ 0x55)) continue;
    
        memset(leds, 0, MAX_LEDS * sizeof(struct CRGB));
        transmissionSuccess = true;
        sum_r = 0;
        sum_g = 0;
        sum_b = 0;
    
        int num_leds = min ( MAX_LEDS, (hi<<8) + lo + 1 );
    
        // read the transmission data and set LED values
        for (int idx = 0; idx < num_leds; idx++) {
          byte r, g, b;
          if (!checkIncommingData()) {
            transmissionSuccess = false;
            break;
          }
          r = Serial.read();
          if (!checkIncommingData()) {
            transmissionSuccess = false;
            break;
          }
          g = Serial.read();
          if (!checkIncommingData()) {
            transmissionSuccess = false;
            break;
          }
          b = Serial.read();
          leds[idx].r = r;
          leds[idx].g = g;
          leds[idx].b = b;
          #if ANALOG_OUTPUT_ENABLED == true && ANALOG_MODE == ANALOG_MODE_AVERAGE
              sum_r += r;
              sum_g += g;
              sum_b += b;
          #endif
        }
    
        // shows new values
        if (transmissionSuccess) {
          endTime = millis() + OFF_TIMEOUT;
          #if MAX_LEDS > 1 || ANALOG_OUTPUT_ENABLED == false
          FastLED.show();
          #endif
    
          #if ANALOG_OUTPUT_ENABLED == true
            #if ANALOG_MODE == ANALOG_MODE_LAST_LED
              showAnalogRGB(leds[MAX_LEDS-1]);
            #else
              showAnalogRGB(CRGB(sum_r/MAX_LEDS, sum_g/MAX_LEDS, sum_b/MAX_LEDS));
             #endif
          #endif
        }
      }
    } // end of setup
    
    void loop() {
      // Not used. See note in setup() function.
    }
    

    The Pi's Hyperion config is:

    Code:
    // Automatically generated configuration file for Hyperion ambilight daemon
    // Notice: All values are explained with comments at our wiki: wiki.hyperion-project.org (config area)
    // Generated by: HyperCon (The Hyperion deamon configuration file builder)
    // Created with HyperCon V1.03.3 (22.10.2017)
    
    {
        // DEVICE CONFIGURATION
        "device" :
        {
            "name"       : "RasPlex_Config",
            "type"       : "ws281x",
            "leds"     : 50,
            "output"  : "/dev/ttyACM0",
            "rate"  : 115200,
            "colorOrder" : "rgb"
        },
    
        // COLOR CALIBRATION CONFIG
        "color" :
        {
            "channelAdjustment" :
            [
                {
                    "id"   : "default",
                    "leds" : "*",
                    "pureRed" :
                    {
                        "redChannel"        : 255,
                        "greenChannel"        : 0,
                        "blueChannel"        : 0
                    },
                    "pureGreen" :
                    {
                        "redChannel"        : 0,
                        "greenChannel"        : 255,
                        "blueChannel"        : 0
                    },
                    "pureBlue" :
                    {
                        "redChannel"        : 0,
                        "greenChannel"        : 0,
                        "blueChannel"        : 255
                    }
                }
            ],
            "temperature" :
            [
                {
                    "id"   : "default",
                    "leds" : "*",
                    "correctionValues" :
                    {
                        "red"     : 255,
                        "green"    : 255,
                        "blue"     : 255
                    }
                }
            ],
            "transform" :
            [
                {
                    "id"   : "default",
                    "leds" : "*",
                    "hsl" :
                    {
                        "saturationGain"    : 1.0000,
                        "luminanceGain"        : 1.0000,
                        "luminanceMinimum"        : 0.0000
                    },
                    "red" :
                    {
                        "threshold"     : 0.0000,
                        "gamma"        : 2.5000
                    },
                    "green" :
                    {
                        "threshold"     : 0.0000,
                        "gamma"        : 2.5000
                    },
                    "blue" :
                    {
                        "threshold"     : 0.0000,
                        "gamma"        : 2.5000
                    }
                }
            ],
        // SMOOTHING CONFIG
            "smoothing" :
            {
                "type"            : "linear",
                "time_ms"         : 200,
                "updateFrequency" : 20.0000,
                "updateDelay"     : 0
            }
        },
    
        // NO V4L2 GRABBER CONFIG
        // FRAME GRABBER CONFIG
        "framegrabber" :
        {
            "width" : 64,
            "height" : 64,
            "frequency_Hz" : 10.0,
            "priority" : 890
        },
    
        // BLACKBORDER CONFIG
        "blackborderdetector" :
        {
            "enable" : true,
            "threshold" : 0.01,
            "unknownFrameCnt" : 600,
            "borderFrameCnt" : 50,
            "maxInconsistentCnt" : 10,
            "blurRemoveCnt" : 1,
            "mode" : "classic"
        },
    
        // KODI CHECK CONFIG
        "xbmcVideoChecker" :
        {
            "xbmcAddress" : "127.0.0.1",
            "xbmcTcpPort" : 9090,
            "grabVideo" : true,
            "grabPictures" : true,
            "grabAudio" : true,
            "grabMenu" : true,
            "grabPause" : true,
            "grabScreensaver" : true,
            "enable3DDetection" : true
        },
    
        // BOOTEFFECT CONFIG
        "bootsequence" :
        {
            "color" : [66,244,188],
            "effect" : "Rainbow swirl",
            "duration_ms" : 3000,
            "priority" : 700
        },
    
        // JSON SERVER CONFIG
        "jsonServer" :
        {
            "port" : 19444
        },
    
        // PROTO SERVER CONFIG
        "protoServer" :
        {
            "port" : 19445
        },
    
        // JSON/PROTO FORWARD CONFIG
        "forwarder" :
        {
            "json" : ["127.0.0.1:19446"],
            "proto" : ["127.0.0.1:19447"]
        },
    
        // EFFECT PATH
        "effects" :
        {
            "paths" :
            [
                "/storage/hyperion/effects",
                "/usr/share/hyperion/effects",
                "/opt/hyperion/effects"
            ]
        },
    
        // NO BOBLIGHT SERVER CONFIG
    
        // LED CONFIGURATION
        "leds" :
        [
            {
                "index" : 0,
                "hscan" : { "minimum" : 0.8107, "maximum" : 0.8560 },
                "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
            },
            {
                "index" : 1,
                "hscan" : { "minimum" : 0.1440, "maximum" : 0.1893 },
                "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
            },
            {
                "index" : 2,
                "hscan" : { "minimum" : 0.0964, "maximum" : 0.1417 },
                "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
            },
            {
                "index" : 3,
                "hscan" : { "minimum" : 0.0488, "maximum" : 0.0940 },
                "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
            },
            {
                "index" : 4,
                "hscan" : { "minimum" : 0.0012, "maximum" : 0.0464 },
                "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
            },
            {
                "index" : 5,
                "hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
                "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
            },
            {
                "index" : 6,
                "hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
                "vscan" : { "minimum" : 0.9025, "maximum" : 0.9975 }
            },
            {
                "index" : 7,
                "hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
                "vscan" : { "minimum" : 0.8025, "maximum" : 0.8975 }
            },
            {
                "index" : 8,
                "hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
                "vscan" : { "minimum" : 0.7025, "maximum" : 0.7975 }
            },
            {
                "index" : 9,
                "hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
                "vscan" : { "minimum" : 0.6025, "maximum" : 0.6975 }
            },
            {
                "index" : 10,
                "hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
                "vscan" : { "minimum" : 0.5025, "maximum" : 0.5975 }
            },
            {
                "index" : 11,
                "hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
                "vscan" : { "minimum" : 0.4025, "maximum" : 0.4975 }
            },
            {
                "index" : 12,
                "hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
                "vscan" : { "minimum" : 0.3025, "maximum" : 0.3975 }
            },
            {
                "index" : 13,
                "hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
                "vscan" : { "minimum" : 0.2025, "maximum" : 0.2975 }
            },
            {
                "index" : 14,
                "hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
                "vscan" : { "minimum" : 0.1025, "maximum" : 0.1975 }
            },
            {
                "index" : 15,
                "hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
                "vscan" : { "minimum" : 0.0025, "maximum" : 0.0975 }
            },
            {
                "index" : 16,
                "hscan" : { "minimum" : 0.0012, "maximum" : 0.0464 },
                "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
            },
            {
                "index" : 17,
                "hscan" : { "minimum" : 0.0488, "maximum" : 0.0940 },
                "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
            },
            {
                "index" : 18,
                "hscan" : { "minimum" : 0.0964, "maximum" : 0.1417 },
                "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
            },
            {
                "index" : 19,
                "hscan" : { "minimum" : 0.1440, "maximum" : 0.1893 },
                "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
            },
            {
                "index" : 20,
                "hscan" : { "minimum" : 0.1917, "maximum" : 0.2369 },
                "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
            },
            {
                "index" : 21,
                "hscan" : { "minimum" : 0.2393, "maximum" : 0.2845 },
                "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
            },
            {
                "index" : 22,
                "hscan" : { "minimum" : 0.2869, "maximum" : 0.3321 },
                "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
            },
            {
                "index" : 23,
                "hscan" : { "minimum" : 0.3345, "maximum" : 0.3798 },
                "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
            },
            {
                "index" : 24,
                "hscan" : { "minimum" : 0.3821, "maximum" : 0.4274 },
                "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
            },
            {
                "index" : 25,
                "hscan" : { "minimum" : 0.4298, "maximum" : 0.4750 },
                "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
            },
            {
                "index" : 26,
                "hscan" : { "minimum" : 0.4774, "maximum" : 0.5226 },
                "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
            },
            {
                "index" : 27,
                "hscan" : { "minimum" : 0.5250, "maximum" : 0.5702 },
                "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
            },
            {
                "index" : 28,
                "hscan" : { "minimum" : 0.5726, "maximum" : 0.6179 },
                "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
            },
            {
                "index" : 29,
                "hscan" : { "minimum" : 0.6202, "maximum" : 0.6655 },
                "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
            },
            {
                "index" : 30,
                "hscan" : { "minimum" : 0.6679, "maximum" : 0.7131 },
                "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
            },
            {
                "index" : 31,
                "hscan" : { "minimum" : 0.7155, "maximum" : 0.7607 },
                "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
            },
            {
                "index" : 32,
                "hscan" : { "minimum" : 0.7631, "maximum" : 0.8083 },
                "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
            },
            {
                "index" : 33,
                "hscan" : { "minimum" : 0.8107, "maximum" : 0.8560 },
                "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
            },
            {
                "index" : 34,
                "hscan" : { "minimum" : 0.8583, "maximum" : 0.9036 },
                "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
            },
            {
                "index" : 35,
                "hscan" : { "minimum" : 0.9060, "maximum" : 0.9512 },
                "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
            },
            {
                "index" : 36,
                "hscan" : { "minimum" : 0.9536, "maximum" : 0.9988 },
                "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
            },
            {
                "index" : 37,
                "hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
                "vscan" : { "minimum" : 0.0025, "maximum" : 0.0975 }
            },
            {
                "index" : 38,
                "hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
                "vscan" : { "minimum" : 0.1025, "maximum" : 0.1975 }
            },
            {
                "index" : 39,
                "hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
                "vscan" : { "minimum" : 0.2025, "maximum" : 0.2975 }
            },
            {
                "index" : 40,
                "hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
                "vscan" : { "minimum" : 0.3025, "maximum" : 0.3975 }
            },
            {
                "index" : 41,
                "hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
                "vscan" : { "minimum" : 0.4025, "maximum" : 0.4975 }
            },
            {
                "index" : 42,
                "hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
                "vscan" : { "minimum" : 0.5025, "maximum" : 0.5975 }
            },
            {
                "index" : 43,
                "hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
                "vscan" : { "minimum" : 0.6025, "maximum" : 0.6975 }
            },
            {
                "index" : 44,
                "hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
                "vscan" : { "minimum" : 0.7025, "maximum" : 0.7975 }
            },
            {
                "index" : 45,
                "hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
                "vscan" : { "minimum" : 0.8025, "maximum" : 0.8975 }
            },
            {
                "index" : 46,
                "hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
                "vscan" : { "minimum" : 0.9025, "maximum" : 0.9975 }
            },
            {
                "index" : 47,
                "hscan" : { "minimum" : 0.9536, "maximum" : 0.9988 },
                "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
            },
            {
                "index" : 48,
                "hscan" : { "minimum" : 0.9060, "maximum" : 0.9512 },
                "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
            },
            {
                "index" : 49,
                "hscan" : { "minimum" : 0.8583, "maximum" : 0.9036 },
                "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
            }
        ],
    
        "endOfJson" : "endOfJson"
    }
    

    I've attempted adjusting serial baud rate on both devices (always matching) using 100000, 115200 and 5000000 with no success.

    Hyperion log shows activity and what appears to be normally working software. I did start and stop Hyperion several times as indicated in the log to ensure there were no errors:

    Code:
    SSH Traffic:
    ssh connected
    ssh out:     cat /storage/logfiles/hyperion.log
    ssh in:     Hyperion Ambilight Deamon (366)
    ssh in:         Version   : V1.03.3 (brindosch-2fbbcff/2f01dfa-1495880388
    ssh in:         Build Time: Jun  3 2017 02:06:37
    ssh in:     INFO: Selected configuration file: /storage/.config/hyperion.config.json
    ssh in:     HYPERION INFO: ColorTransform 'default' => [0; 49]
    ssh in:     HYPERION INFO: ColorCorrection 'default' => [0; 49]
    ssh in:     HYPERION INFO: ColorAdjustment 'default' => [0; 49]
    ssh in:     LEDDEVICE INFO: configuration:
    ssh in:     {
    ssh in:         "colorOrder" : "rgb",
    ssh in:         "leds" : 50,
    ssh in:         "name" : "RasPlex_Config",
    ssh in:         "output" : "/dev/ttyACM0",
    ssh in:         "rate" : 115200,
    ssh in:         "type" : "ws281x"
    ssh in:     }
    ssh in:     whiteAlgorithm ::
    ssh in:     HYPERION INFO: Json forward to 127.0.0.1:19446
    ssh in:     HYPERION INFO: Proto forward to 127.0.0.1:19447
    ssh in:     INFO: Creating linear smoothing
    ssh in:     HYPERION (CS) INFO: Created linear-smoothing(interval_ms=50;settlingTime_ms=200;updateDelay=0
    ssh in:     EFFECTENGINE INFO: 27 effects loaded from directory /storage/hyperion/effects
    ssh in:     EFFECTENGINE INFO: Initializing Python interpreter
    ssh in:     INFO: Hyperion started and initialised
    ssh in:     INFO: Boot sequence 'Rainbow swirl' EFFECTENGINE INFO: run effect Rainbow swirl on channel 0
    ssh in:     BLACKBORDER INFO: threshold set to 0.01 (3)
    ssh in:     BLACKBORDER INFO: mode:classic
    ssh in:     started
    ssh in:     INFO: Kodi checker created and started
    ssh in:     INFO: Json server created and started on port 19444
    ssh in:     PROTOCONNECTION INFO: Connecting to Hyperion: 127.0.0.1:19447
    ssh in:     INFO: Proto server created and started on port 19445
    ssh in:     DISPMANXGRABBER INFO: Display opened with resolution: 1920x1080
    ssh in:     BLACKBORDER INFO: threshold set to 0.01 (3)
    ssh in:     BLACKBORDER INFO: mode:classic
    ssh in:     INFO: Frame grabber created and started
    ssh in:     KODICHECK ERROR: Kodi Connection error (0)
    ssh in:     BORDER SWITCH REQUIRED!!
    ssh in:     CURRENT BORDER TYPE: unknown=0 hor.size=4 vert.size=3
    ssh in:     EFFECTENGINE INFO: effect finished
    ssh in:     KODICHECK ERROR: Kodi Connection error (0)
    ssh in:     KODICHECK ERROR: Kodi Connection error (0)
    ssh in:     KODICHECK ERROR: Kodi Connection error (0)
    ssh in:     KODICHECK INFO: Kodi Connected
    ssh in:     KODICHECK INFO: switching to MENU mode
    ssh in:     BORDER SWITCH REQUIRED!!
    ssh in:     CURRENT BORDER TYPE: unknown=0 hor.size=0 vert.size=0
    ssh in:     BORDER SWITCH REQUIRED!!
    ssh in:     CURRENT BORDER TYPE: unknown=0 hor.size=4 vert.size=4
    ssh in:     INFO: Application closed with code 0
    ssh in:     KODICHECK INFO: Kodi Disconnected
    ssh in:     EFFECTENGINE INFO: Cleaning up Python interpreter
    ssh in:     Shutdown WS281x PWM and DMA channel
    ssh out:     /storage/.config/autostart.sh > /dev/null 2>&1 &
    ssh out:     cat /storage/logfiles/hyperion.log
    ssh in:     Hyperion Ambilight Deamon (843)
    ssh in:         Version   : V1.03.3 (brindosch-2fbbcff/2f01dfa-1495880388
    ssh in:         Build Time: Jun  3 2017 02:06:37
    ssh in:     INFO: Selected configuration file: /storage/.config/hyperion.config.json
    ssh in:     HYPERION INFO: ColorTransform 'default' => [0; 49]
    ssh in:     HYPERION INFO: ColorCorrection 'default' => [0; 49]
    ssh in:     HYPERION INFO: ColorAdjustment 'default' => [0; 49]
    ssh in:     LEDDEVICE INFO: configuration:
    ssh in:     {
    ssh in:         "colorOrder" : "rgb",
    ssh in:         "leds" : 50,
    ssh in:         "name" : "RasPlex_Config",
    ssh in:         "output" : "/dev/ttyACM0",
    ssh in:         "rate" : 115200,
    ssh in:         "type" : "ws281x"
    ssh in:     }
    ssh in:     whiteAlgorithm ::
    ssh in:     HYPERION INFO: Json forward to 127.0.0.1:19446
    ssh in:     HYPERION INFO: Proto forward to 127.0.0.1:19447
    ssh in:     INFO: Creating linear smoothing
    ssh in:     HYPERION (CS) INFO: Created linear-smoothing(interval_ms=50;settlingTime_ms=200;updateDelay=0
    ssh in:     EFFECTENGINE INFO: 27 effects loaded from directory /storage/hyperion/effects
    ssh in:     EFFECTENGINE INFO: Initializing Python interpreter
    ssh in:     INFO: Hyperion started and initialised
    ssh in:     INFO: Boot sequence 'Rainbow swirl' EFFECTENGINE INFO: run effect Rainbow swirl on channel 0
    ssh in:     BLACKBORDER INFO: threshold set to 0.01 (3)
    ssh in:     BLACKBORDER INFO: mode:classic
    ssh in:     started
    ssh in:     INFO: Kodi checker created and started
    ssh in:     INFO: Json server created and started on port 19444
    ssh in:     PROTOCONNECTION INFO: Connecting to Hyperion: 127.0.0.1:19447
    ssh in:     INFO: Proto server created and started on port 19445
    ssh in:     DISPMANXGRABBER INFO: Display opened with resolution: 1920x1080
    ssh in:     BLACKBORDER INFO: threshold set to 0.01 (3)
    ssh in:     BLACKBORDER INFO: mode:classic
    ssh in:     INFO: Frame grabber created and started
    ssh in:     KODICHECK INFO: Kodi Connected
    ssh in:     KODICHECK INFO: switching to MENU mode
    ssh in:     BORDER SWITCH REQUIRED!!
    ssh in:     CURRENT BORDER TYPE: unknown=0 hor.size=4 vert.size=4
    ssh out:     cat /storage/logfiles/hyperion.log
    ssh in:     Hyperion Ambilight Deamon (843)
    ssh in:         Version   : V1.03.3 (brindosch-2fbbcff/2f01dfa-1495880388
    ssh in:         Build Time: Jun  3 2017 02:06:37
    ssh in:     INFO: Selected configuration file: /storage/.config/hyperion.config.json
    ssh in:     HYPERION INFO: ColorTransform 'default' => [0; 49]
    ssh in:     HYPERION INFO: ColorCorrection 'default' => [0; 49]
    ssh in:     HYPERION INFO: ColorAdjustment 'default' => [0; 49]
    ssh in:     LEDDEVICE INFO: configuration:
    ssh in:     {
    ssh in:         "colorOrder" : "rgb",
    ssh in:         "leds" : 50,
    ssh in:         "name" : "RasPlex_Config",
    ssh in:         "output" : "/dev/ttyACM0",
    ssh in:         "rate" : 115200,
    ssh in:         "type" : "ws281x"
    ssh in:     }
    ssh in:     whiteAlgorithm ::
    ssh in:     HYPERION INFO: Json forward to 127.0.0.1:19446
    ssh in:     HYPERION INFO: Proto forward to 127.0.0.1:19447
    ssh in:     INFO: Creating linear smoothing
    ssh in:     HYPERION (CS) INFO: Created linear-smoothing(interval_ms=50;settlingTime_ms=200;updateDelay=0
    ssh in:     EFFECTENGINE INFO: 27 effects loaded from directory /storage/hyperion/effects
    ssh in:     EFFECTENGINE INFO: Initializing Python interpreter
    ssh in:     INFO: Hyperion started and initialised
    ssh in:     INFO: Boot sequence 'Rainbow swirl' EFFECTENGINE INFO: run effect Rainbow swirl on channel 0
    ssh in:     BLACKBORDER INFO: threshold set to 0.01 (3)
    ssh in:     BLACKBORDER INFO: mode:classic
    ssh in:     started
    ssh in:     INFO: Kodi checker created and started
    ssh in:     INFO: Json server created and started on port 19444
    ssh in:     PROTOCONNECTION INFO: Connecting to Hyperion: 127.0.0.1:19447
    ssh in:     INFO: Proto server created and started on port 19445
    ssh in:     DISPMANXGRABBER INFO: Display opened with resolution: 1920x1080
    ssh in:     BLACKBORDER INFO: threshold set to 0.01 (3)
    ssh in:     BLACKBORDER INFO: mode:classic
    ssh in:     INFO: Frame grabber created and started
    ssh in:     KODICHECK INFO: Kodi Connected
    ssh in:     KODICHECK INFO: switching to MENU mode
    ssh in:     BORDER SWITCH REQUIRED!!
    ssh in:     CURRENT BORDER TYPE: unknown=0 hor.size=4 vert.size=4
    ssh in:     EFFECTENGINE INFO: effect finished
    ssh in:     JSONSERVER INFO: New connection
    ssh in:     BLACKBORDER INFO: threshold set to 0.01 (3)
    ssh in:     BLACKBORDER INFO: mode:classic
    ssh out:     cat /storage/logfiles/hyperion.log
    ssh in:     Hyperion Ambilight Deamon (843)
    ssh in:         Version   : V1.03.3 (brindosch-2fbbcff/2f01dfa-1495880388
    ssh in:         Build Time: Jun  3 2017 02:06:37
    ssh in:     INFO: Selected configuration file: /storage/.config/hyperion.config.json
    ssh in:     HYPERION INFO: ColorTransform 'default' => [0; 49]
    ssh in:     HYPERION INFO: ColorCorrection 'default' => [0; 49]
    ssh in:     HYPERION INFO: ColorAdjustment 'default' => [0; 49]
    ssh in:     LEDDEVICE INFO: configuration:
    ssh in:     {
    ssh in:         "colorOrder" : "rgb",
    ssh in:         "leds" : 50,
    ssh in:         "name" : "RasPlex_Config",
    ssh in:         "output" : "/dev/ttyACM0",
    ssh in:         "rate" : 115200,
    ssh in:         "type" : "ws281x"
    ssh in:     }
    ssh in:     whiteAlgorithm ::
    ssh in:     HYPERION INFO: Json forward to 127.0.0.1:19446
    ssh in:     HYPERION INFO: Proto forward to 127.0.0.1:19447
    ssh in:     INFO: Creating linear smoothing
    ssh in:     HYPERION (CS) INFO: Created linear-smoothing(interval_ms=50;settlingTime_ms=200;updateDelay=0
    ssh in:     EFFECTENGINE INFO: 27 effects loaded from directory /storage/hyperion/effects
    ssh in:     EFFECTENGINE INFO: Initializing Python interpreter
    ssh in:     INFO: Hyperion started and initialised
    ssh in:     INFO: Boot sequence 'Rainbow swirl' EFFECTENGINE INFO: run effect Rainbow swirl on channel 0
    ssh in:     BLACKBORDER INFO: threshold set to 0.01 (3)
    ssh in:     BLACKBORDER INFO: mode:classic
    ssh in:     started
    ssh in:     INFO: Kodi checker created and started
    ssh in:     INFO: Json server created and started on port 19444
    ssh in:     PROTOCONNECTION INFO: Connecting to Hyperion: 127.0.0.1:19447
    ssh in:     INFO: Proto server created and started on port 19445
    ssh in:     DISPMANXGRABBER INFO: Display opened with resolution: 1920x1080
    ssh in:     BLACKBORDER INFO: threshold set to 0.01 (3)
    ssh in:     BLACKBORDER INFO: mode:classic
    ssh in:     INFO: Frame grabber created and started
    ssh in:     KODICHECK INFO: Kodi Connected
    ssh in:     KODICHECK INFO: switching to MENU mode
    ssh in:     BORDER SWITCH REQUIRED!!
    ssh in:     CURRENT BORDER TYPE: unknown=0 hor.size=4 vert.size=4
    ssh in:     EFFECTENGINE INFO: effect finished
    ssh in:     JSONSERVER INFO: New connection
    ssh in:     BLACKBORDER INFO: threshold set to 0.01 (3)
    ssh in:     BLACKBORDER INFO: mode:classic
    ssh in:     EFFECTENGINE INFO: run effect Knight rider on channel 50
    ssh in:     BLACKBORDER INFO: threshold set to 0.01 (3)
    ssh in:     BLACKBORDER INFO: mode:classic
    ssh out:     cat /storage/logfiles/hyperion.log
    ssh in:     Hyperion Ambilight Deamon (843)
    ssh in:         Version   : V1.03.3 (brindosch-2fbbcff/2f01dfa-1495880388
    ssh in:         Build Time: Jun  3 2017 02:06:37
    ssh in:     INFO: Selected configuration file: /storage/.config/hyperion.config.json
    ssh in:     HYPERION INFO: ColorTransform 'default' => [0; 49]
    ssh in:     HYPERION INFO: ColorCorrection 'default' => [0; 49]
    ssh in:     HYPERION INFO: ColorAdjustment 'default' => [0; 49]
    ssh in:     LEDDEVICE INFO: configuration:
    ssh in:     {
    ssh in:         "colorOrder" : "rgb",
    ssh in:         "leds" : 50,
    ssh in:         "name" : "RasPlex_Config",
    ssh in:         "output" : "/dev/ttyACM0",
    ssh in:         "rate" : 115200,
    ssh in:         "type" : "ws281x"
    ssh in:     }
    ssh in:     whiteAlgorithm ::
    ssh in:     HYPERION INFO: Json forward to 127.0.0.1:19446
    ssh in:     HYPERION INFO: Proto forward to 127.0.0.1:19447
    ssh in:     INFO: Creating linear smoothing
    ssh in:     HYPERION (CS) INFO: Created linear-smoothing(interval_ms=50;settlingTime_ms=200;updateDelay=0
    ssh in:     EFFECTENGINE INFO: 27 effects loaded from directory /storage/hyperion/effects
    ssh in:     EFFECTENGINE INFO: Initializing Python interpreter
    ssh in:     INFO: Hyperion started and initialised
    ssh in:     INFO: Boot sequence 'Rainbow swirl' EFFECTENGINE INFO: run effect Rainbow swirl on channel 0
    ssh in:     BLACKBORDER INFO: threshold set to 0.01 (3)
    ssh in:     BLACKBORDER INFO: mode:classic
    ssh in:     started
    ssh in:     INFO: Kodi checker created and started
    ssh in:     INFO: Json server created and started on port 19444
    ssh in:     PROTOCONNECTION INFO: Connecting to Hyperion: 127.0.0.1:19447
    ssh in:     INFO: Proto server created and started on port 19445
    ssh in:     DISPMANXGRABBER INFO: Display opened with resolution: 1920x1080
    ssh in:     BLACKBORDER INFO: threshold set to 0.01 (3)
    ssh in:     BLACKBORDER INFO: mode:classic
    ssh in:     INFO: Frame grabber created and started
    ssh in:     KODICHECK INFO: Kodi Connected
    ssh in:     KODICHECK INFO: switching to MENU mode
    ssh in:     BORDER SWITCH REQUIRED!!
    ssh in:     CURRENT BORDER TYPE: unknown=0 hor.size=4 vert.size=4
    ssh in:     EFFECTENGINE INFO: effect finished
    ssh in:     JSONSERVER INFO: New connection
    ssh in:     BLACKBORDER INFO: threshold set to 0.01 (3)
    ssh in:     BLACKBORDER INFO: mode:classic
    ssh in:     EFFECTENGINE INFO: run effect Knight rider on channel 50
    ssh in:     BLACKBORDER INFO: threshold set to 0.01 (3)
    ssh in:     BLACKBORDER INFO: mode:classic
    ssh in:     JSONSERVER INFO: Connection closed
    ssh in:     BORDER SWITCH REQUIRED!!
    ssh in:     CURRENT BORDER TYPE: unknown=0 hor.size=0 vert.size=0
    ssh out:     cat /storage/logfiles/hyperion.log
    ssh in:     Hyperion Ambilight Deamon (843)
    ssh in:         Version   : V1.03.3 (brindosch-2fbbcff/2f01dfa-1495880388
    ssh in:         Build Time: Jun  3 2017 02:06:37
    ssh in:     INFO: Selected configuration file: /storage/.config/hyperion.config.json
    ssh in:     HYPERION INFO: ColorTransform 'default' => [0; 49]
    ssh in:     HYPERION INFO: ColorCorrection 'default' => [0; 49]
    ssh in:     HYPERION INFO: ColorAdjustment 'default' => [0; 49]
    ssh in:     LEDDEVICE INFO: configuration:
    ssh in:     {
    ssh in:         "colorOrder" : "rgb",
    ssh in:         "leds" : 50,
    ssh in:         "name" : "RasPlex_Config",
    ssh in:         "output" : "/dev/ttyACM0",
    ssh in:         "rate" : 115200,
    ssh in:         "type" : "ws281x"
    ssh in:     }
    ssh in:     whiteAlgorithm ::
    ssh in:     HYPERION INFO: Json forward to 127.0.0.1:19446
    ssh in:     HYPERION INFO: Proto forward to 127.0.0.1:19447
    ssh in:     INFO: Creating linear smoothing
    ssh in:     HYPERION (CS) INFO: Created linear-smoothing(interval_ms=50;settlingTime_ms=200;updateDelay=0
    ssh in:     EFFECTENGINE INFO: 27 effects loaded from directory /storage/hyperion/effects
    ssh in:     EFFECTENGINE INFO: Initializing Python interpreter
    ssh in:     INFO: Hyperion started and initialised
    ssh in:     INFO: Boot sequence 'Rainbow swirl' EFFECTENGINE INFO: run effect Rainbow swirl on channel 0
    ssh in:     BLACKBORDER INFO: threshold set to 0.01 (3)
    ssh in:     BLACKBORDER INFO: mode:classic
    ssh in:     started
    ssh in:     INFO: Kodi checker created and started
    ssh in:     INFO: Json server created and started on port 19444
    ssh in:     PROTOCONNECTION INFO: Connecting to Hyperion: 127.0.0.1:19447
    ssh in:     INFO: Proto server created and started on port 19445
    ssh in:     DISPMANXGRABBER INFO: Display opened with resolution: 1920x1080
    ssh in:     BLACKBORDER INFO: threshold set to 0.01 (3)
    ssh in:     BLACKBORDER INFO: mode:classic
    ssh in:     INFO: Frame grabber created and started
    ssh in:     KODICHECK INFO: Kodi Connected
    ssh in:     KODICHECK INFO: switching to MENU mode
    ssh in:     BORDER SWITCH REQUIRED!!
    ssh in:     CURRENT BORDER TYPE: unknown=0 hor.size=4 vert.size=4
    ssh in:     EFFECTENGINE INFO: effect finished
    ssh in:     JSONSERVER INFO: New connection
    ssh in:     BLACKBORDER INFO: threshold set to 0.01 (3)
    ssh in:     BLACKBORDER INFO: mode:classic
    ssh in:     EFFECTENGINE INFO: run effect Knight rider on channel 50
    ssh in:     BLACKBORDER INFO: threshold set to 0.01 (3)
    ssh in:     BLACKBORDER INFO: mode:classic
    ssh in:     JSONSERVER INFO: Connection closed
    ssh in:     BORDER SWITCH REQUIRED!!
    ssh in:     CURRENT BORDER TYPE: unknown=0 hor.size=0 vert.size=0
    ssh in:     BORDER SWITCH REQUIRED!!
    ssh in:     CURRENT BORDER TYPE: unknown=0 hor.size=0 vert.size=4
    ssh out:     cat /storage/logfiles/hyperion.log
    ssh in:     Hyperion Ambilight Deamon (843)
    ssh in:         Version   : V1.03.3 (brindosch-2fbbcff/2f01dfa-1495880388
    ssh in:         Build Time: Jun  3 2017 02:06:37
    ssh in:     INFO: Selected configuration file: /storage/.config/hyperion.config.json
    ssh in:     HYPERION INFO: ColorTransform 'default' => [0; 49]
    ssh in:     HYPERION INFO: ColorCorrection 'default' => [0; 49]
    ssh in:     HYPERION INFO: ColorAdjustment 'default' => [0; 49]
    ssh in:     LEDDEVICE INFO: configuration:
    ssh in:     {
    ssh in:         "colorOrder" : "rgb",
    ssh in:         "leds" : 50,
    ssh in:         "name" : "RasPlex_Config",
    ssh in:         "output" : "/dev/ttyACM0",
    ssh in:         "rate" : 115200,
    ssh in:         "type" : "ws281x"
    ssh in:     }
    ssh in:     whiteAlgorithm ::
    ssh in:     HYPERION INFO: Json forward to 127.0.0.1:19446
    ssh in:     HYPERION INFO: Proto forward to 127.0.0.1:19447
    ssh in:     INFO: Creating linear smoothing
    ssh in:     HYPERION (CS) INFO: Created linear-smoothing(interval_ms=50;settlingTime_ms=200;updateDelay=0
    ssh in:     EFFECTENGINE INFO: 27 effects loaded from directory /storage/hyperion/effects
    ssh in:     EFFECTENGINE INFO: Initializing Python interpreter
    ssh in:     INFO: Hyperion started and initialised
    ssh in:     INFO: Boot sequence 'Rainbow swirl' EFFECTENGINE INFO: run effect Rainbow swirl on channel 0
    ssh in:     BLACKBORDER INFO: threshold set to 0.01 (3)
    ssh in:     BLACKBORDER INFO: mode:classic
    ssh in:     started
    ssh in:     INFO: Kodi checker created and started
    ssh in:     INFO: Json server created and started on port 19444
    ssh in:     PROTOCONNECTION INFO: Connecting to Hyperion: 127.0.0.1:19447
    ssh in:     INFO: Proto server created and started on port 19445
    ssh in:     DISPMANXGRABBER INFO: Display opened with resolution: 1920x1080
    ssh in:     BLACKBORDER INFO: threshold set to 0.01 (3)
    ssh in:     BLACKBORDER INFO: mode:classic
    ssh in:     INFO: Frame grabber created and started
    ssh in:     KODICHECK INFO: Kodi Connected
    ssh in:     KODICHECK INFO: switching to MENU mode
    ssh in:     BORDER SWITCH REQUIRED!!
    ssh in:     CURRENT BORDER TYPE: unknown=0 hor.size=4 vert.size=4
    ssh in:     EFFECTENGINE INFO: effect finished
    ssh in:     JSONSERVER INFO: New connection
    ssh in:     BLACKBORDER INFO: threshold set to 0.01 (3)
    ssh in:     BLACKBORDER INFO: mode:classic
    ssh in:     EFFECTENGINE INFO: run effect Knight rider on channel 50
    ssh in:     BLACKBORDER INFO: threshold set to 0.01 (3)
    ssh in:     BLACKBORDER INFO: mode:classic
    ssh in:     JSONSERVER INFO: Connection closed
    ssh in:     BORDER SWITCH REQUIRED!!
    ssh in:     CURRENT BORDER TYPE: unknown=0 hor.size=0 vert.size=0
    ssh in:     BORDER SWITCH REQUIRED!!
    ssh in:     CURRENT BORDER TYPE: unknown=0 hor.size=0 vert.size=4
    ssh out:     cat /storage/logfiles/hyperion.log
    ssh in:     Hyperion Ambilight Deamon (843)
    ssh in:         Version   : V1.03.3 (brindosch-2fbbcff/2f01dfa-1495880388
    ssh in:         Build Time: Jun  3 2017 02:06:37
    ssh in:     INFO: Selected configuration file: /storage/.config/hyperion.config.json
    ssh in:     HYPERION INFO: ColorTransform 'default' => [0; 49]
    ssh in:     HYPERION INFO: ColorCorrection 'default' => [0; 49]
    ssh in:     HYPERION INFO: ColorAdjustment 'default' => [0; 49]
    ssh in:     LEDDEVICE INFO: configuration:
    ssh in:     {
    ssh in:         "colorOrder" : "rgb",
    ssh in:         "leds" : 50,
    ssh in:         "name" : "RasPlex_Config",
    ssh in:         "output" : "/dev/ttyACM0",
    ssh in:         "rate" : 115200,
    ssh in:         "type" : "ws281x"
    ssh in:     }
    ssh in:     whiteAlgorithm ::
    ssh in:     HYPERION INFO: Json forward to 127.0.0.1:19446
    ssh in:     HYPERION INFO: Proto forward to 127.0.0.1:19447
    ssh in:     INFO: Creating linear smoothing
    ssh in:     HYPERION (CS) INFO: Created linear-smoothing(interval_ms=50;settlingTime_ms=200;updateDelay=0
    ssh in:     EFFECTENGINE INFO: 27 effects loaded from directory /storage/hyperion/effects
    ssh in:     EFFECTENGINE INFO: Initializing Python interpreter
    ssh in:     INFO: Hyperion started and initialised
    ssh in:     INFO: Boot sequence 'Rainbow swirl' EFFECTENGINE INFO: run effect Rainbow swirl on channel 0
    ssh in:     BLACKBORDER INFO: threshold set to 0.01 (3)
    ssh in:     BLACKBORDER INFO: mode:classic
    ssh in:     started
    ssh in:     INFO: Kodi checker created and started
    ssh in:     INFO: Json server created and started on port 19444
    ssh in:     PROTOCONNECTION INFO: Connecting to Hyperion: 127.0.0.1:19447
    ssh in:     INFO: Proto server created and started on port 19445
    ssh in:     DISPMANXGRABBER INFO: Display opened with resolution: 1920x1080
    ssh in:     BLACKBORDER INFO: threshold set to 0.01 (3)
    ssh in:     BLACKBORDER INFO: mode:classic
    ssh in:     INFO: Frame grabber created and started
    ssh in:     KODICHECK INFO: Kodi Connected
    ssh in:     KODICHECK INFO: switching to MENU mode
    ssh in:     BORDER SWITCH REQUIRED!!
    ssh in:     CURRENT BORDER TYPE: unknown=0 hor.size=4 vert.size=4
    ssh in:     EFFECTENGINE INFO: effect finished
    ssh in:     JSONSERVER INFO: New connection
    ssh in:     BLACKBORDER INFO: threshold set to 0.01 (3)
    ssh in:     BLACKBORDER INFO: mode:classic
    ssh in:     EFFECTENGINE INFO: run effect Knight rider on channel 50
    ssh in:     BLACKBORDER INFO: threshold set to 0.01 (3)
    ssh in:     BLACKBORDER INFO: mode:classic
    ssh in:     JSONSERVER INFO: Connection closed
    ssh in:     BORDER SWITCH REQUIRED!!
    ssh in:     CURRENT BORDER TYPE: unknown=0 hor.size=0 vert.size=0
    ssh in:     BORDER SWITCH REQUIRED!!
    ssh in:     CURRENT BORDER TYPE: unknown=0 hor.size=0 vert.size=4
    ssh out:     cat /storage/logfiles/hyperion.log
    ssh in:     Hyperion Ambilight Deamon (843)
    ssh in:         Version   : V1.03.3 (brindosch-2fbbcff/2f01dfa-1495880388
    ssh in:         Build Time: Jun  3 2017 02:06:37
    ssh in:     INFO: Selected configuration file: /storage/.config/hyperion.config.json
    ssh in:     HYPERION INFO: ColorTransform 'default' => [0; 49]
    ssh in:     HYPERION INFO: ColorCorrection 'default' => [0; 49]
    ssh in:     HYPERION INFO: ColorAdjustment 'default' => [0; 49]
    ssh in:     LEDDEVICE INFO: configuration:
    ssh in:     {
    ssh in:         "colorOrder" : "rgb",
    ssh in:         "leds" : 50,
    ssh in:         "name" : "RasPlex_Config",
    ssh in:         "output" : "/dev/ttyACM0",
    ssh in:         "rate" : 115200,
    ssh in:         "type" : "ws281x"
    ssh in:     }
    ssh in:     whiteAlgorithm ::
    ssh in:     HYPERION INFO: Json forward to 127.0.0.1:19446
    ssh in:     HYPERION INFO: Proto forward to 127.0.0.1:19447
    ssh in:     INFO: Creating linear smoothing
    ssh in:     HYPERION (CS) INFO: Created linear-smoothing(interval_ms=50;settlingTime_ms=200;updateDelay=0
    ssh in:     EFFECTENGINE INFO: 27 effects loaded from directory /storage/hyperion/effects
    ssh in:     EFFECTENGINE INFO: Initializing Python interpreter
    ssh in:     INFO: Hyperion started and initialised
    ssh in:     INFO: Boot sequence 'Rainbow swirl' EFFECTENGINE INFO: run effect Rainbow swirl on channel 0
    ssh in:     BLACKBORDER INFO: threshold set to 0.01 (3)
    ssh in:     BLACKBORDER INFO: mode:classic
    ssh in:     started
    ssh in:     INFO: Kodi checker created and started
    ssh in:     INFO: Json server created and started on port 19444
    ssh in:     PROTOCONNECTION INFO: Connecting to Hyperion: 127.0.0.1:19447
    ssh in:     INFO: Proto server created and started on port 19445
    ssh in:     DISPMANXGRABBER INFO: Display opened with resolution: 1920x1080
    ssh in:     BLACKBORDER INFO: threshold set to 0.01 (3)
    ssh in:     BLACKBORDER INFO: mode:classic
    ssh in:     INFO: Frame grabber created and started
    ssh in:     KODICHECK INFO: Kodi Connected
    ssh in:     KODICHECK INFO: switching to MENU mode
    ssh in:     BORDER SWITCH REQUIRED!!
    ssh in:     CURRENT BORDER TYPE: unknown=0 hor.size=4 vert.size=4
    ssh in:     EFFECTENGINE INFO: effect finished
    ssh in:     JSONSERVER INFO: New connection
    ssh in:     BLACKBORDER INFO: threshold set to 0.01 (3)
    ssh in:     BLACKBORDER INFO: mode:classic
    ssh in:     EFFECTENGINE INFO: run effect Knight rider on channel 50
    ssh in:     BLACKBORDER INFO: threshold set to 0.01 (3)
    ssh in:     BLACKBORDER INFO: mode:classic
    ssh in:     JSONSERVER INFO: Connection closed
    ssh in:     BORDER SWITCH REQUIRED!!
    ssh in:     CURRENT BORDER TYPE: unknown=0 hor.size=0 vert.size=0
    ssh in:     BORDER SWITCH REQUIRED!!
    ssh in:     CURRENT BORDER TYPE: unknown=0 hor.size=0 vert.size=4
    ssh in:     KODICHECK INFO: switching to VIDEO mode
    ssh out:     cat /storage/logfiles/hyperion.log
    ssh in:     Hyperion Ambilight Deamon (843)
    ssh in:         Version   : V1.03.3 (brindosch-2fbbcff/2f01dfa-1495880388
    ssh in:         Build Time: Jun  3 2017 02:06:37
    ssh in:     INFO: Selected configuration file: /storage/.config/hyperion.config.json
    ssh in:     HYPERION INFO: ColorTransform 'default' => [0; 49]
    ssh in:     HYPERION INFO: ColorCorrection 'default' => [0; 49]
    ssh in:     HYPERION INFO: ColorAdjustment 'default' => [0; 49]
    ssh in:     LEDDEVICE INFO: configuration:
    ssh in:     {
    ssh in:         "colorOrder" : "rgb",
    ssh in:         "leds" : 50,
    ssh in:         "name" : "RasPlex_Config",
    ssh in:         "output" : "/dev/ttyACM0",
    ssh in:         "rate" : 115200,
    ssh in:         "type" : "ws281x"
    ssh in:     }
    ssh in:     whiteAlgorithm ::
    ssh in:     HYPERION INFO: Json forward to 127.0.0.1:19446
    ssh in:     HYPERION INFO: Proto forward to 127.0.0.1:19447
    ssh in:     INFO: Creating linear smoothing
    ssh in:     HYPERION (CS) INFO: Created linear-smoothing(interval_ms=50;settlingTime_ms=200;updateDelay=0
    ssh in:     EFFECTENGINE INFO: 27 effects loaded from directory /storage/hyperion/effects
    ssh in:     EFFECTENGINE INFO: Initializing Python interpreter
    ssh in:     INFO: Hyperion started and initialised
    ssh in:     INFO: Boot sequence 'Rainbow swirl' EFFECTENGINE INFO: run effect Rainbow swirl on channel 0
    ssh in:     BLACKBORDER INFO: threshold set to 0.01 (3)
    ssh in:     BLACKBORDER INFO: mode:classic
    ssh in:     started
    ssh in:     INFO: Kodi checker created and started
    ssh in:     INFO: Json server created and started on port 19444
    ssh in:     PROTOCONNECTION INFO: Connecting to Hyperion: 127.0.0.1:19447
    ssh in:     INFO: Proto server created and started on port 19445
    ssh in:     DISPMANXGRABBER INFO: Display opened with resolution: 1920x1080
    ssh in:     BLACKBORDER INFO: threshold set to 0.01 (3)
    ssh in:     BLACKBORDER INFO: mode:classic
    ssh in:     INFO: Frame grabber created and started
    ssh in:     KODICHECK INFO: Kodi Connected
    ssh in:     KODICHECK INFO: switching to MENU mode
    ssh in:     BORDER SWITCH REQUIRED!!
    ssh in:     CURRENT BORDER TYPE: unknown=0 hor.size=4 vert.size=4
    ssh in:     EFFECTENGINE INFO: effect finished
    ssh in:     JSONSERVER INFO: New connection
    ssh in:     BLACKBORDER INFO: threshold set to 0.01 (3)
    ssh in:     BLACKBORDER INFO: mode:classic
    ssh in:     EFFECTENGINE INFO: run effect Knight rider on channel 50
    ssh in:     BLACKBORDER INFO: threshold set to 0.01 (3)
    ssh in:     BLACKBORDER INFO: mode:classic
    ssh in:     JSONSERVER INFO: Connection closed
    ssh in:     BORDER SWITCH REQUIRED!!
    ssh in:     CURRENT BORDER TYPE: unknown=0 hor.size=0 vert.size=0
    ssh in:     BORDER SWITCH REQUIRED!!
    ssh in:     CURRENT BORDER TYPE: unknown=0 hor.size=0 vert.size=4
    ssh in:     KODICHECK INFO: switching to VIDEO mode
    ssh in:     BORDER SWITCH REQUIRED!!
    ssh in:     CURRENT BORDER TYPE: unknown=0 hor.size=0 vert.size=0
    ssh in:     KODICHECK INFO: switching to MENU mode
    ssh out:     killall hyperiond 2>/dev/null
    ssh out:     cat /storage/logfiles/hyperion.log
    ssh in:     Hyperion Ambilight Deamon (843)
    ssh in:         Version   : V1.03.3 (brindosch-2fbbcff/2f01dfa-1495880388
    ssh in:         Build Time: Jun  3 2017 02:06:37
    ssh in:     INFO: Selected configuration file: /storage/.config/hyperion.config.json
    ssh in:     HYPERION INFO: ColorTransform 'default' => [0; 49]
    ssh in:     HYPERION INFO: ColorCorrection 'default' => [0; 49]
    ssh in:     HYPERION INFO: ColorAdjustment 'default' => [0; 49]
    ssh in:     LEDDEVICE INFO: configuration:
    ssh in:     {
    ssh in:         "colorOrder" : "rgb",
    ssh in:         "leds" : 50,
    ssh in:         "name" : "RasPlex_Config",
    ssh in:         "output" : "/dev/ttyACM0",
    ssh in:         "rate" : 115200,
    ssh in:         "type" : "ws281x"
    ssh in:     }
    ssh in:     whiteAlgorithm ::
    ssh in:     HYPERION INFO: Json forward to 127.0.0.1:19446
    ssh in:     HYPERION INFO: Proto forward to 127.0.0.1:19447
    ssh in:     INFO: Creating linear smoothing
    ssh in:     HYPERION (CS) INFO: Created linear-smoothing(interval_ms=50;settlingTime_ms=200;updateDelay=0
    ssh in:     EFFECTENGINE INFO: 27 effects loaded from directory /storage/hyperion/effects
    ssh in:     EFFECTENGINE INFO: Initializing Python interpreter
    ssh in:     INFO: Hyperion started and initialised
    ssh in:     INFO: Boot sequence 'Rainbow swirl' EFFECTENGINE INFO: run effect Rainbow swirl on channel 0
    ssh in:     BLACKBORDER INFO: threshold set to 0.01 (3)
    ssh in:     BLACKBORDER INFO: mode:classic
    ssh in:     started
    ssh in:     INFO: Kodi checker created and started
    ssh in:     INFO: Json server created and started on port 19444
    ssh in:     PROTOCONNECTION INFO: Connecting to Hyperion: 127.0.0.1:19447
    ssh in:     INFO: Proto server created and started on port 19445
    ssh in:     DISPMANXGRABBER INFO: Display opened with resolution: 1920x1080
    ssh in:     BLACKBORDER INFO: threshold set to 0.01 (3)
    ssh in:     BLACKBORDER INFO: mode:classic
    ssh in:     INFO: Frame grabber created and started
    ssh in:     KODICHECK INFO: Kodi Connected
    ssh in:     KODICHECK INFO: switching to MENU mode
    ssh in:     BORDER SWITCH REQUIRED!!
    ssh in:     CURRENT BORDER TYPE: unknown=0 hor.size=4 vert.size=4
    ssh in:     EFFECTENGINE INFO: effect finished
    ssh in:     JSONSERVER INFO: New connection
    ssh in:     BLACKBORDER INFO: threshold set to 0.01 (3)
    ssh in:     BLACKBORDER INFO: mode:classic
    ssh in:     EFFECTENGINE INFO: run effect Knight rider on channel 50
    ssh in:     BLACKBORDER INFO: threshold set to 0.01 (3)
    ssh in:     BLACKBORDER INFO: mode:classic
    ssh in:     JSONSERVER INFO: Connection closed
    ssh in:     BORDER SWITCH REQUIRED!!
    ssh in:     CURRENT BORDER TYPE: unknown=0 hor.size=0 vert.size=0
    ssh in:     BORDER SWITCH REQUIRED!!
    ssh in:     CURRENT BORDER TYPE: unknown=0 hor.size=0 vert.size=4
    ssh in:     KODICHECK INFO: switching to VIDEO mode
    ssh in:     BORDER SWITCH REQUIRED!!
    ssh in:     CURRENT BORDER TYPE: unknown=0 hor.size=0 vert.size=0
    ssh in:     KODICHECK INFO: switching to MENU mode
    ssh in:     BORDER SWITCH REQUIRED!!
    ssh in:     CURRENT BORDER TYPE: unknown=0 hor.size=0 vert.size=4
    ssh in:     BORDER SWITCH REQUIRED!!
    ssh in:     CURRENT BORDER TYPE: unknown=0 hor.size=0 vert.size=0
    ssh in:     INFO: Application closed with code 0
    ssh in:     KODICHECK INFO: Kodi Disconnected
    ssh in:     EFFECTENGINE INFO: Cleaning up Python interpreter
    ssh in:     Shutdown WS281x PWM and DMA channel
    

    I tested the communication between the Pi and Arduino by installing Sketch on the Pi and successfully uploading to the Arduino so it seems they can at least communicate. I've also swapped out USB cables and even tried a different Arduino unit to no avail which makes me think it may be something on the Pi, configuration or otherwise.

    Hopefully I've provided enough details and in the correct format. I'm thinking I've overlooked something simple. Thoughts?
     
  2. Akriss

    Akriss Active Member

    Messages:
    299
    Hardware:
    RPi1/Zero, RPi2, RPi3, 32/64bit, +Arduino, +nodeMCU/ESP8266
    Your Arduino might be located on "/dev/ttyUSB0".and not on "/dev/ttyACM0"
     
  3. Mama's Fancy Light Box

    Mama's Fancy Light Box New Member

    Messages:
    8
    Hardware:
    RPi1/Zero, +Arduino
    Should have mentioned that I did test various output devices and the Arduino definitely connects on ACM0. Used ls /dev/tty* before plugging in the Arduino and compared the output to after plugging in the Arduino and it does show up on ACM0.
     
  4. Akriss

    Akriss Active Member

    Messages:
    299
    Hardware:
    RPi1/Zero, RPi2, RPi3, 32/64bit, +Arduino, +nodeMCU/ESP8266
    You have this hardware.
    But you have this in the sketch.
    50 leds and WS2811 it should be.
     
    • Like Like x 1
  5. Mama's Fancy Light Box

    Mama's Fancy Light Box New Member

    Messages:
    8
    Hardware:
    RPi1/Zero, +Arduino
    Not sure how I missed that - thanks!. Changed it and reuploaded the sketch:

    Code:
    // tested with 500 leds and is fine (despite the warning)
    #define MAX_LEDS 50
    
    // type of your led controller, possible values, see below
    #define LED_TYPE WS2811
    
    Unfortunately, results are the same except that now when the Arduino boots there are two quick flashes of the LEDs - all at once and in white.
     
  6. Andy

    Andy New Member

    Messages:
    8
    Hardware:
    RPi3, +Arduino
    Out of curiosity, what happens when you change the Type parameter to "Adalight" in the Hypercon config?

    I'm running a similar setup to yours and I didn't get any response from the Arduino until I changed the Type parameter.
     
    • Like Like x 2
  7. Akriss

    Akriss Active Member

    Messages:
    299
    Hardware:
    RPi1/Zero, RPi2, RPi3, 32/64bit, +Arduino, +nodeMCU/ESP8266
    That's a Good thing. It a test of sorts.It happens when the Arduino powers on and the uploaded sketch matches the attached led's.

    :thumbsup: Sharper eyes then me.
     
    • Like Like x 2
  8. Andy

    Andy New Member

    Messages:
    8
    Hardware:
    RPi3, +Arduino
    That exact problem drove me nuts for an hour this past weekend. I'm down to 2 small other issues (Effects don't work, either via the Hyperion startup sequence or via HyperCon from my phone; and the last LED in the string doesn't light even though the Adalight script blinks it in ITS startup and I have the proper number of LEDs defined in my config), but that's best saved for a thread of its own.
     
  9. Mama's Fancy Light Box

    Mama's Fancy Light Box New Member

    Messages:
    8
    Hardware:
    RPi1/Zero, +Arduino
    Ok ... I changed type to Adalight and ended up with a string of errors then realized I had spelled "Adalight" incorrectly. Changed it, restarted Hyperion and reset the Arduino and was greeted with the Rainbow Swirl then ... fancy lights around the video :D

    Tested the Android app ... works.

    Tested changing the colour within Hypercon ... works.

    Thank you ever so much!

    Posting my final configs below so if anyone has the same configuration they can try the same.

    Code:
    // Automatically generated configuration file for Hyperion ambilight daemon
    // Notice: All values are explained with comments at our wiki: wiki.hyperion-project.org (config area)
    // Generated by: HyperCon (The Hyperion deamon configuration file builder)
    // Created with HyperCon V1.03.3 (22.10.2017)
    
    {
        // DEVICE CONFIGURATION
        "device" :
        {
            "name"       : "RasPlex_Config",
            "type"       : "Adalight",
            "leds"     : 50,
            "output"  : "/dev/ttyACM0",
            "rate"  : 115200,
            "delayAfterConnect"    :    10,
            "colorOrder" : "rgb"
        },
    
        // COLOR CALIBRATION CONFIG
        "color" :
        {
            "channelAdjustment" :
            [
                {
                    "id"   : "default",
                    "leds" : "*",
                    "pureRed" :
                    {
                        "redChannel"        : 255,
                        "greenChannel"        : 0,
                        "blueChannel"        : 0
                    },
                    "pureGreen" :
                    {
                        "redChannel"        : 0,
                        "greenChannel"        : 255,
                        "blueChannel"        : 0
                    },
                    "pureBlue" :
                    {
                        "redChannel"        : 0,
                        "greenChannel"        : 0,
                        "blueChannel"        : 255
                    }
                }
            ],
            "temperature" :
            [
                {
                    "id"   : "default",
                    "leds" : "*",
                    "correctionValues" :
                    {
                        "red"     : 255,
                        "green"    : 255,
                        "blue"     : 255
                    }
                }
            ],
            "transform" :
            [
                {
                    "id"   : "default",
                    "leds" : "*",
                    "hsl" :
                    {
                        "saturationGain"    : 1.0000,
                        "luminanceGain"        : 1.0000,
                        "luminanceMinimum"        : 0.0000
                    },
                    "red" :
                    {
                        "threshold"     : 0.0000,
                        "gamma"        : 2.5000
                    },
                    "green" :
                    {
                        "threshold"     : 0.0000,
                        "gamma"        : 2.5000
                    },
                    "blue" :
                    {
                        "threshold"     : 0.0000,
                        "gamma"        : 2.5000
                    }
                }
            ],
        // SMOOTHING CONFIG
            "smoothing" :
            {
                "type"            : "linear",
                "time_ms"         : 200,
                "updateFrequency" : 20.0000,
                "updateDelay"     : 0
            }
        },
    
        // NO V4L2 GRABBER CONFIG
        // FRAME GRABBER CONFIG
        "framegrabber" :
        {
            "width" : 64,
            "height" : 64,
            "frequency_Hz" : 10.0,
            "priority" : 890
        },
    
        // BLACKBORDER CONFIG
        "blackborderdetector" :
        {
            "enable" : true,
            "threshold" : 0.01,
            "unknownFrameCnt" : 600,
            "borderFrameCnt" : 50,
            "maxInconsistentCnt" : 10,
            "blurRemoveCnt" : 1,
            "mode" : "classic"
        },
    
        // KODI CHECK CONFIG
        "xbmcVideoChecker" :
        {
            "xbmcAddress" : "127.0.0.1",
            "xbmcTcpPort" : 9090,
            "grabVideo" : true,
            "grabPictures" : true,
            "grabAudio" : true,
            "grabMenu" : true,
            "grabPause" : true,
            "grabScreensaver" : true,
            "enable3DDetection" : true
        },
    
        // BOOTEFFECT CONFIG
        "bootsequence" :
        {
            "color" : [66,244,188],
            "effect" : "Rainbow swirl",
            "duration_ms" : 3000,
            "priority" : 700
        },
    
        // JSON SERVER CONFIGURATION
        "jsonServer" :
        {
            "port" : 19444
        },
    
        // PROTO SERVER CONFIG
        "protoServer" :
        {
            "port" : 19445
        },
    
        // JSON/PROTO FORWARD CONFIG
        "forwarder" :
        {
            "json" : ["127.0.0.1:19446"],
            "proto" : ["127.0.0.1:19447"]
        },
    
        // EFFECT PATH
        "effects" :
        {
            "paths" :
            [
                "/storage/hyperion/effects",
                "/usr/share/hyperion/effects",
                "/opt/hyperion/effects"
            ]
        },
    
        // NO BOBLIGHT SERVER CONFIG
    
        // LED CONFIGURATION
        "leds" :
        [
            {
                "index" : 0,
                "hscan" : { "minimum" : 0.8107, "maximum" : 0.8560 },
                "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
            },
            {
                "index" : 1,
                "hscan" : { "minimum" : 0.1440, "maximum" : 0.1893 },
                "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
            },
            {
                "index" : 2,
                "hscan" : { "minimum" : 0.0964, "maximum" : 0.1417 },
                "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
            },
            {
                "index" : 3,
                "hscan" : { "minimum" : 0.0488, "maximum" : 0.0940 },
                "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
            },
            {
                "index" : 4,
                "hscan" : { "minimum" : 0.0012, "maximum" : 0.0464 },
                "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
            },
            {
                "index" : 5,
                "hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
                "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
            },
            {
                "index" : 6,
                "hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
                "vscan" : { "minimum" : 0.9025, "maximum" : 0.9975 }
            },
            {
                "index" : 7,
                "hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
                "vscan" : { "minimum" : 0.8025, "maximum" : 0.8975 }
            },
            {
                "index" : 8,
                "hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
                "vscan" : { "minimum" : 0.7025, "maximum" : 0.7975 }
            },
            {
                "index" : 9,
                "hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
                "vscan" : { "minimum" : 0.6025, "maximum" : 0.6975 }
            },
            {
                "index" : 10,
                "hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
                "vscan" : { "minimum" : 0.5025, "maximum" : 0.5975 }
            },
            {
                "index" : 11,
                "hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
                "vscan" : { "minimum" : 0.4025, "maximum" : 0.4975 }
            },
            {
                "index" : 12,
                "hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
                "vscan" : { "minimum" : 0.3025, "maximum" : 0.3975 }
            },
            {
                "index" : 13,
                "hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
                "vscan" : { "minimum" : 0.2025, "maximum" : 0.2975 }
            },
            {
                "index" : 14,
                "hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
                "vscan" : { "minimum" : 0.1025, "maximum" : 0.1975 }
            },
            {
                "index" : 15,
                "hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
                "vscan" : { "minimum" : 0.0025, "maximum" : 0.0975 }
            },
            {
                "index" : 16,
                "hscan" : { "minimum" : 0.0012, "maximum" : 0.0464 },
                "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
            },
            {
                "index" : 17,
                "hscan" : { "minimum" : 0.0488, "maximum" : 0.0940 },
                "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
            },
            {
                "index" : 18,
                "hscan" : { "minimum" : 0.0964, "maximum" : 0.1417 },
                "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
            },
            {
                "index" : 19,
                "hscan" : { "minimum" : 0.1440, "maximum" : 0.1893 },
                "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
            },
            {
                "index" : 20,
                "hscan" : { "minimum" : 0.1917, "maximum" : 0.2369 },
                "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
            },
            {
                "index" : 21,
                "hscan" : { "minimum" : 0.2393, "maximum" : 0.2845 },
                "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
            },
            {
                "index" : 22,
                "hscan" : { "minimum" : 0.2869, "maximum" : 0.3321 },
                "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
            },
            {
                "index" : 23,
                "hscan" : { "minimum" : 0.3345, "maximum" : 0.3798 },
                "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
            },
            {
                "index" : 24,
                "hscan" : { "minimum" : 0.3821, "maximum" : 0.4274 },
                "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
            },
            {
                "index" : 25,
                "hscan" : { "minimum" : 0.4298, "maximum" : 0.4750 },
                "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
            },
            {
                "index" : 26,
                "hscan" : { "minimum" : 0.4774, "maximum" : 0.5226 },
                "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
            },
            {
                "index" : 27,
                "hscan" : { "minimum" : 0.5250, "maximum" : 0.5702 },
                "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
            },
            {
                "index" : 28,
                "hscan" : { "minimum" : 0.5726, "maximum" : 0.6179 },
                "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
            },
            {
                "index" : 29,
                "hscan" : { "minimum" : 0.6202, "maximum" : 0.6655 },
                "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
            },
            {
                "index" : 30,
                "hscan" : { "minimum" : 0.6679, "maximum" : 0.7131 },
                "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
            },
            {
                "index" : 31,
                "hscan" : { "minimum" : 0.7155, "maximum" : 0.7607 },
                "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
            },
            {
                "index" : 32,
                "hscan" : { "minimum" : 0.7631, "maximum" : 0.8083 },
                "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
            },
            {
                "index" : 33,
                "hscan" : { "minimum" : 0.8107, "maximum" : 0.8560 },
                "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
            },
            {
                "index" : 34,
                "hscan" : { "minimum" : 0.8583, "maximum" : 0.9036 },
                "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
            },
            {
                "index" : 35,
                "hscan" : { "minimum" : 0.9060, "maximum" : 0.9512 },
                "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
            },
            {
                "index" : 36,
                "hscan" : { "minimum" : 0.9536, "maximum" : 0.9988 },
                "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
            },
            {
                "index" : 37,
                "hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
                "vscan" : { "minimum" : 0.0025, "maximum" : 0.0975 }
            },
            {
                "index" : 38,
                "hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
                "vscan" : { "minimum" : 0.1025, "maximum" : 0.1975 }
            },
            {
                "index" : 39,
                "hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
                "vscan" : { "minimum" : 0.2025, "maximum" : 0.2975 }
            },
            {
                "index" : 40,
                "hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
                "vscan" : { "minimum" : 0.3025, "maximum" : 0.3975 }
            },
            {
                "index" : 41,
                "hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
                "vscan" : { "minimum" : 0.4025, "maximum" : 0.4975 }
            },
            {
                "index" : 42,
                "hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
                "vscan" : { "minimum" : 0.5025, "maximum" : 0.5975 }
            },
            {
                "index" : 43,
                "hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
                "vscan" : { "minimum" : 0.6025, "maximum" : 0.6975 }
            },
            {
                "index" : 44,
                "hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
                "vscan" : { "minimum" : 0.7025, "maximum" : 0.7975 }
            },
            {
                "index" : 45,
                "hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
                "vscan" : { "minimum" : 0.8025, "maximum" : 0.8975 }
            },
            {
                "index" : 46,
                "hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
                "vscan" : { "minimum" : 0.9025, "maximum" : 0.9975 }
            },
            {
                "index" : 47,
                "hscan" : { "minimum" : 0.9536, "maximum" : 0.9988 },
                "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
            },
            {
                "index" : 48,
                "hscan" : { "minimum" : 0.9060, "maximum" : 0.9512 },
                "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
            },
            {
                "index" : 49,
                "hscan" : { "minimum" : 0.8583, "maximum" : 0.9036 },
                "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
            }
        ],
    
        "endOfJson" : "endOfJson"
    }
    

    Code:
    #include "FastLED.h"
    
    #define ANALOG_MODE_AVERAGE  0
    #define ANALOG_MODE_LAST_LED 1
    
    /**************************************
       S E T U P
    
       set following values to your needs
     **************************************/
    
    #define INITIAL_LED_TEST_ENABLED true
    #define INITIAL_LED_TEST_BRIGHTNESS 32  // 0..255
    #define INITIAL_LED_TEST_TIME_MS 500  // 10..
    
    // Number of leds in your strip. set to "1" and ANALOG_OUTPUT_ENABLED to "true" to activate analog only
    // As of 26/1/2017:
    // 582 leaves ZERO bytes free and this
    // 410 is ok
    // tested with 500 leds and is fine (despite the warning)
    #define MAX_LEDS 90
    
    // type of your led controller, possible values, see below
    #define LED_TYPE WS2812B
    
    // 3 wire (pwm): NEOPIXEL BTM1829 TM1812 TM1809 TM1804 TM1803 UCS1903 UCS1903B UCS1904 UCS2903 WS2812 WS2852
    //               S2812B SK6812 SK6822 APA106 PL9823 WS2811 WS2813 APA104 WS2811_40 GW6205 GW6205_40 LPD1886 LPD1886_8BIT 
    // 4 wire (spi): LPD8806 WS2801 WS2803 SM16716 P9813 APA102 SK9822 DOTSTAR
    
    // For 3 wire led stripes line Neopixel/Ws2812, which have a data line, ground, and power, you just need to define DATA_PIN.
    // For led chipsets that are SPI based (four wires - data, clock, ground, and power), both defines DATA_PIN and CLOCK_PIN are needed
    
    // DATA_PIN, or DATA_PIN, CLOCK_PIN
    #define LED_PINS 6        // 3 wire leds
    //#define LED_PINS 6, 13  // 4 wire leds
    
    #define COLOR_ORDER RGB  // colororder of the stripe, set RGB in hyperion
    
    #define OFF_TIMEOUT 15000    // ms to switch off after no data was received, set 0 to deactivate
    
    // analog rgb uni color led stripe - using of hyperion smoothing is recommended
    // ATTENTION  this pin config is default for atmega328 based arduinos, others might work to
    //            if you have flickering analog leds this might be caused by unsynced pwm signals
    //            try other pins is more or less the only thing that helps
    #define ANALOG_OUTPUT_ENABLED false
    #define ANALOG_MODE           ANALOG_MODE_LAST_LED  // use ANALOG_MODE_AVERAGE or ANALOG_MODE_LAST_LED
    #define ANALOG_GROUND_PIN     8                     // additional ground pin to make wiring a bit easier
    #define ANALOG_RED_PIN        9
    #define ANALOG_GREEN_PIN      10
    #define ANALOG_BLUE_PIN       11
    
    // overall color adjustments
    #define ANALOG_BRIGHTNESS_RED   255              // maximum brightness for analog 0-255
    #define ANALOG_BRIGHTNESS_GREEN 255              // maximum brightness for analog 0-255
    #define ANALOG_BRIGHTNESS_BLUE  255              // maximum brightness for analog 0-255
    
    #define BRIGHTNESS 255                      // maximum brightness 0-255
    #define DITHER_MODE BINARY_DITHER           // BINARY_DITHER or DISABLE_DITHER
    #define COLOR_TEMPERATURE CRGB(255,255,255) // RGB value describing the color temperature
    #define COLOR_CORRECTION  TypicalLEDStrip   // predefined fastled color correction
    //#define COLOR_CORRECTION  CRGB(255,255,255) // or RGB value describing the color correction
    
    // Baudrate, higher rate allows faster refresh rate and more LEDs
    //#define serialRate 460800      // use 115200 for ftdi based boards
    #define serialRate 115200      // use 115200 for ftdi based boards
    //#define serialRate 500000         // use 115200 for ftdi based boards
    
    
    /**************************************
       A D A L I G H T   C O D E
    
       no user changes needed
     **************************************/
    
    // Adalight sends a "Magic Word" (defined in /etc/boblight.conf) before sending the pixel data
    uint8_t prefix[] = {'A', 'd', 'a'}, hi, lo, chk, i;
    
    unsigned long endTime;
    
    // Define the array of leds
    CRGB leds[MAX_LEDS];
    
    // set rgb to analog led stripe
    void showAnalogRGB(const CRGB& led) {
      if (ANALOG_OUTPUT_ENABLED) {
        byte r = map(led.r, 0,255,0,ANALOG_BRIGHTNESS_RED);
        byte g = map(led.g, 0,255,0,ANALOG_BRIGHTNESS_GREEN);
        byte b = map(led.b, 0,255,0,ANALOG_BRIGHTNESS_BLUE);
        analogWrite(ANALOG_RED_PIN  , r);
        analogWrite(ANALOG_GREEN_PIN, g);
        analogWrite(ANALOG_BLUE_PIN , b);
      }
    }
    
    // set color to all leds
    void showColor(const CRGB& led) {
      #if MAX_LEDS > 1 || ANALOG_OUTPUT_ENABLED == false
      LEDS.showColor(led);
      #endif
      showAnalogRGB(led);
    }
    
    // switch of digital and analog leds
    void switchOff() {
      #if MAX_LEDS > 1 || ANALOG_OUTPUT_ENABLED == false
      memset(leds, 0, MAX_LEDS * sizeof(struct CRGB));
      FastLED.show();
      #endif
      showAnalogRGB(leds[0]);
    }
    
    // function to check if serial data is available
    // if timeout occured leds switch of, if configured
    bool checkIncommingData() {
      boolean dataAvailable = true;
      while (!Serial.available()) {
        if ( OFF_TIMEOUT > 0 && endTime < millis()) {
          switchOff();
          dataAvailable = false;
          endTime = millis() + OFF_TIMEOUT;
        }
      }
    
      return dataAvailable;
    }
    
    // main function that setups and runs the code
    void setup() {
      Serial.begin(serialRate);
    
      // analog output
      if (ANALOG_OUTPUT_ENABLED) {
        // additional ground pin to make wiring a bit easier
        pinMode(ANALOG_GROUND_PIN, OUTPUT);
        digitalWrite(ANALOG_GROUND_PIN, LOW);
        pinMode(ANALOG_BLUE_PIN , OUTPUT);
        pinMode(ANALOG_RED_PIN  , OUTPUT);
        pinMode(ANALOG_GREEN_PIN, OUTPUT);
      }
    
      int ledCount = MAX_LEDS;
      if (ANALOG_MODE == ANALOG_MODE_LAST_LED) {
        ledCount--;
      }
    
      #if MAX_LEDS > 1 || ANALOG_OUTPUT_ENABLED == false
        FastLED.addLeds<LED_TYPE, LED_PINS, COLOR_ORDER>(leds, ledCount);
      #endif
      // color adjustments
      FastLED.setBrightness ( BRIGHTNESS );
      FastLED.setTemperature( COLOR_TEMPERATURE );
      FastLED.setCorrection ( COLOR_CORRECTION );
      FastLED.setDither     ( DITHER_MODE );
    
      // initial RGB flash
      #if INITIAL_LED_TEST_ENABLED == true
      for (int v=0;v<INITIAL_LED_TEST_BRIGHTNESS;v++)
      {
        showColor(CRGB(v,v,v)); 
        delay(INITIAL_LED_TEST_TIME_MS/2/INITIAL_LED_TEST_BRIGHTNESS);
      }
    
      for (int v=0;v<INITIAL_LED_TEST_BRIGHTNESS;v++)
      {
        showColor(CRGB(v,v,v)); 
        delay(INITIAL_LED_TEST_TIME_MS/2/INITIAL_LED_TEST_BRIGHTNESS);
      }
      #endif
      showColor(CRGB(0, 0, 0));
    
      Serial.print("Ada\n"); // Send "Magic Word" string to host
    
    
      boolean transmissionSuccess;
      unsigned long sum_r, sum_g, sum_b;
    
      // loop() is avoided as even that small bit of function overhead
      // has a measurable impact on this code's overall throughput.
      for(;;) {
        // wait for first byte of Magic Word
        for (i = 0; i < sizeof prefix; ++i) {
          // If next byte is not in Magic Word, the start over
          if (!checkIncommingData() || prefix[i] != Serial.read()) {
            i = 0;
          }
        }
    
        // Hi, Lo, Checksum
        if (!checkIncommingData()) continue;
        hi = Serial.read();
        if (!checkIncommingData()) continue;
        lo = Serial.read();
        if (!checkIncommingData()) continue;
        chk = Serial.read();
    
        // if checksum does not match go back to wait
        if (chk != (hi ^ lo ^ 0x55)) continue;
    
        memset(leds, 0, MAX_LEDS * sizeof(struct CRGB));
        transmissionSuccess = true;
        sum_r = 0;
        sum_g = 0;
        sum_b = 0;
    
        int num_leds = min ( MAX_LEDS, (hi<<8) + lo + 1 );
    
        // read the transmission data and set LED values
        for (int idx = 0; idx < num_leds; idx++) {
          byte r, g, b;
          if (!checkIncommingData()) {
            transmissionSuccess = false;
            break;
          }
          r = Serial.read();
          if (!checkIncommingData()) {
            transmissionSuccess = false;
            break;
          }
          g = Serial.read();
          if (!checkIncommingData()) {
            transmissionSuccess = false;
            break;
          }
          b = Serial.read();
          leds[idx].r = r;
          leds[idx].g = g;
          leds[idx].b = b;
          #if ANALOG_OUTPUT_ENABLED == true && ANALOG_MODE == ANALOG_MODE_AVERAGE
              sum_r += r;
              sum_g += g;
              sum_b += b;
          #endif
        }
    
        // shows new values
        if (transmissionSuccess) {
          endTime = millis() + OFF_TIMEOUT;
          #if MAX_LEDS > 1 || ANALOG_OUTPUT_ENABLED == false
          FastLED.show();
          #endif
    
          #if ANALOG_OUTPUT_ENABLED == true
            #if ANALOG_MODE == ANALOG_MODE_LAST_LED
              showAnalogRGB(leds[MAX_LEDS-1]);
            #else
              showAnalogRGB(CRGB(sum_r/MAX_LEDS, sum_g/MAX_LEDS, sum_b/MAX_LEDS));
             #endif
          #endif
        }
      }
    } // end of setup
    
    void loop() {
      // Not used. See note in setup() function.
    }
    

    Next steps: Properly attach the LEDs to the telly and duplicate the setup for my bedroom telly. Thanks again!
     
    Last edited: 12 February 2018
    • Like Like x 1
  10. Andy

    Andy New Member

    Messages:
    8
    Hardware:
    RPi3, +Arduino
    Mama,

    We're running very similar setups. Is the last LED in your string responding to what's on the screen? Mine works fine on the Arduino startup and in Hyperion effects, but not when reacting to the screen.
     
  11. Mama's Fancy Light Box

    Mama's Fancy Light Box New Member

    Messages:
    8
    Hardware:
    RPi1/Zero, +Arduino
    The last LED on mine is responding similarly. Interesting. I just spent the better part of an hour looking at the same. Mine works fine on the initial double white burst from the Arduino but Hyperion startup, effects, etc all ignore the last LED. Probably a topic for another post - going to search the forums a while to see if this has been previously discussed.
     
  12. Andy

    Andy New Member

    Messages:
    8
    Hardware:
    RPi3, +Arduino
    Mama,

    So, the last LED doesn't work in Hyperion effects at all, but the initial double white burst does work? Our symptoms match exactly, except for that one detail. My last LED works on everything EXCEPT responding to what's on the screen. Startup flash worked on all 222 before I disabled it, Hyperion effects work (including if I add a startup effect to the Hyperion config, it responds to the color wheel in HyperCon and the Hyperion app. Very weird....
     
  13. Mama's Fancy Light Box

    Mama's Fancy Light Box New Member

    Messages:
    8
    Hardware:
    RPi1/Zero, +Arduino
    Sorry for the delayed response ... yes to what you stated. Out of curiosity I saved an image of the SD Card, then tried a couple other varieties of Kodi including LibreElec, OSMC and OpenElec. Although they are supposed to be extremely similar I found installation and usage very different for each and even quite a few ambiguous instructions ex: LibreElec site says DO NOT use the LibreElec-specific add-on rather use the standard Hyperion install ... meanwhile ... Hyperion says DO use the LibreEelec add-on. OSMC: complete mess and could not get anything to work. OpenElec ... nightmare. LibreEelec: using the Hyperion standard install was easy-peasy and the internal grabber works like a charm but the external grabber is a no-go.

    My point to the blabbering above: my LEDs worked 100% perfectly as intended in all flavours of Kodi *except* for RasPlex. Something is amiss there.
     
  14. Andy

    Andy New Member

    Messages:
    8
    Hardware:
    RPi3, +Arduino
    And I'm using a straight install of Hyperion via HyperCon on a stock Raspbian Stretch image. I wasn't going to use any of the extra stuff, so I went with as basic as I could.
     
  15. Josepdal

    Josepdal New Member

    Messages:
    1
    Hardware:
    RPi3, +Arduino

    Can you please share the right arduino config? (you posted the same one twice)

    I am having this issue and I have no idea how to solve it. Thanks in advance!

    I've tried with openelec and raspbian, right now i am using raspbian using the hypercon installer and i can't even change the colors "ssh out: Unable to connect to host"

    If anyone can help me I can even pay him. If there is any group or something in telegram, please, advise me, my username is @Josepdal
     
    Last edited: 11 February 2018
  16. Mama's Fancy Light Box

    Mama's Fancy Light Box New Member

    Messages:
    8
    Hardware:
    RPi1/Zero, +Arduino
    Didn't realize I did that but the Arduino sketch that I am currently using is the same as the first one I posted. It's also the "official" Hyperion offered sketch you'll find on this site.As far as having the same issue: are speaking of nothing working or simply the last LED not lighting? If you're still having issues, please create a seperate thread and be sure to include all the pertinent details ... exact hardware/software, Arduino sketch, Hyperion config and list the exact steps you have taken. This will help tremendously. :)

    Edit: didn't notice you "quoted" a portion of the thread (small screen format here). I simply changed the "Type" within the Hyperion config to "Adalight" from "WS2812" and it worked. I did not change the Arduino sketch.