Recalbox Forum

    • Register
    • Login
    • Search
    • Recent
    • Tags
    • recalbox.com
    • Gitlab repository
    • Documentation
    • Discord

    Hyperion APA102 Arduino

    Recalbox Général
    hyperion apa102 arduino
    2
    3
    2180
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • yanfox
      yanfox last edited by

      Bonjour à tous 🙂

      J'essaie d'améliorer ma borne récalbox avec la nouvelle fonction intégrée Hyperion mais j'avoue patauger un peu...

      J'ai un ruban LED de 5m APA102 avec 4 fils, un arduino UNO et un peu de patience (quoique de moins en moins !)

      Comme j'utilise les GPIO de mon Rpi3 pour mes boutons et joysticks, je n'ai pas la possibilité d'utiliser les pin 19 et 23 car prises par les boutons START#1 et UP#2.

      J'ai donc décider de brancher un arduino en USB de façons a ce que l'hyperion de la recalbox le pilote par cette interface.

      J'ai chargé la librairie fastled 3.1.6 et chargé le programme suivant :

      #include "FastLED.h"

      // How many leds in your strip?
      #define NUM_LEDS 300

      // For led chips like Neopixels, 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), like the LPD8806 define both DATA_PIN and CLOCK_PIN
      #define DATA_PIN 6
      #define CLOCK_PIN 13

      #define COLOR_ORDER RGB

      // 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;

      // Baudrate, higher rate allows faster refresh rate and more LEDs (defined in /etc/boblight.conf)
      #define serialRate 460800

      // Define the array of leds
      CRGB leds[NUM_LEDS];

      void setup() {
      // Uncomment/edit one of the following lines for your leds arrangement.
      // FastLED.addLeds<TM1803, DATA_PIN, RGB>(leds, NUM_LEDS);
      // FastLED.addLeds<TM1804, DATA_PIN, RGB>(leds, NUM_LEDS);
      // FastLED.addLeds<TM1809, DATA_PIN, RGB>(leds, NUM_LEDS);
      // FastLED.addLeds<WS2811, DATA_PIN, RGB>(leds, NUM_LEDS);
      // FastLED.addLeds<WS2812, DATA_PIN, RGB>(leds, NUM_LEDS);
      // FastLED.addLeds<WS2812B, DATA_PIN, RGB>(leds, NUM_LEDS);
      // FastLED.addLeds<NEOPIXEL, DATA_PIN>(leds, NUM_LEDS);
      // FastLED.addLeds<UCS1903, DATA_PIN, RGB>(leds, NUM_LEDS);
      // FastLED.addLeds<UCS1903B, DATA_PIN, RGB>(leds, NUM_LEDS);
      // FastLED.addLeds<GW6205, DATA_PIN, RGB>(leds, NUM_LEDS);
      // FastLED.addLeds<GW6205_400, DATA_PIN, RGB>(leds, NUM_LEDS);

        // FastLED.addLeds<WS2801, RGB>(leds, NUM_LEDS);
        // FastLED.addLeds<SM16716, RGB>(leds, NUM_LEDS);
        // FastLED.addLeds<LPD8806, RGB>(leds, NUM_LEDS);
      
        // FastLED.addLeds<WS2801, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);
           FastLED.addLeds<APA102, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);
        // FastLED.addLeds<SM16716, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);
        // FastLED.addLeds<LPD8806, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);
       
          // initial RGB flash
          LEDS.showColor(CRGB(255, 0, 0));
          delay(500);
          LEDS.showColor(CRGB(0, 255, 0));
          delay(500);
          LEDS.showColor(CRGB(0, 0, 255));
          delay(500);
          LEDS.showColor(CRGB(0, 0, 0));
         
          Serial.begin(serialRate);
          Serial.print("Ada\n"); // Send "Magic Word" string to host
      

      }

      void loop() {
      // wait for first byte of Magic Word
      for(i = 0; i < sizeof prefix; ++i) {
      waitLoop: while (!Serial.available()) ;;
      // Check next byte in Magic Word
      if(prefix[i] == Serial.read()) continue;
      // otherwise, start over
      i = 0;
      goto waitLoop;
      }

      // Hi, Lo, Checksum

      while (!Serial.available()) ;;
      hi=Serial.read();
      while (!Serial.available()) ;;
      lo=Serial.read();
      while (!Serial.available()) ;;
      chk=Serial.read();

      // if checksum does not match go back to wait
      if (chk != (hi ^ lo ^ 0x55))
      {
      i=0;
      goto waitLoop;
      }

      memset(leds, 0, NUM_LEDS * sizeof(struct CRGB));
      // read the transmission data and set LED values
      for (uint8_t i = 0; i < NUM_LEDS; i++) {
      byte r, g, b;
      while(!Serial.available());
      r = Serial.read();
      while(!Serial.available());
      g = Serial.read();
      while(!Serial.available());
      b = Serial.read();
      leds[i].r = r;
      leds[i].g = g;
      leds[i].b = b;
      }
      // shows new values
      FastLED.show();
      }
      J'ai chargé une conf hypercon en paramétrant ttyUSB0 (port sur lequel l'arduino est reconnu vu dans dmesg)

      Le problème c'est que mes leds s'allument et changent de couleur de manière aléatoire mais ca n'a pas vraiment de sens...

      Est ce que quelque chose saute aux yeux des utilisateurs plus avertis dans ma conf ?

      Merci !

      1 Reply Last reply Reply Quote 0
      • yanfox
        yanfox last edited by yanfox

        ![Bonjour,

        Je me réponds à moi même (vu l'engouement généré par mon post !), j'en ai profité pour apprendre à présenter correctement mon post avec les balises markdown si spécifiques à ce forum 😉

        Après avoir testé différents programmes arduino qui faisaient planter le contrôleur du ruban LED, j'ai fini par trouver je crois le bon compromis pour arriver à mes fins ! Cela fait maintenant plusieurs heures de jeux et de film et le ruban répond parfaitement !

        La prochaine étape est de remettre la vitre qui cache mon écran en mettant un film translucide pour diffuser la lumière des LED de manière plus harmonieuse. J'ajouterai aussi un fond blanc derrière pour maximiser la réverbération de la lumière... To be continued !

        J'ai programmé mon arduino Uno avec le script suivant (dispo ici)

        Puis j'ai paramétré Hypérion avec Hypercon à l'aide de ce tutorial. En adaptant les sections en fonction de mon nombre de LED etc... Je vous mets mon fichier en dessous du programme arduino, si ça peut éviter de galérer comme je l'ai fait 🙂

        Vidéos des tests :

        Test 1
        https://www.youtube.com/watch?v=rIc5GLOregQ

        Test 2
        https://www.youtube.com/watch?v=mNXFrbEYtDY

        Photos :

        0_1512941190827_file1.jpeg

        0_1512941201712_file.jpeg

        Code Arduino Uno :

        #include "FastLED.h"
        
        // How many leds in your strip?
        
        #define NUM_LEDS 91
        
        
        // For led chips like Neopixels, 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), like the LPD8806 define both DATA_PIN and CLOCK_PIN
        
        #define DATA_PIN 11
        
        #define CLOCK_PIN 13
        
        
        #define COLOR_ORDER RGB
        
        
        // 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;
        
        
        // Baudrate, higher rate allows faster refresh rate and more LEDs (defined in /etc/boblight.conf)
        
        #define serialRate 115200
        
        
        // Define the array of leds
        
        CRGB leds[NUM_LEDS];
        
        
        void setup() { 
        
         // Uncomment/edit one of the following lines for your leds arrangement.
          
          FastLED.addLeds<APA102, DATA_PIN, CLOCK_PIN>(leds, NUM_LEDS);
          // FastLED.addLeds<TM1803, DATA_PIN, RGB>(leds, NUM_LEDS);
          // FastLED.addLeds<TM1804, DATA_PIN, RGB>(leds, NUM_LEDS);
          // FastLED.addLeds<TM1809, DATA_PIN, RGB>(leds, NUM_LEDS);
          // FastLED.addLeds<WS2811, DATA_PIN, RGB>(leds, NUM_LEDS);
          // FastLED.addLeds<WS2812, DATA_PIN, RGB>(leds, NUM_LEDS);
          // FastLED.addLeds<WS2812B, DATA_PIN, RGB>(leds, NUM_LEDS);
          // FastLED.addLeds<NEOPIXEL, DATA_PIN>(leds, NUM_LEDS);
          // FastLED.addLeds<UCS1903, DATA_PIN, RGB>(leds, NUM_LEDS);
          // FastLED.addLeds<UCS1903B, DATA_PIN, RGB>(leds, NUM_LEDS);
          // FastLED.addLeds<GW6205, DATA_PIN, RGB>(leds, NUM_LEDS);
          // FastLED.addLeds<GW6205_400, DATA_PIN, RGB>(leds, NUM_LEDS);
          
          // FastLED.addLeds<WS2801, RGB>(leds, NUM_LEDS);
          // FastLED.addLeds<SM16716, RGB>(leds, NUM_LEDS);
          // FastLED.addLeds<LPD8806, RGB>(leds, NUM_LEDS);
        
          // FastLED.addLeds<WS2801, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);
          // FastLED.addLeds<SM16716, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);
          // FastLED.addLeds<LPD8806, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);
          
            // initial RGB flash
            //LEDS.showColor(CRGB(255, 0, 0));
            //delay(500);
            //LEDS.showColor(CRGB(0, 255, 0));
            //delay(500);
            //LEDS.showColor(CRGB(0, 0, 255));
            //delay(500);
            //LEDS.showColor(CRGB(0, 0, 0));
            
            Serial.begin(serialRate);
            Serial.print("Ada\n"); // Send "Magic Word" string to host
        
        
        }
        
        
        void loop() { 
        
          // wait for first byte of Magic Word
        
          for(i = 0; i < sizeof prefix; ++i) {
        
            waitLoop: while (!Serial.available()) ;;
        
            // Check next byte in Magic Word
        
            if(prefix[i] == Serial.read()) continue;
        
            // otherwise, start over
        
            i = 0;
        
         goto waitLoop;
        
          }
        
        
         // Hi, Lo, Checksum
        
        
          while (!Serial.available()) ;;
        
          hi=Serial.read();
        
          while (!Serial.available()) ;;
        
          lo=Serial.read();
        
         while (!Serial.available()) ;;
        
          chk=Serial.read();
        
        
          // if checksum does not match go back to wait
        
          if (chk != (hi ^ lo ^ 0x55))
        
          {
        
            i=0;
        goto waitLoop;
        
          }
        
        
         memset(leds, 0, NUM_LEDS * sizeof(struct CRGB));
        
          // read the transmission data and set LED values
        
          for (uint8_t i = 0; i < NUM_LEDS; i++) {
        
        byte r, g, b;    
        while(!Serial.available());
        r = Serial.read();
        while(!Serial.available());
        g = Serial.read();
        while(!Serial.available());
        b = Serial.read();
        leds[i].r = r;
        leds[i].g = g;
        leds[i].b = b;
        
          }
        
          // shows new values
        
         FastLED.show();
        
        }
        

        Config Hyperion

        // 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/ttyUSB0",
        	"rate"     : 115200,
        	"delayAfterConnect"     : 0,
        	"colorOrder" : "bgr"
        },
        
        // 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" : 5.0,
        	"priority" : 890
        },
        
        // JSON SERVER CONFIG
        "jsonServer" : 
        {
        	"port" : 19444
        },
        
        // PROTO SERVER CONFIG
        "protoServer" : 
        {
        	"port" : 19445
        },
        
        // EFFECT PATH
        "effects" : 
        {
        	"paths" : 
        	[
        		"/storage/hyperion/effects",
        		"/usr/share/hyperion/effects"
        	]
        },
        
        // NO BLACKBORDER CONFIG
        // NO KODI CHECK CONFIG
        // NO BOOTEFFECT CONFIG
        // NO BOBLIGHT SERVER CONFIG
        // NO JSON/PROTO FORWARD CONFIG
        
        // LED CONFIGURATION
        "leds" : 
        [
        	{
        		"index" : 0,
        		"hscan" : { "minimum" : 0.4519, "maximum" : 0.5096 },
        		"vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
        	},
        	{
        		"index" : 1,
        		"hscan" : { "minimum" : 0.4135, "maximum" : 0.4712 },
        		"vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
        	},
        	{
        		"index" : 2,
        		"hscan" : { "minimum" : 0.3750, "maximum" : 0.4327 },
        		"vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
        	},
        	{
        		"index" : 3,
        		"hscan" : { "minimum" : 0.3365, "maximum" : 0.3942 },
        		"vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
        	},
        	{
        		"index" : 4,
        		"hscan" : { "minimum" : 0.2981, "maximum" : 0.3558 },
        		"vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
        	},
        	{
        		"index" : 5,
        		"hscan" : { "minimum" : 0.2596, "maximum" : 0.3173 },
        		"vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
        	},
        	{
        		"index" : 6,
        		"hscan" : { "minimum" : 0.2212, "maximum" : 0.2788 },
        		"vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
        	},
        	{
        		"index" : 7,
        		"hscan" : { "minimum" : 0.1827, "maximum" : 0.2404 },
        		"vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
        	},
        	{
        		"index" : 8,
        		"hscan" : { "minimum" : 0.1442, "maximum" : 0.2019 },
        		"vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
        	},
        	{
        		"index" : 9,
        		"hscan" : { "minimum" : 0.1058, "maximum" : 0.1635 },
        		"vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
        	},
        	{
        		"index" : 10,
        		"hscan" : { "minimum" : 0.0673, "maximum" : 0.1250 },
        		"vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
        	},
        	{
        		"index" : 11,
        		"hscan" : { "minimum" : 0.0288, "maximum" : 0.0865 },
        		"vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
        	},
        	{
        		"index" : 12,
        		"hscan" : { "minimum" : 0.0000, "maximum" : 0.0481 },
        		"vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
        	},
        	{
        		"index" : 13,
        		"hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
        		"vscan" : { "minimum" : 0.9375, "maximum" : 1.0000 }
        	},
        	{
        		"index" : 14,
        		"hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
        		"vscan" : { "minimum" : 0.8875, "maximum" : 0.9625 }
        	},
        	{
        		"index" : 15,
        		"hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
        		"vscan" : { "minimum" : 0.8375, "maximum" : 0.9125 }
        	},
        	{
        		"index" : 16,
        		"hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
        		"vscan" : { "minimum" : 0.7875, "maximum" : 0.8625 }
        	},
        	{
        		"index" : 17,
        		"hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
        		"vscan" : { "minimum" : 0.7375, "maximum" : 0.8125 }
        	},
        	{
        		"index" : 18,
        		"hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
        		"vscan" : { "minimum" : 0.6875, "maximum" : 0.7625 }
        	},
        	{
        		"index" : 19,
        		"hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
        		"vscan" : { "minimum" : 0.6375, "maximum" : 0.7125 }
        	},
        	{
        		"index" : 20,
        		"hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
        		"vscan" : { "minimum" : 0.5875, "maximum" : 0.6625 }
        	},
        	{
        		"index" : 21,
        		"hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
        		"vscan" : { "minimum" : 0.5375, "maximum" : 0.6125 }
        	},
        	{
        		"index" : 22,
        		"hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
        		"vscan" : { "minimum" : 0.4875, "maximum" : 0.5625 }
        	},
        	{
        		"index" : 23,
        		"hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
        		"vscan" : { "minimum" : 0.4375, "maximum" : 0.5125 }
        	},
        	{
        		"index" : 24,
        		"hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
        		"vscan" : { "minimum" : 0.3875, "maximum" : 0.4625 }
        	},
        	{
        		"index" : 25,
        		"hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
        		"vscan" : { "minimum" : 0.3375, "maximum" : 0.4125 }
        	},
        	{
        		"index" : 26,
        		"hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
        		"vscan" : { "minimum" : 0.2875, "maximum" : 0.3625 }
        	},
        	{
        		"index" : 27,
        		"hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
        		"vscan" : { "minimum" : 0.2375, "maximum" : 0.3125 }
        	},
        	{
        		"index" : 28,
        		"hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
        		"vscan" : { "minimum" : 0.1875, "maximum" : 0.2625 }
        	},
        	{
        		"index" : 29,
        		"hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
        		"vscan" : { "minimum" : 0.1375, "maximum" : 0.2125 }
        	},
        	{
        		"index" : 30,
        		"hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
        		"vscan" : { "minimum" : 0.0875, "maximum" : 0.1625 }
        	},
        	{
        		"index" : 31,
        		"hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
        		"vscan" : { "minimum" : 0.0375, "maximum" : 0.1125 }
        	},
        	{
        		"index" : 32,
        		"hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
        		"vscan" : { "minimum" : 0.0000, "maximum" : 0.0625 }
        	},
        	{
        		"index" : 33,
        		"hscan" : { "minimum" : 0.0000, "maximum" : 0.0481 },
        		"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
        	},
        	{
        		"index" : 34,
        		"hscan" : { "minimum" : 0.0288, "maximum" : 0.0865 },
        		"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
        	},
        	{
        		"index" : 35,
        		"hscan" : { "minimum" : 0.0673, "maximum" : 0.1250 },
        		"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
        	},
        	{
        		"index" : 36,
        		"hscan" : { "minimum" : 0.1058, "maximum" : 0.1635 },
        		"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
        	},
        	{
        		"index" : 37,
        		"hscan" : { "minimum" : 0.1442, "maximum" : 0.2019 },
        		"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
        	},
        	{
        		"index" : 38,
        		"hscan" : { "minimum" : 0.1827, "maximum" : 0.2404 },
        		"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
        	},
        	{
        		"index" : 39,
        		"hscan" : { "minimum" : 0.2212, "maximum" : 0.2788 },
        		"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
        	},
        	{
        		"index" : 40,
        		"hscan" : { "minimum" : 0.2596, "maximum" : 0.3173 },
        		"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
        	},
        	{
        		"index" : 41,
        		"hscan" : { "minimum" : 0.2981, "maximum" : 0.3558 },
        		"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
        	},
        	{
        		"index" : 42,
        		"hscan" : { "minimum" : 0.3365, "maximum" : 0.3942 },
        		"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
        	},
        	{
        		"index" : 43,
        		"hscan" : { "minimum" : 0.3750, "maximum" : 0.4327 },
        		"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
        	},
        	{
        		"index" : 44,
        		"hscan" : { "minimum" : 0.4135, "maximum" : 0.4712 },
        		"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
        	},
        	{
        		"index" : 45,
        		"hscan" : { "minimum" : 0.4519, "maximum" : 0.5096 },
        		"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
        	},
        	{
        		"index" : 46,
        		"hscan" : { "minimum" : 0.4904, "maximum" : 0.5481 },
        		"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
        	},
        	{
        		"index" : 47,
        		"hscan" : { "minimum" : 0.5288, "maximum" : 0.5865 },
        		"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
        	},
        	{
        		"index" : 48,
        		"hscan" : { "minimum" : 0.5673, "maximum" : 0.6250 },
        		"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
        	},
        	{
        		"index" : 49,
        		"hscan" : { "minimum" : 0.6058, "maximum" : 0.6635 },
        		"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
        	},
        	{
        		"index" : 50,
        		"hscan" : { "minimum" : 0.6442, "maximum" : 0.7019 },
        		"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
        	},
        	{
        		"index" : 51,
        		"hscan" : { "minimum" : 0.6827, "maximum" : 0.7404 },
        		"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
        	},
        	{
        		"index" : 52,
        		"hscan" : { "minimum" : 0.7212, "maximum" : 0.7788 },
        		"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
        	},
        	{
        		"index" : 53,
        		"hscan" : { "minimum" : 0.7596, "maximum" : 0.8173 },
        		"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
        	},
        	{
        		"index" : 54,
        		"hscan" : { "minimum" : 0.7981, "maximum" : 0.8558 },
        		"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
        	},
        	{
        		"index" : 55,
        		"hscan" : { "minimum" : 0.8365, "maximum" : 0.8942 },
        		"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
        	},
        	{
        		"index" : 56,
        		"hscan" : { "minimum" : 0.8750, "maximum" : 0.9327 },
        		"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
        	},
        	{
        		"index" : 57,
        		"hscan" : { "minimum" : 0.9135, "maximum" : 0.9712 },
        		"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
        	},
        	{
        		"index" : 58,
        		"hscan" : { "minimum" : 0.9519, "maximum" : 1.0000 },
        		"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
        	},
        	{
        		"index" : 59,
        		"hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
        		"vscan" : { "minimum" : 0.0000, "maximum" : 0.0625 }
        	},
        	{
        		"index" : 60,
        		"hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
        		"vscan" : { "minimum" : 0.0375, "maximum" : 0.1125 }
        	},
        	{
        		"index" : 61,
        		"hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
        		"vscan" : { "minimum" : 0.0875, "maximum" : 0.1625 }
        	},
        	{
        		"index" : 62,
        		"hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
        		"vscan" : { "minimum" : 0.1375, "maximum" : 0.2125 }
        	},
        	{
        		"index" : 63,
        		"hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
        		"vscan" : { "minimum" : 0.1875, "maximum" : 0.2625 }
        	},
        	{
        		"index" : 64,
        		"hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
        		"vscan" : { "minimum" : 0.2375, "maximum" : 0.3125 }
        	},
        	{
        		"index" : 65,
        		"hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
        		"vscan" : { "minimum" : 0.2875, "maximum" : 0.3625 }
        	},
        	{
        		"index" : 66,
        		"hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
        		"vscan" : { "minimum" : 0.3375, "maximum" : 0.4125 }
        	},
        	{
        		"index" : 67,
        		"hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
        		"vscan" : { "minimum" : 0.3875, "maximum" : 0.4625 }
        	},
        	{
        		"index" : 68,
        		"hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
        		"vscan" : { "minimum" : 0.4375, "maximum" : 0.5125 }
        	},
        	{
        		"index" : 69,
        		"hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
        		"vscan" : { "minimum" : 0.4875, "maximum" : 0.5625 }
        	},
        	{
        		"index" : 70,
        		"hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
        		"vscan" : { "minimum" : 0.5375, "maximum" : 0.6125 }
        	},
        	{
        		"index" : 71,
        		"hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
        		"vscan" : { "minimum" : 0.5875, "maximum" : 0.6625 }
        	},
        	{
        		"index" : 72,
        		"hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
        		"vscan" : { "minimum" : 0.6375, "maximum" : 0.7125 }
        	},
        	{
        		"index" : 73,
        		"hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
        		"vscan" : { "minimum" : 0.6875, "maximum" : 0.7625 }
        	},
        	{
        		"index" : 74,
        		"hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
        		"vscan" : { "minimum" : 0.7375, "maximum" : 0.8125 }
        	},
        	{
        		"index" : 75,
        		"hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
        		"vscan" : { "minimum" : 0.7875, "maximum" : 0.8625 }
        	},
        	{
        		"index" : 76,
        		"hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
        		"vscan" : { "minimum" : 0.8375, "maximum" : 0.9125 }
        	},
        	{
        		"index" : 77,
        		"hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
        		"vscan" : { "minimum" : 0.8875, "maximum" : 0.9625 }
        	},
        	{
        		"index" : 78,
        		"hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
        		"vscan" : { "minimum" : 0.9375, "maximum" : 1.0000 }
        	},
        	{
        		"index" : 79,
        		"hscan" : { "minimum" : 0.9519, "maximum" : 1.0000 },
        		"vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
        	},
        	{
        		"index" : 80,
        		"hscan" : { "minimum" : 0.9135, "maximum" : 0.9712 },
        		"vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
        	},
        	{
        		"index" : 81,
        		"hscan" : { "minimum" : 0.8750, "maximum" : 0.9327 },
        		"vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
        	},
        	{
        		"index" : 82,
        		"hscan" : { "minimum" : 0.8365, "maximum" : 0.8942 },
        		"vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
        	},
        	{
        		"index" : 83,
        		"hscan" : { "minimum" : 0.7981, "maximum" : 0.8558 },
        		"vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
        	},
        	{
        		"index" : 84,
        		"hscan" : { "minimum" : 0.7596, "maximum" : 0.8173 },
        		"vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
        	},
        	{
        		"index" : 85,
        		"hscan" : { "minimum" : 0.7212, "maximum" : 0.7788 },
        		"vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
        	},
        	{
        		"index" : 86,
        		"hscan" : { "minimum" : 0.6827, "maximum" : 0.7404 },
        		"vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
        	},
        	{
        		"index" : 87,
        		"hscan" : { "minimum" : 0.6442, "maximum" : 0.7019 },
        		"vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
        	},
        	{
        		"index" : 88,
        		"hscan" : { "minimum" : 0.6058, "maximum" : 0.6635 },
        		"vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
        	},
        	{
        		"index" : 89,
        		"hscan" : { "minimum" : 0.5673, "maximum" : 0.6250 },
        		"vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
        	},
        	{
        		"index" : 90,
        		"hscan" : { "minimum" : 0.5288, "maximum" : 0.5865 },
        		"vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
        	}
        ],
        
        "endOfJson" : "endOfJson"
        }
        

        Enjoy 😄

        1 Reply Last reply Reply Quote 0
        • Rival187
          Rival187 last edited by

          Excellent sujet, je suis à des années lumière de toutes ces bidouilles, mais le fait de pouvoir se créer un ambilight est carrément ouf, good job 🙂

          1 Reply Last reply Reply Quote 0
          • First post
            Last post

          Want to support us ?

          87
          Online

          98.7k
          Users

          28.1k
          Topics

          187.0k
          Posts

          Copyright © 2021 recalbox.com