CNC Bottle Opener

bottleOpener6bottle-Open4A good friend of mine celebrated his birthday recently, and I  wanted to make him somethingon a CNC machine as a gift.  My friend brews beer and is an avid cyclist. In fact, his beer is on tap at the local bike shop.  I Figured the best gift would be a customized bottle opener with a few symbols of his interest engraved into the handle.

First, I ordered the Bottle Opener kit from Inventables.com.  I had seen the project online and assumed this kit included the raw parts I could CNC, but instead, the parts were already milled out.  I just had to engrave them and apply a finish to the wood before screwing the wooden parts onto the steel plate.

My wife is great at graphics so I asked if she would draw up something nice for me.  I wanted each wooden piece of the handle to have an image on both sides so my friend would be able to choose what he wanted the handles to display.  My wife gave me 4 good designs to use: one of just my friends name, the other with the word “Brewmaster”  a third with a bicycle with my friend’s initials embedded in the wheels, and finally a logo of the beer my friend brews for the bike shop.  You can see some of those original images below.

bikeLogoSouthMainIPA

I would need to mill a pocket in some scrap wood exactly the size of the wooden blanks of the bottle opener, stick the blanks into the pocket, and then mill out the designs.  This was much tougher than I realized.

 

The DXF file template from inventables of a the original bottle opener was not the same size as the actual wood blanks, so I had to break out the calipers and scale everything up. Secondly, nothing about the wooden blanks was standard.  Each one was a slightly different size and the holes for the screws were in different places.

The process is fairly simple. Take the SVG files of the designs, then import them in some CAM software which will also ask for the size of the endmill (drill bit thingy) and plan a path in XYZ coordinates to mill out the design in the SVG file.  There’s lots of different software out there. A good (but slightly pricy) one is Vcarve. There are others out there as well including some free and open source tools. A good free one is Makercam.  You can actually download makercam to your computer and use it like a regular program, even though it runs in your browser.  Another very simple CAM software is Easel which is made by the people over at inventables. They have lots of projects you can download directly to Easel as well with full settings.  I recommend you doublecheck feedrates, bit size and all that before actually using the designs though.

When I made the toolpaths for this design I used a 1/64th inch endmill to mill pockets for everything, including the text.   I chose this bit because it was small enough to fit into all of the detailed parts of the designs.  I used a pass depth of 0.1 inches, stepover of 0.0061 (which is about 39%).  For my spindle speed, I set it to 12,000rpm with a feedrate and plunge rate both set at 1 inch/minute.  

I placed a wooden blank in the pocket I had previously milled in the scrap board on the machine and began milling the “Brewmaster” design.  It is important to note here that since milling the pocket in the scrap board, I never turned off the CNC machine. This allowed me to keep the same Zero position for my X and Y coordinates between each milling.  If I changed this, then none of the designs would line up correctly with the wooden blanks.    After the first design was milled I realized the design template from inventables was really wrong about where the holes for the screws had been drilled.  So I scaled the design down and tried again.  Luckily I bought 2 of the bottle opener kits, so I had extra parts to use in case of a disaster like this.

bottle-Open2

After about 5 hours of milling, everything was finished. I had to go in and manually clean up the edges of the cuts a little with a razor knife and sand paper. Then I rubbed on a few coats of linseed oil to protect the wood.  Any food-safe finish can be used such as Mineral oil or Olive oil, but I happened to have linseed oil in the garage.  I forgot to take pictures of the final product, but you can see what one of the blanks looks like. I did both sides of each wood blank, each with a different design so he could flip them around.      

Easy Kitchen Backsplash

 

before 1

after

After our first kitchen backsplash experience, my mom wanted to do something similar. Our first project was very involved and required special tools, etc. She wanted to do something simpler. We stumbled on a solution that requires no special tools. The only tools we used were a pair of ordinary scissors.

While roaming the big box hardware stores, we found some neat peel and stick vinyl backsplash tiles.  These were perfect for the job at hand!  They have faux glass relief over printed stones which looks so much like a piece of glass that you can’t tell the difference until you touch it. They only come in two patterns of the same colors.

Tip 1: Get as much variety as you can  in the sheets. We only had two options so we got half with the first pattern and half with the second. 

