Hand Holding Required Hi FastLED gang,

Hand Holding Required

Hi FastLED gang,

I’m absolutely new to this stuff and thrilled by it.

No programming experience at all. But I am very good electrically and mechanically although no formal training.

I’ve played with some Arduino tutorials off and on over the past few months. Made LEDs blink, and scrolled words across to display.

RadioShack had a sale on their LED light strips, so I figured I’d play with one. How’s it going you ask, not too good. I’ve bounced around the web a lot, found some neat looking things, but haven’t been able to get anything to work.

Here’s what I have:
Arduino UNO, +starter kit, LEDs, resistors, etc.
Breadboard and jumpers
RadioShack light strip TM1803 / 2760339
Walmart - PowerLine multi use AC adapter
3-12volts / 1300 mA

Problem is I read very well but don’t always comprehend too well. I’ve hooked up the breadboard as I’ve seen and read in different posts. Nothing seems to work.

I’ve uploaded FastLED to both my computer and the Arduino web-based shield.

Here’s my set up:

Using unaltered FastLED

LED wires:
Positive, red wire, to Vin.
Negative, black wire, to ground.
Signal, green wire, to pin a zero.

Arduino:
USB connected to the computer.
Power input jack connected to the power adapter set on 12 V. With the center pin providing the positive.

As per instructions I read somewhere, I first applied power using the power adapter. That I connected and downloaded the Arduino from the USB. Then disconnected the USB.

One of my questions along with how to get it to work is: knowing that the light strip requires 12 V to operate, does the Arduino supply 12 V output when it has 12 V input? Or does it regulate it down to 5 V. Meaning do I need to power the Arduino from the input jack with a battery pack, and power the light strip from the breadboard with the power adapter?

All help is appreciated. Pictures are awesome. If you can talk me through it with a video that would be even better.

Sorry for the long post wanted to get as much detail as possible.

…Thanks Ralph

It looks like FastLED supports the TM1803 and TM1809 chipset, but unfortunately but not the TM1843. As the video posted by @Awa_Ob shows, you can run them with your Uno, but you won’t be able to use the awesomeness of the FastLED library.

To answer your power question, the Uno can be powered by 7-12V, but the output is regulated to 5V. You should split the power from the 12V supply to both the Uno and LED strip. Not only because the Uno only provides 5V output, so not enough for 12V LEDs, but much more importantly, if you try to power a whole strip of LEDs from the output of the Uno it will draw too much current through the Uno’s pin and destroy it.

It would also be possible to power the 12V LED strip with your 12V supply and power the Uno through USB (5V). If you do this then you must also connect a ground wire between the Uno ground and the LED strip ground or your LEDs will blink erratically.

@marmil thank you for your reply. I understand the hookup now. Correction, I miss typed I do have an TM1803 LED strip. I’ll edit my post to reflect it. Any further assistance will be appropriated.

…Thanks Ralph
missing/deleted image from Google+

Oh good, you can use FastLED then. In the Arduino IDE you can look under the File menu pull down, then Examples, and find the FastLED Firstlight example. Edit it to the correct number of pixels in your strip, the pin you are using for the data line and your chipset (TM1803).

Marc, thank you for your time. I still don’t see the light. I know this light strip has 30 LEDs, 3 sets of 10. that’s why I tried 30 and 10 and I tried green wire in 3 and 11.

I’ll send pics of my setup in a while.

I included an LED on my board to ensure i was getting voltage in the right direction.

How can tell if the program is finding:

#include “FastLED.h”

Where would I look on my computer to see if it copied to the right directory?

I tried:
#define NUM_LEDS 10
#define NUM_LEDS 30

#define DATA_PIN 11
#define DATA_PIN 3

Here is my code:

// Use if you want to force the software SPI subsystem to be used for some reason (generally, you don't)
// #define FASTLED_FORCE_SOFTWARE_SPI
// Use if you want to force non-accelerated pin access (hint: you really don't, it breaks lots of things)
// #define FASTLED_FORCE_SOFTWARE_SPI
// #define FASTLED_FORCE_SOFTWARE_PINS
#include "FastLED.h"

///////////////////////////////////////////////////////////////////////////////////////////
//
// Move a white dot along the strip of leds.  This program simply shows how to configure the leds,
// and then how to turn a single pixel white and then off, moving down the line of pixels.
// 

// How many leds are in the strip?
#define NUM_LEDS 10

// Data pin that led data will be written out over
#define DATA_PIN 11

// Clock pin only needed for SPI based chipsets when not using hardware SPI
//#define CLOCK_PIN 8

// This is an array of leds.  One item for each led in your strip.
CRGB leds[NUM_LEDS];

