Wednesday, December 19, 2012

Underfloor Vacuum

 As a fun afternoon project I decided to try turning an old retired vacuum into an underfloor vacuum system. The idea is that when I'm dust mopping in the dining room and kitchen, rather than picking up with a dust pan, I can sweep it into a vacuum intake on the floor. This probably is not any easier than using a dust pan, but it's more fun :)

Also, I figured that rather than using the regular vacuum bag, I would experiment with using a vortex bucket to collect some of the trash, rather than filling up the disposable vacuum cleaner filter bags. I have no idea what it takes to make that work, but what the heck, I'll take a stab at it. I've been thinking a dust collection system might be a good project for the workshop, and if a swirly bucket like this works, it would be easier to dump than a shop vac.

I started with a Gamma Seal bucket lid. This is a fantastic product for anyone who reuses 5 gallon buckets. It's a ring that seals tightly onto the bucket better than a regular lid, but the entire center is threaded so it's easy to unscrew it to get to the contents. I figured I'd fix the lid to the ceiling, run the hoses in through the central part, and then when I need to remove the bucket part, I can just unscrew it and leave the lid and everything attached to the ceiling.

The inlet has to be tangent-ish to spin the air, with the outlet in the center, so that hopefully the heavier particles will fall to the bottom before the air exits and goes to the vacuum. I cut out a pathway through the lid for some PVC tubing.

However, I couldn't have the end of the pipe sticking up where it would run into the ceiling, or pinch the hose, so I used the table saw to make it more flexable:

I bent it to the right shape and fixed it in place with some aluminum duct-sealing tape. Most of the lid is held together with this tape. If it all works like it's supposed to I might epoxy it down at some point. Until then the tape will be fine.

To mount the lid I cut a 2x4 to go between the floor joists and drilled a hole for the outlet.

The Gamma lid ring goes on the bucket. Takes a hammer.Not looking forward to taking that thing off again.

The assembled lid with hoses goes on the ceiling. The inlet hose goes through a hole in the ceiling and comes out underneath the front of the dishwasher. For another project I'll make a sheetmetal collection hood with an inlet about half an inch tall and 10 inches wide this will poke out just under the kickplate at the base of the dishwasher.

Finally, the vacuum cleaner. I don't know if this is going to work, so I'm just hanging it with plumbers tape. That should avoid coupling too much noise to the floor.

Obviously I still need a way to turn on the vacuum, which is in the basement, when I'm sweeping in the kitchen. So, X10 appliance module to the rescue. I have a number of wireless X10 controllers that I can use to switch the vacuum from the kitchen. So far so good.

Sunday, December 16, 2012

Zen Toolworks 7x7 Home Switches and Sanguinololu

I've been spending some time upgrading the Zen Toolworks 7x7 mill. I glued in some home switches and wired everything up to to the  the Sanguinololu, and glued some split-loom onto the machine to route wires through. That all came out pretty nice. I mounted the board with some hook-and-loop on the back of the X axis, and placed the switches where the moving parts would contact them.

Here is the back of the machine, showing the Sanguinololu and wiring.

Here are the home switches, Z, X, and Y, respectively.

I was having some trouble getting software onto the Sanguinolol, it wasn't responding to the serial port. I loaded Triffids Teacup firmware on it using the Pololu AVR programmer, and it started sending the initial 'start' and 'ok' messages, but nothing after that. After fiddling with it a bit I hooked up the Bus Pirate in RS232 mode to check at the AVR pins to see whether the messages I was sending were making it through. They were not. Using the Bus Pirate to inject data directly at the AVR pin made it work as it should. This confirmed what I suspected, there was a bad connection between the AVR and the FTDI chip. I touched up the appropriate pins on the FTDI chip, and it started working normally.

So now it's time to start getting into software to convert designs into parts. In the past I used the DOS-based TurboCNC program to control my machine, and previously I was running this machine using it. However, I didn't want to be tied to an old computer with a parallel port, so I decided it was time to move to a USB-connected external board, which is where the Sanguinololu comes in.

I had the option to use a number of Sanguinololu-compatible firmware packages, and I've started with Teacup. I had Kliment's Sprinter on it previously, but I switched to Teacup when I couldn't get Sprinter working (because of the bad solder connection). Now that I've put the effort into configuring Teacup, I'm kind of hoping I don't have to try a different one. Unfortunately, Teacup doesn't support G2/3 arcs, which kind of sucks. I may switch back to Sprinter or something so I don't have to decompose all my arcs into line segments. This would work, but because the ramp acceleration mode does a full start and stop for each segment, it would be very slow. RepRap acceleration mode would get around this, but it's kind of a weird mode that requires the software generating the gcode work a little differently. I'd like to use Grbl, but I'm not sure if it is compatible with the Sanguinololu. I'll have to look into that a little closer.