We also grabbed a few faux pressed tin sheets along with the plastic edging and a corner piece.  We used this behind our stove in our house. It is really easy to install and looks great. It’s also fairly easy to clean as well.  We didn’t realize how useful the edging pieces would be. We ended up edging the entire top and bottom of the backsplash with them.  We also grabbed some silicone and spray adhesive to stick things to the wall.

supplies

tiles  glues

The first step was to match the tiles with the granite my mom has in her kitchen.  This was easy since these big box stores carry a variety of granite. We just held up the tile to the samples of granite and picked what we liked best. The tiles we chose look like a better match in person, for some reason the white balance on my camera ended up making the tiles look more blue than they really are.

matching

When we got back to the house, we started right away with the stove area. My mom wanted to cover the side wall as well as the back with the faux pressed tin. This worked out well because the side wall was exactly as wide as one of the tin sheets.  We used the remainder of the Simple Mat but could have just as easily used the silicone to stick this to the wall. We cut some of the edging with scissors (no special tools required, yay!) and glues that with silicone to the top and front edges of the tin. In the back corner, we used a corner piece made specially for this material. It makes a smooth transition in a 90 degree bend. The back wall was a little wider, so we ended up using more than one sheet of the tin. We used some more edging on the right-hand side to clean up all the edges. Here you can see the finished product. It looks really nice!

stoveArea

We then placed a few sheets temporarily on the wall to see which direction we liked the tiles to run. I thought vertical tiles gave the illusion of more space.

determine orientationThen came the hard part. The tile sheets only come in two different patterns.  In order to make the wall look random, we had to do some cutting.  I’m not sure if vertical tiles made this part easier or harder. I remember at our house, this was the most time consuming portion. We spent just about the same amount of time randomizing the pattern in both cases, but installation of these tiles was WAY faster.

in progressSince the tile sheets come in a specific pattern of a row of thick tiles, then two rows of thinner ones, we split each sheet into 4 pieces.  This allowed us to mix and match not with only the two options we were given, but now we had 8 options to mix and match.

Tip 2: When cutting these sheets, be sure to cut in the center of the grout area to allow yourself the ability to cover overlap and make the grout look seamless.

Tip 3: Before you press the sheets to the wall, spray the wall with adhesive.

Since the sheet didn’t cover the whole wall, we had to add a portion of another sheet on top of the bottom row. The pattern of stone lengths on the sheets forced us to arrange the  in a certain way. We ended up using more sheets than we would have liked because of this. We also ended up replacing a single row of stones, and even in some cases individual stones to keep the pattern random.

To keep all the grout looking seamless, we used metallic sharpies in some of the gaps between the stones before pressing the stones to the wall. Since the grout on the sheets is a silver color, we used the silver Sharpie, but we also ended up using both the gold and bronze in certain areas as well. Hence:

Tip 4: Use Sharpies to hide where the grout doesn’t overlap.

sharpies

After we finished both walls, we wanted to hide the cut stones at the top and the edges. For this we simple bought a lot of extra plastic edging pieces for the faux pressed tin. Being the same as what we used by the stove, it really tied everything together well.  We simply used silicone adhesive to glue these in place.

Tip 5: Use the plastic edging to tie together the whole look.

edging detail

Overall Verdict:

The makers of these tiles did a good job. When you press the grout from one tile to another, the seam disappears almost completely. Also, the stones are made of a flexible rubbery material which is easy to cut with scissors.  This was really easy to work with when we did our second row of these sheets because we had to cut some stones in half. It took no time at all.  I would liked to have seen a little more variety in the stone patterns, but overall it worked out well for us.

I have to say that while it took us a while to do this job, it was nowhere near as tough as the when we used actual tile and grout. I wish I had come across these sheets earlier!  Randomizing the pattern still took just as long, but once you stick the tile on the wall you are done. There’s no grouting to deal with which means no mess or extra work. We also don’t have to seal this material which is usually done after grouting to prevent staining. This stuff is waterproof since it is on a vinyl sheet so it protects the wall just as much as real tile.

Overall, I enjoyed this project MUCH more than real tile. It was cheaper, cleaner, and took fewer steps. The end result looks great. I would argue that for a novice, this is better than using real tile because the grout lines and stones are perfectly straight.  Even using the stones attached to mesh sheets on our first kitchen makeover left room for the stones to wiggle and inconsistent grout widths. This product wins in almost every category so far. If I remember, I’ll post an update in a few months to a year to let you know the long-term results.

 

 

 

 

 

