Blinky Pixels and Ambitape trouble

Hi all!

I'm new to blinkylabs and am no programmer and there's a problem I've run into using blinkypixels with ambitape. The colors the blinkypixels are outputting is inaccurate and in some cases very inaccurate. For example, reds are more like yellow, and greens don't really show up at all. It's pretty much limited to shades of blue and yellow, and sometimes a very random magenta pixel will show up. I know I've arranged the pixels correctly in Processing. When I run the program and move a window around the edges of my screen the colors are definitely accurate on the box that pops up when you hit run, they're just not showing up accurately on the blinkypixels. I've tried everything I can think of, and have messed with the code as best I can. Please help!

Extra Info: While messing with code in the "blinkyTape" tab in processing I am able to make some normally unseen colors appear such as green, but they're not at all accurate. This thread (http://forums.blinkinlabs.com/index.php?p=/discussion/151/blinky-pixels-shows-the-wrong-color) has made me think some lines of code may need to be rewritten for blinkypixels specifically. Hopefully that is not too difficult to do!

Using PatternPaint I'm certain it is not a malfunction of the Blinkypixels themselves.

Any help or advice would be appreciated,

thanks a bunch,

Nick

Comments

  • Ah, right. The issue is that BlinkyTape and BlinkyMatrix are wired with an RGB color order, while the BlinkyPixels use GRB. We'll have to update the ambitape program to make this more automatic, however this modification should make the blinkypixels show the right color order for Ambitape:

    In the 'BlinkyTape' tab, find the function pushPixel():

    // Some very simple routines for sending single pixels.
    void pushPixel(color c) {
    m_data[m_dataIndex++] = (byte)min(254, red(c));
    m_data[m_dataIndex++] = (byte)min(254, green(c));
    m_data[m_dataIndex++] = (byte)min(254, blue(c));
    }

    And replace it with this:

    // Some very simple routines for sending single pixels.
    void pushPixel(color c) {
    m_data[m_dataIndex++] = (byte)min(254, green(c));
    m_data[m_dataIndex++] = (byte)min(254, red(c));
    m_data[m_dataIndex++] = (byte)min(254, blue(c));
    }

    Let me know if that works.

Sign In or Register to comment.