Fabricating HECTOR - Step by step

Milling the aluminium parts

Cooling the bit

For this project all aluminium parts are milled "dry" without any lubrication, or coolant. The heat that is generated during cutting is carried away with the chips of metal flying away. This means that if the feed setting are too slow the milling bit will rub against the metal and not make big enough chips to keep itself cool. This will lead to the aluminium chips sticking to the hot bit, clogging the flutes and finally breaking the bit. The same thing will happen if the chips can't escape a deep and narrow pocket. I avoid milling thinner stepdowns than 0.5mm deep since the mill needs to be removing material to cool the bit. We prefer using single flute bits since the feed speed needs to be multiplied with the number of flutes (or cutting edges, it's the same thing) to keep the chips big enough.

Big enough machine

When I was about to start milling my aluminium parts I found out that the big SaleCNC mill we have at Verket was booked non-stop for a week. A smaller no name China CNC mill was available. In order to mill the base frame in one pice I needed a full size CNC machine. So I went to Fellesverkstedet Fab Lab in Oslo where Jens Dyvik works. He is the mastermind behind fabricateable machines which Hector is based on and my Fab Academy instructor. This way I could have him double check my settings before running the toolpaths. I have based all my milling feeds and speeds on his tutorial for making "Chamfer rails". My settings are posted below.

To get the base frame back to my lab I wrapped it in tape and strapped it to my backpack. My advise is to chamfer all sharp edges you can on the top face with the mill and then break the bottom ones with a file as soon as possible. Freshly milled aluminium is sharp!

To compensate for the smaller and weaker machine at Verket Jens advised me to reduce depth of cut to 50% of what we ran on the well tuned closed loop Shopbot mill. I adjusted the feed speed proportionally to the higher spindle rotations per minute on the small mill.

Cut depth examples for aluminium milling:

Here are all my settings:

Milling the smaller aluminium parts

To make precision glide rails for the CNC I needed a good spoilboard to work with. The mill had two layers of 10mm OSB wood plate as spoilboard. Woodscrews can not be torqued hard in OSB without "stripping the threads" so I wanted to improve that before starting. I glued a 12 mm plywood plate to the top and held it down with 16 woodscrews while the wood glue was hardening. Then I put in a planing bit and made sure the top was perfectly flat.

I taped our shop vaccum to the spindle to remove chips. It made a huge difference for my work envionment :)
The spindle is water cooled so I didn't need to worry that this would make it overheat.

Vibrations will break your bit fast in aluminium, so using lots of hold-down-screws are esential. I milled small 4,5 mm holes between my parts in the cutsheet and screwed it down with woodscrews.

For the small holes and pockets I used a 3mm tungsten carbide single flute endmill and for the bigger details and cutouts I used a 6mm of the same type. Remember to check that your bit has enough protrusion to clear all holddown screws! And that they are placed far enough away from all cuts, I came a bit to close at two points even though I thought I checked it well in CAD.

Machine performance vs Settings - Acceleration

I mentioned above that you need to mill with a high enough feed so that the chips are big enough to carry of the heat. I learned the hard way that if your machine settings are conservative your acceration might be set so low that the machine never reaches the feed speed you instructed it to use, when machining in tight geometries. In this case I broke a 3 mm bit while machining a 10 mm deep 6 mm narrow pocket with sharp internal corners. When I examined the bit aluminium was stuck on the inside of the cutting tip.

To remedy this I increased the acceleration settings in Mach3 under the top window menu: "Config" - "Motor tuning" I have moved it from 500 to 2000mm/s/s for now but I doubt that is perfect. I also tweaked the geometry to make the toopath corner less sharp. One or both of these fixes made it possible to machine the last two slots without any problems.

Machine performance vs Settings - Vibrations

