Xcarve and Fusion 360 CAD/CAM

xcarve2   It has been bout a year now since I last had a chance to play with my CNC machine, so I figured I’d give an update on the progress so far and what I’ve learned.

Hardware:

Firstly, I got the Dewalt 611 router and router mount. This is a huge upgrade from the no-name dremel knock-off I had. After test cutting just once with the old router, the brushes were shot. I sprung for a real tool instead of a toy.  As a bonus, it makes the machine look nicer as well.  In order to fit 1/8″ shank bits, I had to get a 1/8″ collet for the DW611. This wasn’t terribly expensive if you compare the cost to replacing all of my router bits with 1/4″ bits.  I got all of this late summer 2015 and literally had only enough time to attach it all to my machine before life got crazy busy. I never even had a chance to test it until now.

I also recently got the Suck-It from kickstarter. This goes a LONG way into keeping dust to a minimum. A warning, however, I tightened the screw too tightly on my Suck-it and accidentally drove the bottom edge into one of my makerslide rails since I don’t have endstop switches. This  promptly shattered the Suck-it acrylic into incredibly sharp shards.  While you can purchase additional parts from the Suck-it website, I opted to make my own replacements from wood, which is a bit more forgiving.This also gave me a great chance to finally learn some CAD software.

While testing, I finally realized that the ACME screw inventables sent me last year as part of my upgrade kit is warped. It binds in a couple of places when I try to move the Z-axis up all the way.  I thought that I  could fix this by simply getting a stronger motor, so I ordered the NEMA 17 from inventables. This was stronger, but still couldn’t overcome the bend in the screw. The bend also causes the very tip of my bits to wobble ever so slightly. It is almost imperceptible, but makes a big difference when I mill multiple passes of the same shape or try to do PCBs.I contacted Inventables and Mo in customer service worked with me over a couple of weeks to get my Z working great. It turns out that Since I upgraded from Shapeoko1—> Shapeoko2–> Xcarve, I had the wrong spacers on my router mount.  The ones I had were about 2mm too short. Mo helped me get the right length spacers (9.5mm long) and bolts(35mm). My short spacers and bolts were causing the ACME screw to bend back towards the gantry at a significant angle. When installing the new spacers, be sure not to use washers as this will also change the angle of the ACME screw.  With the new spacers installed I can get all but 7mm of my Z axis working perfectly smoothly.  Thanks Mo!

I also bought this clear tube for my suck-it vacuum mount. This was about 63mm in diameter, so I had to same the interior of the acrylic suck-it plate to fit the tube. I also cut it to about 9 or 10 inches in length. At this height, the tube is about the height of the router itself. This gives me more visibility to see what is going on with the business end of my router rather than the black coupling tube that the suck-it came with.

CAD/CAM:

I wanted to learn a real CAD package since my FabAcademy training in 2014.  I only had experience with Sketchup which, while very good for beginners, it doesn’t really follow the same kind of workflow as professional engineering CAD/CAM packages. I wanted to learn something along those lines. I had played with Creo, Solidworks, Antimony, and was looking into Rhino/Grasshopper when I saw Fusion 360. Autodesk has been going crazy buying and building awesome CAD/CAM tools for the hobby market as well as for industry.  Fusion 360 is a complete engineering tool that can start with a 2D sketch or a 3D body and allow a user to create objects, render them realistically, stress test them with finite state analysis, and export 3D print or CNC toolpaths.  Oh, and did I mention that it is free and has a very active community online as well?  So I downloaded it and gave it a try. I am quite pleased with it in all respects!

Having no formal training, I opted to take some free online courses from Udemy.com. Check out my other posts concerning that. Of course, as with anything, beginning is the toughest part. It took me a couple of days to get the hang of the Fusion 360 workflow, but with all the great tutorials and videos online, it is easy to find answers to your questions. If not, you can post to Autodesk’s forum for help.

Moving on, I played with Fusion 360 starting with the 3D sculpt method at first to get some awesome organic shapes, then moved to learning the 2D sketch workflow. I measured my machine and aluminum rails of the Suck-it. I made quite a few mistakes along the way, and had to start over several times, but I finally figured out how to get what I wanted  out of the software. It is still a bit buggy from time to time and crashed a few times when I tried to do certain things, but I think it was partially due to a bad design.  I watched a couple videos and fixed my design and was able to create the toolpaths without further issue.

Fusion 360 can do 2D and 3D milling jobs with ease. There are a lot of options, but videos mentioned in my previous post cover most of what you need to know. I’m running a smoothieBoard on my machine and Fusion 360 has a CAM processor script designed for my board, so I simply select “Smoothie” from the dropdown menu when I go to export my design and I’m good to go.

Sending the job to the machine:

The main software people are using to send jobs to the smoothieboard is Pronterface, which is typically used for 3D printing. It’s all Gcode, so it doesn’t really matter, but for some reason, I didn’t like using a 3D printing software for CNC. Last year I tried using Universal G-code Sender with the smoothie and even played with coding in this ability, but life got too busy for me to continue, so I stuck with using Pronterface. What I like about Pronterface is the ability to create custom buttons. For example, I made buttons to zero the axes, reset the smoothieBoard after I hit the killswitch, etc.  These prevent me from having to manually type the Gcode in the command window. I can even send smoothie console commands using these buttons.

pronterface buttons

You can also run the smoothieboard over ethernet. You can do so through pronterface or by using one of several web interfaces (meaning you can control your 3dprinter or CNC machines over the web). This is useful in my FabLab at work where we have a lot of 3D printers running on a 3D print server. You can run the smoothieboard on this as well. It can host several different web interfaces which I hope to go into later, but one of them is basically a webpage that looks just like pronterface.

I feel like I finally have a good workflow here. You can see my results here. I made replacements of the broken acrylic pieces of my suck-it dust boot that I made in Fusion 360. I used scrap wood, so it had quite a few drill holes going all the way through it already. I also did conventional only, and no climb milling which would have given a nicer finish.  I used a 2-flute straight 1/8″ but as well, no spiral which would have also given me a cleaner result.  Due to my learning curve, I did have to do some manual touch ups to the dimensions of the pocket which explains the nastiness in there you see. suckit

 

 

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
}