Pages: [1]   Go Down
Author Topic: Ambitious project for a novice  (Read 1241 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 8
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi All

I was fooling around on you-tube when I came across LED cubes (most of which were powered by Arduino). I thought, I have got to make one of these! The problem, I tend to bite off more than I can chew and I know very little about electronics, programming or pcb design. I have built (really assembled  smiley) a Megasquirt II ECU for my car.

I have looked around at the overpriced kits available and thought, I can make one of these. I would like to build, from scratch, a 153 LED Cube, and at this stage using LEDs found here:

http://www.futurlec.com.au/LED/LED5PU.jsp

I will need 3,375 of the above LED's to make my 153 cube. I have commenced research on multiplexing and the concepts behind it and how it works and why it is used. The largest cube (with explanation) has been a 43 cube. Given my lack of knowledge and experience I need help and a lot of it just to get this thing built, let alone programmed.

So to begin with, I think the questions I need to resolve are:
  • How does one go about controlling 153 LEDs?
          individually is certainly not a option!
         is multiplexing the way to go?
         are there other options available?
         Is it possible to light all 153 at once?
  • What components are required to make that happen?
  • What are the power requirements of such a cube and how would I meet them?

Does the ability to light up all LEDs simultaneously require multiple multiplexes (such as 7 x 83), which would physically operate separately, but visually as one?

I am really going to need help/advice to realise this project. I hope a few of you take pity on this fool and help him on his way.

Cheers

Shaun
« Last Edit: April 26, 2011, 01:24:43 am by ShaunC » Logged

Norway
Offline Offline
Sr. Member
****
Karma: 4
Posts: 423
microscopic quantum convulsions of space-time
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
The problem, I tend to bite off more than I can chew and I know very little about electronics, programming or pcb design
Then I would really suggest you build something else first. How about a 3x3x3 cube, that way you will get a little acquainted with LED's, soldering/building, IC's that might be handy for multiplexing and programming the thing (even if a 15^3 is another beast than a 3^3).

Also, you would only need 27 LED's (or 30, a couple of extras is nice to have), and don't have to buy 3500-ish as the first thing you do. A mere 1% of cost and work for a test run. Even if including an Arduino, I think - 3500 LEDs isn't cheap?

One important thing, if you really go through with this I would suggest choosing diffused LEDs, not LEDs with clear lenses. Reason being the diffused ones are more visible from a broader viewing angle. I couldn't find any reference to whether or not the ones you found are diffuse or not. Would be a bummer buying all those LEDs and having to sandpaper 3375 LEDs by hand....

Btw, have you seen this 16^3 cube? Really awesome! But I don't know whats powering it (page wouldn't load atm):


Also I don't know how feasible a 15^3 cube is with an arduino.. maybe one of the bigger ones, like the Mega, or a Sanguino. Or use two or more arduinos maybe. Just some loose suggestions.

Also you'd need to decide if you want PWM ("grayscales") and/or RGB smiley-razz But given the size I think not!

As for your questions:
Quote
         • individually is certainly not a option!
         • is multiplexing the way to go?
If not the one then the other, yes. And I'd agree that individually (as in all of them simultaneously) is not an option. Then you have to decide upon some multiplexing scheme.

Quote
  • are there other options available?
Nothing that comes to mind now.
Quote
         • Is it possible to light all 15^3 at once?
If you use some kind of multiplexing, then not really. But:
Quote
I have commenced research on multiplexing and the concepts behind it and how it works and why it is used
You should know about the effect of POV then? POV - persistence of vision. IE provided the framerate is high enough, you could make it seem like they are all on at once.

Quote
    * What components are required to make that happen?
Not really easy to answer..sorry. There are quite a lot of options. I'm sure you have seen lots of threads mentioning things like shiftregisters, to TLC5940s, ULN2803 etc... I don't really dare give advice on your mega cube! But at the very least some transistor arrays (like ULN2803 or similar) and / or transistors to drive the cube.

Quote
    * What are the power requirements of such a cube and how would I meet them?
...and a hefty power supply!

Power requirements for just the cube will depend on what multiplexing scheme you choose.
Lets say you manage to lit an entire layer (15x15) at once, then this is the power requirement (+ logic circuitry and the microcontroller etc). This multiplexing would then light each layer in the cube for 1/15th of a frame time. Since each LED is also lit like that, you could overdrive them somewhat to get it brighter.

Lets say one LED use 20 mA as standard, but you drive them with 50mA (this is for 1/15th of a time - btw I choose this as an arbitrary example). Then one layer (and also the hole cube sans logic circuitry) would require 225LEDs * 50mA = 11.25 Amperes, at whatever voltage you use for the LEDs.

