The Technomancer at Arisia!

This past weekend I packed up and headed to Arisia to work, play, socialize, and, finally put all the costume elements together and become… THE TECHNOMANCER.

The Technomancer!
The Technomancer!

This was the final unveiling of the entire costume the magic staff was created to drive. I’d been adding parts and components for weeks, waiting for others to come in, etc – and in the last week, it all came together.

In summary? It went GREAT. Lots and lots of awesome feedback, oohs and ahs, and tons of geeky conversation around the staff and other parts of the costume. I did learn a lot about what works and what doesn’t work when doing a costume this involved, and while I’m nowhere near done, I’m at a point where I can pick up all the pieces and go to an event, and I’m pretty sure it’ll work well.

Here’s a rundown of everything I added to make the full image work:

  • First, thanks very much to Starlit Creations for making a custom ‘wizards robe’ for my 6’6″ form. She did a great job, exactly to my specs, and it fit me wonderfully.
  • The second big add was a UVEX “Bionic” (yeah, not my name, sorry) faceshield.  I’d been digging around for some sort of ‘mask’ that I could mirror and cover my face, giving that ‘blank look’.  After looking at various environmental filter systems and masks, this shield was exactly right.
  • I added a sheet of ‘one way’ reflective film on the inside of the mask – this turned out to be tremendously difficult as the faceshield needs to flex both horizontally and vertically when being installed, so I couldn’t set the film on the surface while it was on the flat, I had to do it while it was installed, which ended up with some bubbles and wrinkles.  All in all not bad, but I’d like to try to get it perfect.
  • A turtleneck shirt to hide ‘skin’ showing on the neckline, and hide my arms.
  • A pair of black leather driving gloves
  • An extra long belt from my SCA garb
  • My boots from said SCA garb
  • Two lengths of light green lit EL wire and battery packs.  These unfortunately were a disappointment.  Not very bright, and awkward to work with.  I’ll be reworking this part of things.

All assembled, it felt comfortable, looked great, and I was ready to go out in public.

A couple things became apparent really fast…

  • If a person can’t make eye contact with you, they’re nervous and aloof.  They couldn’t see my face – and at least in US culture, the first part of a conversation is making eye contact, which is sort of like “Is it okay to talk to you?” – I guess that’s sort of the point of the ‘faceless’ costume – to make people a little uncomfortable.
  • The mask made it very hard for me to speak loud enough for people to hear me.  Sometimes if I got into a geeky conversation, I’d just flip the mask up – which, naturally, destroys the presentation.  I’m considering a voder-type arrangement moving ahead so I can talk and people will hear me.
  • The mask / hood arrangement can get hot.  Here’s a little secret, I was actually wearing shorts under the robe – so that part was nice and cool (and no one noticed), but I may need to come up with some sort of air circulation solution for the mask.
  • Also, the hood and mask pretty much eliminated my peripheral vision.  Might need to work on that part.
  • The gloves made it hard to feel where the control buttons on the staff were.  That’s definitely up for a change.

I wore the costume and staff for a few hours on Saturday night, and had lots of people taking pictures.  The pic above is from the hotel room before I went out (when I was out in public, the hood was actually pulled forward much more) – but you get the idea.  The EL wire is barely visible 🙁

I have tons and tons and TONS of ideas moving forward, all workable within this costume design (vast improvements on the staff, some small changes to the robes and mask), but for a first time out, I’m pretty psyched!

CONGO is going GPL.

(This announcement is also being posted on stonekeep.com)

Over the last 12 years I’ve been working hard to develop CONGO into the best convention registration system I can manage. Since 2002, CONGO has been used for many events of all sizes, registering and printing badges for tens of thousands of attendees. There have been many successes and a few bumps, but all in all it’s been a great adventure.

Several events now rely heavily on CONGO for year-to-year attendee tracking, allowing online registration, keeping up-to-date history, managing thousands of attendees, as well as the relationship CONGO has to Zambia, the scheduling system.

Continue reading “CONGO is going GPL.”

Arduino Nano “Programmer Not Responding” on a Mac

Arduino Nano v3
Arduino Nano v3

For the Staff project, I’m going to be replacing the existing Arduino Uno R3 with a smaller, more easily embedded Arduino Nano.  The Nano is a heck of a lot smaller than the Uno (makes sense – it’s meant to be permanently installed, while the Uno is a prototyping platform).  I received my Nano a few weeks ago, but immediately ran into a frustrating problem… code would compile, begin to upload, and I’d get the error “stk500_recv(): programmer not responding”

The intarwebz are full of people reporting this problem, unfortunately most are not finding answers.

I went through the usual debugging problems – changing out the USB cable I was using, checking to make sure USB drivers were correct – I could still upload and use code on my Uno, but the Nano flat out refused to accept the new code (and I did check the very common problem of not selecting the correct board in the IDE).

Finally, came across a general discussion about bootloaders, and there was a comment that sometimes these boards do not reset properly.  After some more research, I found some folks using various ‘reset button’ hacks to sort of nudge the board into accepting code.  With a lot of trial an error, I have a procedure that seems to work pretty consistently.  There’s occasional twitches, but with persistence it always loads.

Continue reading “Arduino Nano “Programmer Not Responding” on a Mac”

Video Demo of the Staff

Several people have asked how the project’s coming along, and I realized that the most recent video only showed a little bit of the functionality.  So I dusted off my iMovie skills and whipped up a little demo (complete with background music!  Aren’t you impressed?).  All the current modes are displayed, though the most recent one isn’t quite done yet.

Enjoy!

23andMe – A Scientific Look into Myself

European.  Whoddathunkit?
My genetic backround

A couple months ago, a friend pointed me to the website 23andMe.com.   Their mission statement is pretty straightforward.  “23andMe’s mission is to be the world’s trusted source of personal genetic information.”

Here’s how it works.

After signing up online and coughing over my $100, 23andme sent me a small kit.  Inside the kit is a little plastic tube.  All you need to do is fill part of the tube with saliva, seal it up, and mail it back to them.  It’s all postage paid, so it’s just a matter of dropping the box in the mail.

About 4 weeks later, you’ll get a piece of email saying your results are ready to be viewed.  And then things get interesting.

Continue reading “23andMe – A Scientific Look into Myself”

Notifications on all Logins on a Linux Host

Putting this one out there because I spent some time surfing various Well Known Sites and couldn’t find a complete answer.

We had a need to log whenever users logged into a production host – just a notification send to the admins saying someone was on one of the production boxes.  The other requirement was to have it be low impact – didn’t need a ton of monitoring packages installed, etc.

The result is a pair of scripts.

The first is ‘checklogin.sh’:

 #!/bin/bash
 # Nov  6 13:35:25 inf-1 sudo: dshevett : TTY=pts/0 ; PWD=/etc/munin ; USER=root ; COMMAND=/etc/init.d/munin-node restart
 TMPFILE=checklogin-$$
 AGO=`date "+%b %e %R" -d "1 min ago"`
 grep "$AGO" /var/log/auth.log | grep 'session opened for user' | grep -v CRON > /tmp/$TMPFILE
 grep "$AGO" /var/log/auth.log | grep 'sudo:'| grep -v pam >> /tmp/$TMPFILE
 cat /tmp/$TMPFILE | /tools/sysconf/scripts/mail_if_not_empty ops-notice-internal@REDACTED.com "[inf-1:checklogin.sh]"
 rm /tmp/$TMPFILE

This simply looks for some patterns within the auth.log file. The only real trick here is making a date formatted string that is ‘one minute ago’. If this script is run once a minute via a cron job, it’ll send mail within a minute of someone logging into the host.

The other script is a simple utility tool I use for most of my cron jobs called ‘mail_if_not_empty’:

 #!/bin/bash
 TMPFILE=/tmp/joboutput.$$
 TARGET=$1
 SUBJECT=$2
 cat >  $TMPFILE
 if [ -s $TMPFILE ]
 then
   mail -s $SUBJECT $TARGET < $TMPFILE
 fi
 rm $TMPFILE

Super-duper simple, it just sends mail if there's any output.  This makes sure that mail will only be generated if anything interesting happens.

The Arduino Mini 05 is… well, mini!

Arduino Mini 05
Arduino Mini 05

I’m looking to replace the Arduino Uno in the staff with a smaller controller that will fit in the body of the internal tube. The Mini 05 seemed like the best option… well, received it this weekend, and I have to admit, I’m a little daunted.

On the one hand, it sure will fit in the staff, on the other hand, there’s a lot of very small contact points here. My soldering is pretty crude. I’ll have to put in a header for the USB port first, after that I can probably use a socket, which’ll make connections a lot easier.

Magic Staff – FAQ and Build Details

Idling staff
Idling

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…

Continue reading “Magic Staff – FAQ and Build Details”

Magic Staff – Takin it out for a spin

Zach and staff
Zach holds the completed staff

The day finally arrived! After a marathon work session on Saturday, I was able to take the staff to a party last night! The batteries held up great, the staff was a great hit, and everyone was asking about it and wanting to see what it did. Talk about inspiring!

There were naturally some ups and downs, with some wins and some losses:

  • WIN: Never. Ever. Underestimate the power of  HOT GLUE.  I solved the ‘solder joints are not strong enough’ problem by embedding the LED strip ends in a few mm of hot glue.  WIN!
  • WIN: By repurposing a shipping container for my son’s new skate wheels, I was able to fashion an enclosure that would hold the Arduino Uno R3 and all the support wiring until my new Arduino Mini 05 arrived.  It gave the staff a ‘navigation light’ look, but the glow of the board lights was sort of nice.
  • WIN: Soldering irons can be used to make holes in plastic.  Shhh, don’t tell anyone.
  • OOPS: I made one major miscalculation.  The battery mounts are custom formed blocks widh hand wound springs for tension.  I put the tension spring on the BOTTOM of the mount, which means the batteries would push down on the spring and disconnect at the slightest bounce.  I’m not looking forward to reworking that section, but this is a learning experience, no?
  • OOPS: I didn’t get a chance to install a power switch, so there’s no ‘off’ state without pulling the cap and disconnecting the power leads.  Oh well.
  • WIN: The batteries lasted much longer than I expected.  The ‘sparkle’ mode draws very little current (the algorithm has one in every 3 LED’s on, and the values it’s using are at 1/4 brightness:
    uint32_t on = strip1.Color(random(64),random(64),random(64));
  • WIN: the coded interrupt routine that uses the button to switch modes works perfectly.  I could change patterns with a quick touch.  I need some more interactive modes, but as a pure display item, total win.
  • WIN? : I totally want to add more features and functions.  A sound sensor so the staff can react to noise / music around it.  A shock sensor (other than the batteries bouncing) so a tap on the floor will cause a ripple function or something.  AN OFF SWITCH.  More interesting patterns.  An external USB port, etc etc.  Many of these things are simple coding updates, but others will require research.

I’ll try and fix the battery tray problem by Halloween, but I think we’re in pretty good shape!

ETA Here’s a video of the staff in action.

Magic Staff – Batteries, load, and runtime

Another few hours of work this weekend saw the Staff cut loose from it’s moorings for the first time.

Staff
Staff running on batteries only for the first time

One of the biggest challenges on this project is power.  The LED strips are 55 tricolor (very bright!) LEDs driven by WS2811 controllers.  The strips are powered at 5v.  Doing some quick load testing on the initial strip (and some online research) showed that each LED has a maximum draw of 60mA, so a 55 LED strip can draw a max of  3.3A @ 5v, and 6 strips can draw something like 20A @ 5v if the entire thing is at full brightness.  That’s a heck of a lot of current.   Compared to that, the Arduino wouldn’t be drawing dink.

I had to balance battery capacity with weight (this thing is meant to be carried in one hand after all).  I considered using D cells, but they’re just too heavy.  I ended up with 8 NiMH C batteries ( http://www.amazon.com/gp/product/B001AX1UQO/ ) from Tenergy.  These are ranked at 5000 mAh @ 1.5v.  I ganged them in groups of 4, connected in parallel.  This gave me 5Ah per group, or 10Ah total.  With a draw of 20A, at full power, it works out to only half an hour of uptime.  Now, there’s a lot of loss in this as well, so realistically, at full power (255,255,255 values on all the LEDs) I expect to get only about 15-20 minutes of use.

In general use, I don’t plan on using this in BLAZING WHITE MODE for more than a few seconds at any given time, but ongoing running will run the batteries down.  The other night I ran the staff using a ‘randomized’ pattern for a good 15 minutes on those batteries without any ill effects, and saw no problems (Check out the video here:  http://youtu.be/LNbIwpk5vdA )

Magic Staff Update – First time off-laptop

LED Soldering
My first surface-soldering attempt to attach the LED strips

Well, the magic staff project has reached a pretty awesome milestone.

Last night was the first time I had the entire assembly operating off-computer.  The Arduino Uno had been running directly via USB cable from my mac.  That provided power and an easy way to upload code.  With my new bench power supply, I had enough amps in the bench supply to power the LEDs and the Uno.  A few alligator clips later, and voila, the staff had 3 led strips lit, and the Uno was running it’s program just fine.

I also detached and remounted the 2 strips that were mounted backwards (yes, these strips are directional.  See the arrow?  Yeah, missed that on the first run – Of the 6 LED strips, 2 were backwards.  Oh well).  Peeling them off wasn’t that hard – hot glue doesn’t hold up to lateral forces, and it came away easily.

These strips come with one end of the cable pre-wired with power and data, so I only had to manually solder the parts that were ‘cut’ in the middle of the strand.  That was only 3 connections, so it wasn’t so bad.  But I’ll admit, not having to do all six was a relief.

power and data hookups
“Hookup” end of the staff – Power and data connections are here.

So.  Things are reassembled now, all the ground and +5V lines are attached (and ganged together), and data lines are wired to all the strips.  I need to come up with a strain relief mechanism to avoid yanking the leads off the strips, and then work on how to install the controller, power leads, and hookups into the head of the staff.

Oh, I also ordered the 8 C cell NiMH batteries I’ll be using.  They should be in today.

Getting there!

How we do things in Academia

This is a story I head last weekend when a friend was visiting. I’ve changed some of the particulars, to preserve privacy…

Our school landed a great post-doc student – we were able to lure him away from a well known college into our program, and things were going swimmingly. Unfortunately, Princeton University had their eye on him as well, and made a better offer. The student transferred to Princeton, and we were left with a dilemma.

We sat down and pondered the situation. There was certainly a budget for luring away post-docs, but we just didn’t have enough to lure him back to our campus and give him his own lab and department.

We did, however, have enough to get him transferred to Harvard.

Time Lapse Video at an SF Convention using Linux and a webcam

For quite a while I’ve been interested in using commodity hardware (a webcam, a small linux machine) to take time lapse videos. It didn’t seem like that complex a problem, but there were a lot of logistical and mildly technical obstacles to overcome. After a couple tests and short videos, it was time to set things up to record a four day long video at [Arisia](http://arisia.org/), in particular, a shot of the registration area.
Here’s how I did it.

Continue reading “Time Lapse Video at an SF Convention using Linux and a webcam”