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.

 

How to Permanently Remove Pet Odors from Flooring

We have had a few instances of having to deal with pet odors. I finally came up with the holy grail of killing pet odors from flooring. I’ll warn you, it’s not easy, but it is a permanent fix and it prevents animals from continually marking their territory after you’ve cleaned it.

Both places we’ve lived recently, the previous owners had pet stains in the carpets. This caused our old cat (RIP little buddy) to mark his territory in the corners of the walls. In our last house, this was mostly upstairs. Cat urine is one of the worst things to try to get rid of because when the urine dries it leaves behind crystals of uric acid.  When these crystals are dry, you won’t smell anything, but they will stink when they get wet. This is why you can clean up a pet accident, but the animal might continue to mark that same spot. They can still smell the uric acid. These crystals won’t easily be dissolved in water and detergent like other parts of pet urine so they are incredibly tough to remove. There are two ways to remove the smell. One is to seal it in, and the other is to use enzymes to break the crystals down completely.

In our upstairs in both our old home and our current home, the previous owners’ pet stains caused our cat to stake his claim in the same places. After a while, even after cleaning it with a carpet shampooer (which we went through several models of…) it still wouldn’t get completely rid of the smell and he would still mark. Any time we opened the windows, the humidity from outside would reactivate the crystals and the whole room would smell again. Eventually I couldn’t take it anymore and ripped the carpet out.

Now that’s a drastic step, I know, but it was disgusting before we moved in we just couldn’t afford to fix the problem then. Removing the carpet was only the first step. The next thing I had to do was remove the baseboards because the urine had wicked up into the baseboards which were made out of compressed dust and swollen. The only thing remaining with the smell was the wooden subfloor. There’s no way I’m replacing those, so I decided to seal them so no moisture could ever reach the crystals.

The Sealing method:

Regular paint won’t work as a good sealant for this kind of job as over time, the molecular structure has holes big enough for water to pass through. Now I don’t own a scanning electron microscope, but I know this because when I tried regular latex paint, humid and rainy days would reactivate the stink. In my research I found that Shellac had incredibly small pores once dry. Zinsser BIN is a white-pigmented premixed shellac sealer. This stuff is often used and marketed for permanently sealing in odors from smoke damage, mold and mildew, and pet odors. It works great!  I must warn you, it the shellac is in a denatured alcohol solvent. Basically, it smells like you are pouring vodka on the floor and you definitely need a lot of ventilation.

Putting down several coats of this will seal in the stink for good, then you can replace the baseboards and treat the floor. In our old house we used these peel and stick floor planks. In our current home, we actually just painted the subfloor in the whole room which gave it a really cool industrial look. We then made this room into our home office. It was also a great place to play guitar and sing due to all the echos. We left it this way until we could afford to redo the floor in the other parts of the house.

The Enzyme Method:

On our concrete slab, we also had pet odor issues. This time I went for the other method, using enzymes to remove the crystals all together. To kill the pet stank and prevent our cats from marking or remarking the areas, I treated the floor after removing the carpets. The entire floor had to be treated, so I had to do smaller areas one at a time. We’ve had experience with Simple Green enzyme odor removers in the past, but they had a fragrance that left the floor smelling like a port-a-potty. Another cleaner I got was Enzyme D which is hugely popular and used in many schools for cleaning body fluids, however after ordering a case of the stuff, I saw that its ingredients included a benzene-based salt in it. I’m no chemist, so I called the company. They were nice enough to connect me to their chemist who told me that the benzene is harmless since it was bound up in a salt. From what I know, salts dissociate in solvents such as water, which  (in my mind) would leave benzene ions loose and floating in the solution. Salts also form crystals when the water dries up, so unless you plan on super flushing the scene with water, there will be traces of benzene salt everywhere. With Jess expecting, I wasn’t about to risk it though, so we returned that cleaner.

The cleaner I ended up getting is the absolute best we’ve ever used! Vet’s Best Total Plus stain remover has a very mild fragrance which dissipated completely in a couple of days. It has enzymes as well as bacteria in it to help remove odors. Since the odors were really bad, I saturated the slab of concrete with this cleaner and quickly covered the area with giant plastic bags or plastic painters tarp. I then sat books and heavy boxes on the perimeter to keep the liquid contained as long as possible. The longer this stuff is liquid, the better it works. I let this sit  and eat away at the crystals for 3 or 4 days before removing the plastic and moving on t o the next section of flooring. This process took about 2 weeks to completely remove the pet odors from the entire concrete slab. I let the floor dry for a few days before putting down the flooring we chose, which you can read about in another post.

This completely removed the stink in all weather conditions, and our cats no longer feel the urge to purge on the floor. It has been some 2 years at this point and we’ve yet to have another incident or to smell anything!

UPDATE: WE’ve come across another great cleaner called Bioclean Bac-Out which uses enzymes and has a nice fresh lime scent. Since cats don’t like citrus smells this can help give them more of an aversion to using the same spot twice if there are accidents I’ve found.