Quote
Does the ability to light up all LEDs simultaneously require multiple multiplexes (such as 7 x 83), which would physically operate separately, but visually as one?
Not necessarily, but maybe in your case because of the size. If you do, take care that they are syncronized and have the same frequency, or else you might see flicker. Shouldn't be a problem if you control it all from the same microcontroller.

Btw with multiplexing not all of the LEDs light up simultaneously, but if done fast enought, the eyes wont notice (POV again).

Quote
I am really going to need help/advice to realise this project. I hope a few of you take pity on this fool and help him on his way.
There are some really nice and talented people here, which usually answer specific questions, but nobody will write the program for you (for free, anyway. Unless you are really lucky smiley-razz But whats the fun in that?)
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 8
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi raron

Quote
Then I would really suggest you build something else first. How about a 3 x 3 x 3 cube, that way you will get a little acquainted with LED's, soldering/building, IC's that might be handy for multiplexing and programming the thing (even if a 15^3 is another beast than a 3^3).

You are probably right! I will listen to your advice and make a 33 cube as a warm up.

Quote
Also, you would only need 27 LED's (or 30, a couple of extras is nice to have), and don't have to buy 3500-ish as the first thing you do. A mere 1% of cost and work for a test run. Even if including an Arduino, I think - 3500 LEDs isn't cheap?

You are right, it is not cheap, ~AU$595 for 3,500.

Quote
One important thing, if you really go through with this I would suggest choosing diffused LEDs, not LEDs with clear lenses. Reason being the diffused ones are more visible from a broader viewing angle. I couldn't find any reference to whether or not the ones you found are diffuse or not. Would be a bummer buying all those LEDs and having to sandpaper 3375 LEDs by hand....

You are absolutely right. I have since read somewhere the reasoning behind the use of diffused LEDs.

Quote
Btw, have you seen this 16^3 cube? Really awesome! But I don't know whats powering it (page wouldn't load atm):

This is indeed the very cube that tickled my fancy. This is my end game, so in fact the 153 cube was going to be the first step. I had figured that this was 1/3 of the work required to get up an running!!!

Quote
Also I don't know how feasible a 15^3 cube is with an arduino.. maybe one of the bigger ones, like the Mega, or a Sanguino. Or use two or more arduinos maybe. Just some loose suggestions.

I will check these out. I have been pursuing the Arduino avenue as I had seen other projects using it, but I unsure of the capabilities.

Quote
Also you'd need to decide if you want PWM ("grayscales") and/or RGB smiley-razz But given the size I think not!

As RGB is final step I would like to achieve perhaps PWM is something I would like to pursue.

Quote
Power requirements for just the cube will depend on what multiplexing scheme you choose.
Lets say you manage to lit an entire layer (15x15) at once, then this is the power requirement (+ logic circuitry and the microcontroller etc). This multiplexing would then light each layer in the cube for 1/15th of a frame time. Since each LED is also lit like that, you could overdrive them somewhat to get it brighter.

Lets say one LED use 20 mA as standard, but you drive them with 50mA (this is for 1/15th of a time - btw I choose this as an arbitrary example). Then one layer (and also the hole cube sans logic circuitry) would require 225LEDs * 50mA = 11.25 Amperes, at whatever voltage you use for the LEDs.

Not necessarily, but maybe in your case because of the size. If you do, take care that they are syncronized and have the same frequency, or else you might see flicker. Shouldn't be a problem if you control it all from the same microcontroller.

Btw with multiplexing not all of the LEDs light up simultaneously, but if done fast enought, the eyes wont notice (POV again).

I do understand the concept of POV and its interaction with multiplexing. So what you are saying is that as only some of the LEDs will be lit only some of the time, the power supply does not necessarily need to possess the ability to power all LEDs. If I were to build a 153 cube I would really only require enough power to light the LEDs used in one cycle.

Quote
There are some really nice and talented people here, which usually answer specific questions, but nobody will write the program for you (for free, anyway. Unless you are really lucky smiley-razz But whats the fun in that?)

Please do not misunderstand me. I do not want other people to do it for me at all! Simply a few nudges in the right direction and advice, as you rightly point out, where's the fun in that!!! This is an opportunity for me to learn about something I have never really understood.

Thank you for your reply.

Cheers

Shaun

Logged

Norway
Offline Offline
Sr. Member
****
Karma: 4
Posts: 423
microscopic quantum convulsions of space-time
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi there!

Quote
o what you are saying is that as only some of the LEDs will be lit only some of the time, the power supply does not necessarily need to possess the ability to power all LEDs.
Exactly!

Quote
I will listen to your advice and make a 3^3 cube as a warm up.
I think maybe the size of the original project will be more clear then. Not to put you off or anything. I really wish you luck (or skills smiley-razz) with it!
Logged