// This function sets up the ledsand tells the controller about them
void setup() {
	// sanity check delay - allows reprogramming if accidently blowing power w/leds
   	delay(2000);

      // Uncomment 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<APA104, DATA_PIN>(leds, NUM_LEDS);
      // FastLED.addLeds<WS2811_400, 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<UCS1903, DATA_PIN, RGB>(leds, NUM_LEDS);
      // FastLED.addLeds<UCS1903B, 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<P9813, RGB>(leds, NUM_LEDS);
      // FastLED.addLeds<APA102, RGB>(leds, NUM_LEDS);
      // FastLED.addLeds<DOTSTAR, 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);
      // FastLED.addLeds<P9813, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);
      // FastLED.addLeds<APA102, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);
      // FastLED.addLeds<DOTSTAR, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);
}

// This function runs over and over, and is where you do the magic to light
// your leds.
void loop() {
   // Move a single white led 
   for(int whiteLed = 0; whiteLed < NUM_LEDS; whiteLed = whiteLed + 1) {
      // Turn our current led on to white, then show the leds
      leds[whiteLed] = CRGB::White;

      // Show the leds (only one of which is set to white, from above)
      FastLED.show();

      // Wait a little bit
      delay(100);

      // Turn our current led back to black for the next loop around
      leds[whiteLed] = CRGB::Black;
   }
}

***************************************************************

Here’s what I get when I compile:

In file included from C:\Users\ralph\Documents\Arduino\FirstLight-ralph\FirstLight-ralph.ino:6:0:

C:\Users\ralph\Documents\Arduino\libraries\FastLED-master/FastLED.h:17:21: note: #pragma message: FastLED version 3.001.005

pragma message “FastLED version 3.001.005”

                 ^

Sketch uses 4268 bytes (13%) of program storage space. Maximum is 32256 bytes.
Global variables use 127 bytes (6%) of dynamic memory, leaving 1921 bytes for local variables. Maximum is 2048 bytes.

*****************************************************************

Here’s what I get when I upload to Arduino UNO:

In file included from C:\Users\ralph\Documents\Arduino\FirstLight-ralph\FirstLight-ralph.ino:6:0:

C:\Users\ralph\Documents\Arduino\libraries\FastLED-master/FastLED.h:17:21: note: #pragma message: FastLED version 3.001.005

pragma message “FastLED version 3.001.005”

                 ^

Sketch uses 4268 bytes (13%) of program storage space. Maximum is 32256 bytes.
Global variables use 127 bytes (6%) of dynamic memory, leaving 1921 bytes for local variables. Maximum is 2048 bytes.

*****************************************************************

…Thanks Ralph

Yes a few photos might help.
Please re-post your code to http://gist.github.com and share a link here. It makes it much easier to read the code and line numbers can be referenced for discussion.

Note After you download and unzip the library and put it in library folder, you need to rename it from FastLED-master to just FastLED.

Thanks again Marc, heres my code:

missing/deleted image from Google+

missing/deleted image from Google+

missing/deleted image from Google+

Thanks for the photos. As far as I can tell stuff looks ok, but I can’t exactly tell what’s going on with the banana clip in the next to last photo. The connections on those breadboards can be a bit fiddly sometimes so if the data line wasn’t a great connection for example it would mess things up.
Does the strip light up/blink at all?
Do you have a multimeter and have you checked the voltage at various places in the setup?

You downloaded the library from here and renamed it to just FastLED after you unzipped it, correct?

Can you post the path to your arduino libraries folder?

Also check that your data line is connected to the correct end of the LED strip. Typically marked DI (for Data In) and DO (Data Out) and there are little arrows showing the direction the data flows.

You might try changing the chip type from TM1803 to TM1804 and also TM1809 just to make sure the strip wasn’t mislabeled.

I cleaned up the board a bit.

No meter, I’m out of town, but I will try to find one. That’s why I’m using the LED to ensure correct polarity. The Banana clip was to make the connection from the outside of the plug. Replaced with a wired connection. No light from the light strip at all.
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+

Did you switch your code to use pin 12? (Looks like you moved the data wire from 11 to 12 now?)

Havn’t re ran the code just showing setup. I did realize when i tried to reupload the FastLED, without the master, I got this error:

Arduino: 1.8.1 (Windows 10), Board: “Arduino/Genuino Uno”

A library named FastLED-master already exists

This report would have more information with
“Show verbose output during compilation”
option enabled in File -> Preferences.

I need to figure out how to delete the old and upload the correct. maybe completely reinstall Arduino. I’ll try later no time now.

Having duplicate versions of a library can cause problems. If you have a second one named FastLED-master delete it.
Also, anytime you remove or add things to the Arduino libraries folder you should close the Arduino IDE and restart it.