Minimalist RGB LED cube has a very short BoM

charlieplexed-led-cube

[Asher Glick] wrote in to share a project he has been working on with his friend [Kevin Baker], a 4x4x4 RGB LED cube. The pair are students at Rensselaer Polytechnic Institute and also members of the newly-formed Embedded Hardware Club on campus. As their first collaborative project, they decided to take on the ubiquitous LED cube, trimming down the component count to nothing more than 64 LEDs, a protoboard, some wire, and a single Arduino.

Many cubes we have seen use shift registers or decade counters to account for all the I/O required to drive so many LEDs. Their version of the cube has none of these extra components, solely relying on 16 of the Arduino’s I/O pins for control instead. You might notice something a bit different about the structure of their cube as well. Rather than using a grid of LEDs like we see in most Charlieplexed cubes, they constructed theirs using 16 LED “spires”, tucking the additional wiring underneath the board.

The result looks great, as you can see in the videos below. The cube looks pretty easy to build, and with a cost around $60 it is a reasonably cheap project as well.

Nice job, we look forward to seeing all sorts of fun projects from the Embedded Hardware Club in the future!

Comments

  1. Vonskippy says:

    BoM WTF?

    Back on Market? How does that apply?

    How about following the standard writing practice of defining acronyms when first used in the article.

    This is the web, you don’t get charged by the character.

    • Mike Nathan says:

      You’re certainly not new around here, so your confusion surprises me.

      BoM = Bill of Materials – we refer to part lists like this all the time.

    • sawo says:

      You are that kind of guy that writes “metal oxide semiconductor field-effect transistor” instead of MOSFET, right?

      • Dax says:

        But why do you have to shorten “parts list”?

      • Vonskippy says:

        @sawo – yes how awful that I try to improve their basic writing skills with common technical writing practices.

        BoM has SEVERAL definitions – therefore it’s only common sense (if not common courtesy) to describe which definition you’re using for this specific article.

        As to MOSFET, yes it would be nice to define it fully at some point in the article, but since there isn’t multiple definitions for MOSFET you can always fall back on the “google it” reasoning.

      • HaDurr says:

        @Vonskippy

        Google bom. First result is bureau of meteorology. second is byte order mark. third is bill of materials.

        given those three choices which makes most sense when presented in the same line as ‘minimalist’

    • bveina says:

      in my highly scientific study,
      google returns the following page counts:
      ‘Bom “Back On Market”‘ – 2,710,000
      ‘BoM “Bill of Materials”‘ – 5,520,000

      more than i expected for “back on market”, however, i have to agree with sawo..

    • Eric says:

      I would assume everyone reading this site knows what a BOM is..

      • Lefty says:

        You would be wrong, then. It’s definitely common courtesy to expand acronyms at least once in an article. Especially on the internet, where one cannot ever predict who it’ll get linked to.

  2. reklipz says:

    Neat! I like the tower design for stacking the LEDs.

    Not having current limiting resistors for the LEDs doesn’t seem like a very good idea to me, though.

    I’ve never used an Arduino before, but if I had to guess I would say that it doesn’t put series resistors on it’s digital outputs. Someone please correct me if I’m wrong (in which case, I’m glad I’ve never used an Arduino before).

    • Technically you’re right, though as long as you keep the duty cycle low enough, it shouldn’t be a problem. The charlieplexing may even prevent the duty cycle on any one pin/led from getting high enough to cause damage under normal operation, but it could definitely cause damage if the sketch were to hang with an LED lit, or you uploaded the wrong sketch.

      The advantage of leaving out the resistors, besides fewer parts to deal with, is that the low duty cycle required by the charlieplexing will reduce the brightness, and leaving out the resistors will increase the brightness.

  3. Roger Parkinson says:

    He doesn’t say what kind of Arduino. It actually looks like a Teensy++ (so not exactly an Arduino, but close). Anyone know?

  4. N0LKK says:

    Nice idea. while in general most LED cubes look to be of a delicate nature, this one is particularly so.

    We all bring our own experiences to the table. I have been involved with DIY for at least 40 years, and BoM didn’t register as Bill Of Materials for me either. As it did seem to be an important fact to know about this project was built I didn’t worry about it. Then again one of the HaD staff, like many others, use HAM, when simply ham would suffice Acronyms have their place, but often they they get in the way of concise communications, if someone has to take time to figure out what was meant in the context of the particular communication.

  5. steaky1212 says:

    Very interesting design. I’d be tempted to use the “first and second groups” connections to give additional rigidity to the construction.

    Also, acronyms mean a whole lot more in context – in this case it clearly means bill of materials and is incredibly common in engineering

    • Asher Glick says:

      That is actually one of the reasons we laid out the wiring that way, if you wanted to make the cube more stable you could. If you rotate the LED spires 45 degrees then the pins from group one and two form straight lines that you can run single rails of wire across to make it more sturdy. We opted not to do that for the prototype, but the PCBs are designed so that it is easy to add the supports.

  6. Andrew says:

    Two things…
    Nice work on the minimalist build. I’ve been itching to do a LED cube for a while and this one is great. I thought I’d do a mono cube but now that I’ve seen this one, I think I’ll have to go RGB.

    Also, WTF is all the calamity about BoM. If you don’t know what it means just ask nicely. Acting all high and mighty like the grammar police doesn’t help your position.

  7. Marek says:

    Assuming that the 16 towers all are connected to an output of the Arduino.

    So how exactly is he able to address an individual LED?

    This is something I’ve not understood for a while on LED cubes. Surely you need an input for each LED if you want to address it individually?!

  8. vespine says:

    As a fellow cube builder who has made an 8x8x8 RGB cube, all I can say is wow, very clever. Very well done!

  9. Irish says:

    Could this be expanded to an 8×8 cube?

  10. Dante says:

    Do you guys use the RPI boards a lot? I just had a class that was supposed to be based on the red board 2, but they didn’t show up til halfway through the semester.

    • Kevin says:

      We sell the Arduino Nano to groups in IED and whoever wants one. It is different than the Mobile Studio (Red Board 2). That is more of an oscilloscope and function generator than a microcontroller. Stop by for a meeting next semester if you want to get one from us!

  11. mattw says:

    We built one of these (with some variations) last night in a little over 4 hours, and I have to say the build instructions and diagrams are great.

    The final step of:


    Connect those 16 wires to any pins on the arduino, and then you are done.

    is sort of frustrating.

    Looking through the code, there doesn’t seem to be an easy way to map the pins yet. Any ETA on that?

    If you’d like to see our build, pictures are up at Metrix Create:Space on Flickr

  12. spudman says:

    From January 8, 2012 at 10:02 am comment:

    … Charlieplexing takes advantage of tri-state logic …

    How is this being accomplished with an arduino? I have downloaded and looked at the AsherGlick-Charliecube library but I don’t see any pinMode definitions or digitalWrite calls. Not sure how to tri-state a digital output of an arduino, this would be useful.

    • Nick says:

      To tristate a pin on the arduino, you set the pinMode to Input, which makes the pin act as if it was not connected to anything.

      He doesnt use pinMode/digitalWrite as they are too slow for what he is doing.

  13. randall d. says:

    i am very interested in this cube design. i would love to see all of the info on this project. where can i get the info on the schematics, instructions? also i will need a full parts list and where to get the arduino..
    if anyone can help me out with this, it would be most appreciated.

  14. Sim says:

    Found out to my annoyance (after I made it!) that the libraries make it too big to run on an atmega168 :(

    If I comment all but 1 anim then it comes in at 16+k
    Any tips on how to optimize this for the <14k limit?
    ( or am I better just ordering a 328? )

    BUILD TIPS – I used a rig made of perf board and skewers to keep them all lined up. I used straight florists wire for the supports. I used a card with holes in to keep the tops aligned then drilled a wooden base and used epoxy to hold all the spires in place. It looks the business, if only I could get it lit up properly! :)

  15. Sim says:

    Okay, well I ordered an Uno and it came today, plugged it all in and yay! – it all lights up, but, boo! not in the right order.
    Now I look at your new diagrams and you’ve changed the legs/groups and I’m double confused.(Had to check google cache to make sure I wasn’t going insane!)
    Here’s what I have, can you explain how to remap the pins?

    Using base layer LEDs for reference:
    blue legs in columns on pins 2-5. equivalent to your group 2.
    Greens in rows on pins 6-9 – equivalent to group 1.
    Cathodes on 10-13 equivalent to group 3.
    reds on 14-17 like group 4

    I’ve soldered the groups onto ribbon wires so it would be great if I could adjust software to reflect the above rather than split them – but how?
    Thanks for any help!

    • Sim says:

      In the end I resoldered it to match the diagrams.
      I’d bent the middle two legs the other way so had to allow for that.
      If it helps anyone, on his drawings wires 1-4 are the blue leg of the base layer, 5-8 the cathodes, 9-12 red and 14-16 green.

  16. Kurt says:

    Did you ever create a pub for this?

  17. Mark 555 says:

    I just wanna know where he found RGB led’s for $0.311 cents????

  18. Greg says:

    Love this. I built one but changed one thing. I bent the led pins as you did and then back to their original direction with a small dogleg so they are then outside the profile of the next led down instead of laying another 4 wires on the side of the leds.
    This saves cutting the led legs and using another 4 wires per stack.
    Then I just lay the next led inside the four legs from above and solder.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

Join 93,718 other followers