Well I’m back home after taking the staff out for Halloween. I carried around as part of my costume, costume – greeting people coming to the community for trick or treating, but also to hang out with my neighbors. A lot of people were asking about the staff – both seeing it in action and having heard about me working on it for the last 2-3 months.
Now, I’m back home, the staff is sitting in the corner, still running. I’m using this as a battery test. It’s running the ‘sparkle’ pattern, which everyone agrees is the prettiest (see the video from my previous post). It’s been on, showing patterns and lights now for about 5 hours, easily surpassing what I expected from the 8 C NiMH cells.
People on Hackaday and people I meet in person ask a lot of questions, so I decided to write up an FAQ….
Lets start with the first one… “Why did you build this? Where’d you get the idea?”
It all started with a book…
Stephen Barnes and Larry Niven wrote Dream Park in 1981. It had a tremendous impact on me – live action role playing, with high tech assistance. At the beginning of the story, the characters are getting ready for their game, and Acacia, a new player, is watching a veteran gamer prepare…
She was playing her wizard’s staff while she waited.
That was stunning. Acacia had seen pictures in the Gaming magazines. It was five feet tall and an inch thick, jammed with instrumentation and the internal computer. Patterns of colored lights ran up and down its length, and monochromatic flames lashed from the tip, as Gina’s fingertips ran over the contact-sensitive keyboard.
Tony watched as if mesmerized;
This one simple paragraph stuck with me for years. Wouldn’t it be cool if I could build something like that?
So, finally… I did….
Anyway – on to some build details…
- There are 8 Tenergy NiMH C cell batteries, in 2 groups of 4. They’re about a foot and a half from the top and bottom, to keep things balanced.
- The batteries will run the staff for between 3 and 5 hours, depending on what patterns I’m displaying.
- There are 6 strips of LEDs, each 55 lights long.
- The current microcontroller is an an Arduino Uno R3, which is a ‘prototype’ controller. I’ll replace it with a Micro 05 soon.
- The entire staff, with batteries, is about 75″ high, and weighs around 6.5 pounds
- The LED strips are WS2812 based LED strips from AliExpress, and cost about $37 per 15′. I needed 3 sets, I have about 10′ of strip left over.
- The code that drives it is written in a C variant used on Arduino microcontrollers. It’s about 250 lines, and uses the Adafruit NeoPixel library.
- There are two tubes, made out of extruded acrylic (plexiglass). The inner tube is cut in half lengthwise and holds the batteries and will eventually also contain the microcontroller. The LED strips are mounted on the outside of this tube. The inner tube is 1.5″ outer diameter, with an ID of 1.25″. The second (outer) tube has a 2″ ID and 2.25″ OD. The inner tube rests inside the outer tube and is held in place with end caps made out of wood. The ‘top’ end cap has a conduit cut in it to allow wiring to the controller currently residing in the ‘globe’ at the top.
- The LED strips are secured to the inner tube via hot glue (as were a lot of pieces of this project).
- There are only 2 controls; a power switch and a single push button. The push button generates an interrupt on the controller that tells it to change to the next pattern.
- No, it wasn’t a kit, I didn’t see it posted somewhere else, I didn’t copy someone elses design. This has been my vision, my design, and my build from the beginning. So there.
Am I happy with the end result?
Oh yeah.
I had some thoughts, maybe for a second version. You have my apologies if they are something you thought of already.
There’s a method to read an LED as a sensor, could you do this and eliminate the need for buttons entirely? Like; http://www.youtube.com/watch?v=BcqXhpOE71M . You might still need a power button, but switching modes could be done like this?
Take accurate measurement of the batteries and forgo the springs entirely, relying on a screw to add the required tension. Directionality be damned.
Gumstix offers a different board layout. You could just slide the controller right into the staff. Accelerometers and or gps, android phone style. I understand they can be made tiny and low power. Also, with this is the possibility of wireless comms between different staves, and one could write a game. Swing the staff _thus_ and press these places _this_ way….
On-board charging, and lithium-ion batteries?
Those are all from my notes about a similar project I lost interest in. I was aiming for a hiking staff top that had GPS-waypoint navigation that lit an led on the staff that was facing the way one wanted to go.
I love the staff you’ve made! Best of luck!
Hi Max – thanks for the feedback! There’s a couple things there that I’ve thought about as well. Using this as a hiking staff was definitely one of the “hey, wouldn’t it be cool if…” – but the challenges of a) power (how do you recharge it?) b) weight, c) durability, etc – it’d be a hard sell 🙂
The LED proximity sensors are fascinating. I’ll need to look at them more to see if they’d work… i’m also considering using capacitive sensors so I can have a contact ‘loop’ inside that I could get a hand ‘near’ to trigger a response. That has potential, but I’ve never done it before.
The battery ideas are good too – I’ve reversed the mounts already, so the ‘bounce’ problem has been solved. If I revamp the batteries I’ll probably go with LI or LIPO units, with a better charging system. There’s really no need to use the C cells I have now, and they require removal to charge (tedious).
Stay tuned for more updates. I should be getting my Nano today or tomorrow, and I”ll be able to rework the ‘upper stage’ so it doesn’t look like a power line topper.
Such a great idea. The timing of the star effect is really well done and I was wondering if you might share some (or all) of your 250 lines of code so I might be able to pull off something similar, but on a MUCH smaller scale.
Regardless, great project and I really look forward to the improvements. Like Max mentioned, an accelerometer could add some really fun options. Good luck.
Hi Cassidy – Sure, I’ll get some code together to publish. It’s gotten longer since I posted this article. I think a new animation video is needed as well – there’s 5 different patterns on the staff now, and ya’ll should see them 🙂
Thanks for the nudge!
With avin so mudh wfitten content do you ever run into anyy problems of plagorism or coopyright violation? My
site has a lot of unique contnt I’ve eiither authored myself oor outsourced bbut itt loks liuke a llot of iit
is pppping it uup all ovber the internet withoout mmy permission. Do you know
any metbods tto help prevent contejt frim beinbg riopped off?
I’d truly appfeciate it.
Hello ! Thanks for sharing your amazing creation !
I would like to create the same for myself. Can you please show us how you build it please ? (connections etc…)
Thank you very much.
Did you add any resistors between the battery and arduino? I’m trying with the same batteries on an Arduino Uno, and even using just 6 batteries (~7.5V) my arduino gets very, very hot.
What part of hte arduino is getting hot? A hot unit usually means there’s too much draw happening pulling FROM the arduino, not hte other way around (ie, the voltage regulator gets hot). You could put 700 batteries on the inputs on the ‘duino, and if the voltage is right, it won’t get hot because the duino will only draw what it needs.
I know I’m probably a little bit late to this game as I am just beginning to tinker around with 2812b and Arduino And this guide has been really helpful As I begin my journey to build the magic staff- As I don’t have much coding experience I was wondering if it would be at all possible to send me your lines of code for this? Appreciate any help
Hi Shawhin – no problem, the code is up in github (I think I put that int he article somewhere). Here: https://github.com/shevett/magicstaff
Thank you! This is very exciting for me and I’m so glad you shared your code. I was also wondering if you would be ok to share the following details?
What did you use for the globe up top? And how did you connect all 6 digital inputs of the led strips to the arduino? Did you splice 6 input channels from one digital out on the duino? Thanks so much again
Dave,
Sorry to keep bothering you but is there anyway to get in touch with you via e-mail? I Have a few questions mostly revolving around your code and your set up that I am trying to mimic But can’t seem to wrap my head around. Sorry if this may be a bother, but from my experience in the open source community I feel I always get answers if I just ask 🙂