Wiring for colorduino

I have (yet another), "how do I hook up my Colorduino" question. It's partially working, and now I'm trying to troubleshooting some issues. There seems to be some different information out there on how to hook up and program a colorduino/rainbowduino, but no "official" information, and I find the different instructions to be contradicting and confusing. But like I said, it's "kinda working", but I'm running into some issues, so to start troubleshooting it, I want to make sure my setup and wiring is correct.

First, some background:

  1. I purchased a colordunio/rainbowduino clone off of Amazon (and it came w/a 8x8 RGB matrix)
  2. It's the v1.3 version - the one with the switch (and the switch is currently in the 'Header' position)
  3. I am using the latest Arduino IDE, 1.8.10, and on Mac OS X
  4. I downloaded and installed the Colorduino library and example sketch (from GitHub - lincomatic/Colorduino: Colorduino Interface Library for Arduino)
  5. I have an Arduino Uno, and I removed the ATMega chip from it
  6. When I connect GND and 5V from the Uno to the Colorduino, it runs the animation demo sketch.

Next, after opening the Arduino IDE, I opened the ColorduinoPlasma demo
I then set the following (in the Tools menu)
Board: "Arduino Duemilanove or Diecimila"
Processor: ATmega328P
Programmer: Arduino as ISP

Q: So, my first question is, are my settings in the IDE correct?

Next, is wiring. From the Arduino Uno (with its ATmega removed) to the Colorduino (its female headers, not the male headers), I have:

Arduino Uno -> Colorduino
Reset DTR
5V VDD
GND GND
0->RX RXD
1<-TX TXD

Q: And my second question is, is my wiring correct?

Thanks,

Jeff

Hello Geoff,
Welcome to the forum.

I don''t know the answer to most of your questions, but this is obviously wrong:

Arduino Uno -> Colorduino
Reset DTR
5V VDD
GND GND
0->RX RXD
1<-TX TXD

You don't connect Tx on one board to Tx on another, just as when you speak to someone they listen with their ears, not their mouth!
Tx on one board goes to Rx on the other.

For the rest of your questions, hopefully someone else will know.

Perry

I don''t know the answer to most of your questions, but this is obviously wrong:
You don't connect Tx on one board to Tx on another...

That's one of the things that I found confusing and struggled with, but I think I have the wiring correct. Let me explain...