We had estimated that the small mill would be able to handle 50% of the cutting depth of the shopbot. However the forces generated from cutting with the 6mm bit caused the machine to vibrate. This casued big marks in the side walls of the cuts and a low "tractor-like" sound while cutting. It can be heard in the video below especially at the last seconds. (Download the video if you don't get audio.)

The right thing to do would have been to reduce the depth of cut to reduce the load and the vibrations it causes. But I carried on and got all the way to the last cut before the bit dipped down into the "skin" on the bottom and caught a big strip of aluminum and snapped. Now I know better. Also the surface finish gets really rough from the vibrations.

Having broken my only 6 mm bit I had to finish the milling with a 3mm bits. To clear the slot for the rack teeth I used adaptive clearing with the full cut depth (4mm in this case). See pic below for all settings. Here the acceleratin settings on the machine gets interesting again, if they are to low this will not work beacuse of heat buildup, if they are too high, the machine will loose steps and damage your part.

I got a nasty damage on my chamfer rail, most likely due to lost steps due to too high acceleration settings in combination with tooling forces. I had them on 5000mm/s/s and have now reduced them to 2000mm/s/s but I worry that this will be too low too keep up the speed in tight geometries.

6mm Ball nose settings for chamfer: 3D contour. 24000 RPM 2480 mm/min feed

I finally managed to cut out my parts! Just a few more aluminium ones to go.

Making the POM parts

Making the POM parts was mostly undramatic. I used a 3 mm bit for almost everything and the 2 mm bit for the pinion teeth. The motor mounting plates I planed down with a 6 mm bit. (Too much I later learned! 10-11 mm thick would have been better than 9mm.)

I updated the 24000 RPM tool library with my settings for POM Fusion360 tool library for 24000 RPM noname-china mill aluminium milling. (Same link as above.) The feed settings in POM were: 3mm bit = 2mm stepdown, 6 mm bit = 4 mm stepdown. For the chamfer and teeth I used the same settings as for aluminium, see above.

Notable failures:

Notable succeses:

Test assembly of one axis

Since I now had everything I needed I could finally do a reality check test.

The new glide block adjustment screws had not been tested before but they seem to do their job, but we don't know for sure until we try it under load. The adjustment screw (being screwed on the right pic) controls the gap between glide block and rail while fastening the glide block to the aluminium plate. The adjustment screw is then retracted.

I hooked it up to the stepper driver I made in week10 and tested it using the input board I made in week13 which I had left wired up in via my controller card I made in week15.

Very statisfying to just be able to test it right away! Took me less than 5 minutes too connect it.

Assembly of the machine frame and linear axies

The parts fit together nicely. The self tapping gantry supports should have had deeper holes for the screw, now it wanted to wander out. I must have used the wrong length on my motor axis, my 9 mm thick motor plates makes them rub against the axis they are supposed to drive. I need to add spacers or grind down the motor axis ends 1mm.

I am glad I could use a hand held electric drill to tap the threads into the aluminium but it was still the most time consuming part of the assembly. Using an auto-threading tool would be great next time! (Assuming one can be found or made.)

The rails work as intended! Yay! Looking forward to testing them with the motors.

The electronics

Block diagram

I planned the communications during networking and communications - week15. Here is a block diagram of all the necessary communications. Green arrows = back and forth communcition, red = one way.

CNC motion controller

I am using my modified Satshakit board which I made in week15. I have improved on the original design by changing the spacing to make it easier to mill (see my pull request) , tidied up the component placement, changed the package of the crystal and switched the clock capacitiors to match my crystal.

The board listens on a serial line and sends pulses and direction settings to four stepper drivers depending on what it is instructed to do. The serial communication can either come from another microcontroller card like my jogging board the "fabtroller" (see networking week15) or from a computer (see interface week16.

Modified Satshakit files

Toolpaths generated thorugh PCB-GCode for SaleCNC and Mach3

Programming the controller for the first time

Controller board connected to FabISP, use this setup to burn the Arduino bootloader through the IDE. This also sets the fuses to use the 16Mhz crystal.
(Image from Satshakit git repository)

When the bootloader is installed further programming can be done through the Arduiino IDE using an FTDI cable, no ISP needed.

USB Connection through FTDI

" Image courtesy of Satshakit

Connections shield

I designed a connections shield to go on top of the Satshakit board. I used the text function in Eagle to label all headers. Ribbon cable with 3x2 header connectors will then connect everything together.


Connection shield files:

Toolpaths generated thorugh PCB-GCode for SaleCNC and Mach3

GRBL compatible Pinout

Jogging card "Fabtroller"

I made a jogging card during input devices week13 it reads the combination of pressed buttons and sends instructions to the motion controll board over serial.

Jogging card files

My instructions for how to program a new attiny microcontroller with the FabISP

Stepper driver

Made during Output devices week10. It's an updgraded version of the satstep6600 stepper driver. My version has fixes for some design errors which would lead to current draw outside what was specified in the the data sheet. It also strives to make the board better resistant to noise with altered ground lines and capacitor placements. I also added a switch so that the user has more control over holding torque.

Stepper driver files

Pinout PNG
Schematic PDF

Eagle board file .brd
Eagle schematic file .sch
Component libraries for Eagle
Drill rack file for the PCB Gcode plugin for Eagle
Toopaths in .tap format for 0,4mm mill.

This board has no programmable microcontroller but uses the TB66HG preprogrammed stepper driver IC.

Mounting the electronics in the case

The case

I made the electronics case as my composites week14 assignment and now it is time to mount the electronics!

My plan was to use ribbon cable and 3x2 pin header connectors to connect four of my satstep6600 v2 boards to the shield I made. Since I had to borrow three Makeblock stepper drivers (the left one had a missing screw connector) I had to improvise connections for them.

3D printed cable strain reliefs

Strain relief files

3D model Cable clamp Fusion360 .f3d
3D model Cable clamp .stl

Printed with 0,2 mm layers 70 mm/s feed in PLA on an Ultimaker2+

Testing all motion

The electronics case with the lid on. The jog board will be replaced with buttons mounted in the lid. I have the buttons but haven't milled the holes yet.

Jon-Thor Fab Lab manager test the driect jogging controls with HECTOR in Pen-bot-mode

Video of me test driving HECTOR with the jogging-board in all directions.

Back to Final project
Back to Top