The Hidden Mounting Holes in your Breadboards

This story has a bad beginning.

I’ve stored my Robotic Glockenspiel on its side since I finished it in April (it’s huge).  The other day I opened the lid and found, to my horror, that the breadboard had completely pulled away from its adhesive pad – only the wires are keeping the breadboard from falling off completely!

The breadboard has pulled away from its adhesive
The breadboard has pulled away from its adhesive

I immediately started shopping for breadboards with mounting holes and, strangely, didn’t have much luck finding any.  Meanwhile, I saw a project photo where the designer had put screws through a sheet of plywood into the breadboard.  Wouldn’t that risk shorting out the power supply to ground?  I had to learn more.

A little investigation revealed that my breadboards did have mounting holes… hidden underneath the adhesive pad, and not mentioned in the datasheet.

Under the adhesive...a mounting hole!
Under the adhesive…a mounting hole!

A little more surgical cutting revealed the hole, but avoided exposing the power and ground rails.  All I have to do now is find the right size screw and I can mount my breadboards securely in my projects.

Exposing the mounting hole without exposing the wires
Exposing the mounting hole without exposing the wires

My first laser cutting order ever

I’m delighted at how well the lunar clock is going! While waiting for stepper motors to arrive, I’ve been using Inkscape to create the laser-cutting pattern for the wheel that will contain images of the various phases of the moon.  After a few hours of stumbling around (I’d never used Inkscape), I was drawing circles, arcs, and lines with abandon.

The idea of the clock is that this wheel will be behind a picture of a sky, that has a moon-sized hole near the top.  The wheel will rotate to show the lunar image that most closely resembles the current phase of the moon.

I had hoped to put12 lunar images in the wheel, but that made the wheel too large and the lunar images too small.  8 images makes everything just the right size.

Paper version of the lunar wheel
Paper version of the lunar wheel

I’ve never done laser cutting before, so I signed up for Ponoko, a popular laser cutting service in New Zealand and the United States.  It’s been a breeze ordering my first Lunar Wheel, to be cut from a 15-inch-square, 1/8″ thick piece of MDF.  I simply downloaded the template into Inkscape, followed the design rules, and voila!

One cautionary blog called Scale Fail recommends that you prototype for laser cutting in 3 stages (p.s., follow the comment links in that post for other simple mistakes to avoid)

  1. Test the size.  Print your design full-scale on your paper printer and see if it looks right.  This is the stage pictured above: I’m checking that the screw hub holes are properly placed and are the right size, and I’m checking that the slot is the right size to make the photo-interrupter work well.
  2. Then print in cheap cardboard. You’re likely going to make some mistakes (even small ones), so it’s good to get through them using cheap materials.
  3. Now print the real thing.

Since Ponoko offered a $20 discount on my first order, I decided to skip cardboard and go straight to MDF.  It will be a good test piece regardless of whether it works out.  Without the discount, the pattern above, in the MDF I described, shipped to me with a little speed, would have cost about $30.  Not bad considering that to make another I just push a button rather than spending a weekend with the scrollsaw.

Now I can’t wait for my Lunar Wheel to arrive!

WiFi and Steppers and Slots! Oh My!

Lunar Clock project is starting to feel real!

Lunar Clock circuit so far
Lunar Clock circuit so far

After having no luck making the ESP8266 work with an Arduino Mega, I switched back to the wonderful Sparkfun CC3000 WiFi Shield. It is playing nice with the Mega now – with an interposed Sparkfun TransmogriShield to convert the Mega SPI pins to the Uno pins that many Shields expect.

I happened to have an old, inexpensive unipolar stepper motor lying around, so I’ve hooked it up and am able to precisely turn it using the Arduino Stepper library. I should probably write a Post about that.  The upshot is that after reading the comments in the Stepper library source that said the pin order the library uses, it was pretty easy.

My next adventure will be wiring up a Slot-style photo-interrupter.  A stepper motor is wonderful for moving a fixed angle from a known spot, but how to know that initial spot?  Put another way, after a reset how will the Arduino find the angle the wheel is currently at?  Enter the photo-interrupter: by cutting a slot into my lunar images wheel, and having the wheel turn past a photo-interrupter, I can turn the wheel until the slot appears at the photo-interrupter.  Then I will know the wheel is at my starting position.

While I’m waiting for a new stepper motor (one that isn’t obsolete) and photo-interrupter to arrive, I’m starting work on the lunar images wheel.  The whole idea of the Lunar Clock is to look a lot like a wooden cuckoo clock, but instead of turning hands, it turns a big wheel of lunar images so the moon’s current image appears behind a little moon-shaped window in the front of the clock.

While I could design the wheel and use a scrollsaw to cut it, this is a great opportunity to try out laser cutting.  Ponoko is a popular laser cutting service, so I’m learning how to design my wheel so they (or any laser cutter) can cut it.  That way, it’ll be easy for me (or you) to upload the lunar disk wheel pattern to Ponoko and order a new one.

Now I’m in the thick of learning Inkscape, an open-source vector (line) drawing tool that’s perfect for creating laser-cut designs.

If you wish to follow the day-to-day of the project, I’m keeping my project diary in my Lunar Clock GitHub repo.  I’m doing that instead of a blog so that my detailed notes are in one file, and stored along with the source code.  It should be fun to read the whole thing once the project is done.

 

A little hammer can be a big help to your 3D Printer

A few months ago our team at work bought a LulzBot TAZ 5 3D Printer. We love it.

It comes with a spatula to pry your prints off the base of the printer.  For larger, flat prints, that can be a bit difficult.  I found myself occasionally pressing the spatula with such force that I wondered whether I was harming the printer alignment, and whether I would slip and jab myself with the spatula.  The 3D printing forums are filled with suggestions of ways to make prints come free more easily using hair spray, masking tape, or other jury-rigged solutions.

A print that can be difficult to pry off the printer bed
A print that can be difficult to pry off the printer bed

Fortunately, I’ve found a simple solution: a lightweight hammer such as this 2-ounce ballpein hammer from Amazon.  I’ve found only a few light taps are necessary to free the most immovable prints.

Tapping a print free using a small hammer
Tapping a print free using a small hammer

Now we’re even happier with this fine printer!

write_eeprom_strings: an Arduino Sketch to store WiFi credentials in EEPROM

You know you’ve done it… Admit it.

You’re getting the last bug out of your way-cool, WiFi-based, Arduino Sketch.  You’ve put your home WiFi SSID and Password in the code so you can test the Sketch, knowing that before you commit the change you need to replace those credentials with dummies.  Then the code works!  Enthusiastically, you commit your change and post a notice on your WordPress Blog: your new program is Open Source and ready to use by the world!

…then you remember that you just Open Sourced your home WiFi credentials.  DOH!

After you’ve changed your WiFi password (and suffered the grumblings of your family and friends – buddy, why do I have to use a new password for your WiFi?), you say to yourself “Next time I’ll put that password in EEPROM.”

Now you can.

write_eeprom_strings is an Open Source Arduino Sketch that uses the Serial Monitor to prompt you to type strings that it will then write to the Arduino’s EEPROM.  By default it prompts for a WiFi SSID and Password; you can change it to prompt for anything you need, for example: a username, a serial number, a timezone, a latitude/longitude, a favorite color – anything you like. Then you copy the EEPROM reading function into your Arduino Sketch and you’re golden! No more git commits of your or your users’ secrets.

write_eeprom_strings on GitHub.