User Tools

Site Tools


holiday:assembly

This is an old revision of the document!


Holiday Lights! Assembly Tutorial

This is an unassembled kit and requires basic soldering. This is designed for use with the Digispark development board, which is included.

Parts - All Kits

Part Quantity Identification
Tree, Dove, or Menorah PCB1
10M Ohm 1/4W Resistor1 (2 for Menorah) Brown-Black-Blue Gold
WS2812B type 5mm through hole LED9 (13 for Dove)
3xAAA Battery Holder with Foam Tape on Back 1
Digispark USB Development Board 1
1×3 pin female 0.1“ pitch header 1
1×6 pin female 0.1” pitch header 1
1×40 pin male 0.1“ pitch header 9 pins worth

Parts - Additional in Tree Kit

Part Quantity Identification
5V Passive 12mm Buzzer1

Resistor Values: For more information on how to identify the value of the resistors, we recommend these sites: A nice simple resistor calculator: http://www.ealnet.com/m-eal/resistor/resistor.htm A comprehensive article on identification: http://www.diyaudioandvideo.com/Electronics/Color/

Soldering: If you are new to soldering we recommend the following tutorials: Soldering Basics (http://www.sparkfun.com/tutorials/106) and Soldering Crash Course from the folks at Sparkfun (http://www.sparkfun.com/tutorials/354). How to solder from the Curious Inventor: http://store.curiousinventor.com/guides/How_to_Solder

Adafruit has this excellent guide that starts with the tools needed and then shows detailed pictures, including some of the common problems that beginners experience (http://learn.adafruit.com/adafruit-guide-excellent-soldering)

We assume for these assembly instructions that you know the basics of thru-hole soldering. If you don't check out the links above, these boards are very easy to solder - we promise!

Assembly:

Empty kit bag (or if using a raw PCB, aquire parts) and verify contents.

digiled1.jpg

When inserting the LED into the board ensure the two longer leads of the LED goes through the holes marked data out and ground (see photo) - this ensures you have the LED oriented properly. Solder the LED leads and clip off the excess.

digiled2.jpg

digiled3.jpg

Insert the capacitor on the top of the board (as shown), solder leads on bottom. Orientation of the capacitor does not matter.

digiled4.jpg

Cut a length of male headers 6 pins long and one 3 pins long. Insert into corresponding positions (on the bottom of the board) and solder each pin.

Tip: Inseting the headers into a breadboard and then placing the board on top can make this process easier.

Note: If you are using stackable headers, use them here instead of the standard male headers.

When inserting the LED into the board ensure the two longer leads of the LED goes through the holes marked data out and ground (see photo) - this ensures you have the LED oriented properly. Solder the LED leads and clip off the excess.

digiled5.jpg

Your DigiLED shield is complete!

Note: On the back of the shield there is a solder patch to activate pin 5 instead of pin 1 as the digital input. If you are not using the DigiLED as a shield onto the DigiSpark Pro and planning on running it at a distance, you only need to connect the specified digital pin (Pin 1) and bottom 3 pins (5V, GND, VIN). You do not need to connect all 6 pins on the right-hand side of the shield.

Chaining:

When chaining multiple DigiLED's together, you only need to connect 3 points as a daisy chain using VCC, DO>DI and GND.

For example, LED #1 would need the top 3 pins VCC, DO (out) and GND to connect to DigiLED #2's VCC, DI (in) and GND on the second row from the bottom of the board.

If you added LED #3 you would need to connect DigiLED #2's top three pins to the second row from the bottom on DigiLED #3 and so-on and so forth. After DigiLED 1, the side pins and 5V, GND, VIN should not be connected, only the three input and output points for chaining.

Programming:

Note: The programming sections assumes you've installed the Arduino IDE and the Digispark Add-ons

Download and install the NeoPixel library: https://github.com/adafruit/Adafruit_NeoPixel

Set the Pin to 1, Number of LEDs to 1 (unless you have chained more on), and format to NEO_RGB + NEO_KHZ800

If you have a single DigiLED, the following code sample will make it continuously cycle through white, cyan, violet, yellow, red, green and blue.

// Based on NeoPixel Ring simple sketch (c) 2013 Shae Erisson
// released under the GPLv3 license 
#include <Adafruit_NeoPixel.h>
 
// Which pin on the Digispark is connected to the DigiLED?
#define PIN            1
 
// How many DigiLEDs are attached to the Digispark?
#define NUMPIXELS      1
 
// When we setup the NeoPixel library, we tell it how many pixels, and which pin to use to send signals.
// For the WS2812B type through hole LED used by the DigiLED,  NEO_RGB + NEO_KHZ800 is the correct data format
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_RGB + NEO_KHZ800);
 
int delayval = 500; // delay for half a second
 
void setup() 
{
  pixels.begin(); // This initializes the NeoPixel library.
  pixels.show(); // Initialize all pixels to 'off'
}
 
void loop()
{
  // pixels.Color takes RGB values, from 0,0,0 up to 255,255,255
  // in Red,Green,Blue order
 
  pixels.setPixelColor(0, pixels.Color(255, 255, 255)); //white
  pixels.show(); // This sends the updated pixel color to the hardware.
  delay(delayval); // Delay for a period of time (in milliseconds).
 
  pixels.setPixelColor(0, pixels.Color(0, 255, 255)); //cyan
  pixels.show();
  delay(delayval);
 
  pixels.setPixelColor(0, pixels.Color(255, 0, 255)); //violet
  pixels.show();
  delay(delayval);
 
  pixels.setPixelColor(0, pixels.Color(255, 255, 0)); //yellow
  pixels.show();
  delay(delayval);
 
  pixels.setPixelColor(0, pixels.Color(255, 0, 0)); //red
  pixels.show();
  delay(delayval);
 
  pixels.setPixelColor(0, pixels.Color(0, 255, 0)); //green
  pixels.show();
  delay(delayval);
 
  pixels.setPixelColor(0, pixels.Color(0, 0, 255)); //blue
  pixels.show();
  delay(delayval);
}

If you have more than one DigiLED daisy-chained, the following code will make all the DigiLEDs light up green. You need to change the NUMPIXELS variable to the number of DigiLEDs you have chained together.

// Based on NeoPixel Ring simple sketch (c) 2013 Shae Erisson
// released under the GPLv3 license to match the rest of the AdaFruit NeoPixel library
#include <Adafruit_NeoPixel.h>
 
// Which pin on the Arduino is connected to the NeoPixels?
#define PIN            1
 
// How many NeoPixels are attached to the Arduino?
#define NUMPIXELS      1
 
// When we setup the NeoPixel library, we tell it how many pixels, and which pin to use to send signals.
// Note that for older NeoPixel strips you might need to change the third parameter--see the strandtest
// example for more information on possible values.
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_RGB + NEO_KHZ800);
 
int delayval = 500; // delay for half a second
 
void setup() {
  pixels.begin(); // This initializes the NeoPixel library.
}
 
void loop() {
  // For a set of NeoPixels the first NeoPixel is 0, second is 1, all the way up to the count of pixels minus one.
  for(int i=0;i<NUMPIXELS;i++){
    // pixels.Color takes RGB values, from 0,0,0 up to 255,255,255
    pixels.setPixelColor(i, pixels.Color(0,150,0)); // Moderately bright green color.
    pixels.show(); // This sends the updated pixel color to the hardware.
    delay(delayval); // Delay for a period of time (in milliseconds).
  }
}
holiday/assembly.1482433607.txt.gz · Last modified: 2016/12/22 11:06 by digistump