Whisper Amp Strap Clip

Back in 2015, there was a kickstarter for an all-analogue, tough-as-nails practice amp for guitar and bass. Intrigued, I backed the project. The project was successfully funded and I got my unit. It is a great little gadget! I ordered the kit, as it didn’t have that many parts and I needed to improve my soldering skills. I spent an evening assembling it and have used it mostly at night when the kids are sleeping. Another great use is taking it along with me to guitar shops so I can compare other guitars with the same amp.

My only complaint with the Whisper Amp was that I had to find a place to put it. Putting it in my pocket was a little awkward with the guitar cable protruding from the top. So I got to thinking about a way to attach it to my guitar strap. I wanted it to be relatively easy to attach and remove, so I knew Velcro would be involved somehow. As I often do, I turned to OpenSCAD to put my thoughts together. My first attempt was a solid band with a loop for a nylon strap. I would use 2 of these and fasten nylon through the loops. The problem with this design was that there wasn’t a good way to keep the bands secured to the body of the amp.

Initial design

I quickly devised a second design and sewed together some straps with Velcro fasteners. This worked a little better, but it had the same problem. I needed a different approach.

The second prototype was easy to attach and remove. A little too easy to remove, though.

The final design solved the attachment problem by securing a nylon strap between 2 “caps” on either end of the amp. This proved to be much more secure, but required a lot more design time to get the proper shape of the caps and the placement of the cutouts for the connectors. To get the curves on the edges of the caps, I resorted to tracing the shape of the amp on paper and calculating the radius of the rounded edge. Primitive, but it worked! To achieve this effect I used the minkowski sum function in OpenSCAD. It’s a really useful tool for nicely rounded edges. for the strap loops, I planned to use 1″ nylon webbing, so I made the loops accommodate one layer.

The bottom cap
The top cap with cutouts for the headphone and 1/4″ plugs

In a rare flash of maker inspiration, I got the measurements correct the first time. Well, on the rounded corners, anyway. I think I had to reprint due to the plug cutouts being a few mm off. I wasn’t sure how to finish the edges of the nylon. A quick search seemed to indicate that heating the frayed edges would melt them and nicely seal them off. I waved the cut ends over a gas flame on the stove, being careful not to hold it there very long. My caution paid off, as the ends melted quickly, finishing up very nicely. I sewed in a few pieces of Velcro and got it all assembled

Ready for action

Interesting note about using a 4-segement plug (TRRS). The output jack is designed for 3-segment (TRS) plugs, so you may need to slightly adjust the position of a TRRS plug to get stereo output.

And, finally, here’s a photo of the amp attached to a guitar strap while playing

I attach the amp near the end pin of the guitar

Overall, I met my objective of making an easy-to-attach clip for the amp, which means it’ll be falling off of tables and other places a lot less. If you’re interested in making one, or just want to see how I designed it, I’ve put the STL files on thingiverse!

I Like Big Buttons

The Premise

In early 2018, my friend Steve had an idea.  His church supports missionaries, and for fundraisers, they sell lunches to the congregation.  In the past, they had volunteers prepare and serve the food.  It was a lot of effort, and Steve thought that it could be improved.  He thought that having a restaurant make the food would allow them to charge a bit more for the food, and might draw more attention.  He was right of course, and now he wanted a way to engage the participants even more.  He wanted some kind of visual progress indicator.  something that would get people excited about participating in supporting the cause.

“What if we had a big button that people could push when they buy a lunch, and then have a big display of how many lunches we’ve sold?”

That sounded like a cool idea to me.  So, I set out to build just that.

The Architecture

button box setup
If this is a smart TV with a browser, the laptop can be eliminated

I tried to make this as simple as possible. No, really I did!  However, the constraints of the environment dictated otherwise.  I thought the simplest thing would be to have a button attached to a Raspberry Pi, which would be attached to a screen via an HDMI cable.  However, the display needed to be relatively far away from where people would be paying for lunch, and running a long HDMI cable was not acceptable.  Steve mentioned that they had an extra laptop that they could connect to the TV, so this seemed like a reasonable solution.

After some noodling, I decided that I’d have a big button box with a Raspberry Pi inside. The Pi would host a web server that publishes a page with the count on it.  The laptop connected to the TV would access the web page and display it on the TV.

Is this the simplest design?  Not by a long shot.  Would it be fun to build?  Absolutely!  I also like the idea that this solution is self-contained.  If the TV has a browser, then the laptop can be removed from the setup.

The Button Box Design

large button
That is one big button!
lit button
Ooh! Shiny!

The hardest and most interesting part of this project to me was the button box.  I’d been itching for a project to use the laser cutter at our makerspace, theLab.ms.  While I could have just used a tool to generate the dimensions of the box with appropriate notches for assembly, I decided it would be fun to figure it out on my own.  Here’s what I wound up with…

2D OpenSCAD layout
the 2D primitives in OpenSCAD were perfect for this project!

I made the first prototype with cardboard, which worked out perfectly!

Cardboard prototype
looks good so far!
cardboard prototype assembled
Everything fits with a reasonable amount of space for wiring

Happy with the results, I moved on to the 2nd prototype, which was made out of MDF scraps at the makerspace (I think I also got some hardboard in there, too).