Portugal
Offline Offline
God Member
*****
Karma: 5
Posts: 962
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Those gigantic rgb led cube is supposedly driven by an Intel Atom core..

Look this 8x8x8 RGB led cube:
http://v3spin.blogspot.com/p/8x8x8-rgb-led-cube.html

Lots of info there, started to use an atmega but he them moved to PIC32..
An Arduino is underpowered to drive an 15x15x15 led cube.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 8
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi raron

If I was to continue down the path of a 153 cube and 1 cycle consisted of 1000 milli seconds, the number of LEDs to be lit in one second would be 1000 (i.e. one LED for each milli second in a cycle), is that correct? If that is true, is it possible to manipulate the timing in a cycle, for example 2000 milli seconds?

There is a nice little project here which I will have a go at. At will at least give me a good understanding at a basic level.

Thank you for your input, it is greatly appreciated.

Hi Senso

Really, an Intel Atom, then at this stage I really am a fish out of water. But how cool would it be to make one.

That 83 cube is pretty cool, thanks for the link.

Cheers

Shaun
Logged

Norway
Offline Offline
Sr. Member
****
Karma: 4
Posts: 423
microscopic quantum convulsions of space-time
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
If I was to continue down the path of a 15^3 cube and 1 cycle consisted of 1000 milli seconds, the number of LEDs to be lit in one second would be 1000 (i.e. one LED for each milli second in a cycle), is that correct? If that is true, is it possible to manipulate the timing in a cycle, for example 2000 milli seconds?
Hm, I'm not sure I follow what you mean. 1 cycle = 1 frame?  One LED pr millisecond? If you mean to light up 1 LED at a time, it would be a very, very dim LED at 1/1000 duty cycle (or 1/3375).

You can manipulate anything in principle, but there's always a tradeoff between something. Somewhere between one LED at a time and horrible framerate (or, if you somehow manage a decent framerate, at least a very dim cube), and all LED's simultaneously but very bright and with a LOT of wiring, components and the current/power requirements with that (except all that wiring would likely obstruct the view to the middle LEDs...) smiley-razz

Sorry if this sounded silly or something.. just about to go to sleep now.

(Btw, better not adress it to just me, I'm sure other can answer much better than I can, though I hope I have given some insight into the thing.. + I'm a pretty periodic/un-steady poster smiley-razz)


Also as Senso mentions, maybe you must consider a more powerful microcontroller than an Arduino for a 15³ cube. Me, I don't know, I haven't calculated anything regarding that, I have a feeling it might be feasible for a non-PWM one-colored 15ish³ cube, but not more.


To try and put some numbers down: Let say you aim for 50 Hz framerate (as a ballpark). To continue my former example of lighting up an entire layer at once (pretty demanding that also, with regards to current, nr of external driving circuits and transistor arrays etc):

1/50th second * 1/15 layer time = 1/750 s, or 1.33 milliseconds pr layer.

In that time 225 LEDs should be lit somehow...

There is not enough pins on any Arduino's, so some sort of trick has to be used. The Mega does have 54 pins though, + 16 analog pins, I assume these can also be used as digital outputs just like the regular Arduino, which I'm used to. So 70 pins total(?).

If you further multiplex those 225 LEDs 1/4, (56+56+56+57 LEDs) + some control outputs for this multiplexing, maybe serial I/O for debugging, and some buttons, then 70 digital I/O's should be about just enough. I assume here that each (multiplexed) LED is controlled directly by the Arduino Mega. The issue/questoin  is speed. Pretty sure you would have to use direct port manipulation for speed.

So, 1.3333 ms / 4 = 333 us (microseconds) pr. multiplexed LED "block" (of 56 or 57 LEDs). Also note with this scheme any LED is on for 1/(15*4) seconds = 1/60. IE not too bright...

