So I have a problem with my setup everything seems to be working fine but the image seems to be zoomed. Ive included my Config Setup and and a video, can anyone Help me I have been working on this for a while with no luck.
Setup is raspberry pi 3b+ running raspbian full desktop with an arduino i don't really know what type of leds I have but they only work with the adalight setting and only that setting. I installed Hyperion connecting with ssh and using the hyperion.jar that I downloaded here.
Here's my Hyperion 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" : "MyHyperionConfig",
"type" : "adalight",
"output" : "/dev/ttyACM0",
"rate" : 1000000,
"delayAfterConnect" : 0,
"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
}
},
// V4L2 GRABBER CONFIG
"grabber-v4l2" :
{
"device" : "/dev/video0",
"input" : 0,
"standard" : "NTSC",
"width" : -1,
"height" : -1,
"frameDecimation" : 2,
"sizeDecimation" : 8,
"priority" : 900,
"mode" : "2D",
"cropLeft" : 0,
"cropRight" : 0,
"cropTop" : 0,
"cropBottom" : 0,
"redSignalThreshold" : 0.0,
"greenSignalThreshold" : 0.0,
"blueSignalThreshold" : 0.0
},
// BLACKBORDER CONFIG
"blackborderdetector" :
{
"enable" : true,
"threshold" : 0.15,
"unknownFrameCnt" : 600,
"borderFrameCnt" : 50,
"maxInconsistentCnt" : 5,
"blurRemoveCnt" : 1,
"mode" : "default"
},
// BOOTEFFECT CONFIG
"bootsequence" :
{
"color" : [0,0,0],
"effect" : "Knight rider",
"duration_ms" : 3000,
"priority" : 700
},
// JSON SERVER CONFIG
"jsonServer" :
{
"port" : 19444
},
// PROTO SERVER CONFIG
"protoServer" :
{
"port" : 19445
},
// BOBLIGHT SERVER CONFIG
"boblightServer" :
{
"port" : 19333,
"priority" : 900
},
// 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"
]
},
// NO FRAME GRABBER CONFIG
// NO KODI CHECK CONFIG
// LED CONFIGURATION
"leds" :
[
{
"index" : 0,
"hscan" : { "minimum" : 0.1212, "maximum" : 0.1515 },
"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
},
{
"index" : 1,
"hscan" : { "minimum" : 0.1515, "maximum" : 0.1818 },
"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
},
{
"index" : 2,
"hscan" : { "minimum" : 0.1818, "maximum" : 0.2121 },
"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
},
{
"index" : 3,
"hscan" : { "minimum" : 0.2121, "maximum" : 0.2424 },
"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
},
{
"index" : 4,
"hscan" : { "minimum" : 0.2424, "maximum" : 0.2727 },
"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
},
{
"index" : 5,
"hscan" : { "minimum" : 0.2727, "maximum" : 0.3030 },
"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
},
{
"index" : 6,
"hscan" : { "minimum" : 0.3030, "maximum" : 0.3333 },
"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
},
{
"index" : 7,
"hscan" : { "minimum" : 0.3333, "maximum" : 0.3636 },
"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
},
{
"index" : 8,
"hscan" : { "minimum" : 0.3636, "maximum" : 0.3939 },
"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
},
{
"index" : 9,
"hscan" : { "minimum" : 0.3939, "maximum" : 0.4242 },
"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
},
{
"index" : 10,
"hscan" : { "minimum" : 0.4242, "maximum" : 0.4545 },
"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
},
{
"index" : 11,
"hscan" : { "minimum" : 0.4545, "maximum" : 0.4848 },
"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
},
{
"index" : 12,
"hscan" : { "minimum" : 0.4848, "maximum" : 0.5152 },
"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
},
{
"index" : 13,
"hscan" : { "minimum" : 0.5152, "maximum" : 0.5455 },
"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
},
{
"index" : 14,
"hscan" : { "minimum" : 0.5455, "maximum" : 0.5758 },
"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
},
{
"index" : 15,
"hscan" : { "minimum" : 0.5758, "maximum" : 0.6061 },
"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
},
{
"index" : 16,
"hscan" : { "minimum" : 0.6061, "maximum" : 0.6364 },
"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
},
{
"index" : 17,
"hscan" : { "minimum" : 0.6364, "maximum" : 0.6667 },
"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
},
{
"index" : 18,
"hscan" : { "minimum" : 0.6667, "maximum" : 0.6970 },
"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
},
{
"index" : 19,
"hscan" : { "minimum" : 0.6970, "maximum" : 0.7273 },
"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
},
{
"index" : 20,
"hscan" : { "minimum" : 0.7273, "maximum" : 0.7576 },
"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
},
{
"index" : 21,
"hscan" : { "minimum" : 0.7576, "maximum" : 0.7879 },
"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
},
{
"index" : 22,
"hscan" : { "minimum" : 0.7879, "maximum" : 0.8182 },
"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
},
{
"index" : 23,
"hscan" : { "minimum" : 0.8182, "maximum" : 0.8485 },
"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
},
{
"index" : 24,
"hscan" : { "minimum" : 0.8485, "maximum" : 0.8788 },
"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
},
{
"index" : 25,
"hscan" : { "minimum" : 0.8788, "maximum" : 0.9091 },
"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
},
{
"index" : 26,
"hscan" : { "minimum" : 0.9091, "maximum" : 0.9394 },
"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
},
{
"index" : 27,
"hscan" : { "minimum" : 0.9394, "maximum" : 0.9697 },
"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
},
{
"index" : 28,
"hscan" : { "minimum" : 0.9697, "maximum" : 1.0000 },
"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
},
{
"index" : 29,
"hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
"vscan" : { "minimum" : 0.0000, "maximum" : 0.0556 }
},
{
"index" : 30,
"hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
"vscan" : { "minimum" : 0.0556, "maximum" : 0.1111 }
},
{
"index" : 31,
"hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
"vscan" : { "minimum" : 0.1111, "maximum" : 0.1667 }
},
{
"index" : 32,
"hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
"vscan" : { "minimum" : 0.1667, "maximum" : 0.2222 }
},
{
"index" : 33,
"hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
"vscan" : { "minimum" : 0.2222, "maximum" : 0.2778 }
},
{
"index" : 34,
"hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
"vscan" : { "minimum" : 0.2778, "maximum" : 0.3333 }
},
{
"index" : 35,
"hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
"vscan" : { "minimum" : 0.3333, "maximum" : 0.3889 }
},
{
"index" : 36,
"hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
"vscan" : { "minimum" : 0.3889, "maximum" : 0.4444 }
},
{
"index" : 37,
"hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
"vscan" : { "minimum" : 0.4444, "maximum" : 0.5000 }
},
{
"index" : 38,
"hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
"vscan" : { "minimum" : 0.5000, "maximum" : 0.5556 }
},
{
"index" : 39,
"hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
"vscan" : { "minimum" : 0.5556, "maximum" : 0.6111 }
},
{
"index" : 40,
"hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
"vscan" : { "minimum" : 0.6111, "maximum" : 0.6667 }
},
{
"index" : 41,
"hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
"vscan" : { "minimum" : 0.6667, "maximum" : 0.7222 }
},
{
"index" : 42,
"hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
"vscan" : { "minimum" : 0.7222, "maximum" : 0.7778 }
},
{
"index" : 43,
"hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
"vscan" : { "minimum" : 0.7778, "maximum" : 0.8333 }
},
{
"index" : 44,
"hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
"vscan" : { "minimum" : 0.8333, "maximum" : 0.8889 }
},
{
"index" : 45,
"hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
"vscan" : { "minimum" : 0.8889, "maximum" : 0.9444 }
},
{
"index" : 46,
"hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
"vscan" : { "minimum" : 0.9444, "maximum" : 1.0000 }
},
{
"index" : 47,
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
"vscan" : { "minimum" : 0.9444, "maximum" : 1.0000 }
},
{
"index" : 48,
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
"vscan" : { "minimum" : 0.8889, "maximum" : 0.9444 }
},
{
"index" : 49,
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
"vscan" : { "minimum" : 0.8333, "maximum" : 0.8889 }
},
{
"index" : 50,
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
"vscan" : { "minimum" : 0.7778, "maximum" : 0.8333 }
},
{
"index" : 51,
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
"vscan" : { "minimum" : 0.7222, "maximum" : 0.7778 }
},
{
"index" : 52,
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
"vscan" : { "minimum" : 0.6667, "maximum" : 0.7222 }
},
{
"index" : 53,
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
"vscan" : { "minimum" : 0.6111, "maximum" : 0.6667 }
},
{
"index" : 54,
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
"vscan" : { "minimum" : 0.5556, "maximum" : 0.6111 }
},
{
"index" : 55,
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
"vscan" : { "minimum" : 0.5000, "maximum" : 0.5556 }
},
{
"index" : 56,
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
"vscan" : { "minimum" : 0.4444, "maximum" : 0.5000 }
},
{
"index" : 57,
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
"vscan" : { "minimum" : 0.3889, "maximum" : 0.4444 }
},
{
"index" : 58,
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
"vscan" : { "minimum" : 0.3333, "maximum" : 0.3889 }
},
{
"index" : 59,
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
"vscan" : { "minimum" : 0.2778, "maximum" : 0.3333 }
},
{
"index" : 60,
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
"vscan" : { "minimum" : 0.2222, "maximum" : 0.2778 }
},
{
"index" : 61,
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
"vscan" : { "minimum" : 0.1667, "maximum" : 0.2222 }
},
{
"index" : 62,
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
"vscan" : { "minimum" : 0.1111, "maximum" : 0.1667 }
},
{
"index" : 63,
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
"vscan" : { "minimum" : 0.0556, "maximum" : 0.1111 }
},
{
"index" : 64,
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
"vscan" : { "minimum" : 0.0000, "maximum" : 0.0556 }
},
{
"index" : 65,
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0303 },
"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
},
{
"index" : 66,
"hscan" : { "minimum" : 0.0303, "maximum" : 0.0606 },
"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
},
{
"index" : 67,
"hscan" : { "minimum" : 0.0606, "maximum" : 0.0909 },
"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
},
{
"index" : 68,
"hscan" : { "minimum" : 0.0909, "maximum" : 0.1212 },
"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
}
],
"endOfJson" : "endOfJson"
}
Alles anzeigen
And here is my arduino code as well
#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 500
// 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 GRB // 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 1000000 // 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.
}
Alles anzeigen
Also I would like to say that i have tried doing the setup with LibreELEC, OpenELEC, OSMC, and 2020-07-24-HyperBian-lite.
on HyperBian the Arduino keeps restarting and the program running on it keeps reloading once i enable the LEDS settings. If I unplug the Arduino the reloading on the webpage will stop and i am able to configure the settings but once i plug them back in it just keeps restarting and boot looping. I read that using the Alpha 6 works but when i installed it on a fresh install of raspbian i am unable to access the hyperion site using my local ip for the pi and the ports that hyperion suggests.
If anyone can help that would be awesome thanks.