PCB Milling Software Survey

FacAcademy had used a great tool designed in-house for PCB milling making it stupid easy.  I should be able to mill some PCBs at home right? Ha!

Method 1 Carbide Copper (web-based): Carbide Copper (Formally Rapid PCB)is by far the simplest solution for PCBs. A simple step by step process takes your Gerber and Excellon files and generates great g-code for your machine to run. Check it out below:

Method 2 Easel (web-based): Easel is the online CAM tool from Inventables, the makers of Xcarve. It has a lot of good settings in it and the interface is great. I just hate storing all my files online. Honestly I’m kinds sick of all these online “apps” that change settings and user interfaces elements all the time. Makes it impossible to follow a video tutorial after 6 months since nothing looks or works the same (looking at you AutoDesk!)

Method 3 FlatCAM: Once  you create your PCB, you need to run a CAM process inside your PCB tool (such as EagleCAD or KiCAD, etc) to export the gerber and excellon files of your design. Gerber files basically throw all bottom traces into one file, all top traces into another, all drill files into another, etc. Then to view these, you need a Gerber viewer.  Once you do that, you can use a CAM software to generate the tooling for making the board. This is where FlatCAm comes in. You import your gerber files and FlatCAM will help you create the path the PCBmill will need to move to create your circuit.  I must say, I found FlatCAm’s user interface frustrating. YOu bring in your gerber of the bottom traces for instance, then click another tab to set up the tooling, then that creates another file in your project in which you must then select and select another tab (again) to finally generate the g code for your machine.  You have to do the same with the top traces file, the drills file, and the dimension file. This seems convoluted and frustrated me.

Method 4 MakerCam: This method works well for Fritzing. You can export an SVG from Fritzing, then import that into inkscape for touch-ups, then on to MakerCAM to generate the final product.

Method 5 FabModules: The older linux-based Fabmodules won’t work for me, I’m not installing a bunch of junk on my PC just to run fab modules. Luckily, there’s a new web-based version at http://fabmodules.org  The new version doesn’t seem to be as good as the old version in creating the output files. Here’s a basic intro to making PCBs with it:

Method 6 Fusion 360: While the newest version of Eagle has a plugin to send the PCB design to Fusion360, you can’t do anything useful with it (such as extrude the traces easily). It seems you have to redraw or trace the traces onto a Fusion360 sketch. While using “Smart snapping” can simplify this, it’s still something that should be automated. (Correct me in the comments if I am mistaken about this method). However, a friend of mine worked out a method that seems to have worked well for him. You export the EagleCAD as an PNG, then import the PNG to fabmodules to create an SVG of the outline of the traces, then import this SVG into fusion and extrude and generate toolpaths.

The workflow is similar to the video above for the fabmodules. Once you bring your SVG into Fusion360, extrude all the traces up about 0.2mm (could be time consuming) and extrude the remainder of the PCB downward -1.5mm and select a teeny-tiny endmill. If you have to, simply create this as  a new tool. 1/64″ (0.39-0.4mm) is what FabAcademy uses typically. Then create a 2D contour around all the traces.

 

PCB Milling Tips

This post is like a scratchpad for documenting for myself the process, but could be helpful to you as well. To mill PCBs, I recommend the following:

Only use FR1 blank boards. FR1 is paper infused with fiberglass resin. This is better to mill than FR-4 fiberglass substrate boards. It is better on bits than FR4 and you won’t have tiny specs of glass dust in the air when you cut PCBs. You can get this at Inventables.com or Bantam (formally Othermill)

I had a bunch of issues generating a usable board. My workflow was originally to use EagleCAD to FlatCAM, then pronterface to control my smoothie board. I have since come across Carbide Copper which seems to be MUCH better.

Since my work are isn’t level, I attempted to level it before milling a PCB.  That didn’t work for… well.. reasons.