One Arduino instruction takes 62.5 ns (except jumps that takes 2, probably some other exceptions also I'm not a expert on that), or simply 16 instructions pr. us. 16*333us = 5328 instructions within one multiplexed set of LEDs. In that time you must find and prepare data for the next set of LEDs, process any button clicks etc.. (and allow for other interrupts that might be going on - in fact you should put the display/multiplexing routine as an interrupt). Unless I overlooked something, I think this looks promising.

With the possible exception of rather / very dim LEDs that is. So maybe not quite like this. Or maybe only visible indoor and in the dark. Of course this is not the only scheme possible, and dont take my word for it... I haven't actually built one of these myself yet (well at least not this type of cube, and not this size!). I do have a few dual color RG LEDS I was am planning to make a 5³ cube out of some time though smiley


Speaking of cubes, here is a couple of others (you might have seen them though but I post them anyway, they are just too cool!)
An 8^3 with drawing software on the computer:


And an unbelievable 66*48*24. Now that's not cheap...


Come to think about it, they ought to make stackable 3D LED blocks in one piece smiley That way they could design the light to fill out one pixel better (I would think, or maybe that would be obstructing the mid-LEDs?), or make them with higher resolution. Would probably be pricey though.

This was a lot more than I originally thought writing. Hope some of it made sense.
Going to sleep now smiley
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 8
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi All

Despite the advice (that I really should have listened to   smiley-red) I have proceeded with some research in to building an 8³ (it is smaller  smiley-wink) RGB Cube.

I have since acquired an Arduino Mega 2560, some TLC5947's and a copy of Eagle. 1,000 lots of 5mm RGB LEDs are fairly cheap and readily available on Ebay.

I have given some thought to the physical layout of the LEDs. The TLC5947 has 24 channels, i.e. R0 to R7, B0 to B7 and G0 to G7. I am considering constructing in columns and rows rather than in layers, i.e. R0, B0 and G0 will control a column of 8 LEDs and so on. Each layer will share a common cathode/anode connecting directly the Arduino. I will only need to use 16 outputs on the Arduino, none of which (I think) require PWM as the the TLC5947 has that feature built in.

So, at this stage I am trying to work out:
  • whether I need common cathode or common anode LEDs, or if in fact it matters at all
  • What Constant Current Sink Output actually means
  • whether I need something (not sure what) between the Arduino and the TLC5947's to supply power to the LEDs
  • whether I need something (not sure what) between the TLC5947's and the LEDs to power the LEDs

Progress is slow and will be even slower shortly as my first child  smiley-mr-green is due to arrive in 12 days. If all the horror stories I have been told about lack of sleep are true, perhaps the project may progress more quickly.

Cheers

Shaun
Logged

Boston, MA
Offline Offline
Jr. Member
**
Karma: 0
Posts: 83
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

This may be a little off topic, but I wonder if submerging the LEDs in oil would cut down on the refractive index and so make the off LEDs refract less of the light of the on leds... maybe one of you guys who has built a cube could try it! :-)

Andrew
www.toastedcircuits.com: Lightuino 5 LED driver
Logged

http://www.toastedcircuits.com Lightuino LED driver: 16 sources, 70 sinks, remote controlled.  Also high powered LED drivers.

Surrey, UK
Offline Offline
Newbie
*
Karma: 0
Posts: 39
Seeking to destroy the world, one electrolytic cap at a time.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
The problem, I tend to bite off more than I can chew and I know very little about electronics, programming or pcb design.

Hey Shaun,

Way to go for the baptism by fire - I hope you enjoy it  smiley-eek

Let me list the things - I kinda like lists. Are you gonna a) learn how to use and program an arduino, b) design multiplexing circuits, c) learn EAGLE PCB and PCB schematic capture and PCB layout design (which can be a right PITA to new users), d) make PCBs at home (maybe?), d) learn to handsolder SMD components (I hope you got the HTSSOP-32 version, it's only got a 0.6mm lead pitch!), e) hand solder 2048 LED joints, f) have a baby and g) save the known universe from oppressing tyrany ?

Jimny Gillikers, Radio-active man! That's training for a whole new career direction at once.

My advice? Check out youtube for tutorials. http://www.youtube.com/user/rpcelectronics for Eagle PCB tutorials, but not so good for a) and b).

Enjoy!

Pol.
Logged

Manchester (England England)
Offline Offline
Brattain Member
*****
Karma: 508
Posts: 31384
Solder is electric glue
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
whether I need common cathode or common anode LEDs, or if in fact it matters at all
Common anode, it matters, it will not work with common cathode.

Quote
What Constant Current Sink Output actually means
The output is a constant current irrespective of the load. This means you don't have to have current limiting resistors in line with the LEDs

Quote
whether I need something (not sure what) between the Arduino and the TLC5947's to supply power to the LEDs
You will need to feed the TLC5947 with a separate regulated 5V as the regulator on the arduino will only supply about half an amp.

Quote
whether I need something (not sure what) between the TLC5947's and the LEDs to power the LEDs
No



My advice:-
If you are having to ask such fundamental questions you are not yet up for tackling such a large project. Do some smaller stuff first.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 8
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
My advice:-
If you are having to ask such fundamental questions you are not yet up for tackling such a large project. Do some smaller stuff first.

I will take you advice. Perhaps a 33 or 43 mono cube would be a good place to start. There are a few websites around detailing these.

Cheers

Shaun
Logged

Pages: [1]   Go Up
Jump to: