MakerBot Cupcake assembly

I spent the weekend assembling my new MakerBot Cupcake CNC, which went very well. Of course I had to document the build, so I set up my old webcam on a tripod over the bench and used Gawker to capture a frame every 30 seconds over the 11 hour build:

This is certainly not an over-engineered machine. Rather, it is designed to be just enough — finding a careful balance between cost and functionality — and that is what makes this such an elegant solution. The design of the MakerBot is very clever, primarily using laser-cut plywood that bolts together. The X and Y sliding suspension parts are ground rods and plastic bushings, which is a little loose and may be a source for some inaccuracy… we’ll see when I get it fired up.

finished MakerBot

The best part about the MakerBot is its open-source nature and the community of hackers that are constantly tinkering with it. I can already see room for improvement, and I plan to get busy on it too. For starters, I moved the Plastruder PCB off to the side of the assembly so I can see the mechanism working.

IMG_0094
Also, I cracked several of the acrylic Plastruder parts by tightening down too much on the screws. I might have chosen polycarbonate instead ($$) for strength reasons, but I understand the cost trade-off.

I can’t wait to start making stuff… this is an awesome little machine!

Cupcake CNC transformer

So Make: recently introduced a contest to give away a Cupcake CNC FDM machine kit, and I came up with this entry…

What’s cooler than transformers? A Cupcake CNC transformer with a Bre head? This is a fully articulated assembly that transforms from a Cupcake CNC to a Bre-bot.
I started with a snap-together design (see the attached concept sketches) but migrated to a bolt-together kit or various reasons. The final design allows for fine adjustment of the joint tension so the transformer can stand in any position but still be movable, positionable, transformable!

Buildable in two Cupcake CNC builds (see screenshots), this transformer is assembled with commonly available 6-32 (3/4″ long) flat head machine screws and corresponding lock nuts. NOTE: may be substituted with M3.5 x 20 screws and nuts. 15 sets of screws and nuts are required.

Download the .stl files at Thingiverse.

UPDATE: Thanks a bunch to Frank for printing one!

UPDATE: Here’s another print:

IMG_0008 IMG_0009 IMG_0010 IMG_0012 IMG_0015 IMG_0016 IMG_0019

LED lighting, part 2

tin plated My first attempt at using the tiny Luxeon Rebel LEDs taught me several things, among them how difficult it is to hand-solder them. I also realized that I would need to experiment more with the different white LEDs that are available, or potentially using red green and blue LEDs to produce the white I’m looking for (or a combination thereof). So I designed two new PCBs… a new six-LED board with individual control over each of the LEDs, and a tiny single-Luxeon Rebel breakout board so I can mix-and-match different combinations quickly and easily. To both designs I also added very tiny dots at the corners of each LED location to help position the LEDs. These designs are two-sided, with the back side consisting of a large copper field to help transfer heat to the aluminum heat sink.

I made the boards the same way as before, except that I tin-plated the finished boards with Tinnit to protect the copper from tarnishing and to improve the solderability.

For this batch of boards I decided to finally try my hand at reflow soldering, using the skillet method described by the Sparkfun guys. I bought an inexpensive skillet at Target, an infrared thermometer at Lowes, and some no-clean solder paste. The solder paste came in a syringe package but didn’t come with any needles, so I squeezed a little paste onto a paper towel and carefully dabbed it onto the PCBs with a toothpick. Using a pair of tweezers I placed each LED into position and pressed it into the paste, which held the component fairly well.

Before trying any soldering I looked up the reflow profiles for both the solder paste and the LEDs, and experimented with the skillet to see what settings would yield the target temperatures. I may one day build an Arduino temperature control for the skillet to more precisely control the profile, but I think these reflow characteristics are pretty flexible and for now it’s working just fine.

reflow skillet reflowing

I put the PCBs into the middle of the skillet (I got wildly different temperature readings from different spots on the skillet) and turned it up to “LOW”, watching the temperature with the thermometer. As the temperature leveled off at around 165°C the boards began to smoke and I turned it up to “MED”. Within a minute or so the solder liquified and flowed nicely, in some cases shifting the LED into perfect alignment with the solder pads (apparently a result of the solder’s surface tension).

soldered assembled with headers

I made breakout boards of several different LEDs: “warm white“, “ANSI 2700K white” (an even warmer white), “amber“, and red, green and blue. After the skillet reflowing I hand-soldered on a couple of header pins for the breadboard.

breadboard

This breadboard setup allows me to swap out different combinations of LEDs to evaluate the color of the light (here I have six 2700K Rebels installed). For this mock-up I used a 24VDC desktop power supply powering a BuckPuck LED driver, switched with a momentary pushbutton. I’m getting closer to the color temperature I want, but right now these are all on (full power) or all off. The next step will be PWM control over individual LEDs or groups of two or more to start precisely dialing in the settings.

home carbonation

I love seltzer, but I don’t love spending money on bottled seltzer and carrying 50lbs of it home at a time. I recently bought a CO2 tank and regulator for the keg at Crushtoberfest, and I’ve been looking for other uses for it ever since.

It turns out that making seltzer at home is very easy, and once you have the basic equipment the cost-per-bottle is extremely low. Here’s how I set it up:

home-made seltzer

The tank and regulator kit are from Micromatic. The rest is just a handful of fittings from McMaster-Carr, screwed into a hole drilled into a seltzer bottle cap. Here’s the parts list:

part #
quantity
part source
cost
1 1 5lb. aluminum CO2 tank, empty
Micromatic
$59.95*
2 1 tank filling
local welding supply store
about $10-15
3
1 double gauge CO2 primary regulator
Micromatic
$59.95**
4
3′ red vinyl gas hose – 5/16″ ID
Micromatic
$5.55
5
2 hose clamps (pack of 10) – part #5388K14 McMaster-Carr
$5.28***
6 1 Brass Barbed Hose Fitting Adapter for 3/8″ Hose ID X 1/8″ NPTF Female Pipe (pack of 10) – part #5346K34 McMaster-Carr
$18.95***
7
1 Lincoln-Shape Hose Coupling Plug, 1/8″ NPT Male, 1/4 Coupling Size – part #91455K51 McMaster-Carr

$2.78

8
1 Lincoln-Shape Hose Coupling Socket, 1/8″ NPT Male, 1/4 Coupling Size – part #91455K52 McMaster-Carr

$8.38

9 1 Electric Panel Hex Nut 18-8 Stainless Steel, 1/8″-27 Nps – part #91862A306 McMaster-Carr
$3.11
10
1 bottle cap
your recycling bin
$0
11
several empty one, two, or three liter bottles
” ”
$0

TOTAL
$178.95

* you may need to turn this in for a full tank, although some places will fill your tank while you wait
** I bought a good one, you can get these cheaper
*** unfortunately you sometimes have to buy 10 packs (or more) from McMaster. You can get individual hose clamps from your local hardware store.

Here’s how it goes together:

I drilled a hole in the cap (#10) that was just big enough for the threaded end of the coupling socket (#8) and assembled them together with the nut (#9). I used teflon tape in between parts 6 and 7. I also use my CO2 bottle for a keg when necessary, so I got a second set of part 6 and 8 and attached it to the hose coming from the keg tap. This way I can connect and disconnect from one system to the other.

One thing I learned, and this is VERY IMPORTANT: Apparently there is a chemical reaction between the CO2 dissolved in water and copper (or copper alloys like brass) that creates a toxic substance that will make you sick. Never use brass or other copper-based fittings with seltzer! All of these fittings (or at least the ones that will be in contact with the seltzer for any length of time) are either zinc-plated steel or stainless.

The carbonating process is simple. Fill an empty bottle with the liquid of your choice and refrigerate it. Replace the cap with the special one you made and attach the quick-disconnect hose to it. Make sure the shutoff valve on the regulator is closed, then slowly open the main valve on the tank until the regulator shows pressure. Adjust the output pressure to about 45psi and open the shutoff valve, pressurizing the bottle. Now loosen the cap on the bottle just slightly while squeezing any air space out of the neck of the bottle, then tighten the cap. This will purge any air from the bottle and replace it with CO2. Now shake the bottle vigorously for about 20-30 seconds; this will help dissolve the CO2 into the liquid faster. Shut off the CO2 at the regulator and disconnect the hose from the quick-disconnect fitting. You can now remove the special cap (slowly, the contents are now carbonated!) and replace it with a regular cap.

So on the first day I made seltzer water. On the second day I carbonated apple juice, grape juice, and Gatorade, and ended the evening with a carbonated vodka martini (nice!). What else can I carbonate?

LED lighting, part 1

I’m in the process of designing some new lighting for the house, which I’ll get into in detail later. For now I’m experimenting with Luxeon Rebel LEDs to evaluate the different colors and white temperatures. I started by getting a handful of “warm white” and red, green and blue Rebels. I expected the white ones to be too “cool” in temperature, so the R G and B ones could be individually adjusted to provide some warmth to compensate. I designed a simple PC board that takes three white LEDs and one red, one green and one blue one.

transfer sheet toner applied etch-resist layer

I designed the board in Illustrator and laid out several together on a page, then printed it onto a sheet of toner transfer paper (from Pulsar). I laminated it to a copper-clad board and ran it through again with a “white TRF foil” as an etch-resist layer, as the toner alone tends to be somewhat porous.

etching etched

I then etched the boards with ferric chloride in a Tupperware dish floating in hot tap water in the bathroom sink, agitating the dish continuously.

drilled & cleaned

After about 25 minutes in the etchant I rinsed the boards, drilled the holes, divided them up and removed the toner from the remaining copper with lacquer thinner and a scotch-brite pad. I soldered the LEDs onto the board, along with a female header to connect wires to. For testing purposes I connected two C batteries together and plugged them into the header.

Luxeon Rebels are designed to dissipate heat through a large “no connection” solder pad directly under the chip. There are specific guidelines for the design of the PCB to draw this heat away from the LED which include a multitude of plated vias to increase the copper surface area. I’m unable to create plated vias in my homemade boards, so my intent is to mount the board to an aluminum plate, using an aluminum machine screw to draw the heat through the hole in the middle of the board.

assembled board test run

I learned some important lessons from this first attempt. The main problem is hand-soldering these tiny surface-mount LEDs to such a large copper field, which resulted in a sloppy, lumpy mess of solder. I also realized that I may need to experiment with other combinations of LEDs to get the color right. This first try produced a pleasant white light (and yes, red, green, and blue light does combine into white…I know the theory is fundamental but seeing it happen before your eyes is pretty exciting!) but compared to incandescents and even some of the warm CFLs in my house it still looks very cold.

A good first effort, with room for improvement…

55-gallon drum smoker, part deux

I’ve had some questions about the details of the smoker, so here I’m posting the CAD model and bill of materials as a reference. NOTE: the CAD model is incomplete… I modeled the major structure (barrels and doors) and then ended up building off the cuff as the smoker took shape. Things like the grates, drip tray, feet, hinge and latch locations, etc. were not modeled but just figured out as I went along. If anyone has questions about the details let me know and I can elaborate.

CAD files:
smoker.stp
smoker.igs
wood_rack.stp
wood_rack.igs
charcoal_basket.stp
charcoal_basket.igs

And here’s an unmodified 55 gallon drum model (minus some of the details, like lid and caps, etc.) in case you want to create your own design:
55gallondrum.stp
55gallondrum.igs

Here’s the bill of materials:

quantity
part source
cost
2
55 gallon barrels local junk yard
varies
various
16 ga. sheet metal pieces welding class supply room
$0
≈10′
1/2″ square steel bar (for fire grate) welding class supply room
$0
various
expanded steel sheet (for charcoal basket) welding class supply room
$0
13
1/4″ x 8′ long round rods, 304 stainless (for cooking grates) onlinemetals.com

$78.66

(delivered)

12×12″
18 ga. 304 stainless steel sheet, item #8983K38 (for dampers) McMaster-Carr

(mcmaster.com)

$8.34

36″
maple dowel rod, item # 97015K82 (for handles) McMaster-Carr

(mcmaster.com)

$4.92
5
304 SS hinges, item # 1549A57 McMaster-Carr

(mcmaster.com)

$18.95
3
304 SS draw latches, item # 1889A37 McMaster-Carr

(mcmaster.com)

$15.18
1
quart of Rustoleum High Heat paint Lowe’s
$14.98
1
3″ BBQ/smoker thermometer amazon.com
$21.99
various screws, nuts, etc.

new engine for the snow blower

my new toy Last fall I bought a snow blower that was made in 1974, like me. It’s a 32″ Ariens and it’s big and rusty and awesome. The guy I bought it from admitted it needed a carburetor rebuild, but it was only $250 and I saw an opportunity for a minor project. So I rebuilt the carb, which went pretty well, but it still didn’t seem to be putting out the 8hp it was designed to.

I thought about doing an battery-powered electric conversion, but quickly found that the components alone would run me over $1000. I found a guy in Minnesota that did a cool corded electric snow blower conversion that could be quite inexpensive, but I would really want the portability of battery power.

So I gave up the ambitious plan and bought a replacement Tecumseh engine from  Small Engine Warehouse, which I recommend for this kind of thing. I couldn’t find a direct replacement for my machine on their web site but the guy I talked to on the phone gave me three different options. I was disappointed about the electric plan not working out so I upgraded to this 11hp beast:

the new engine

It took two trips to the local lawnmower place — I couldn’t get the sheave off the old engine and then found the traction belt was worn out — but it bolted right on and fit perfectly, if a bit tighter than the old one. We still have some snow on the driveway so I took it for a little test spin. I was expecting to be launching snow onto the neighbor’s house with all that extra horsepower, but the snow is now icy and chunky so I wasn’t getting the distance I was hoping for. Next fresh snowfall I’ll see what this baby can do.

first test run

A few photos from Crushtoberfest ’09

image002

The Selleck Striker ready for action.

image003

Lisa about to show it who’s boss.

100_3711

Beer pong!

100_3714

That’s a lot of facial hair.

55-gallon drum smoker

This past fall I took an evening welding class at a local technical school and got very excited about making things out of metal. I already had an old stick welder that I didn’t really know how to use, and I ended up buying a MIG welder–the Hobart Handler 140 from Northern. After making lots of small assemblages out of scrap metal  I managed to build a stool and a couple of plant stands, but I had bigger plans.

There’s something special about creating useful objects. A smoker is a nice combination of supremely useful (preparing sustenance) and slightly frivolous (do you need a smoked pork butt to survive?). There are certainly faster and more efficient ways to cook food, but damn smoked meat is good.

I looked around at commercial smokers and custom hacks and talked to a few connoisseurs, and decided the Weber Smoky Mountain was a good design to start from. It’s simple and effective, and in the end it mostly convinced me that the design need not be complex.

Something appealed to me about using the iconic 55-gallon drum as a building block, so I went out and bought a couple from the local scrap yard. One of them even got immediate use as a beer barrel at Crushtoberfest!

A little sketching on different configurations, and I decided a ‘T’ shape would be simple, stable, and functional, and provide plenty of opportunity to practice the MIG on some thin sheet metal. I laid it out in CAD, which made it easy to generate the intersecting curve between the two barrels.

I printed the curve at full scale and wrapped it onto the barrel, traced the curve, then cut the barrel with a jig saw. The first dry fit was amazingly close (way to go, CAD!) but there was still a lot of grinding here and there to accommodate the ribs in the barrels.

IMG_5010 IMG_5011 IMG_5012

I measured and marked the door openings on the barrels and cut them out with the jig saw.

IMG_5020 IMG_5021

The next step was grinding the paint off. The last thing I wanted was burning paint fumes getting into the food, so every bit of paint needed to go. If I were to do this again I would find another way… sand blasting, chemicals, burning it off, etc… anything but taking it off little by little with an angle grinder. I’ll admit the Gator brand paint & rust remover discs I found at Lowes were very effective (if a bit pricey at 9 bucks a piece). But my shop is now coated with a thin layer of green paint dust, much of which ended up in my nose and likely my lungs.

IMG_5009 IMG_5026 IMG_5002

On the first day of grinding I wore a respirator and glasses but nothing else. After washing my hair three times in a row to get the paint dust out I learned to don more protection. For the insides of the barrels I also used an LED headlamp.

As the barrels were made of surprisingly thin metal (20 gauge) the door openings needed to be reinforced with some angle and rolled sheet metal strips, which were plug welded from the outside and tacked from the inside.

IMG_5050 IMG_5049 IMG_5058 IMG_5059

The doors also needed reinforcement, in the form of sheet metal ribs tacked onto the undersides.

IMG_5056 IMG_5060

I welded small pads onto the barrels and doors for the stainless steel hinges. These pads were ground flat then drilled and tapped.

IMG_5065 IMG_5071 IMG_5070 IMG_5072

After grinding the rest of the paint off I welded the two barrels together. This was a challenge, since the metal was so thin and the fit was far from perfect. To prevent burn-through and warpage I used a “stitching” technique where you put a quick tack weld across the joint, wait a second or less and put another tack next to it, continuing like that for about an inch at a time. Apparently this puts less heat to the metal than a continuous bead, but the end result looks very similar. With a little practice I was even able to bridge relatively large gaps between the barrels with short, controlled beads that build on each other, kind of like ants crossing a stream.

IMG_5078 IMG_5079

I shopped around looking for off-the-shelf replacement grates that would work but none of them were big enough for this guy. So I bought about 80 feet of 1/4″ diameter 304 stainless rod (from onlinemetals.com) and cut it to length on the abrasive chop saw. I scored a piece of 1x pine on the table saw at the proper spacing to use as a jig, and clamped the rods down. The MIG would have been perfect for welding the grates, but I would have needed to buy stainless wire and a separate tank of tri-mix gas (65% argon, 33% helium and 2% CO2). The stainless itself was already pushing my budget, so I bought a handful of stainless welding rods and used the arc welder.

IMG_5080 IMG_5081

Next I drilled holes for the dampers– two sets of three holes at the top and two sets of four holes the bottom. The top ones were made like typical grill dampers with a round rotating plate. The bottom ones needed to be on a curved surface, so they slide along the surface rather than rotating.

IMG_5086 IMG_5087

In both cases the moving damper is retained by screws, so I drilled holes and tacked some steel nuts behind them.

IMG_5091

I then drilled a series of holes to allow the smoke and heat into the top barrel. My step drill bit did an amazing job, but the cordless drill still went through two fully charged batteries getting the job done.

IMG_5097

Next I tacked on some small support tabs for the grates and six small sections of square tube as feet.

IMG_5095 IMG_5096

After a thorough deburring, wire-brushing and degreasing with alcohol, I set about applying a high-temperature grill paint. There are several available but Rustoleum High Heat Brush On was a) available at Lowes and b) didn’t require curing at a high temperature like most of the products I found online. Unfortunately it only comes in black, which is actually slightly brownish. They recommend only applying one coat, which I agree with after trying to touch up a few spots after drying, resulting in some weird gloss differences. I then tried the spray can version of the same paint, but found it to be flat finish (vs. the brush-on which is satin). The lesson here is get it right with the first coat because you really can’t go back and hit it again.

IMG_5108 IMG_5110

While the paint was drying (24 hrs… it’s oil-based) I fabricated some handles out of a 1″ maple dowel. I don’t have a wood lathe but the metal lathe did the job. A few coats of Polycrylic and they’re ready to assemble.

IMG_5102 IMG_5104 IMG_5105 IMG_5106

The smoker can be used in one of two different ways– with charcoal in an expanded metal basket or with wood on a traditional fireplace grate. I suppose I could retrofit some gas burners or even electric heating elements, but that’s a project for another day.

IMG_5128 fire_grate2

And last, final assembly. I bought a 3″ smoker/grill thermometer online, and used some nickel-plated chain for the lid stays. I also fabricated a sheet metal “drip tray” to cover the holes under the food and deflect some of the heat.

IMG_5113 IMG_5117 IMG_5119 IMG_5122 IMG_5123 IMG_5126 IMG_5130 IMG_5133 IMG_5134

IMG_5132

I figured my brother-in-law Pete would make much better use of this than me, so we gave it to him for Christmas. Here he is opening it…

Pete getting his present

Crushtoberfest promo video!

finishing the Selleck Striker

Just one more day till Crushtoberfest, and the Selleck Striker is ready to go. Last night I mounted the head (nice job Sam!) and drilled its eyes for LEDs. I also mounted the fireball launchers and wired everything up.

selleck head wiring the Selleck head

topping off the striker

IMG_4935 Here’s how I added some padding to the top of the “striker” part of the hi-striker. I picked up a used tire from my local mechanic and managed to cut a couple of rectangular pieces out of the tread. After some trial and error I found the best way to cut through a tire with steel radials is with a sabre saw with a metal cutting blade. The shop stunk like burning rubber but it cut pretty quickly.

IMG_4936

I used the nailgun with some trim nails to tack two layers onto the striker. It can probably use some trimming on the corners, but it will do the trick.

everything’s better with fireballs, part II

Three days left till Crushtoberfest, and I prepared a total of ten fireball launchers for the Hi-Striker. They’re used in pairs, so that gives us five “wins” worth of awesomeness. Here they are:

soldering the ignitors

First I cut the copper tubes to length, drilled each end cap and JB-Welded 1/4″ phono plugs into each one. Then I soldered model rocket ignitors to the phono plugs’ contacts inside the caps. The gray boxes are aluminum project boxes with phono jacks installed in one side. These will be mounted to the back of the Selleck head, but for now they were a good way to hold each cap as I was soldering. I then assembled the tubes to the caps and used a little electrical tape to hold them together.

cutting the flash paper

I cut each 8″ x 9″ sheet of flash paper into strips (across the short length),

twist it up

folded all the strips in half together and twisted them loosely,

stuff it in

then stuffed the whole thing into the end of the tube.

finished fireball launchers

Done!

Selleck head

Sam is working on the Selleck head for the top of the Hi-Striker and it looks awesome!

selleckHead1

The photo is deceiving… that thing is almost four feet high.

Hi-Striker control panel

Yesterday I finished the control panel for the Selleck Striker and started hooking it up:

controlPanel

reset button – Before a new contestant hits the striker, the reset button clears the LEDs, then checks the difficulty setting and applies any changes. It’s a SPST, switching 5V from the Arduino to one of its analog input pins. High on the pin = reset.

play/demo switch – Demo Mode plays a scrolling LED effect, Play Mode waits for a change in the pressure (like a hammer strike!). This is a SPDT (though I could have just used a SPST) switching 5V from Arduino to one of its analog input pins. High on the pin = Demo Mode, low on the pin = Play Mode.

analog_inputdifficulty knob – Just a 100K potentiometer that sends 0 to 5V to one of the analog input pins. This will allow us to adjust how much force is needed to get to the top.

score display – This 3-digit numeric LED display will show the “score” of the strike. I’m still not sure how I’ll calibrate it, but the idea is that you get a finer resolution score than the 0-50 LEDs in front. I’m thinking of having this also display the “difficulty” setting when you twist the knob.

striker connector – This is an RJ-45 connection for the striker portion, so that the two halves aren’t permanently tethered to each other. I’m only using three of the eight conductors.