MDF prototype bottom
All the holes lined up! The square plate on the lower left is the shutdown button.
detail on shutdown button
I mounted a momentary contact button upside down to serve as the shutdown button

Since this button box would be operated by non-technical folks, I decided I should add a shutdown feature to prevent damage to the SD card.  When the button is held for 2 seconds, a shutdown command is sent to the Pi.  Of course, nothing stops the user from just disconnecting power, but at least the capability is there.  Since the Pi doesn’t have any built-in capability to shutdown the OS, I added a momentary contact button to the bottom of the box to serve this purpose.

Everything was going great until I received my acrylic sheets.  I thought I was getting 3mm acrylic sheets, but I actually ordered 2mm acrylic sheets.  *sigh*.  But thankfully, I made the material thickness a variable in my OpenSCAD model, so I just needed to change that variable from a 3 to a 2, and adjust the placement of the power connector hole (that took a bunch of trial and error).

off my 1mm
PSA: 3mm does not equal 2mm

After the adjustments, I re-cut the box from the spare sheet of acrylic (always a good idea to get more than you absolutely need in case you make a mistake!).

final internal wiring
I really like the Perma-Proto hats from Adafruit!

To keep the wiring nice and clean, I used a Perma-Proto hat from Adafruit. I’ve used them in a few projects now and I’m hooked.  For the relatively small circuits I’m making, they’re perfect, and don’t add much to the footprint of the project.

finished box unlit
I like the way it turned out! Unfortunately, you can see along the top front edge where the acrylic cement leaked and marred the surface. A little acrylic cement goes a long way.
finished button box powered on and lit up
Who can resist a giant shiny button?

The RESTful Web App

I really enjoy projects that involve physical builds as well as software.  In the spirit of over-engineering things, I decided to make my counter a RESTful Web Service.  You can find the source code on bitbucket.  When the big button is pressed, python code sends an HTTP request to the web server, incrementing the stored count.  The web page showing the count updates every 1/2 second.  For the shutdown, holding the button on the bottom of the box sends another request that executes a graceful shutdown of the web server and the Raspberry Pi.

A Demonstration

Here is the whole thing in action!

Next Steps

  • Test it out in the target environment
  • I’d like to make the typeface fixed-width
  • There is code to set a target number.  I’d like to add some animation that is triggered when the goal is reached

You Can’t Scare Me!

Over winter break 2017, my older daughter asked if she could make something. Before I even knew what it was, I was pretty excited. Finally after all these years of trying to show my kids that they can make things, I see a spark of interest. Here’s her idea in her own words:

“I want to build something that people can attach to their glasses so they can see who or what is behind them.”

So, we set to work on the design. I had her draw up her initial thinking on paper, and we took it from there. She decided that for the prototype, a clip would be the easiest way to attach the unit to her glasses

I wasn’t sure what we could use for the actual mirror part, but I remembered seeing mirrored acrylic somewhere, so we searched for mirrored acrylic sheets. We ordered the parts and set to work on designing the bracket that would hold everything together.

We decided that 3D printing the bracket would be the most efficient way to prototype it, and that turned out to be true.

Her first idea was a ball joint because it would allow the wearer to adjust the mirror’s position precisely. So, we found a ball joint on thingiverse and scaled it to the size we needed. The print didn’t work at all, and the joint wouldn’t fit together. Getting this joint to work for us would require a lot more engineering.

Discouraged but not hopeless, I decided I’d show her how to use OpenSCAD to design our own part. I mean, how hard could it be? We’d just create a static bracket for our first try and see what needed to be adjusted.

Using OpenSCAD was a great way to incorporate some of the math she’d been learning in school that year. We had to measure the dimensions of the clip with the vernier caliper and then calculate dimensions of the bracket based on those dimensions. She seemed to really enjoy the challenge.

Second design
The very first design connected the mirror mount at the edge of the mirror. After testing, she found this was too close to the eye and decided to move the mirror away from the eye a bit, resulting in this layout.

The next step was to put all the pieces together for the first prototype.

We had some hot glue available to us, and that worked… for a few hours. The failure of the hot glue would later clue us in to a design flaw.

Despite that, the first prototype achieved its goal. She decided that the mirror was too close to the glasses, so we should move the mirror outward a bit. We fired up OpenSCAD and adjusted the dimensions and printed again.

First Prototype
The First prototype had the mirror closer to the eye, which turned out to limit the visibility too much.

This time, we used Loctite silicone to bond the clip to the bracket. That joint lasted a bit longer, but still failed after about a day. As a remedy, we decided to use Gorilla super glue.

After gluing the parts together, one part of the joint failed again.

I decided I wanted to figure out why the glue joints were failing. I inspected the action of the clip and showed it to my daughter. We hadn’t taken into account that the clip’s spring expands past the clip’s edge when the clip is actuated. The slight expansion was causing the glue joint to flex and eventually break.

She also noticed that she couldn’t see that much around her and we discussed concave and convex mirrors.  So, we iterated on the design and came up with a curved mirror mount.

Curved Mirror Mount
This mount allows the wearer to see more of what’s around them.

By this time, we were running out of time, so we weren’t able to make more prototypes before school started back up.  We had a lot of fun doing this, though!

Issues for Further Development:
– how to make the fastener more generic to fit more types of glasses?
– carve out a small slot to accommodate the spring expansion.