HALP. While trying to get the RGB_shades arduino code to work for my application

HALP.

While trying to get the RGB_shades arduino code to work for my application using a arduino UNO. Im running into zero response once the sketch is uploaded to the arduino.

// Params for width and height
const uint8_t kMatrixWidth = 26;
const uint8_t kMatrixHeight = 14;
const bool kMatrixSerpentineLayout = true;

// Pixel layout
//
// 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
// ±--------------------------
// 0 | 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
// 1 | 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
// 2 | 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
// 3 | 78 79 80 81 82 83 84 85 86 87 . 88 . 89 . 90 . 91 92 93 94 95 96 97 98 99
// 4 | 100 101 102 103 104 105 106 107 108 109 . . . 110 . . . 111 112 113 114 115 116 117 118 119
// 5 | 120 123 124 125 126 127 128 129 130 131 132 . 133 . 134 . 135 136 137 138 139 140 141 142 143 144
// 6 | 145 146 147 148 149 150 151 152 153 154 . . . 155 . . . 156 157 158 159 160 161 162 163 164
// 7 | 165 166 167 168 169 170 171 172 173 174 . . . 175 . . . 176 177 178 179 180 181 182 183 184
// 8 | 185 186 187 188 189 190 191 192 193 194 . . . 195 . . . 196 197 198 199 200 201 202 203 204
// 9 | 205 206 207 208 209 210 211 212 213 214 . 215 . 216 . 217 . 218 219 220 221 222 223 224 225 226
//10 | 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252
//11 | 253 254 255 256 257 258 259 260 261 . . 262 263 264 265 266 . . 267 268 269 270 271 272 273 274
//12 | 275 276 277 278 279 280 281 282 283 284 . . . . . . . 285 286 287 288 289 290 291 292 293
//13 | 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 333 314 315 316 317 318 319

#define NUM_LEDS (kMatrixWidth * kMatrixHeight)
CRGB leds[ NUM_LEDS ];

// This function will return the right ‘led index number’ for
// a given set of X and Y coordinates on your RGB Shades.
// This code, plus the supporting 80-byte table is much smaller
// and much faster than trying to calculate the pixel ID with code.
#define LAST_VISIBLE_LED 319
uint8_t XY( uint8_t x, uint8_t y)
{
// any out of bounds address maps to the first hidden pixel
if( (x >= kMatrixWidth) || (y >= kMatrixHeight) ) {
return (LAST_VISIBLE_LED + 1);
}

const uint8_t ShadesTable[] = {
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 320, 88, 321, 89, 322, 90, 323, 91, 92, 93, 94, 95, 96, 97, 98, 99,
100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 324, 325, 326, 110, 327, 328, 329, 111, 112, 113, 114, 115, 116, 117, 118, 119,
120, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 330, 133, 331, 134, 332, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 333, 334, 335, 155, 336, 337, 338, 156, 157, 158, 159, 160, 161, 162, 163, 164,
165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 339, 340, 341, 175, 342, 343, 344, 176, 177, 178, 179, 180, 181, 182, 183, 184,
185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 345, 346, 347, 195, 348, 349, 350, 196, 197, 198, 199, 200, 201, 202, 203, 204,
205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 351, 215, 352, 216, 353, 217, 353, 218, 219, 220, 221, 222, 223, 224, 225, 226,
227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252,
253, 254, 255, 256, 257, 258, 259, 260, 261, 354, 355, 262, 263, 264, 265, 266, 356, 357, 267, 268, 269, 270, 271, 272, 273, 274,
275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 358, 359, 360, 361, 362, 363, 364, 285, 286, 287, 288, 289, 290, 291, 292, 293,
294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 333, 314, 315, 316, 317, 318, 319
};

uint8_t i = (y * kMatrixWidth) + x;
uint8_t j = ShadesTable[i];
return j;
}

Thats my matrix, the question is does anyone have any experience with “LAST_VISIBLE_LED”

Can you maybe provide me with some assistance?

Hi @Alec_Luce . Please use http://gist.github.com to post code. It makes it much easier to read, especially on mobile phones, and then we can have line numbers to reference.

Since your matrix is 26x14 that’s 364. More then what will fit in at uint8_t variable. Try replacing uint8_t with uint16_t for these lines of code:

uint8_t XY( uint8_t x, uint8_t y)
const uint8_t ShadesTable[] = {…
uint8_t i = (y * kMatrixWidth) + x;
uint8_t j = ShadesTable[i];

If still having problems post your updated code to gist.

Thank you so much. for your quick response.

Ya Im very new to this, more just trying to adapt sketches ive found to work in my application. Ill post it all up and the leds.

Really all I need to happen is three chasing lights at every row. that take into consideration the missing lights where the eyes are.

Rather then shooting in the dark and asking someone to do it for me. Ive been trying to just kinda figure it out, but its really just not working out

missing/deleted image from Google+

Taking into consideration the Leds I have declared as no longer visible I really just need this pattern to run

XXX0XXX0XXX0XXX0XXX0XXX0XX
0XXX0XXX0XXX0XXX0XXX0XXX0X
X0XXX0XXX0XXX0XXX0XXX0XXX0
XX0XXX0XXX0XXX0XXX0XXX0XXX
XXX0XXX0XXX0XXX0XXX0XXX0XX
0XXX0XXX0XXX0XXX0XXX0XXX0X
X0XXX0XXX0XXX0XXX0XXX0XXX0
XX0XXX0XXX0XXX0XXX0XXX0XXX
XXX0XXX0XXX0XXX0XXX0XXX0XX
0XXX0XXX0XXX0XXX0XXX0XXX0X
X0XXX0XXX0XXX0XXX0XXX0XXX0
XX0XXX0XXX0XXX0XXX0XXX0XXX
XXX0XXX0XXX0XXX0XXX0XXX0XX
0XXX0XXX0XXX0XXX0XXX0XXX0X

three colors on chasing till they hit the end and starting over.

The purpose of taking the eyes into consideration is to maintain the patern

Alec, I think the easiest way would be to draw out all the pixels and then before calling show(), blackout all the “holes”. This makes coding very easy. And also wiring much easier too I would think since you don’t have to bother with cutting the strips and putting in a wire gap for every single one of those “holes”. Also, by having continuous strips all the way around you then still have the option to do any sort of display pattern you’d like, with or without “holes”.

Here’s an example of the concept. This draws and advances a continuous four pixel pattern down the strip, but always blacks out specific “holes” before updating the display.

Also, I noted that if your repeating pattern is 4 pixels long and your matrix is 26 pixels wide, that doesn’t divide out evenly so the pattern will not wrap around cleanly each time. You will see a “seam” so to speak. If this doesn’t matter you can put this “seam” on the backside and ignore this. Otherwise maybe you could increase the number of pixels around to 28 so it still divides nicely by 4.

The wires are already done though -_-

missing/deleted image from Google+

missing/deleted image from Google+

missing/deleted image from Google+

missing/deleted image from Google+

missing/deleted image from Google+

missing/deleted image from Google+

missing/deleted image from Google+

Oh!! Well I guess if there needed to be actual holes at those locations then my continuous strip idea would not have worked anyway. Sorry ddn’t get that before. Nice wiring. :slight_smile:
The rgbshades sort of matrix setup is indeed your answer then. My suggestion would be to strip that code all down to just the very basics until you get it working and understand it. Then go back and add in more functions later if needed.

I stripped it all down and it was pretty angry at me. haha.

Sigh, extremely limited coding experience . Suppose its time to persevere and overcome.

Also that wiring is terrible…who are we kidding. hahaha. Its my very first project ever.Outside of a small matrix I made that was 8x8.