audio out - This 1/4″ mono jack will send sound effects and other audio to the sound system.

Also note the the three Arduinos in the bottom of the photo. The Mega on the right will handle the LEDs and input elements, the NG in the middle drives the 3-digit LED display, and the Duemilanove with the wave shield on the left plays the sound effects. They’ll be communicating via their serial ports.

new paint job

The inspiration:

It’s a loose interpretation…

everything’s better with fireballs

I never intended for the Selleck Striker to include fireballs. But this time last year we started thinking about fireballs for something else and got all the pieces together, so they were really just waiting around for something awesome like this. Here’s how it’ll work.

The fire itself is created by igniting “flash paper”, which is a nitrocellulose paper used by magicians to create relatively safe indoor fire effects in their act. Basically the stuff flares up and it’s gone… no burning embers, hardly any ash at all. It is fire, but you can basically hold it in your hand, it’s there and gone that fast.

The flash paper is ignited by a model rocket engine ignitor, which is essentially a tiny incandescent filament with some flammable paste packed around it. You apply 6-12 volts with enough current and it flares up breifly, but plenty long enough to light the flash paper. The Arduino can’t supply nearly enough current to light it, so I’ll end up using a transistor to switch a higher-current (and slightly higher voltage) power supply to the ignitor.

For now I’m just concerned with the hardware. I’d like to have a replaceable “charge” that can be unplugged once it goes off, and replaced with a fresh one. So the sketch below shows a small metal tube with a 1/4″ phono plug on one end that plugs into a matching jack behind the Tom Selleck head.

fireball_charge

The tube is copper and the end fitting just slips on snugly, but everything else turned out just like the sketch:

For now I’m using a 9V battery touched across the plug’s contacts. The trick, it turns out, is packing the right amount of flash paper in the right way. It took  a few tries, but I think the third attempt got it right:

LEDs & gravity

I thought it would be a nice touch if the LEDs in the Selleck Striker behaved more like the metal ringer in an old school mechanical hi-striker. So rather than rising up the scale in a linear way, what if it looked like the LED “ringer” was being pulled down by gravity (and friction, and air resistance) like the real thing?

time_distanceSo I figured an ascending object will decelerate in the same way a falling object will accelerate, since they’re both subjected to the same force (gravity). I found some formulas for acceleration due to gravity, particularly :

d=gt2

where d = distance, g = the gravitational constant, and t = time. I would calculate the trip from top to bottom as if the ringer was falling, then use that data in reverse.

The LEDs turn on in sequence, with a delay value in between to determine how long each one stays on (and how fast the “ringer” appears to move). So in order to determine that value I need to solve for t in the equation above. So:

t=sqrtt_g

I know that on Earth the gravitational constant — or g — is 9.8 m/s² (meters per second per second). I know the distance d between each LED is 1.37″, or .035m. So the time tx to get from the very top LED to the next one is:

tx

So the first .035m step down from the top will take 59ms. In order to find tz for the second step, I need to find ty for the total distance from the top to the second step (.035m x 2 = .07m), then subtract tx for the first step:

distance

So:

equations

I need to do this for each of the 51 steps (50 LEDs plus the very top, the winner!). Actually, I’m not calculating this at all. I’ll let the Arduino do all the calculations, and save the delay value for each step in an array that it can quickly access when it needs to. Here’s how I did it in the Arduino script:

  float gravity_constant = 9.8;                         // the constant of gravity, or G
                                                        // we can adjust this to tweak the effect

  int gravity[50] = {};                                  // set up the gravity array

  for (int i = 1; i <= 51; i++) {                        // this will loop 51 times
    float distance_x = i * .035;                         // calculate the total distance from the top to the LED in question
    float distance_y = (i - 1) * .035;                   // same distance, minus one step 
    float time_x = sqrt(distance_x / gravity_constant);  // the time it takes for an object to fall distance_x meters
    float time_y = sqrt(distance_y / gravity_constant);  // the time it takes for an object to fall distance_y meters
    float time = time_x - time_y;                        // the time it takes for an object to fall to our LED from the one before it, in seconds
    int time_ms = time * 1000;                           // convert to milliseconds
    gravity[i] = time_ms;                                // add this value to the gravity array
  }

