Lost the motherboard on my CNC machine

I was performing a long running job cutting out a topographical map of the St. Pete area of Florida (for my son). Partway through the process, I saw a small puff of smoke and a heat sink popped off the back of my CNC 3018 Pro CNC machine. Anytime you let the smoke out of an electrical component — it’s not a good day.

If you were not aware, smoke is the thing that makes electronic and electrical circuits work. Don’t be fooled by scientists and engineers talking about electromagnetic force and electrical potential… All components perform there function based on their ability to store and manipulate smoke.

Just kidding…

I turned the CNC machine off and replaced the heat sink. When I turned the CNC back on, the heat sink popped off again – immediately. I figured at that point the motherboard was shot, so I looked for a replacement motherboard and found one on Amazon. I can investigate fixing the old one later but with surface mount components, it is probably not worth it.

New motherboard

The new component has a built in fan and seemed to have solid reviews, so I bought one. It came in a few days and only took a few moments to install.

Motherboard mounted

My CNC machine is happily cutting away again. I didn’t have to make any changes to my software…

Fusion 360 for woodworkers – session 1

During this social distancing opportunity, I’ve not been posting much lately. One of the reasons was I’ve been working on a getting started set of sessions for using Fusion 360. This is the tool I’ve been using for most of my CNC work.

This CAD package has many capabilities and a free hobbyist license. Since SketchUp moved away from a hobbyist desktop version to a web-based approach, moving to a more powerful tool seemed to be a wise thing to do. I can only hope that Fusion 360 doesn’t follow a similar route…

There are MANY Fusion 360 videos out on YouTube and numerous web sites covering the topic as well. Since I was putting together a series of sessions for our woodshop on Fusion 360 using a synchronous collaboration (Zoom), I thought I share the support presentation materials here as well.

There will be a post summarizing each sessions with a link to a PDF covering the material. As of now, there will be 9 sessions in all. Each one will have a bit of homework to cover before the next session. The goal is for the woodworkers to have a working knowledge of Fusion, not to turn them into a designer – I’ll leave that as an exercise for the student. A power and issue with Fusion is there are so many ways to do something.  I don’t claim that the examples included are the best possible, but hope they prove to be a useful example (even a bad example is still an example).