NAND to Tetris Free Online Class at Coursera

If you are interested in electronics and haven’t heard of this class, where have you been?  This class is a great introduction to how digital electronics works and for the first time (as far as I know) they’ve opened it up to the public online. It is free to audit the course and they just started March 14th, so it is still Week 1! Here’s the introduction video for the class which gives a great overview of it.

So why is this class so great? Well it starts off with a single piece of electronic digital logic, think of it as a 2×1 lego piece.  Then you use connect some of these together to build other more functional lego bricks, like a 2×2 brick, then a 2×4 brick, etc. Eventually you end up building your own Central Processing Unit (CPU), then you learn to code it in Assembly language (the lowest human-readable programming language),  then you build up to eventually a full blown computer with keyboard and monitor connections that you can write video games like pong, tetris and slightly more complicated things. That’s about as close to starting from scratch as you can get.  The real name of it is “the Elements Of Computer Systems” but everyone called it “From NAND to Tetris in 12 easy steps”.  NAND is the type of digital logic gate that you start with.

I know it  sounds super hard, but it isn’t!

This class is so well laid out that you can do it in your spare time.

The first half of the book is on their website for free, but you can buy the book for about $30. That’s one of the cheapest textbooks I know of, and it is a really good book to have for reference. The Massively Open Online Course (MOOC) is free to audit, but if you want an official Coursera certificate showing you took it, it’s only $50 or so. Some workplaces let you use that for Professional Development credit. This is some of the most fun PD credit I know of. If you aren’t familiar with MOOCs or Coursera, imagine hundreds or even thousands of people all around the world watching videos that are released about once a week with a lecture and homework assignment. Everyone can communicate in an online forum to help each other out. You can even get your work graded (in some classes). Many courses are free, some you have to pay for. Coursera is one of many places offering these kinds of classes. Heck, MIT and other universities have been posting their courses online for free for years now. MIT will let you earn a fancy certificate too (for a cost).

My tips:  I used Logisim to build circuit and simulate the logic gates, but you don’t have to. All the software you need is available for free on the class webpage. If you are familiar with FPGA devices, you can build this computer for reals on a cheap FPGA development board like this guy. Either a Xilinx board with Vivado to build and simulate or Altera boards (<– warning, I’ve never used this one before) using Quartas software to design and simulate it should work. This little CPU isn’t super complicated. I warn that actually building it on one of these boards is no easy task, you’ll have to design stuff that is not covered in the class to get it to work with your particular board.

Join the class now before they get too far ahead!

How to: FabTinyStar Programmer

actual boardThe FabTinyStar is a small ISP programmer for AVR chips started at FabLab Amsterdam. You can use it with AVRdude or even from within the Arduino IDE. It is a super cool little USB programmer for AVR chips. You will need something to program this programmer with, so if you happen to have an Arduino that uses the FTDI chip for serial communications, you’re in luck because you can use that as a programmer (just match up the pins on the connector headers) to get the  FabTinyStar up and running. Typically a FabLab has one or two “professional” AVR programmers, then each student builds their own FabISP or FabTinyStar.

The FabTinyStar has gone through multiple revisions, so I’m showing only what I have tested and got working. Zaerc has a good multipart tutorial on FabTinyStar version 12 as well.

Why would you want to use this over the regular FabISP?

  1. Fewer parts (no crystal)
  2. No need to desolder or break off any jumpers after you burn the FabTinyStar Firmware, simply burn the fuses and you are ready to go
  3. It has a switch to power the target board (no need to use external power for the target board)
  4. It has an LED to show that it is connected and powering the target board
  5. It has an LED to show it is programming correctly. This little bit of feedback is awesome for debugging!
  6. The neat-factor of having an 8-pin awesome custom AVR programmer.

To build this device, you can download all of the EagleCAD files and Firmware here. You can use a variety of PCB fabrication techniques to make your own boards. I’ll leave that part up to you. I milled my PCB but you can etch it just as well.

Below I’ve shown the header pinouts for the ISP pins. I recommend you leave off the bottom two pins of the header (USB D+ and USBD-) because if you solder them on there, you can’t use the regular 6-pin header for programming or connecting up circuits.
fabTinyStar-013_lay

Firmware:

In Windows machines, I install the Arduino IDE which will come with AVRDUDE. Search through the installation folders of the Arduino IDE to find the AVRDUDE executable program.  I then typically use AVRdudess or another AVRDUDE GUI to program it using the following settings:

 

FabTinyStar Drivers:

Before using the FabTinyStar, you must install the appropriate driver in Windows. There are a couple of good guides out there (namely the one on Adafruit) but the one that is closest to the FabISP you just built is here at Sparkfun. Following that guide will install the drivers. To check this driver is recognizing correctly, open the device manager in windows and confirm that “libusb-win32 devices–>USBTiny” appears (and disappears when you remove the device).

When using the FabTinyStar, you might need to flash the target chip multiple times, or you might get a “verification error.”

Installation was simple, but not being super familiar with windows, I hit a couple of stumbling blocks. Here are the steps I got to work on Windows 7.

  1. Download the Windows driver for USBTiny (which the FabISP is a type of)
  2. Unzip the folder to the desktop or somewhere accessible.
  3. Plug in the FabISP
  4. Start–> control panel–> hardware and sound –>Device Manager
  5. Once here, right click on the FabISP icon in the “unknown devices” tree
  6. Select “update driver”  or something to that effect
  7. Select the option to manually select the folder the driver lives in and locate the driver to install it.
  8. Also, install the ATtiny hardware files:  Download them here, and unzip them into your ~/My Documents/Arduno folder.
  9. I also manually added “FabISP” to my programmer.txt file.  You *could* just select “USBTiny” in the Arduino Tools–Programmer menu, but I wanted mine to say “FabISP”.
  10. So when you are ready to test this, open the Arduino IDE, select File–>Examples–> 01Basics–> Blink
  11. Change the pin number on line 10 to the one you LED is connected to (Arduino doesn’t use “PORTB.1” for instance, so look at the map at the bottom of this page to see what number your pins are.  You can use that type of addressing if you want, but most Arduino programs don’t).

 

Using this programmer with custom-built AtTiny circuits in Arduino.

The following is a quick summary of this page at HighLowTech to serve somewhat as a mirror, but mainly as a cheatsheet on how to setup and use AtTiny chips with the FabISP in theArduino IDE..

You can use these programmers in the Arduino IDE to program your boards directly, without using the Arduino bootloader on the target chips.To use Arduino IDE, you can install the AtTiny board library from HighLowTech. I don’t use the built-in function for add-on in Arduino’s IDE because it has never worked for me on any machine I’ve tried it on. Typically, I find it easiest to simply download the Arduino library for 1.6.x  (here’s my copy as a backup) and install it manually by copying the “attiny” folder in the zip file to my arduino’s hardware preferences folder. On my machine this is the path: C:\Users\ALaptop\Documents\Arduino\hardware. I had to create the “hardware” folder inside “Arduino”, but then I just restarted the Arduino IDE and could see the change had taken by finding Tools–>Boards–>AtTiny.)

On Mac or Linux, find the Arduino IDE installation and copy the library to the hardware folder.

How to use this new library:

Restart Arduino (or open it if you hadn’t already) and select “Tools–> Boards”  and now you should see a AtTiny entry.   I’m showing what it looks like in Arduino 1.6.4.  Different versions might look a little different, but you should be able to get the same results pretty easily.

board

Once you select “AtTiny” as the board, you will see different options under “processor”.  Select the chip you are using here.

Chip

 

After selecting the particular chip, you can select the clock frequency and whether it is internal or external. If your design uses a resonator or crystal, it is external.

clock

Also, when you select “Tools–> Programmer” you should see “USBTiny” listed.  Select that as well.

programmer

The first time you connect a particular AtTiny chip to this setup, you’ll need to burn the fuses.  The way to do that is plug your USBTiny into the computer, plug your target board (your custom design with an AtTiny) into the USB Tiny, Select the appropriate Chip, Board, and Crystal.  Then select Tools–>Burn Bootloader.”  After this is done, just the target board is ready to accept the arduino code you write.

bootloader

Not all functions of arduino are possible since the AtTiny series chips have fewer capabilities, but most stuff works fine. If you want to drive servos easily with the AtTiny chips, you can use the 8-bit servo library found here

Keep in mind the following pinouts for the AtTiny 44 and AtTiny45 (or 84/85) when writing your arduino code.

ATtiny45-85

ATtiny44-84

Photo Credit: All glory goes to High-Low Tech