The gravity array will look something like [59, 26, 16, 14, 13, 12, 11, 10, 9, etc.......], dropping rapidly at first and then slower until it levels off at 4ms or so. If we then light the LEDs in sequence, applying these delay values to each step:

  int level = 48;             // this is the level the person hit to
                              // * entered manually for testing purposes,
                              // in the final product this will be determined by 
                              // the force of the hammer strike  

  for (int i = level; i > 0; i--) {
    digitalWrite(ledPins[level - i], HIGH);
    delay (gravity[i]);
    digitalWrite(ledPins[level - i], LOW);
  }

then we get something like this:

Note: the blinking at the beginning is the Arduino booting up, and the blinking at the end was added later to highlight the level of the hit.

LED wiring

The Arduino Mega has 54 digital I/O pins, 50 of which are each driving an LED on the Hi-Striker. Each pin can drive up to 40mA, so the only additional components needed are one 100k current-limiting resistor per LED.

For testing, a simple cascading loop runs through the (first 16) LEDs one at a time:

const int ledCount = 16;    // the number of LEDs in the bar graph
int ledPins[] = { 2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17 };   // an array of pin numbers to which LEDs are attached

void setup() {
  // loop over the pin array and set them all to output:
  for (int thisLed = 0; thisLed < ledCount; thisLed++) {
    pinMode(ledPins[thisLed], OUTPUT);
  }
}

void loop() {
  // loop over the LED array:
  for (int thisLed = 0; thisLed < ledCount; thisLed++) {
    digitalWrite(ledPins[thisLed], HIGH);  // turn on the LED
    delay(20);                             // wait
    digitalWrite(ledPins[thisLed], LOW);   // turn off the LED
  }
}

Hi-Striker construction begins

Construction on the Selleck Striker began without much detailed planning. I want to use as much scrap materials as I can, and luckily I have a lot of scrap wood lying around. The “striker” part is built around four 2x6s glued and screwed together to form a nice sturdy block, which will be topped with some thick rubber to cushion the hammer’s impact. The “sleeve” part holds the striker over the heater hose, which gets compressed when the hammer comes down.


The backboard is 8 feet tall, made with extra 1x and plywood. I drilled and countersunk holes in the front for the LEDs to poke through, and left some slots in the 1x cross-pieces for the LED wiring. I built a little “backpack” compartment for the electronics, and primed and painted everything white.

mustache-themed Hi-Striker

histriker

So Crushtoberfest is approaching again, and the party plans are in full swing. In case you missed it, Crushtoberfest ’08 was the house party that capped off a six week mustache growing contest among BDC employees and their friends and families. Last year’s feat-of-strength competition featuring the Captains of Crush grippers was a huge success, so we decided to step it up this year.

We liked the idea of a Hi-Striker, the classic carnival game where you swing an oversized hammer and try to ring the bell. But renting a Hi-Striker is not cheap, and we saw the opportunity to build something awesome. So going with the vague carnival theme (and the overt mustache theme) I generated this concept sketch for an electronic Hi-Striker, featuring a larger-than-life Tom Selleck head with light up eyes and fireballs shooting from his ears.

Here’s the plan: The contestant will strike the rubber pad with the hammer, compressing the sealed rubber hose under it. An air pressure sensor attached to one end of the hose will generate an analog voltage (up to 5v), the Arduino Mega will read the voltage and light up the LEDs according to a predefined scale. If the hit is a “ringer” then the LEDs will light all the way to the top, Tom Selleck’s eyes will light up, and fireballs will shoot from his ears. BTW the fireball effect is a flash paper/model rocket ignitor thing we worked out for last year’s party but never used. We also plan to have sound effects go with the LEDs, using the Adafruit Wave Shield for Arduino.

Stay tuned for more.