My favorites | Sign in
Project Home Downloads Wiki Source
Search
for
Lightunio_V20  
Details of the Lightuino V2.0 Board
Updated Feb 11, 2010 by G.Andrew...@gmail.com

The Lightuino board is a standalone Arduino-compatible (ATMEGA 328p) or a shield (daughtercard).

The purpose of the board is to expand the number of outputs available to the Arduino user and to provide outputs optimised for driving LEDs, optocouplers, relays, etc. Instead of providing additional digital logic, the Lightuino offers 70 constant current outputs that can provide up to approximately 20 milliAmps of current per output.


This is different then digital logic chips. Digital logic provide a constant voltage; i.e. when the pin is "high" you will see 5 volts (say) if a meter is placed across the pin and ground. When a constant current output pin is "on" it will vary the voltage as necessary to drive a specific current out of the pin. This means (for example) that an LED can be placed directly between V+ and the pin (the pin sinks the current) without using an additional resistor. In fact, using a constant current driver is better than using a resistor for LEDs because the constant current driver will compensate for variations in the LEDs, for LED aging, and finally be safe if the LED fails by shorting.

Uses

  • Light up model railroad houses, streetlights, etc
  • RGB mood lighting
  • LED coffee tables

Orientation

For all locations described on this page, please hold the board in front of you so that the M5451 chips are on the top surface and the power jack is farthest from your body (and the silkscreen is right-side up). We will call the side the power jack is on the top.

IDE cable pin numbers on both cables start from the bottom right (it is marked "1") and go to pin 40. All location descriptions refer to the LEFT IDE cable. To find the pin on the RIGHT side, just "flip" the top and bottom pins -- Note: its nice to use a meter to be sure!

Configuration

Jumpers

There are several jumpers on the board:

  • SRC5V: If this jumper shorts the top and middle (as shown) 5V power (CPU power) comes from the DC jack. If the jumper shorts the middle and bottom, then 5V comes from the FTDI cable. If the jumper is removed, power must be supplied via the Arduino pin.
  • VPASS: This 5 pin header provides several functions.
    • If this jumper shorts the left 2 pins (as shown), then power is shared between this board AND and Arduino Header's Vin pin. This allows you to use a single wall-wart for multiple stacked boards.
    • If a jumper shorts pins 3 and 4 (from the left) then the GND signal is carried out to the IDE cables, pin 40 (top of the board the bottom pin).
    • Pin 5 (farthest to the right) is provided for you to send a custom signal or voltage out the IDE cables. This voltage will be on IDE cable pin 36 (third from the top of the board, bottom pin).
  • JBRI: If the jumper shorts the bottom and middle pin, overall brightness is controlled solely by the trim pots (as shown). If the jumper shorts the top and middle pin, overall brightness can be software controlled by a PWM pin. If the jumper is off, no LEDs will light!

Headers

  • ICSP: The ICSP header is used to program the boot image, just like on an Arduino. Pin 1 is on the bottom right.

Potentiometers (VSEL and VTRIM)

  • VSEL: This potentiometer controls the voltage level expressed on the VCC pin (37, or top pin, 2nd from the top of the board) of the IDE cables. The voltage can range from 0 to whatever your DC wall wart is providing (up to a max of about 20 volts).
  • VTRIM: These 2 potentiometers adjust the brightness (i.e. current) output on the left and right IDE cables respectively. Generally they are used to match the sides so that the exact same intensities are generated. However you can set them differently to generate different intensities per side. Note that you may also use the provided library to implement software PWM to individually control brightness.

VDIV footprint

If you need to implement a voltage divider connected to your analog pins, these resistor footprints do the trick. They bridge 5V and the analog pins. Also just above each analog pin is a footprint for a set of ground connections, for easy connection of the variable half of the voltage divider.

PINSEL

The pin select footprint lets you choose which digital IOs control the LEDs. The top footprint holes correspond to the left side data pin, the clock pin, the right side data pin, and the brightness pin (as marked). The bottom footprint holes correspond to digital IOs 0 through 13 moving from left to right.

To use the M5451 chips, you must solder wires between a hole on the lower bank to a hole in the upper bank (if it is not already done). Make sure your wire does not short against a via on the board!

If you do not care which pins, then I recommend you use pin 3 to the "clock", pin 4 to the "left", pin 5 to the "right", and finally pin 10 to "bright". You will need to enter this information into your sketch so it knows what pins to use.

RESET

The reset button is located on the top as shown. Please click the reset button EXACTLY when the Arduino IDE prints the "sketch size..." log. It is very easy to press the button too early or late, which will cause the sketch to not be uploaded!

LEDS

  • The rightmost LED indicates 5v power (CPU power).
  • The leftmost LED is the pin 13 LED used in a lot of sketches like the "blink" sketch. It will also flicker rapidly when a sketch is being downloaded.

IDE cable pinout

The left and right IDE cable pinouts are exactly the same on the circuit board. But since the header does a right angle turn to leave the board on the side, a pin on the top of the left side is on the bottom on the right, and vice versa.

