Ambitape settings. Why is this so unintuitive?
I have been trying for hours to set up my Blinkytape much like the example used here: http://blinkinlabs.com/projects/ambitape/
Every time I put in my parameters I get ArrayIndexOutOfBoundsException: 181
I have 3 sides to my Blinkytape on the back of my monitor, 11 up the sides, 38 across the top. Everytime I plug in my number, Ambitape gets pissed off.
The tutorial states "Below is an example display array for a 19″ monitor with a 4:3 aspect ratio" But I could not locate any entry that need this information added? Does this even matter? Did I just waste 50 bucks on a fools errand when I should have just paid the extra money for Lightpack and the DIY out of the equation?
Comments
Hmm, sorry that it is giving you trouble. Can you post the source code you are working with, so we can take a look at what might be the issue?
Display is set to:
static final int displays[][] = new int[][] {
{0,38,22} // Screen 0, 38 LEDs across, 11 LEDs down
};
and LEDs are:
static final int leds[][] = new int[][] {
// Left Side
{0,0,11}, {0,0,10}, {0,0, 9}, {0,0, 8}, {0,0, 7}, {0,0, 6},
{0,0, 5}, {0,0, 4}, {0,0, 3}, {0,0, 2}, {0,0, 1},
// Top Side
{0, 0, 1}, {0, 1,1}, {0, 2,1}, {0, 3,1}, {0, 4,1}, {0, 5,1},
{0, 6,1}, {0, 7,1}, {0, 8,1}, {0, 9,1}, {0,10,1}, {0,11,1},
{0,12,1}, {0,13,1}, {0,14,1}, {0,15,1}, {0,16,1}, {0,17,1},
{0,18,1}, {0,19,1}, {0,20,1}, {0,21,1}, {0,22,1}, {0,23,1},
{0,24,1}, {0,25,1}, {0,26,1}, {0,27,1}, {0,28,1}, {0,29,1},
{0,30,1}, {0,31,1}, {0,32,1}, {0,32,1}, {0,33,1}, {0,34,1},
{0,35,1}, {0,36,1}, {0,37,1}, {0,38,1},
// Right Side
{0,25, 1}, {0,25, 2}, {0,25, 3}, {0,25, 4}, {0,25, 5}, {0,25, 6},
{0,25, 7}, {0,25, 8}, {0,25, 9}, {0,25,10}, {0,25,11},
The tutorial on turning Blinkylight into an ambilight leaves alot to be desired.
Totally agree with you about that tutorial, it's really showing it's age :-(. We'll need to get it updated.
In the meantime, it looks like for your case, the issue is that there are two extra LEDs defined (the last one in the 'left side' definition is the same as the first in the 'top side' definition, and the last one in the 'top side' is duplicating the first one in the 'right side' definition. Also, the display should be 39 LEDs wide, since the index starts at 38. Here are the updated definitions:
static final int displays[][] = new int[][] {
{0,39,22} // Screen 0, 38 LEDs across, 11 LEDs down
};
static final int leds[][] = new int[][] {
// Left Side
{0,0,11}, {0,0,10}, {0,0, 9}, {0,0, 8}, {0,0, 7}, {0,0, 6},
{0,0, 5}, {0,0, 4}, {0,0, 3}, {0,0, 2}, {0,0, 1},
// Top Side
{0, 1,1}, {0, 2,1}, {0, 3,1}, {0, 4,1}, {0, 5,1},
{0, 6,1}, {0, 7,1}, {0, 8,1}, {0, 9,1}, {0,10,1}, {0,11,1},
{0,12,1}, {0,13,1}, {0,14,1}, {0,15,1}, {0,16,1}, {0,17,1},
{0,18,1}, {0,19,1}, {0,20,1}, {0,21,1}, {0,22,1}, {0,23,1},
{0,24,1}, {0,25,1}, {0,26,1}, {0,27,1}, {0,28,1}, {0,29,1},
{0,30,1}, {0,31,1}, {0,32,1}, {0,32,1}, {0,33,1}, {0,34,1},
{0,35,1}, {0,36,1}, {0,37,1},
// Right Side
{0,38, 1}, {0,38, 2}, {0,38, 3}, {0,38, 4}, {0,38, 5}, {0,38, 6},
{0,38, 7}, {0,38, 8}, {0,38, 9}, {0,38,10}, {0,38,11},