The session outline is (by session #):

  1. An overview of the user interface
  2. Creating a sketch with a line and a shape, as well as an introduction to parameters and constraints
  3. Bodies and components
  4. Fusion tips and copying design elements
  5. Creating a lap joint and using parametric design
  6. Parametric driven table base design
  7. Mortis and Tenon, putting top on the table
  8. Dovetails and using Revolve to create a pawn
  9. Generating drawings

As I get feedback, I try to update the slides, as well as provide additional Screencasts, if the updates will enhance the understanding. This updating effort will hopefully make this a training resource for our shop, so I don’t have to give the class synchronously again and can just response to questions…

The first session PDF can be found here.

A new engraving project – Hufflepuff

Now that the 3D printer is operational again, I needed something else to tackle. So I dusted off the CNC machine — literally.

My daughter is into Harry Potter and has taken the test to determine she is a Hufflepuff. I had sitting around so I thought I would cut out the Hufflepuff crest. Here is what the crest is supposed to look like:

Hufflepuff crest

I only had Poplar available, so ended up creating this:

6″ wooden Hufflepuff crest

Poplar has long fibers and is not all that hard of a wood, so it did not come out as nice as I would have liked. This piece has no real sanding to clean up the edges, but that is easily addressed.

I used a 1mm flat bit to clear away the open areas to a depth of 2mm and a 60 degree V bit for the edges and detail. Overall, I deem the design a success. The next problem is determining how to finish it or to start over with some Maple or other more appropriate wood.

Adding a LASER to my CNC

This week I had someone ask me if I could put a picture on a piece of wood for them. I’ve been doing laser scribing with 1” wooden medallions for a while, but not on anything larger, so I took this as a challenge. My CNC machine came with a 2.5W laser sufficient to burn wood, but I’d not even taken it out of the box yet.

When I unboxed the laser, I noticed there really wasn’t any place to mount it on the machine. Too bad, since it wouldn’t have been that difficult for the manufacturer to do.

Spindle

The only real mounting option provided was to pull the spindle motor out and replace it with the laser whenever I wanted to make the switch, but that just didn’t sound right. Instead, I thought I’d ‘side mount’ the laser on the spindle. It wouldn’t be a problem for the software that drives the machine, since it is all relative movement from the starting point. The biggest concern would be collision between the moving parts, and anything being worked on.

After taking some precise measurements, I made a model of the spindle and its housing. It was then just a matter of subtracting that design from a laser mount design to come up with the following mount:

Side-mount design

This design snaps onto the spindle motor mount and should allow for enough support for the laser to do its thing, without too much vibration. Here is a picture of the whole assembly in place:

Finished initial design

Since I have the basic snap-on solution figured out, I’ll also try a front mount version to see if it is more usable. I’ll also try adding a bolt and wingnut clamping system, to make it more stable.

Next, I’ll tackle a vacuum system for the CNC machine, to help control the dust level. But first I need to figure out this whole lasing process, since focusing the laser is critical to the amount of detail I can burn.

Note: Lasers are dangerous and can easily cause eye damage, so be sure to use effective eye protection.

Installing Universal G-Code Sender on the Raspberry Pi

Anyone will tell you that a CNC machine generates dust. Computers and dust don’t mix that well, so that started me on a quest to find a Raspberry Pi solution. For my 3D printer I use Repetier to drive the device. I was looking for another alternative.

I found an open source project Universal G-code Sender. This Java based solution looked like it would be ideal. So, it started me on a 3-4-day quest to get it to work. I think I’ve accomplished my goal, though I still have a few minor bugs to work out. I do want to thank the author of the code for pointing me to more detailed information that helped me overcome some of the issues I encountered.

There were some instructions available on how to install UGS on a Pi. They didn’t quite align to my needs though, so I thought I’d document the steps I took.

One if my requirements is that I wanted to ‘see’ the desktop remotely, rather than have a dedicated screen. This allows me to minimize the footprint in my work area and provide the greatest flexibility. I decided on VNC as the solution of choice, since it runs on just about any platform.

Here is the process I used to accomplish my goal:

  1. Install the OS
    1. Format the SD card. I started with a 16GB card that I had lying around unused.
    2. Download latest version of Raspian image and place it on an SD card. I did not use the full image.
    3. Install into the Pi and boot. Follow the prompts (this should define the keyboard and the time zone…) — It will take a while since there is a software update check at the end.
  2. Run sudo raspi-config
    1. Update to latest version
    2. Update the video drivers so it can use OpenGL effectively
      • Advanced Options -> GL Driver -> GL (fake KMS) this allows for OpenGL to work and your screen size to be larger on VNC
      • Reboot
    3. If you are going to run VNC then don’t do this next step – Remove/Move the old video driver
      • sudo mv /opt/vc /opt/vc.old
      • sudo reboot
    4.  Advanced options -> Expand the file system to maximize the use of the file system
    5. Reboot
  3. Install java
    1. Make sure that java is installed with java -version
    2. If it is not there or not the most current jdk (you’ll need to do this if you don’t use the full Raspian image).
    • sudo apt-get update
    • sudo apt-get install openjdk-8-jdk

4. Install the CAM software

  1. Using your browser download Universal G-code Sender (UGS) platform edition zip file from the download page link: https://github.com/winder/Universal-G-Code-Sender#downloads
  2. Unzip the software
    • unzip -o TheFileYouJustDownloaded
  3. Move the unzipped folder to where you’d like it on the Pi
  4. Make a shell script to run the program and get around a bug that prevents the path simulation display from working:
    • #!/bin/sh sudo
    • mv /opt/vc /opt/vc.old /home/pi/ugsplatform/bin/ugsplatform
    • sudo mv /opt/vc.old /opt/vc
    • echo "Finished"
  5. Set the script file so it is executable with:
    • sudo chmod +x YourShellScriptName
  6. Run the UGS software
    • Set up the serial port to be the JSSC software in the Tools -> Options ->USG -> Sender Options menu so that the serial connection is more reliable.
Options 
General Editor Fonts & Colors Keymap Appearance Miscellaneous LIGS 
Auto Leveler Macros Visualizer Sender Options Controller Options 
C] Show verbose output 
@ use separate step sizes for Z and XY jog movements. 
D Enable single step mode 
@ Enable status polling 
Status poll rate (ms) 
D Show warning popup for Nightly Builds 
Auto start pendant on startup 
Language 
English 
Connection driver 
ssc 
Workspace directory
  • Plug in the CNC
  • Refresh the ports in the software
  • Select the port for the CNC
  • Run through the normal device setup
  • Make sure the CNC jogs properly
  1. If you are going to run headless, check to ensure that remote desktop (VNC) is working properly (you probably want to have the Raspberry Pi have a fixed IP address)
    • If it is not installed use the command
      • sudo apt-get install realvnc-vnc-server realvnc-vnc-viewer
    • On the Pi GUI select Menu > Preferences > Raspberry Pi Configuration > Interfaces.
      • Ensure VNC is Enabled.
    • Define the connection to VNC from your PC or other devices (use ifconfig on the Pi to validate your IP address)
    • Set the framesize on the Pi
  2. If you want to free up some space on a full install
    • sudo apt-get autoremove
    • sudo apt-get update
    • sudo apt-get dist-upgrade

Here is a picture of UGS running on a Pi over VNC (shown on my Windows machine).

More advances in understanding my inexpensive CNC machine

The on-going learning process continues for my new CNC machine. I have learned quite a bit in the past few days and have switched over to using the educational version of Autodesk Fusion 360 to generate the G-code that controls the machine. This version is great for hobbyists who like some professional features. It is a VERY powerful, complex and wonderful tool. I was originally going down the all opensource software route, but wanted more capabilities than I could find on that path.

In the process of doing my first few projects, I learned a number of things:

  1. My CNC machine will only go to about 1000 RPMs and it also doesn’t understand arc commands very well.
  2. The 1 mm router bits can barely take any side force before breaking (duh)
  3. Clamping is really important – you can see in the picture below a range of clamping techniques I 3D printed

All these issues were addressed with a correctly configured Fusion definition of the bits and the machine. Fusion is nice because you can tell it what features your specific device doesn’t support and through post processing redefine the unsupported codes into the invalid G codes (e.g., take an arc command and turn it into a few hundred lateral movement commands). Discovering those post processor capabilities was an interesting mental mining exercise, since I was reluctant to read too many manuals or watch you tube videos. 😊 But figured it out in the end.

My son in getting married in less than two months so this is a picture of my effort to create a Walnut plank with their names and wedding date on it. Hopefully, it will turn out OK and I will not break too many bits along the way.

Carving a plaque