Tuesday 23 May 2017

Harmonic Drive 4th Axis

I have already made a 4th axis for my cnc-converted Harrison Milling machine. It is a servo-driven BS0 dividing head. It works OK but lacks the torque for 4th-axis milling and it is impossible to have the backlash low enough in the sloppy bits without the servo stalling in the tight bits. It still makes gears relatively OK, but you can almost forget rotary-axis engraving.

I found out that Harmonic Drive make some really nice integrated drive/bearing/servo assemblies that are pretty much a 4th-axis waiting to happen. Lots of torque capacity, a large crossed-roller bearing and an integrated servo drive with a hollow shaft for through-spindle work. All very nice, and extremely expensive new. They are even expensive on eBay, but if you set up a watch you can occasionally find a bargain. I was in no hurry, and eventually picked one up for $250 from a seller in the US. It wasn't quite that simple, I had to get it shipped to a friend in Richmond, CA, then he stripped off a huge and heavy bracket and sent it on the slow (and cheap) boat to me. I ended up paying both California VAT and UK VAT on it, but it still saved a few $100 on the original quoted shipping price.

The drive I got was an older FHA-25B drive. This turned out to be a happy accident, as the FHA-xxB drives use Hall sensors for commutation and conventional quadrature encoders. The later FHA-xxC drives use a proprietary serial encoder for feedback and commutation, and only really work with the dedicated drives. If you choose to follow this route, look for the B-series actuators. 

The harmonic drive is pretty-much ready to go as-is, it just needs a bracket. I decided to use cast iron.
I designed a bracket in Inventor, and then used the excellent CAM in Fusion 360 to machine a pattern.

Machining took quite some time. I used a some pre-used SikaBlock M970 that I had lying about. In the process I made quite a mound of pretty green petals. 

And then at the end had a fairly good pattern in the wrong colour to send to the iron foundry.

One thing that I decided early on about this 4th-axis is that it would use the same spindle-nose as my lathe, so that I can use the chucks, face-plates and collet adaptors that fit that, and potentially transfer work directly from one to the other. A not unimportant consideration here is just how tedious it is to centre work in the 4-jaw chuck in a dividing head. Even a CNC one is tedious, I hate to imagine what it would be like twiddling a handle. 

My lathe is a D1-4 nose so I set about making that while waiting for the foundry. I used some EN24 / 817M40 (having bought half a pallet of bar-ends on eBay). The D1-4 nose has 3 locking cams (the D1-5 to D1-20 have 6). This leads to some difficulty as the harmonic drive has 8 mounting holes round the register and this was a bad fit to the 3-fold symmetry of the spindle nose. It took a bit of fiddling in CAD but by deciding to retain the locking cams in an unconventional way (there are no centrifugal forces to counteract) I managed to find a way to squeeze in 5 mounting screws. I also did a CAD investigation of how to manage a D1-5, but that ended up with a two-piece nose with mounting bolts buried inside. 

First I bored out a recess to match the register on the dividing head. 

Then I drilled and deeply countersunk the mounting-bolt holes on the mill. At the same time I drilled and finish-bored the holes that take the three camlock locking studs. 

I then machined a dummy register to match that on the harmonic drive, mounted the nose on that, and completed the machining. 

A trial fit on the harmonic drive proved that I hadn't messed up my units or something silly.

There was then something of a hiatus waiting for the castings. During this time I was looking around for a suitable drive. I got in touch with the chaps from the STMBL project  who have an open-source drive almost ideal for the actuator (it is a 200V class servo, I will probably be running it on rectified UK mains). Luckily one of them was due to visit London Hackspace the next week, so I popped in too, with a few motors, including the harmonic drive, and was lucky enough to go home with a beta-sample of the V4.0 drive 

Eventually the castings came back. I had 4 cast. One for me, one spare, and two for two other folk who expressed an interest. They came in at £60 each. 

 The first job was to square them off, removing the casting draught and making a couple of reference faces. This is something that my Univeral Mill is pretty good at in horizontal mode.

First the base to the as-cast front face (the mould parting face, to pretty flat)

Then the front face square to the base. 

For making the bore/seat for the harmonic drive I needed to ensure that the bore was true to the front reference face, so I squared the part on the mill with a dial indicator for perpendicular.
I then had to decide where in the casting the centre of the hole was. This was, of necessity a rather approximate process as the hole was not round, and the surface not smooth. But I minimised the blur on my  coaxial indicator and bored through with my automatic boring head:

The other diameters are bigger, so I had to make a rather Heath Robinson setup with one of the extension bars to enable back-boring. This looked a bit implausible, but actually worked surprisingly well. 