One of the nice things about TurboCNC is that it has a fairly rich set of gcode commands that make it easy to run existing gcode files that include features like loops, printing messages to the screen while it waits for you to switch tools, tool offsets, fixtures, etc. Teacup doesn't have these, and I kind of like those features. 

So, to address this, I've taken the TurboCNC source code, which is normally compiled in Borland Turbo Pascal under DOS, and pulled it into Delphi7 and generally torn it into itty bitty bits. I removed all the UI code (which was based on a third party library that worked similarly to the TurboVision UI package), and eliminated all of the stepper code, and kept mostly the gcode handling routines. I replaced the calls to step-generation routines with calls that output basic gcode commands, which allows Teacup to handle the step generation. I've also added an OpenGL-based tool-path viewer, so it's easy to do a dry-run and see if it looks sane. The viewer will track what has been sent to the machine, but it doesn't yet watch for the block-completed messages, so it isn't very smart about knowing where in the list of queued commands Teacup is. This really only shows up when making long moves, but it would be nice if I could make it more precise.

At this point it will handle some gcode features that Teacup will not (loops, gotos, etc), and does not decompose arcs into line segments (I'll have to add that as a feature for completeness, as much as I'd prefer to have it in hardware), and showing messages while waiting for the user, but it's still missing some of the more advanced features that I want it to have. In particular I'd like to get it working with a touch probe. 

Here's how it looks after running a simple sample file:

For testing purposes I just have it output the generated gcode to a text file that I feed to the machine with a debug terminal. And, since I don't want to get it mounted with a cutting tool yet, I figured I'd make a little ballpoint pen attachment that fits in my Dremel Flextool holder:

While I was looking around on the web for something I ran across the TkkrLab wiki, where they are building pretty much the same setup as I've got here. In fact, I was surprised to see a link at the bottom of the page back to my flexshaft mount blog post :) It looks like they've run into the same problem with Teacup not supporting arcs. I'll have to keep an eye on their progress and see if one of the other options works for them.

Anyway, here's the mill running the sample file:

If you compare to the tool path preview in the screenshot above you can see where it skips the G2/3 arcs. Other than that it's working fairly well. At this point I probably need to spend some more time working on my Windows derivative to TurboCNC, and maybe see what I can do about evaluating other firmwares with arc support.

Saturday, November 17, 2012

3D Printed Model Airplane Motor Mount

Last time I had my plane out to fly I had a rather hard landing that broke the motor mount. I expect that I'll probably do that a few more times, so I built a model of a mount and 3D printed a few of them on the Omaha Maker Group's 3D printer. I made the model to the exact size, so I had to do some filing before I could get it to fit properly. I'll have to keep the oversized printing in mind next time.

The plan is for the mount to break along the print layers next time I crash, to avoid damaging the motor shaft. I'm sure that plan will be tested.

Monday, March 12, 2012

Dremel Flex-Shaft Mount for Zen Toolworks 7x7 Mill

I wanted to try out AutoDesk 123D for designing parts to be 3D printed on the RepRap, so I designed a holder for a Dremel Flex-Shaft so I can mount it on my Zen Toolsworks 7x7 Mill.

Drawing the model in 123D was fast and easy. I'm looking forward to using it for other things. I constructed this by starting a sketch in the XY plane and drawing the long rectangle, the two concentric circles for the holder part, two three-point arcs for the fillets (it may be able to do that automatically, I didn't experiment with that), and a couple of rectangles for the tabs. The sketch lets you multi-select the areas defined by the lines, so you can then extrude just the parts of the sketch you want. For the horizontal holes I started sketches on the faces where the holes needed to be (just a circle), then push/pulled it through the solid. Very simple construction process, and it maintains all the sketches and push/pull operations in the Browser, so you can easily go back and change them later.

I drew all the holes to the exact size. I know that the RepRap typically makes the holes a little small, but I wasn't sure if it would be better to draw them a little bigger or drill them out.

Once I had the model done I saved it as a .stl file and got it going on the printer. This is about as easy as it could be. The printer has home switches on all the axes, so it's just a matter of opening the file and clicking 'print'. It takes it a minute or two to warm up, then it's off and printing.

It took about 15 minutes to get both parts printed. They came out pretty good. The horizontal mount holes are only 5mm from the edge, and I noticed that the layers were a little wobbly on that narrow part, but nothing serious. I think in the future I should probably try to provide more material around horizontal holes like that.

