Tips for Mounting Stock Material for CNCing

Holding a workpiece is always an annoyance. You want to flatten a sheet of plywood so there’s no part of it bowing upward because that will throw off your cut depths. Nothing is worse than thinking you have a tab holding a part in place only to find out that the tab was too thin or nonexistent when the interior piece starts getting all chewed up and flopping around, breaking stuff. On close inspection you can see that on your final couple of passes, the tab was cut too thin or clean through because the wood was bowed upwards. Without a vacuum table, there’s only so much you can do, but I’ve found a few ways that seems to work great. Screwing or clamping the wood to the spoilboard is OK, but it makes certain areas no-go zones for your bit. My methods will help you use up every square millimeter of the wood if you’d like.

Dealing with the Wood Itself:

The wood itself is always as straight as I could find, but it’s never perfect. I lay it on my machine such that the cupped edges stick up in the air. Then I mount down the edges.  There shouldn’t be a bubble in the middle because the curve was originally downward to begin with and since I affix the edges (where all the stress to move upward is) it lays pretty well.

image

Traditional Method using screws:

Sally from Shopbot showed me a nifty trick. If you do use screws to secure your stock to the machine you want to make sure your toolpaths will never touch the screws (lest you break your bit or mill your screw head off). Sally’s trick is to add these screw holes to your design.

  1. Lay your stock on the machine and center it but don’t mount it.
  2. Open your cutfile and add small circles (1/8th – 1/4th inch diameter) about 1/16th inch deep to the design. These are the locations of your screws. Make sure they won’t interfere with any cutpaths and that they will be in a good position to secure the stock.
  3. Export just these circles as a cut path and cut them.
  4. When finished, add screws in these locations (The black circles in the image below)
    image
  5. Delete these added circles from the design
  6. Cut your design file as normal.

This method works great, however if the stock is bowed or there are small clearances in the cutpath of your design, or if you aren’t using tabs to support interior pieces this method might not work for you so try the other ones listed below.

Masking Tape and Cyanoacrylate (CA) Glue (Super Glue):

I stole idea this from a few places. Machining metal parts you can straight-up super glue them into place on your vice. Make sure the faces are clean of oil and debris first of course. When finished, you can simply dissolve the glue with a heat gun to remove your part.

The problem with wood is that if you superglue it, it can make it all nasty looking for the next few steps of the project. And what if you wanted a nice natural finish? The solution is to use masking tape. You’ll lay down a piece of wide masking tape to the spoilboard, then apply another to the stock material. Lay down a line of CA glue on the piece on the spoilboard and spray the piece on your stick with CA activator. As soon as you touch the two that piece is going to stay in place pretty well.

This method works best with smaller material that isn’t very tall. It also allows you to cut pieces on top of the tape without the need for tabs.

Masking Tape and Hot Glue:

For larger pieces of stock I’ve found the use of wide masking tape and hot glue to hold large sheets fairly well. You might think hot glue isn’t a good choice, but I’ve used hot glue to hold down guitar body blanks on my large planing jig while I router-planed them to thickness without any issue. These were solid poplar about 1 and 3/4 inch thick. I simply use a high temp glue gun and a harder (rather than flexible) glue.  I’ve also used it to mount 1/4” plywood on my CNC machine for tons of engravings and through cuts to great success.

On the CNC machine, I used masking tape to lay down on the spoilboard since I was doing a bunch of cuts. After a few pieces of plywood were cut the glue makes it hard to get a flat surface so you can just pull it up and put down new tape to glue to. The masking tape sticks to my spoilboard on my machine making an outline of where the wood will go with a bit of overlap so that the wood lays on top of about 1/2 the wide of the tape. Align the tape with the router head, not the machine itself. Move the router 10 inches at a time and make sure the middle of the tape is right under the bit. Here you can see the 1.5-2inch wide masking tape just under the wood:

image

The Endmill (the Bit):

An additional tip for keeping the material flat is to always use Down Cut endmills or compression bits on pretty much all plywood cuts. These endmills have the spirals cut backwards such that the normal spinning of the bit puts pressure in a downward motion as opposed to upward. Compression bits actually have regular flutes on the top, but reverse flutes the rest of the way up to give a nice finish on the both sides of the cut. This isn’t a great thing to use for deep narrow pockets, but for plywood stuff it works very well for making sure the material doesn’t raise up when you are cutting.

Can you think of any other tips or tricks I haven’t listed here? Leave a comment and let me know about it!

Making Guitar Body Blanks for Cheap

I’ve wanted to use my CNC machine to build some guitars, but I didn’t want to spend a fortune on body blanks to ruin while learning and perfecting the process. I decided the cheapest option was to make a bunch myself. (Video at the end)