Testing it out:

echoHelloWorldFlashy

You can build a simple multi-use board I made as an example.  Download the EagleCAD files and Arduino code for that project here. I originally made the PCB and the code for my FabAcademy page. Check those links for more detailed info.

Open the Arduino IDE and start a new project. Paste the following code in it and set it up to program an AtTiny44 with a 20MHz external clock. PLug in your FabTinyStar, connect the example board and compile and download the code.:

 

// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin 13 as an output.
  pinMode(7, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(7, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);              // wait for a second
  digitalWrite(7, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);              // wait for a second
}

Installing a Kitchen Backspash

Here is our kitchen before:

sheekgeek-kitchen-backsplash36

And, here is our kitchen after (even more appropriate that it is messier):

sheekgeek-kitchen-backsplash34

As I mentioned in my previous post about this, Jess came home with backsplash materials one day.  We looked at a bunch of online designs and decided to have a go at it ourselves.  In the first installment, we installed the extruded aluminum edging that boarders the tile.  This time we will talk about the tiling itself.
The toughest part of this whole ordeal is figuring out a good pattern for your tiles. We spent hours trying to get a good random look in the tiles we used.  We went with the glass and stone tiles that come on a 12×12 inch netting material.  Most of these pieces are in a nice random pattern, but some are not.  We had to manually cut out some pieces and replace them with other colors to keep the pattern pseudo-random.

sheekgeek-kitchen-backsplash26

Once we had our pattern laid out, we prepared the wall for the tiles. First, turn off all the breakers that power the light switches and outlets in the area you will be working. Remove the light switch and outlet covers and check to make sure the breakers have turned off the power to those areas.  Breakers may be labeled incorrectly as I found out when it shocked the $#!+ out of me… so I highly recommend getting an electronic sensing pen like this one to use to make sure the power has been turned off.  It works without having to be in the circuit. Just place it near the hot wire (black or red wires) on the sides of the outlet or light switch boxes. If an electric charge is detected, it will turn the tip of the pen red and beep at you. Once you’ve ensured the power is off, go ahead and cover these with masking or painters tape.  When we go to grout these areas, we want to make sure they don’t get all clogged up.

It’s important to note that tiling isn’t as hard as it used to be. Instead of having to put layment on the wall to stick the tiles into, we used these sheets that are basically like 2-sided tape.  The flat portion sticks on the wall and the other side had what looks like hot glue in a grid pattern on it.  The hot-glue-looking stuff is a pressure activated adhesive so to place tiles you simply press them into place on this material.

You can see the glue in the background in these pics:

sheekgeek-kitchen-backsplash13sheekgeek-kitchen-backsplash22

We started our tile design at the bottom of the wall, where it meets the counter top.  this is a good place to start because people will see this part more than directly under the cabinet.  In our house, the cabinet and counter are not perfectly parallel.  Starting with a full-sized tile at the bottom where the wall meets the counter will ensure any half-cut tiles or extra space will be hidden under the cabinets.  Also, we have about 1/4 and inch of play since we used the metal edging.  This will allow us to fudge a little if we need to.

We began with the shortest wall we had as a test. We had a 2 x 1.5 foot section of the wall we wanted to test on.  This was critical to the learning process! We learned how to lay the tiles so the ends match up with the corner of the wall well as well as how to hide the edges. We also figured out the best method for cutting the tiles around an outlet in the middle of this small section. I suggest practicing like this on a small area before doing a big area.

sheekgeek-kitchen-backsplash03

For cutting the tiles, we bought a tile cutter. (This little guy looks reliable too. There are lots of $20 options and in our experience, it did the trick. I don’t plan on needing a tile cutter often so I didn’t need a workhorse.) Don’t use a tile nipper if you are using glass tiles because they will shatter or crack unpredictably.  It helped to cut draw out where the outlet met the tile sheet, then laid the entire sheet in the manual tile cutter.  Scoring and snapping each tile separately produces the best results.  We did find that sometimes the natural stone cracks on veins of impurities rather than the scoring line.  In most cases that was OK since it can be filled in with grout later, but sometimes we ended up cutting that tile out and replacing it once the sheet was on the wall.

When using the sheets of tile, you need to make sure you grout it within 24 hours from when you set the tiles.  Otherwise the tiles can fall off the wall due to their own weight.

 

Adam-Atom