I ran a drill bit through all the holes to bring them to the target size. It seems to make them about 0.5mm too small. That works out pretty well because the drilled surface is more precise and smooth anyway. Since the back of the part that mounts to the tool plate on the mill is a bit wavy I decided I'd face it on the mill to make it flat and square with the bottom of the part( which is glass-smooth from the bed of the printer).

Milling the plastic part works pretty well, but you have to be careful to not go too deep. Because the interior of the part is an open network (I'm using 30% fill) you can't cut away very much wall and retain the strength of the part. Also, where the filaments stick to each other isn't nearly as strong as the  plastic itself, so if you try to cut nearly through a layer it'll tend to peel off in strings. It's probably best to plan to cut not more than halfway through the filament depth, or possibly to impregnate the part with epoxy (or maybe wax) before milling. I ran the parts on the big mill with a fly-cutter, and other than tearing up a few filaments, the milled face came out great.

Mounting the part on the mill was fast and easy, all the holes were exactly where they were supposed to be, and it was all square and flat. It bolted right up and is good to go.

Fortunately, my Flex-Shaft is the old-style with a simple 12mm tube, so no funky ergonomic shapes to deal with.

I think next I'll make an adapter plate system with some magnets in it so I can quickly swap out simple tools, like a pen holder, magnetic field sensor, touch probe, etc.

Monday, January 23, 2012

iPod Macro Photos

I ordered a couple of small lenses from Surplus Shed (#L4471) to try out as macro lenses for the iPod Touch. They arrived today, so I tried taking a couple of test pictures with them taped to the front of the iPod. I was a little disappointed, as I was hoping to get tighter close-up with it. So, naturally, I stacked the two of them together to try it that way. This is the result.

These are images of the pixels on my monitor (~92 px/in ) taken with the iPod and my DiMage Z2 in SuperMacro mode. The image resolution ends up being very similar (in this test each screen pixel ends up being about 12 pixels across), but the Z2 does a better job overall, with better color and, of course, more pixels overall. The iPod does pretty good though, certainly acceptable for quick shots of stuff. I'd like to try another lens with a different focal length (these are 51mm) to see if I can get up closer.

Here I got a picture of a US penny. The Z2 will take better macro pictures than this, but I didn't put any effort into setting up, I just snapped a handheld auto-focus picture with ambient light. But I did the same thing with the iPod, so it's a reasonably fair comparison of taking a photo under these conditions.

Posted by Picasa

Thursday, January 19, 2012

Web-attached pan tilt camera

With some help from Brandon and Ben I got the mechanics for the pan tilt camera rig going. The servos attach to an Arduino which is connected to a computer running a Windows web service that provides access to the camera.

I had an issue with the movement speed initially, and had to update the Arduino code with some position speed ramping. That went well and it is moving more smoothly. It flops around a bit, but I think that is mostly the slop in the mechanism.

The web service supports tagging of positions so that interesting views can be labeled. Once labeled a single button press takes the camera back to the associated position.

I will post some video of it in action soon.

Saturday, January 14, 2012

Mail Rings

I'm working on a 4 in 1 mail wristband as a gift, and I thought it would be interesting to try welding and brazing some rings. This is the result, prior to an acid bath and more polishing. Unfortunately I ran out of oxygen before I could get very far with the brazing, and I didn't manage to close a ring with the brazing.

I deliberately picked some 'worst case' rings, which had wide gaps. These were fairly easy to close, and I think that well-formed rings would come out very nice.

I wouldn't want to do more than a few hundred like this, but I think smaller pieces shouldn't be too bad.

Wednesday, January 11, 2012

Tippy forge

Here are a couple of videos of the tippy forge I've been working on for the Omaha maker Group. At this point it just needs the frame to hold it and a handle to make it easy to tip. There is a little leakage from the input that we need to get sealed up, but it works quite well so far.

Motor demonstration rig

One of the interesting projects from the Omaha Maker Group meeting on Jan 10. Ben put together this little motor demonstration rig with a couple of magnets, a 3D printed frame, and the armature from a commercial motor. Here he is just holding a couple of wires against the commutator as brushes. It's interesting to see the effect of adjusting the brush positions relative to the magnets.

Tuesday, January 10, 2012

Arduino Fio and other bits

Received an Arduino Fio and some other bits in the mail today. I was planning to use this for the Omaha Maker Group Makery Monitor Micro (OMGMMM), but I did not pay close enough attention when ordering and pdid not notice that it doesn't support the USB serial. I didn't have the budget for the XBees for it, but I guess I will have to do that sooner rather than later, as the web page and web services for it are getting close to beeing deployable. It even supports driving servos via the web service.