For example, pin 40 (the GND pin) on the circuitboard is on the upper left corner. On the left side then corresponds to the top row, bottom pin. On the right side this is the top row, top pin.

  • Pin 40 GND Pin: This pin is ground IF the appropriate VPASS jumper is closed. Otherwise it is unused.
  • Pin 39 Vin Pin: This is the raw voltage coming from the wall wart. Only use this pin if you are using too much power for the voltage regulator to handle.
  • Pin 38 5V Pin: This pin provides 5 volts. Use this pin to drive logic.
  • Pin 37 VSEL Pin: This pin provides whatever voltage is selected via the VSEL variable resistor. If in doubt, use THIS pin to drive your LEDs, etc.
  • Pin 36 ANY Pin: This pin can be used for anything; it is exposed on the rightmost pin of the VPASS header (on the board "IDEVSEL S1" is silkscreened next to it).
  • Pin 35 - Pin 1: These are the individually controllable constant current sink pins. Connect your load from one of the voltage pins described above to one of these pins.

In code,

// A nice little PIN identifier sketch.  It assigns the extreme 4 pins (2 on each side)
// different values.  Hook a multimeter up in series with an LED and measure the current
// flowing through when the LED is connected to each pin.  You will see different currents
// on each pin.  

// You can use the same technique to find pins in the middle of the connector!

CCShield board(myClockPin,mySerDataPin,mySerDataPin2, myBrightnessPin);   
FlickerBrightness leds(board);

void loop() 
  {
  board.flags = Lightuino_FASTSET;
  
  while (1)
  {
  leds.brightness[0] = 32;      // This is the near side top pin on the LEFT connector
  leds.brightness[34] = 64;     // This is 2-from-the-far side top pin on the LEFT connector
  leds.brightness[35] = 127;    // This is the near side bottom pin on the RIGHT IDE connector  
  leds.brightness[69] = 255;    // This is 2-from-the-far side bottom pin on the RIGHT IDE connector
  for (int i=0;i<10;i++) leds.loop();
  //delay(100);
  }
}

Note, sometimes the IDE cable will reverse what is bottom and top, so while the code comments are accurate for your connector they may not be accurate for the output of the IDE cable. Just experiment!

Miscellaneous

Brightness

Note that the M5451 chip can dissipate 1 Watt at 25 Celsius, so you must work within this limit. For example let's say that you are putting 5V across the circuit, and the LEDs use 3V. This means that 2V will be dissipated in the chip (5 minus 3). At 10mA current, this is 20mW per line (power = volts*amps) or 20*35 LEDs = 700mW total dissipated in the chip. So you are ok. But if you used 20mA current, you would have 1.4Watts when all the LEDs are lit. Not so good.

However, there is more than one way to fix the problem. First, you can change the VSEL pot to adjust the input voltage. Second, if only half of the LEDs are simultaneously on (maybe your application blinks them), then you are back to 700mW so are ok. But of course this means a bug in your program might cause all the LEDs to turn on and the chip to burn out... Or maybe you could install a heat sink onto the M5451 chip and do some testing to ensure you don't start a fire :-).

CPU Components Only

Board Layout

Comment by mk.humph...@gmail.com, Mar 26, 2010

Hi there Mr. Stone, I'm working on an installation using the Arduino, but intend to use around 100 RGB LEDS. Unfortunately I'm on a bit of a budget, ordering more than one of your ready-made Lightuinos isn't quite possible. Is there a way I can make a shield with more output pins in one go? (I'm thinking at this point ~400) Thank you, Mei-ling Humphrey mkdot?humphreyat?gmaildot?com

Comment by gov...@gmail.com, Apr 4, 2010

A single Lightuino can drive 70 LEDS. If you put your 3 LEDs in a series per channel, you can get this number up to 210.

Question is, do you need individual LED control per channel?

Comment by anthr...@gmail.com, Apr 8, 2010

I'm trying to build a material reflectance measurement device, described in this paper: http://research.microsoft.com/en-us/um/people/jpwang/paper_stuffs/led_brdf_cvpr08.pdf.

The device makes use of LEDs as photometers as well as for emitting light. Would it be possible to measure voltages off LEDs connected to your Lightuino board in addition to the traditional use of emitting light (in other words, for the same LED, is it possible to switch between input and output as needed?)

I'm brand new to the Arduino world, but it sure looks like the way to go, and it seems like your Lightuino will simplify the use of the ~75 or more LEDs needed for my project.

Would it be alright to email you to discuss solutions for my project?

Comment by project member G.Andrew...@gmail.com, Apr 9, 2010

Sure send me an email! That's a pretty cool paper, thanks for linking to it.

The Lightuino itself is not capable of measuring the analog voltage of the LEDs. However I think that the Lightuino and an A/D converter could share LEDs. So you could consider using the Lightuino as the LED driver and microProcessor and buy, develop, or breadboard a suitable A/D converter and analog multiplexer that plugs on top of the Lightuino.

Actually the A/D converter really is the achilles heel of the approach; the Analog/Digital converter chip mentioned in the paper costs more than the Lightuino just for the chip! But you could always use a much slower and cheaper A/D converter -- it would simply take longer to scan each object.

Comment by michaels...@gmail.com, Oct 20, 2010

Hi G.,

I'm using Lightuino 3.0. I can't seem to find the schematics for this board on the wiki. Can you point me at them please? Thanks!

Michael


Sign in to add a comment
Powered by Google Project Hosting