I then decided to autolevel the board. After MUCH research and trials and tribulations, I discovered that the smoothieboard has this feature built in to it’s CNC firmware.  You need to probe the PCB  to see where the surface is, and it will automatically record the offset in the Z axis and apply it to your G-code so you’ll have nice boards.

  1. First, place the PCB blank on the workspace using 2-sided scotch tape.
  2. Move the CNC to the 0,0 position and make sure this is the MACHINE offset (reset the smoothieboard once in this position).
  3. Build a probe (simply two wires with alligator clips as ends that plug into the Z stop.
  4. Scuff up the PCB’s surface with a scotch brite
  5. Use a piece of aluminum tape affixed to the PCB’s surface in a nondescript spot. Allow some of the tape to overhang enough to clip one lead from the probe to it.
  6. Clip the other lead of the probe on your endmill
  7. Make sure there’s good conductivity from the metal tape and the surface of the PCB, or else you’ll be buying new bits and might break your machine. 
  8. Knowing the dimensions of your board, and how resolute you wish to measure the surface, issue the following command:
  9. G31 X0 Y0 A75 B50 I7 J7

    This starts probing at X0 Y0, and goes to X75mm  probing 7 times along the way (I7).  It will then move 1/7th (J 7) in the Y dimension towards Y50mm.  It makes a zig zag like this across the entire board until it reaches the endpoint X75 Y50.  The number of probe points in each dimension (I and J) need to be odd numbers. An example of its results are shown below.

    50.0000|    -0.0986   -0.0920   -0.1032     -0.1336      -0.1647     -0.2448     -0.3930
    41.6667|    -0.0966   -0.0860   -0.0906     -0.1032      -0.1475     -0.1833     -0.1727
    33.3333|    -0.0582   -0.0476   -0.0463     -0.0774      -0.1184     -0.1667     -0.2335
    25.0000|    -0.0741   -0.0437   -0.0384     -0.0582      -0.1052     -0.1581     -0.2263
    16.6667|    -0.0364   -0.0099    0.0013     -0.0278      -0.0681     -0.1237     -0.1912
    -8.3333|    -0.0172    0.0139    0.0218       0.0053      -0.0337     -0.0886     -0.1661
    _0.0000|     0.0040     0.0291    0.0404      0.0139      -0.0086     -0.0655     -0.1389
    _________—–+———-+———-+———-+———-+———-+———-+—–
    _________0.0000     12.5000      25.0000     37.5000     50.0000    62.5000    75.0000

    (Thanks for the great spacing wordpress… just ignore the underscores) The numbers represent the offset from Z=0 at each point in the grid.

  10. At this point simply tell the machine to go to (0,0,0), remove the probe clips and tape (Seriously do NOT forget to do this… again).
  11. Load the gcode into pronterface, turn on the router on its lowest speed and run the file.
  12. Cuss a lot when something goes wrong.
  13. Contemplate creating your own all-in-one solution.

Another tip I saw online (Thanks pda3k!) was to use the Z probe in a single spot (this would be for other things, not PCBs.

New Z probe: T. Once it makes contact, it raises the tool to 19mm. G10 L20 Set Coordinate System
G30 Z9.6
G10 L20 P1 Z9.6 ;G10 L20 Set Coordinate System in P1, he touch plate is 9.6mm thick
G0 Z19 ;it raises the tool to 19mm.

Although OpenCNCPilot looks like a very nice project with autolevelling and camera integration… Maybe I’ll use this to help visualize stuff better. Thought it likely won’t work with the smoothieboard. We’ll see in the future post.

DIY Learning tower

Having a toddler that always wants to help in the kitchen, there’s a need to have a safer alternative to having them just stand on a chair to reach the countertop. I had no idea, but this is already a thing called a learning tower. Kind of a overblown name for a stool with guard rails if you ask me, but whatever. As a note, this blog post if filled with affiliate links. I thought you might like to have the entire tools list.

After looking online at learning towers (and learning what they are) I was learning toward buying some IKEA parts and hacking them together like so many others online, however IKEA stopped selling one of the crucial components. This left me having to do some custom work. If you’re in for a penny you’re in for a pound so I started looking at custom designs for learning towers. After about an hour of research Jess just said “go see what scrap wood we have and we’ll cobble something together.”

We happened to have a scrap piece of wood that used to be a leaf blower hovercraft… for… reasons. It was 33 inches by 36 inches. Of course with a hole in it for the leaf blower to mount. That’ll do. It’s just tall enough for our countertop and just wide enough that when split in half it can hold a toddler with a bit of wiggle room. Final dimensions of the sides were 36″tall by 16″ wide.

I sliced it up to be the sides of the learning tower. Then I got to (finally) use my router table and my 1″  diameter 1/2″ depth roundover bit for the first time. The trick is not to have the bit stick up too far on the router table, otherwise you’ll get a nice roundover on the edge, but it’ll cut deep enough to leave the face of the wood raised a bit proud. This would then need to be sanded down (unless you like the look and feel of it). Run this on both sides of each piece to get a nice smooth rounded edge. It makes it safer for tiny hands as well as making it look more professional.  I got my router table from Craigslist that a guy had built from this plan on a woodworking website for $10. He was upgrading and it was taking up space so I got it for less than the wood costed him. It didn’t come with the router itself for that price. I had to get my own. It was the perfect excuse to get a beefier router for future projects than the Dewalt DW611 trim router I have in my Xcarve CNC machine. I stuck with Dewalt for the brand and got a DW616 model with the fixed base. I mounted it on the underside of my table and when I need to, I can unscrew it and use it manually.

Now to attach the two side panels. In the old scrap pile, we had an 8 foot section of 1×2″ pine. I have no clue why it was magically there when we needed it, I don’t remember ever buying it. Regardless, it was good to be used. Jess threw out the number of 16″ for the space between the sides of the tower. That worked out to having 6 of these beams. Of course they were a bit shorter due to the kerf of the blade. I cut these using my pull saw and a plastic miter box. The draw saw is the best thing to ever slice bread. Especially for trim pieces, the cuts are very precise, the blade has minimal kerf, and it cuts very quickly. In fact I use this saw over a push saw on all my projects be it cutting 4x4s or moulding. At this point, stumbling our way through the design, we settled on something with ladder-like steps the kid could climb up, and that we could reposition the platform as they grow.

I knocked off the sharp 90 degree edges of the 1×2 pieces using a cornering tool kit. This tool looks like an old can opener and works kind of like a plane to scrape the edges into a smoother shape. I got a kit a couple years ago for a project and have wanted to use them on something else for a while now. I have to say, this is way better than trying to smooth the corners of these small pieces with sandpaper and much safer for your fingers than using a router table for these small pieces.

Normally, connecting pieces of wood in this way leaves much to be desired. If you drill directly into the side panel into the end of the 1×2 piece you’ll have a really weak joint and you’ll see the screw on the side of the panel. It isn’t strong because the wood fibers (visible by looking at the grain) are aligned along the long axis of the 1×2. Wood fibers are basically long tubes that the water gets drawn up into the tree through. When you screw directly into the end, imagine that you are screwing into the end of a stack of straws. The fibers spread around the screw and there’s not much for the screw to grip on. The best way to connect these pieces is with Pocket Holes. I got a great and versatile pocket hole jig made by Kreg recently and this was a great chance to try it out. Probably 10 years ago I got a knock off pocket hole jig made of aluminum to save some money, but it ended up working for barely one project before the guide holes got all wallowed out and useless. It also could only accept a certain size piece of wood as it was a piece of extruded aluminum. This kreg kit on the other hand can accept a wide range of pieces of wood. It also has guides for making the perfect depth hole based on the the wood thickness. The drill guide is completely removable to use on parts in situ as well. All in all, the Kreg kit is the best bet by far.

I messed up one of the beams by not setting the correct depth for the pocket hole, so that left me with 5 total. That works out to 4 on the bottom for the ladder step and platform holder and then one for the back at the top. I typically have found that 1-1/4″ drywall screws are just about the most useful type of screw to have laying around for just about any project, so I used a single screw on each end of the beams to attach them.  (Now there are times when to buy different screws, but in most cases these will work fine). To keep the beams from spinning about the screws (even though the pocket holes helped with this by being slightly off axis) I tacked each beam through the side panels with 2 finishing nails from my brad gun.

I then cut a platform out of a piece of 1/2″ scrap plywood to fit between the side panels. To make sure this thing will stay in place, I attached a 1/2″ square dowel on the front and back edges just inside where the platform rests on the beams. I glued it and tacked it with brads.

When we got to this point we realized the design was a little tippy front to back and didn’t sit squarely on the floor. Going back to the scrap pile, I cut out two sets of “feet” about 18″ long and 3″ tall.  I then cut these in half so they’d stick out of the front and back more when I mounted them. Of course I rounded them off at the router table again with the same bit. I attached them to the bottom of the tower with wood glue and brad nails that I once again cut off the excess length with a hacksaw and sanded them smooth with an orbital sander. This added 5-6 inches to the footprint on the front and back making the whole thing much more stable.

   

A touch of wood putty here and there to fill in gaps in the edges of the plywood and cover the most visible pocket holes, a light sanding all over, and a couple cans of dark grey spray paint on the edges and interior did a majority of the finishing. Jess had some wood-flavored contact paper and added that to the exterior of the side panels.

A few coats of spray-on polyurethane on the platform finished that part off. Jess modge podged the edge of the contact paper to the rounded end of the sides and voila’ our learning tower was complete.  –Though after use by the sink it was shown that it’s better to use the exterior modge podge instead. It is a little hardier when it gets wet that the regular stuff.

What to do with all these Jawbone devices now the company is defunct?

(TLDR: Jawbone Replacements – Fitbit Inspire HR, Fitbit Charge 3, Garmin Vívoactive 3 Music)

Having gotten a couple Jawbone Up24 devices a few years ago for dirt cheap (<$10 each used)  I thought it was a great deal, until Jawbone shut down their servers recently.  The app no longer works for tracking steps or sleep, you can’t create new accounts or anything anymore.  I think it’s a damn shame that even while the company is dying with no hope of saving it, they haven’t open sources their hardware/software. As a plea to all companies, especially those with millions of devices already in the market, please open your designs to the public if your company is dying!!!  Otherwise all those devices are going to end up in landfills even though they still have the ability to work. I realize that there may be some tech you can’ share such as what’s involved in patent disputes, but at least open the parts of the code that provide basic functionality for hackers to work with!

For the Jawbone UP24 bands I have, I did some googling and found someone who wrote an app that allows the UP bands to vibrate when your phone gets notifications which still works even after Jawbone’s API has been taken offline. This is a great thing to use for things such as calendar notifications or timer on your phone.  Here’s my journey into getting these things to work.

If you don’t currently have a jawbone device, you can get them online second hand pretty easily and for practically nothing nowadays.  YOu can’t buy them from stores anymore though.  I recommend you pick up a UP24 band.

The next step is to fix the band if you need to. I did a hard reset on my band as it wasn’t charging correctly. Here’s the steps

To hard reset your band, please follow these steps:

Press the button on your band 10 times. Try to pace the presses at about about one press every second.

On the 10th press, PRESS + HOLD the button for 15 FULL SECONDS, or until the sun status light appears. Once you see the light, let go of the button. (via https://blog.mornati.net/)

Doing a hard reset will wipe all saved data from the device, but since Jawbone’s servers are down and likely for the count, I don’t think that matters much.

Next download the Jawbone App. As I mentioned before, it won’t track steps or sleep, or allow you to connect to a jawbone account, however you need this to pair your UP24 band to your phone.  This is required after a hard reset. Open the app and click through the screens (don’t try to sign or log in as it won’t work, their servers are turned off) but you’ll eventually come to a point where you need to pair the device as shown in the video below.  This worked for me with no problem at all and without having to log in.

The next part (after pairing the device with your phone) is to download the app to allow you to push notifications called UpNotifications in the play store. You can select which apps you will allow. This app does cost $1.79, but given that you can get the device <$10 (we got one for $3 on ebay), and this app for <$2 I think it’s still worth it. What’s cool is the builder of this app Stefano Brilli documented the process of building this app on his blog.

In the UpNotifications app, simply go to the top and switch on notifications, then go to “select band” and it should be populated in the list with it’s address. CLick that, then select which apps you want to be able to push notifications to the band.

It should be noted that this app might support more than just Jawbones. It detected my FitBit Charge 2 device as well.

Tada! You just saved a functional device from the ending up in a landfill. This is truly recycling in the sense that you’re ReUsing (reduce, reuse, recycle). LIke other forms of recycling, it’s a bit of a downgrade of the band’s once glorious functionality, but at least now you’ve given it a second life.

Another quick note if you encounter problems, the only troubleshooting info I have from the UpNotifications app says to make sure your firmware is updated. SInce you can’t access the jawbone app, I’m not sure how that’s possible. If you figure it out, or have any other hacks for these little guys, feel free to post them in the comments.

I will recommend updating to a different company’s fitness band. There are a ton of options, and I have only tried a few. For instance, I mentioned the Fitbit Charge 2 earlier. This is a great basic step counter and heart rate tracker and when paired with your phone can map your exercises using the phone’s GPS.  I loved the small size and simple interface. It tracks heart rate constantly and does a great job of detecting how well you’ve slept (showing you a chart with deep sleep, REM, and showing how many times you were awake or restless in the night). The heart rate tracker can also estimate cardio fitness score, a measure of how healthy you are overall.

After using my Fitbit Charge 2 for more than a year, I decided that I wanted more features like integrated GPS so I didn’t need to bring my phone with me when I exercised. I tried the Samsung Gear S2. This is a full android device that can make cell phone calls and has Svoice (Samsung’s version of Siri) which I found worked well. It has built-in apps for heart rate, GPS tracking of exercises. (Though I used both the MapMyRun and Endomondo apps for the watch as well). The Heart rate monitoring isn’t constant, rather it can be set to measure when you are still for a programmable period of time (sucha s 10 or 30 minutes). It doesn’t have a native sleep tracker app so I tried a couple apps I downloaded.  Most of the apps available for the phone are actually just watch faces which is disappointing. I love that this watch was waterproof so I could shower and swim with it, and the wireless charging feature.  Eventually I got rid of it though because it had to be recharged every day. I got it used so maybe the previous owner had messed up the battery. Regardless, I moved on.

I settled on the Garmin Vivoactive 3 which I charge about as often as the Fitbit, only once a week. It has integrated GPS so I don’t need to bring my phone to track my exercise. It also has a great heart rate monitor and is one of the few watches with Heart Rate Variability (HRV) monitoring features which can be used to determine how healthy you are. It is also waterproof, and has a full color screen which you can easily see in full daylight.

In all, there isn’t a ton that can be done with the Jawbone’s now that their servers are offline unless someone backwards engineers the communication protocol to set up new bands with an app. This is very unlikely given the current scenario. The best option is to move to another company. Fitbit, Garmin, and samsung’s stock prices are all pretty steady over the last year so I believe they will stick around for the long haul. Samsung owns South Korea so it isn’t going anywhere, and garmin has been in the GPS game for ages.

Making a Simple Sign with Fusion360 and Xcarve

(Video below)

So I just got back into fighting working with my CNC machine.  After a few failed attempts at PCBs (I’ll post what I learned there some other time) I thought I’d work on something on the macro scale.  Below are notes to myself on the workflow.

Designing a sign in Fusion 360, simple enough. CAM is tough though, especially when using mm.

First I had Jess (Queen of fonts) find a cursive font that connected most of the letters together and had her create a SVG file for me of it.  She used photoshop and MakeTheCut (for our Zing vinyl cutter) to generate the SVG.

I used easel to get the settings I would use for feeds and speeds, then converted them to mm. This can likely be fixed by creating my own tools file locally with these values hard-coded as defaults.

Realize that my machines is Left hand rule orthoganal axes.
Z
^   Y
|   /
| /
*——> X with Y pointing into the screen.

Set CAM origin to nearest-leftist-top face of project stock (0,0,0)-ish on my machine

Set up a 2D contour and select the bottom of the design to be cut out. Make sure to select all the inner contours as well. Add a tab or so to the inner parts to prevent them flopping around or going ballistic.

Multiple passes, no more than 1/2 bit thickness each with triangular tabs.

I set clearance heights at 5mm, 10mm is safer but slower. (Click pic to make bigger).

In the first 2D contour settings tab, you must select the tool. The menu seems to have changed since I last saw it. Simply use the search bar at the top. I used 1/8″ as my term and easily found something that would work.

Export the CAM using smoothieboard CAM process. Save the file with a .gcode extension. We’ll be using printrun (does anything else work for smoothieboard?) which only looks for .gcode files.

(needed?) Open the file by hand like a cave man and add “G1 Z5” to the code JUST BEFORE the first G0 or G1 command. This will raise the bit to a safe height from the start. I might be able to ignore this if I follow the correct steps below… but do it until I learn better.  I might also be able to modify the smoothie post processor to add this in.

I used 2-sided scotch tape to secure the part. It works well for light duty stuff.

Using the step blocks, set the gantry roughly equal on each side to square up the machine. This is a tip from a youtube video I cannot find again (sorry to the guy who made it. Thanks man, you’re the real MVP). I got my step blocks for practically nothing online. Bonus, once you’ve squared you floppy gantry with them, you can use them as they were designed to be used, as actual step blocks with clamps for holding your stock down to the table top as well.

Turn motors on and use printrun to move to Set up the X and Y of the machines to where Fusion360’s workpiece offset was (nearest-leftist-top face of stock).

Raise the bit like 30mm and prep for an air run.

Reset axes, then RESET THE SMOOTHIE. Fully disconnect and reconnect, and I don’t mean in printrun, I mean unplug the USB cable and plug it back in. This is the only way to change the stupid machine offsets which will cause problems. If you don’t, before the machine does the G1 Z5 we added, it’ll immediately move to the place the router was when you powered on the smoothie last. Often times this means moving directly through the stock, especially if the Z was touching the stock or lower when you started running the file. IT WILL ALWAYS GO BACK TO MACHINE 0,0,0 BEFORE GOING TO WORKPIECE 0,0,0 AND STARTING YOUR PROGRAM.

Once you’ve rebooted the smoothie, load the file and run an air cut (at Z 30mm) to verify nothing funky happens.

Once this is all verified, move to the actual start position you want (bit touching the top of the stock)

Adjust the Z by hand to verify starting position.

COMPLETELY REBOOT THE SMOOTHIE ONCE MORE. The whole shebang, unplugging and all.

Turn Speed on router to lowest setting. If I had a superPID it’d be able to go the correct speed but as it stands it is almost always spinning too fast.

Turn on the router, turn on the vacuum, connect to the smoothie, reload the .gcode file in printrun, then Run the file.

Keep an eye out especially at first, always be ready to smack the E-stop.

If you smack the E-stop, be ready to jog the machine back to the workpiece offset (or new area of the workpiece ) and completely reboot the smoothie. The latest printrun (1.6.0)/smoothie firmware (April 4th 2018 firmware) I’m using seems to lag dramatically after E-stop has been reset and could be dangerous.

 

Protected by CleanTalk Anti-Spam