New CNC Router Control Board

Our current CNC router is controlled by an Arduino Uno board with a perfboard shield on top that breaks out the connections to the motor drivers and limit switches. The perfboard solution was hacked together quickly to get the router up and running. One of our goals is to clean up the wiring and install it in a more permanent enclosure to help with maintenance, reliability, and electromagnetic interference issues.

To clean up the Arduino and perfboard piece, I made a new control board. The board is essentially an Arduino Uno clone, based on the Arduino Uno rev3 schematic.
Board Design
I drew up a schematic in KiCAD that copies most of the Arduino Uno circuitry, but ommitted the DC power input subsystem, since we can power the board via USB from the router’s touchscreen computer. I used a surface mount ATMEGA 328 chip instead of the DIP packaged ATMEGA 328p that is on standard Uno boards. I connected the pins of the ATMEGA chip which are used by the Grbl control software to pin headers on the board.

I used KiCAD to lay out the PCB, ending up with a roughly 2.4in x 1.4in 2 layer board. I added some obligatory PaxSpace logos to the silkscreen and sent the board off to OSH Park to get a few boards manufactured.

Board Assembly
I was contemplating applying solderpaste to the pads by hand using a toothpick or similar device. After I got the boards in the mail, I had a change of heart due to the teeny tiny size of the pads for the ATMEGA 16U2 USB bridge chip. I broke down and ordered a solderpaste stencil from OSH Stencils.

The stencil worked out great! I stenciled some paste onto the pads and placed all of the surface mount components carefully on the pads with tweezers. I stuck the poulated board into the reflow toaster oven at PaxSpace and watched the paste melt, soldering the components nicely in place. After reflowing the surface mount parts, I hand soldered the USB connector, the crystals, and the pin headers.

Solder paste and placing components
Solder paste and placing components

Board after baking in the toaster oven
Board after baking in the toaster oven

While I was placing the components on the board I realized that I had messed up the silkscreen labels on the bottom left of the board, swapping the ferrite bead and a capacitor. Luckily I caught the error somehow and put the components in the correct spots.

Somehow when I ordered the components for the board, I neglected to add 22 Ohm resistors to my order. These are needed for the USB lines on the chip. I ended up ordering some after reflowing the rest of the components and soldered them on by hand with a soldering iron.

Turning it on
Everything looked good after the initial assembly. I knew it wouldn’t work completely until I added those 22 Ohm resistors, but what the heck… I plugged it in and at least got the power LED to light up!

Oops again
I got the 22 Ohm resistors a week or so later and soldered those on. Then I tried to hook it up to a computer to start loading the firmware and Arduino bootloader on the chips. I started having weird intermittent problems with the USB connection. I noticed that the problems went away if I poked at the 22 Ohm resistors on the USB data lines. I went back and touched up my (terrible) hand soldering job on the new resistors and everything started working much better.

Next up, Grbl
I was able to get the Arduino bootloader set up on the 328 chip and can successfully upload Arduino sketches to the board. Next we can upload the Grbl CNC control software to the board and start testing it with some stepper motor drivers and limit switches.

Completed board
Completed board

Cutting Acrylic on PaxSpace’s CNC Router

CNC Box AfterCut

Using the CNC Router to make the electronics box for the CNC Router.

Design was done in Sketchup 2014 with interlocking tabs.

I used the SketchUCam plugin from Phlatscriptboyz to ready the design for the CNC Router. The SketchUCam plugin has two tool bars that work together. One is called PhlatBones that helps solves a common CNC problem. As you can see in my design I have square corners on all of my tabs for interlocking the box together. It is hard to cut a square corner with a round bit. SketchUCam PhlatBones script tools makes it easy to create the rounded corners so that all the pieces fit together nicely. It creates a small gap at each corner. If this is not acceptable then the corners may need to be cut out manually with a band saw.

The second tool bar is used for assigning all the cuts to the drawing. First thing is to configure SketchUCam to know what kind of bit I was using. In this case it was a 1/4″ bit, plus the speeds I wanted to use while cutting. I then started using the tools to assign cuts to my drawing. I used the “Insided Cut” tool for the circles. “Outside Cut” tool for the outside frame, and the “Centerline Cut” tool for the fan grill lines.  The Sketchup “group” command can then be used to group certain cuts together based on user preference. The “Tab” tool was then used to add tabs to the outside lines so that the piece being worked did not move while being cut. The settings for the tabs was 3/8″ wide with 50% cut-through. You can see some of the tabs in the picture above. These were easy to snap off after cutting.

Next step was to generate the G-Code using the “Generate G-Code” green arrow tool. This runs the script to generate the G-Code and then displays the cuts visually with a built in viewer. This is inspected to see if G-Code is doing what the user intended.

I copied the G-Code cnc file over to the CNC Router and after setting the zero point of the router, started the router cutting. I used the shop vac to vacuum the acrylic bits and to hold the material down.  Two more projects for the CNC router is a vacuum shoe and a vacuum table.

I snapped the pieces out of the big acrylic sheet and sanded the tabs flush with the edges.  I temporarily taped the box together to see what it looked like and how well if fit together. I have a few holes that I have to drill before I put it together. I still need to work out how to change bits in the middle of the cut.

Part of building the CNC electronics box is to add 3 new control buttons and the Emergency Stop switch that should make operating the CNC router easier. I plan to have a class on the CNC router at that time that should be in the near future.


CNC Box Taped

CNC Router is working!!!!

cnc smile

This is the first real object that has been cut by our CNC Router!

The PaxSpace CNC Router works, but it is not ready for member use yet. The following tasks need to completed:

  • The electrical box layout and wiring still needs to be designed and finished.  Most of the parts are in hand.
  • The control computer/keyboard stand needs to be designed and built.
    Shout-out and Bravo Zulu to Matt Virts for getting the touch screen working.
  • More permanent legs still need to be designed and built.
    Something simple about 32″ high using 2x4s with cross bracing
  • The MDF spoilboard needs to be cut to size and mounted.
  • A work mounting and clamping system needs to be designed and built.

Most Important:  There are many possible work-flows for using the CNC router.  We need to figure out what combination of tools and programs we want to use to later teach to our membership. This is fairly new to just about everybody in the space.

I would like to get more members participation in these final steps. Please come out and support the final build-up.

Lets plan a CNC Router meeting and demo for Thursday at 6PM from 7:30 to 9PM.  Use the CNC Router forum for any questions or comments.