I went to Wurth wood in Charlotte. I had decided on poplar as a species due to its cost. Wurth has rough-cut wood which comes in various lengths, widths, and an odd way of measuring thickness. I wanted my body blanks to be about 1.75” thick, about 20 inches tall and about 15 inches wide.  I knew I’d have to glue two pieces together to get the width I wanted.  When I say that the wood from a saw mill comes in various widths, I mean it. There’s no standard width. Any random width they could cut from a tree is what you get.

They also count thicknesses funny. Everything is measures as 1/4 in increments. This is normal for 1/4”, 1/2”, and 3/4” but gets weird beyond that. A 1 inch thick board is called 4/4 for instance. I knew I’d have to plane the wood down to get the desired thickness of 1.75” so I went with a couple 8/4 boards.

They price the wood by the “board foot” which is a volume measurement. For instance, if you have a 1-inch thick panel of 1ft x 1ft, then you have 1 board-feet of wood there. The formula for board-feet is

(width in inches x Length in inches x thickness in inches) / 144 = board-feet

With the wood I got, it was just over 7 inches wide, 8/4 thick and in all was 160-ish inches long. For this I spent about $65. I calculated that I could make 6 guitar body blanks from this. That’s a bit more than $10 each which is FAR cheaper than anything I found online anywhere!

The next step (after getting the wood home of course) was to cut and flatten it. I cross-cut the wood with my circular saw to about 20″ in tall pieces. To make them flat and smooth I had to plane them, but I don’t own (nor can I afford) a planer. The solution is simple. Build a sled and use a router to face off the surface of the wood. The process is simple. Starting with the leftmost picture, you can see the rough wood is warped and cupped a bit. I’ll use my router to flatten the top (2nd pic from the left). Then I’ll flip it so the flat side is down, and use my router to again plane it flat on the other side (rightmost pic). You can’t do this just by eye though. I needed to build a jig to hold the wood and a planing sled to hold my router.

image

To build the sled, I used some scrap pieces of stuff I had laying around. It was just big enough to fit the wood into it. I used a 2ft by 2ft-ish piece of 1/2 inch plywood and four straight and flat pieces of 1×2. I used wood glue and tacked the 1x2s into place with brads to make two walls. The walls height needed to be higher than the wood was planing.

Next I had a piece of scrap 1/2” MDF. I drilled a hole in the middle a bit bigger than my planing bit on my router, and 3 mounting holes in the pattern that matched my router base. The size of this piece of MDF isn’t terribly important except that it needs to be long enough that the router can be all the way on one side of the jig and the MDF still spans the entire jig. Here’s what I mean:

image

Here you can see the rough wood blank height (which is about 2 and 1/8th inches thick) is just smaller than the right-side wall of the jig (which I made  2 and 1/4 inches tall).  You can see that the bottom edge of the rough wood is hot glued to the jig so it won’t move. I did this with the two shortest edges and that was all I needed.

image

I found that going vertical allowed me to see the depth of cut.  I took about 1/16th to 1/8th of an inch depth cut per complete pass, lowering the router in its base each successive pass if needed.  Once I planed down one side, I used a chisel to remove the hot glue holding the board to the jig.

image

Once I finished one side, I left the router at its current height and sat it to the side while flipping the board. This kept the router at the correct height to start on the other side. I then used a chisel to carefully release the hot glue holding the piece down and flipped it. This method will flatten any board on both sides. You can also rout the edges of the board using this jig to get 90 degree angles on 3 side before flipping the piece. Here’s  video describing the process:

I actually used the scariest router bit in the world on my router table to get the edges straight though.

image

Once the edges are straight, I slathered on some wood glue and clamped them together. I had to use tie-down straps as clamps. To keep the straps from getting glued to the wood I put paper towel between the strap and the wood where the seam was.

image

The next step was to rout the guitar body shape on the CNC machine about 1/4 inch deep, and then rout the cavities for the neck pocket and the electronics. I’d then use my bandsaw to cut the path of the body blank and use the scariest router bit in the world to clean the edges up. I actually hadn’t do this yet. In fact, I made these blanks in 2017 and they have sat in the garage since.

