Shapeoko plots!

Our shapeoko has produced its first output under control of g-code!  It’s taped up on the refrigerator at the space. 🙂

Inkscape converted a bitmap of the logo to a .svg, the  gcodetools extension generated g-code, and vi did the final modifications. 🙂 The .svg needs a little cleanup, but it was more than adequate for this first test.

We now have a profile that’s calibrated to within a few percent for X, Y, and Z, though there’s still work on max speeds and accelerations.  This plot was made with a ballpoint pen in a very crude holder.  The bitmap-to-path converter generated inside and outside paths for the lines, so the mismatch of the actual plotted paths gives us some insight into opportunities for mechanical improvement of the shapeoko/penholder system.  While the penholder is responsible for some of the tracking errors, we still have a lot to do to tighten up the shapeoko.  The plate joining the Y and Z axes wobbles surprisingly.  But it’s starting to work!

Update 10/2/12: Using the very convenient test facilities of the axis setup in linuxcnc’s stepconf tool, I maximized travel speed on all 3 axes.  The shapeoko1 profile is getting pretty usable.  Here’s a little real time clip of it plotting.  This one used a Sharpie, and even though it only stayed in one spot while the Z axis raised or lowered the pen, the paper bled the ink into very noticeable dots every time it stopped.

New (well, old) Workshop Phone

I picked up an OBi100 adapter for the space a few weeks ago, and have been hunting around for a phone that we can use with it.

I stopped by the local Goodwill on my way in to the workshop one morning, and picked up two phones for $1.99 each.  One was a Lucent speakerphone that was missing a power adapter (I managed to dig a compatible one out of our giant box of wall warts in the electronics room).  The other was a fantastic old GE Model 500 rotary dial phone.  One of our members with a bit of experience in the area pegged the year of manufacture as 1965, with the last service in 1984.  I cleaned it up with some rubbing alcohol, and we swapped the old phone number placard for a W88 circuit board mask:

It took about 10 minutes of googling to find the pinout on the 4-prong adapter so we could hook it up, and it was hooked up to our Google Voice phone number and ringing.

Model 500 Plugbox Render (top)

The alligator clips aren’t a great solution, so I started designing a box to plug it into.  I used OpenSCAD to do the design.  The source files are available in my GitHub repo, but here’s a couple quick screenshots of the render:

I measured for the holes on the top using a pair of digital calipers, and then did some quick trig to figure out the offsets from the center point of the box.

Model 500 Plugbox Render (bottom)

The pins on the plug are arranged in a trapezoidal fashion so you can’t insert the plug backwards.  The bottom of the box is set up so that I can drop in a Radio Shack perfboard with a standard phone line connected to a couple of spring contacts on the wider pair of the two holes.  The standoff holes in the perfboard line up with the blocks in the corner of the box, and I have a second 3D model for the bottom of the box that sits below the perfboard.

The most difficult part of designing the box was getting the Workshop 88 logo to come out right.  I found this great tutorial on how to use InkScape to build 3D shapes in OpenSCAD and I used the source image for the same circuit board mask that we stuck on the phone.  Once I had that in place, it wasn’t too difficult to use it in OpenSCAD.  Check out the GitHub repo for details.

Model 500 Adapter with perfboard

I did a couple of test prints on the MakerBot to make sure everything fit together, and it looks like it is working pretty well.  I haven’t done another print with the logo, but judging from the generated STL, it is going to be much more involved than the basic prints.

When I added the logos, the STL went from about 300K to over 2MB.  I’m hoping that the print itself will be stable enough that the logo won’t lose resolution and look bad.  We’ve got a new stepper motor extruder ordered for our MakerBot, so that may help a little bit with the resolution.

Model 500 Adapter 3D print (bottom)

The next project is to get this puppy to dial out.  We’ve had a few suggestions, from converting the pulse dial to DTMF using an Arduino Teensy to hooking up a Blue Box with an acoustic coupler.  Right now the easiest way to use it is to dial out on a different phone, and then pick up the handset.  That really isn’t all that much fun.  I’m leaning towards the acoustic coupler method, but early experiments with DTMF generators on our cell phones didn’t go too well, so we may have a bit more work cut out for us.  The Wikipedia article says that blue boxes no longer work due to changes in the switching infrastucture, which… ahem… anecdotal evidence would tend to confirm.

Lego Mindstorms Workshop 88 Class Followup

On Saturday August 25th, Jay held a NXT-G class at Workshop 88. He spent several weeks teaching kids at the Inzone program at Harper College, but this time he was teaching adults which is a very different experience! He quickly covered the basics of how each block works and how to use wires to pass data values around the program. He then explained how the programming can be applied to a sumo robot, and walked through the logic and the programming part-by-part to show how the settings affected the actions. There was even some of the Arduino code which he use with my NXshield to show how each command would look in a text based language in comparison to a graphical one. He  also talked a little bit about NXC code for comparisons as well. After talking about programming and robots, the class started to discuss starting a FLL team. We are now seeing if we can get a FLL team together, and It is happening quickly! Jay been in involved in varying capacities with FLL for 10 years now. You can see his involvement here in this spreadsheet.