Once the bores were done, I could drill and tap the mounting holes. This could have been done from the chuck-side with through-holes, but I decided to do it the hard way, which required the purchase of a long-series drill and the manufacture of a tap extension:

The only thing remaining was to machine the location grooves in the base to align the head with the table slots. This was actually a problem that exercised my imagination, as the slots need to be exactly aligned under the mounting bore. Here is what I did, I would be interested in other ideas. 

First, I trued the base of the casting to the X axis of the mill:

Then picked up the middle of the bore with my coaxial indicator in the vertical head. 

I then made a reference slot with a 5mm cutter in an area that would be removed by the alignment key slot. This was made to fit a piece of brass with a hole bored as exactly as I could manage in the middle. 

I then switched to the horizontal head and picked up the hole in the piece of brass with my coaxial indicator. I thus found that the axes of my horizontal and vertical spindles are not absolutely exactly coincident, there seems to be a 0.15mm offset. Or I made a 0.15mm error in my work...

Alignment slots and cut, a coat of paint, and the mechanical work is done, time now to figure out the drivers and HAL connections. Once that is done I can bore the holes for the camlock cams. these are specified at a specific angle from the camlock stud holes, so it makes sense to wait until the head is powered to machine those. 


  1. I always enjoy reading of your machining pursuits. I learn a lot, and there is something particularly satisfying about watching your projects go through the various machining steps. I try to avoid machining castings (something you apparently do fairly often), because there's not a parallel or perpendicular pair of surfaces.

  2. Great job. I have one Harmonic Drive laying around is about 100mm diameter on register would it fit in to your casting? Just asking if you by the chance have one laying around :-)

    1. I do have a spare casting, but they are sized for the FHA-25 size actuators, that have a 142mm mounting hole circle.
      I think that the casting can be just about machined for the FHA-17 size, but you don't get a completely machined mounting face.

    2. Would one of these work for you? (from a different project)140mm wide and 89mm centre height:
      Not so well-provided with ways to bolt them down.

  3. Hello,

    can you upload your ini and hal file?
    I'm working on a 4 th axis with a FHA40B.
    So the ini an hal can help me.
    I am a beginner in linuxcnc.


    1. The HAL is very simple as I am using an STMBL servo drive which communicates via Mesa smart-serial. It would only be three lines in the HAL were it not for the safety interlock that I put in to disable the drive if the connector is unplugged.

      net amp-enable-and-DC-good and2.2.in0
      # Only enable the STMBL if there is a motor connected and linking pins A and D
      net motor-present hm2_5i23.0.stbl.0.5.in-00 and2.2.in1
      net A-amp-enable-and-motor-present and2.2.out hm2_5i23.0.stbl.0.5.enable

      net A-pos joint.3.motor-pos-cmd hm2_5i23.0.stbl.0.5.pos_cmd
      net A-pos-fb hm2_5i23.0.stbl.0.5.pos_fb joint.3.motor-pos-fb
      net A-vel-cmd joint.3.vel-cmd => hm2_5i23.0.stbl.0.5.vel_cmd
      # net A-fault joint.3.amp-fault-in <= hm2_5i23.0.stbl.0.5.fault
      net A-index joint.3.index-enable <=> hm2_5i23.0.stbl.0.5.index_enable

  4. Andy i purchased the harmonic drive you found on ebay. I see you used a STMBL drive for yours. Do you know if the is any way to get one of these drives without self assembly currently? If not do you have any suggestions for valuable drives for the harmonic actuator used in your setup? Any assistance is appreciated.

    1. At the moment you can't really use an STMBL even if you do build it yourself, as one of the major parts to build it with is unavailable
      You can try asking on https://gitter.im/rene-dev/stmbl
      The 25-B uses conventional Hall sensors, so one of the AMC brushless drives might be an option.
      I have wondered if these are worth trying: https://www.ebay.co.uk/itm/Parker-OEM670T-Compumotor-OEM-Series-Servo-Drive-P1B12/301363797240

    2. That only does 90v wouldn't i lose alot of torque and speed with those specs?

    3. You would lose speed, but probably not torque. That said, you probably want all the speed.

  5. How fast does your axis go with your drive? And what voltage and amp are you using to drive the harmonic actuator. Don't suppose you've posted videos of your 4th axis online. This will be my first attempt at something like this do you have any advice or resources you could share? I'll most likely be making it out of plate welded together since i don't have access to a foundry or skills in molds.

    1. I don't actually know off-and how fast it goes. I could measure it.
      It is in action here, but not moving far enough to see the speed.

  6. Sadly the harmonic actuator fell through. Seller said only had 2 and both were faulty. If you come across a deal like this again hope you will send up the flares again.