Things that stopped me are:

  1. My bandsaw is garbage and can’t cut a straight vertical line to save its life, regardless of how tight the blade is or how slow I go.
  2. I’m scared of the router bit. Routers are a lot like honey badgers in that they don’t give a ….  well you know the rest. They’ll cut chunks out of you much faster than you can imagine and with the giant  2.5″ bit I had, it could easily be deadly.
  3. You have to build the guitar based on a neck and I’ve never bought a neck to design it around
  4. I sold the CNC machine… But that’s no real excuse, I could use the Shopbot at Charlotte Latin if needed, or just do it by hand. HOnestly, doing it by hand is how most folks do it and it is a lot faster than me figuring out how to CNC it. I’m terrible with CAD…
  5. I’m lazy and this was so much work that I don’t want to screw up all 6 of them then have to do all this again. I simply don’t have the time to.

Cheap Color Lacquer Soldermask for DIY PCBs

In the past, My milled PCBs corroded quickly. I began coating them with nail polish. I liked this method because I could be precise and not paint the soldered components in case I had to fix or hack the boards later. Spray on conformal coating is what Neil from FabAcademy recommended and he’s right that Nail Polish isn’t designed for circuits. But the overall results are fine, colors are abundant, and it’s like $1 a bottle rather than $20 a can of conformal coating.

While I see lots of folks online using UV curable liquid soldermask, or dry soldermask film, however the liquid is made of some pretty interesting chemicals. I also don’t want to figure out a way to UV cure the dry film such that I can get the pads uncovered on the PCB.

I found one guy who came up with a technique that was quick, easy, and cheap. Colored lacquer is cheap and readily available at hobby stores for less than $10. It also protects the traces from corrosion and comes in a variety of colors. With a quick spray (like conformal coating) I can paint the entire PCB.  The benefit here is the second step. Instead of trying to figure out how to UV cure a dry film and then remove material from the pads, I simply throw the design into the old CO2 laser and burn off the lacquer on the pad areas. To get the files for this I went into EagleCAD’s layers and used the old technique of exporting bitmaps of the dimension+top and separately the dimensions + modified tStop. (This is my AtTiny412 General purpose Blinky board if you are curious. Detailed info about building and using it here).

image      image

I changed the fill style to solid by clicking on the tStop layer, then the Change button.

image      image

Along with the Top+Dimensions layers the design is complete.

image

You can tweak the colors in good old Gimp Like we “used-t’do” and throw it on the laser. At this point I handed the files over to Tom Dubick of Charlotte Latin School FabLab fame and he cut out a jig to hold the PCB in place and etched the layer of lacquer away.

I found the Lacquer quite soft and for smaller boards it might be just as quick to scrape it off the pad areas with a razor knife. Scraping actually was a more complete methods of removal as well. In the future maybe a milling step would work for this.

The lacquer will still melt when enough head is applied with the soldering iron (and you do NOT want to breathe that in…) but it does somewhat act like a solder resist when dealing with the tiny pins on the boards we make in the FabLab.

I think the better idea is to slap some kapton tape on the PCB, then laser it off. Kapton seems to be commonly used with lasers  even in industry and is made of essentially Carbon, Oxygen, Nitrogen, and Hydrogen (ignoring the adhesive) and according to this MSDS “At temperatures above 400 degrees C the major off-gasses are carbon dioxide and carbon monoxide”.  It should be safe to do.

Cheapest and Fastest COVID-19 Face Shield

I’m working with some folks on a project to 3D print a ton of face shields for Charlotte hospitals during the COVID-19 crisis, but I figured there has to be a faster and cheaper way. I worked something out with parts I had in the garage and it costs pennies to make. it even adjusts so you can lift it up or lower it down over your face.

What you’ll need:

Drill a hole with a drill bit or a utility knife (drill with the knife by spinning it, don’t cu ta hole or it will tear and be weak)

It’s adjustable.

 

AtTiny412 General Purpose Blinky Board and UPDI Programming

In the 2020 season of Fab Academy, we are encouraged to use new chips (as opposed to the Attiny 84/85 chips). The new chips the lab got were AtTiny 412. This is a tiny 8-pin chip is pretty neat. Here’s my old design which was an EagleCAD Board file. It is based on Neil’s design for the AtTiny412 (Go here), ctrl+f for Attiny412 and look at his “board” link) board but I moved the LED to Digital Pin 0 (which is PA6 in Atmel speak – pin 2 from the top left) of the chip. My new design used KiCAD and is available here.

Here’s the layout of my board:

BOM:

  • AtTiny412
  • LED
  • 499Ω resistor
  • 4.9kΩ resistor
  • 6-pin SMT header (FTDI)
  • 2x 2×2 SMT header (Optional, general purpose for connecting other stuff to)

Once the board was made I needed a programmer. The new chips use UPDI instead of ISP protocol. There are two easy ways of making a cheap programmer for this. One is simple software but complex hardware (Arduino-based) and the other is simple hardware and complicated software (python upload/downloader). I tried them both to see what I could simplify about them.

First, mill the board. With this, I experimented with a lacquer finish as a soldermask it came out pretty well actually.

Complex hardware, simple software (Arduino):

First I installed the megaTinyCore library into Arduino.

Followed these instructions to make a UDPI programmer out of an arduino. Here’s a board you I designed that you can fab yourself for this project. Simply download the jtag2UDPI sketch to an arduino board to make it a programmer. You’ll need to connect up a 4.7k resistor from Digital Pin 6 to go to the AtTiny412 board to program.  Additionally, if you can’t disconnect the the DTR line from the serial chip to the reset pin of the arduino, just add a large capacitor from the reset pin to ground. The capacitor acts like a tiny battery and when the DTR pin on the FTDI chip drops voltage to 0 to reset the arduino (typically how it works when using the arduino software) the capacitor will keep the voltage high so the jtag2UPDI won’t reset in the middle of trying to program the AtTiny chip.

This is a stupid simple solution that costs very very little. You can get an arduino board for $2 online and add a resistor and capacitor to make it a programmer and you’re done. This is the way to go. The issue is that Fab academy wants you to actually build your own programmer.  I’ll revisit this in another post soon…

Once you’ve built the programmer, change your chip in the Arduino software to the AtTiny412 and change the Programmer to “jtag2UPDI”  then load up Blink example and change the led_pin to pin 0 (if you are using my board design).  When you click program, all should go well.

Simple Hardware Complex Software:

This solution uses just a USB serial chip (FTDI or similar) and only 1 resistor.  No additional arudino required. Neil encouraged in week 2 Instructors meeting to build his FTDI-based UDP programmer and use PyUDPI (See under “hardware” if you search for “UPDI” here). Basically you use a simple USB to serial converter chip (FTDI chip or similar) and all the hard work is done on the software side. The setup for PyUDPI is a lot of overhead when you can just get it working directly in arduino using the jtag2UDPI linked above.

The first board Fab academy recommends is hello.serial-UPDI.FT230X assumes you have an FTDI board. This only provides a resistor and two connectors. One connector accepts the FTDI 6-pin header and the other is the 1 pin and Gnd signal to program the AtTiny. Of course this one is WAY too easy to build…

The second board under “hardware” on that page (hello.USB-UPDI.FT230X)  is an actual FTDI board, exactly like you could buy. The FTDI chip has smaller pin pitch than the ones we typically do in FabLab so he recommended using the heated desoldering iron.

The workflow will be to use Arduino (because why not?) or any other compiler to generate the hex file, then use the PyUDPI python script to send the hex file to the AtTiny chip manually.

Since this used Python 3 and the terminal, I didn’t want to mess around with windows paths and all that disastrous junk. I installed it in an osboxes.org virtualbox linux installation inside my windows machine and tunneled access to the USB device to it.

  1. First install Python 3 (NOT python 2!) if you don’t already have it. Open a terminal and check
    $ python3 --version

    If not installed, then install it:

    $ sudo apt-get update
    $ sudo apt-get install python3.6
  2. Install pip 3  (Tom Dubick says – python since version 3.2 comes with PIP)
  3. Then install the dependencies for PyUPDI with this line
    pip3 install intelhex pylint pyserial
  4. Download and unzip the pyUPDI project from here (Click the “clone or download” green button and download a zip (you need the whole thing so just unzip the whole folder).
  5. Plug in a 3.3v FTDI chip (Convert a 5v version to 3.3 volts shown here)
  6. Open Arduino and load up the blink example. Change the LED pin to 0 since that’s what my board uses. Save the file to the Desktop. Export a compiled Binary from the Sketch menu in Arduino. Sketch—?Export compiled Binary This will save the .hex file in the Arduino project folder. (You saved this to the Desktop like I told you to right?) Otherwise you’ll be digging through temp files to find it.
  7. Open a terminal window inside the pyUDPI folder (or navigate to it). Open a terminal and download to the board using the following command:
    sudo python3 pyupdi.py -d tiny412 -c /dev/ttyUSB0 -b 115200 -f Blink.ino.hex -v

Where /dev/ttyUSB* is the path to the FTDI port and Blink.ino.hex is your file’s name.

Board:

Tweaked the design of Neil’s Blinky board. I changed the pinout of his board to use Pin 0. You can see the pinouts of the new chips:

 

Image source: https://github.com/SpenceKonde/megaTinyCore/blob/master/megaavr/extras/ATtiny_x12.md

Other new chip pinouts available in uncropped image:

Tom Dubick added the following resource which is great as well: https://npk-stn.ru/2019/07/19/simple_programming_attiny414_via_updi/?lang=en