When I read "0->RX" (that's printed on my Uno), to me that reads as "pin 0 is the transmit pin and goes into the RX of the other device", but that's wrong b/c according to the Arduino docs, pin 0 is the receive pin.

So maybe the correct way to read it, is to read it as, "0->RX means pin 0 feeds into the receive pin of the board, and one needs to connect pin 0 to the the transmit pin of the other device".

Well, regardless, it seems like I have these two pins correct, because:

  1. One of the pages I found on how to wire up the Colorduino (Colorduino | Nick's LED Projects) says the wiring should be:

Arduino RX to Colorduino RX
Arduino TX to Colorduino TX
Arduino Reset to Colorduino DTR
Arduino +5v and GND to Colorduino +5v and GND.

(which it what I currently have)

  1. When I have this wiring (RX<-0 to RXD and TX->1 to TXD) I can upload my sketch to the board

  2. But when I switch the two wires (so RX<-0 to TXD and TX->1 to RXD), I'm not able to upload the sketch, but instead get:
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x00
    .
    .
    .

Perhaps I should go into the issue I'm having. The Colorduino library comes with an example sketch, called ColorduinoPlasma (Colorduino/examples/ColorduinoPlasma at master · lincomatic/Colorduino · GitHub). I uploaded and ran the sketch, but am having some issues with the display

  • one, the 4th row of LEDs is always off,
  • and two, the last column of LEDs has blue and green, but no red.

I attached some images to this post.
1-wiring.jpg displays the current wiring

2-all-blue.jpg


I changed plasma_morph() (in the sketch) to:

plasma_morph()
{
  unsigned char x,y;

  for(y = 0; y < ColorduinoScreenHeight; y++)
  {
    for(x = 0; x < ColorduinoScreenWidth; x++)
    {
      Colorduino.SetPixel(x, y, 0, 0, 255);
    }
  }
  paletteShift++;

  Colorduino.FlipPage(); // swap screen buffers to show it
}

...here we can see every LED is blue, except the 4th row.

3-all-red.jpg
3-all-red.jpg
I changed the code to set the LED to:
Colorduino.SetPixel(x, y, 255, 0, 0);
It's similar to the previous in that the 4th row is still blank, except now, the last column is also blank.

4-all-white.jpg
4-all-white.jpg
I changed the code to set the LED to:
Colorduino.SetPixel(x, y, 255, 255, 255);
...all LEDs should have been white, except the 4th row is blank, and the last column (the 8th column) has green and blue, but no red (producing a cyan-like color)

5-first-2-rows.jpg
5-first-2-rows.jpg
To get the orientation right, and to see which corner was 0,0, I changed the code to:

plasma_morph()
{
  unsigned char x,y;

  for(y = 0; y < 2; y++)
  {
    for(x = 0; x < ColorduinoScreenWidth; x++)
    {
      Colorduino.SetPixel(x, y, 255, 255, 255);
    }
  }
  paletteShift++;

  Colorduino.FlipPage(); // swap screen buffers to show it
}

4-all-white.jpg

3-all-red.jpg

and here is the 5th image.

BTW, is there a way to in-line images that are uploaded? If so, how? I can insert an image using an URL (if the image is hosted somewhere), but if I attach an image to the reply, is there a way to add/inline the image?

5-first-2-rows.jpg

Jeff101,

I have never ever, ever, EVER seen any board where Rx (receive or however else it might be stated) means anything other than 'this is where you connect incoming data that's arriving from somewhere else'. Rx is always, in my experience, an input. Maybe it's not true here, but if that's the case then it's new to me. I was hoping that by now someone else would have answered, but maybe that person, whoever they are, lives on the other side of the planet.

BTW, is there a way to in-line images that are uploaded? If so, how?

Yes! It's a fooookin' pain!
First you upload the images, you already know how to do that. Then you post your, er post. Then you hover over the file name and right click and use 'copy link location' (or whatever works in your browser), then you edit your original post and use the tool bar at the top; to the right of 'font colour' is 'insert an image'; click on that, paste the url you previously copied, save and repeat. Then pour yourself a nice beer (wine, whiskey, whatever you like) and wonder to yourself why it's so difficult.

BTW, you have very obviously not worked out what 'how to use this forum - please read' means. That does frustrate people here, me included on a bad day....

PerryBebbington:
I have never ever, ever, EVER seen any board where Rx (receive or however else it might be stated) means anything other than 'this is where you connect incoming data that's arriving from somewhere else'.

Yea, I don't know what to tell ya. Maybe the design of the Colorunio is wrong and switched them? (I haven't looked at the schematic, so I don't know). At this point what I know is, wiring it up as I have it seems to work and is what is recommended, and wiring it up the other way (as you suggested) results in "avrdude: stk500_recv(): programmer is not responding". Perhaps the wiring you suggested is correct, and the configurations I have set in the Tools menu of the IDE is wrong? Seems like a long shot, but that's why I posted that info in my original posting. Yes, perhaps someone else can chime in and offer some advice. While I'm not new to Arduino, I am new to using it as a programmer, and I'm new to the Colorduino, so it's hard to tell if I have a config issue, a wiring issue, if there's an issue w/the Colorduino, or an issue with the 8x8 RGB matrix itself.

PerryBebbington:
Jeff101,
Yes! It's a fooookin' pain! First you upload the images, you already know how to do that. Then you post your, er post. Then you hover over the file name and right click and use 'copy link location' (or whatever works in your browser), then you edit your original post and use the tool bar at the top...

Thanks, I just updated my post so that readers can see the images inline instead of having to d/l them.

Right Jeff,
I understand the Rx Tx thing now. As you are using the Uno as a programming tool it is acting as a USB to serial converter. The Tx and Rx are correctly marked for the ATMega chip, which is connected to the USB converter, which is the other way around (Rx - Tx), so the markings are the wrong way for that.

Oh well, sorry for the incorrect information, at least I have learned something :slight_smile: