MF70 CNC
The Proxxon MF70 is a nice little manual desktop milling machine. Just like many other MF70 owners, I’ve converted mine to CNC. This page documents its final status, providing photos, drawings, schematics, etc. Some of the information here comes from my past blog posts, which can be helpful to view the development process of the machine.
- Full View
Motivation
I’ve always wanted to have a desktop CNC machine for drilling PCBs, milling project enclosures and manufacturing small parts. With some improvements and CNC-conversion, MF70 is an excellent candidate for the job.
Mechanics
Close-up photos of each axis of my MF70 CNC can be found below (All custom parts shown were manufactured using previous incarnations of the MF70 CNC). The basic idea is to use cheap standard ball bearings to support the axis leadscrews with reduced friction. To do that, I’ve manufactured new end-plates with ball bearing housings and replaced the leadscrews (and the delrin nuts of course). To fix the leadscrews to the ball bearings and remove play, I’ve used nylon-insert nuts. The X axis end-plates are each made out of 10mm thick aluminium, and the Y and Z axis end-plates are made out of two 5mm thick aluminium plates bolted together. Each motor is supported by two M5 screws. The leadscrew ends are machined to fit the flexible couplings.
The original MF70 has a very limited Y axis travel of 46mm. The idea was to extend that by letting the carriage move past the ends of the dovetail slides on the base. This is not a problem if the carriage does not move too far as the carriage is relatively large. To be able to do that, I’ve milled a standoff that moves the Y axis end-plate about 25mm away from the base. The Y axis leadscrew does not need to be supported at both ends provided that the support on one end is good enough. To make sure, I’ve also made the delrin nut a few millimeters taller so that it slides on the base as the Y axis moves, creating additional support. This way, on the unsupported end, the carriage can move all the way to the Z axis support column. The result is that the Y axis travel has been increased to 92mm, double the original.
This archive contains the SVG files I’ve drawn that define the toolpaths used to mill the parts shown in the photos below. They are intended for use with a 3mm endmill. Take care with the milling depth for the outer circles of the ball bearing housings in the end-plates. Also, I’ve made the Y axis standoff in three passes, and reversed the workpiece after doing the second pass.
- X and Y Axes Close-up
- X Axis Right Close-up
- X Axis Left Close-up
- Y Axis Close-up
- Z Axis Close-up
Electronics
The control hardware consists of two interconnected boards: A parallel port breakout board and a stepper drive board.
The parallel port breakout board contains a couple of TLP541-4 optocouplers to isolate the parallel port from the stepper drive board. Eight inverted signal outputs from the optocouplers are pulled-up to the 5V input. There is also provision for home switches to be directly connected to the parallel port. Schematics and PCB layout can be found here.
The stepper drive board accepts step/direction inputs and drives three bipolar stepper motors accordingly. The design is based around a PIC16F676 and a L298 for each axis. The PIC translates the control inputs to the stepper coil activation sequence. L298 drives the stepper coils. The motors are 12V/0.6A types, they do not provide a lot of torque, but they are sufficient to move the X axis at about speed 8cm per minute without missing steps. Current sensing resistors are not used on the L298 outputs, instead the PIC implements a fixed-ratio PWM that kicks in during slow motion or idle time. A current sensing PWM chopper scheme was neither practical nor very useful with the motors I had as it would have required a rather high DC source voltage. Although the L298 is able to drive up to a total of 4A, the current PCB layout would only allow for about 1A per coil. In the future, I might think about getting lower voltage/higher current steppers and implementing microstepping/sinusoidal drive using fast ADCs on a PIC24F04 for fast and smooth motion. Schematics, PCB layout and PIC source code and binaries for the current version can be found here.
- Stepper Drive Box and Power Supply
- Stepper Drive and Parallel Port Breakout Boards
MiniStep USB and SinStep Boards
The MiniStep USB Controller board is the first CNC controller board I started to work on. It is based on a single PIC18F4550 and uses ULN2003 darlington arrays for driving the steppers. The PIC18F4550 firmware receives commands from the main host via USB and can do linear and circular interpolation. On the PC host side, I’ve written Python modules that interface to the board through WinUSB and a few scripts to process different input file formats or to automate some basic tasks. I stopped working on this board (in favor of the current SimpleStep board), mainly because the darlingtons were rather limited in their drive capacity and finally the idea of using readily available CNC software such as EMC2 became much more appealing. Furthermore, there were other board layout related problems that made the USB communication somewhat unreliable. So, in its current state, I consider the MiniStep board and accompanying software to be working, but incomplete.
The SinStep board was designed and built out of my desire to experiment with a PIC16 to monitor coil currents via the built-in ADC, for microstepping or making the current follow a sinusoidal profile for smooth movement. This did not work very well, partly due to the motors I had requiring too high a supply voltage to be practical, and partly due to the PIC16 ADC being too slow. I might work on this idea in the future again with different motors, or with a different design based on a PIC24 with a much faster ADC.
If there is interest in both boards for learning or experimentation purposes or continuing the work, I can release all sources, schematics, etc. so please do not hesitate to contact me.
Eugenij said
If there is interest in both boards for learning or experimentation purposes or continuing the work, I can release all sources, schematics, etc. so please do not hesitate to contact me.
Good day! I too have got set PROXXON GD, but have been disappointed by quality of screw pair and absence even at least the radial bearing. But time has bought, it would be desirable to finish to mind. Your scheme on PIC18F4550 is interesting by the simplicity as it can be collected and on a model payment. If you are so are kind and send scheme files, sources, schematics for my hobby, not commercial use, I will be very glad and grateful to you. It is necessary to alter knot of fastening of the screw, but yet has not solved as, the shaft has very small diameter, and to process its houses with demanded quality there is no possibility. At a course of the carriage from one extreme position in another, the nut is displaced in a nest on a vertical and causes screw jamming, the nut thus will quickly break. Especially in a variant with CNC. While I will think as to make efficient механнику. I would choose transfer of rotation from the engine on the screw through a gear belt and gear pulleys, but I do not know where to find three pairs identical pulleys and belts. The engine from 5 “FDD for it likely will be rather weak?
With best regards Jony Silver
retromaster said
Hi Jony Silver,
I will release the material (schematics and sources) when I find the time to wrap up everything, but please understand that I cannot provide any support for them and honestly, I do not have any time to answer any questions. I consider the MiniStep USB board and accompanying software working but incomplete. I will provide them AS IS, and you are on your own to produce something that works for you.
-RM
Moe said
Didn’t want to hijack the UFE blog page, so move my reply/response here.
Great, thanks. Also do you think you can post a video of the MF70 in action? Or is there a video posted of that already? Maybe get a close up of the drill head as it traverses to and from a location and then drills a hole, and another shot of the whole unit in action with all the stepper motors doing their thing.
Just curious, do you plan on adding additional information to the “About” page give more details about maybe who you are and how you came into the retro scene; your background, what you do for work, what you do for fun, and how you find the time to work on these projects. Or are you retired, millionaire and don’t need to work, or do all these project at work during your ‘breaks’. What country you are from, you know stuff like that; or did you prefer to remain private? I’d just like to know the background of the person that can produce these great projects.
geez, I’m such a demanding person with all these requests.
retromaster said
Sure, next time I use the machine I’ll try to remember shooting a video, the machine deserves it 🙂
Funny, you should ask that… Just a couple of days ago I was thinking about writing something more about myself to the About page. I guess I’ll do that when I find a little free time 🙂
…And I am really glad you like my projects… There are even a couple of older projects that I’ve never had the time and chance to release any info about… Hopefully soon…
The arrival of the tiny beast, Proxxon MF70 | Henriks projects said
[…] the other. Here is a link to a blog post that shows a very comprehensive modification of the MF70 Retromaster’s Electronics Projects, MF70 CNC. Most of his modifications to the MF70 makes sense to me, so hopefully I will be able to carry out […]
Admir said
Excelent work.
I will try to make, but i need some of your help about parts and information about mechanical conversion.
Mark Magness said
Hi Retromaster,
I know you use toner transfer and etchant to create your PCB’s. But have you ever experimented with milling the isolation using this machine? I’m currently working on doing this with a full size CNC milling machine myself, I’d be interested in any attempts you have made.
retromaster said
Hi Mark… I’ve never used the machine for isolation milling. But I think this machine would be suitable with the right milling bits, because there’s almost no runout and vibration in the spindle. There’s some vibration induced by the stepper motors and the rest of the mechanism but I am not sure to what extent this would affect accuracy. In your case, you should pay attention to these issues (as you’re probably already aware).
Mark Magness said
Thanks Retromaster, I’ll keep you updated as to my progress.
Mark Magness said
Hi again Retromaster,
I’m hoping you can help me.
We’ve got to the stage where we drill our PCB holes with the CNC, however the holes are not central to the pads on the bottom side. We’ve racked our brains as to why this is happening. We don’t think its a mismatch between the top and bottom layers of the board as we are using reference pins to hold everything in place which are equidistant from the centre of the board, and so when we flip the board there should be no error.
My mechanically minded colleague believes the drill bit may be flexing whilst the drilling is taking place causing drift within the board. Any thoughts? What drill bits do you use and how long are they?
Mark Magness said
I should also mention that as well as the reference pins, the board is on a Vac table, so no chance of movement.
retromaster said
It’s difficult to say what’s going wrong… What kind of drill bits are you using? and what size? I would guess that smaller carbide drills would break before flexing much. It seems to me that the problem is more likely to be with the registration of the bottom and top layers…
Mark Magness said
Hi again,
Did various tests, and it turns out it was our Vac table/reference pin jig that was introducing an offset when the board was flipped. We’re still not entirely sure how this happening; but a new jig is now being manufactured. Fingers crossed!
Mark Magness said
Hello again,
Thought I’d give you an update. In the end it turned out there was nothing wrong with the Vac table jig, the offset was being introduced by the software (DesignSpark) as it was setting the origin at the centre of the line used for the board outline, then when the board was flipped this offset was doubled. I fixed this problem by setting the width of the board outline as smaller than the precision I was using for the design. i.e. 0.0001mm when using 0.001mm precision. Anyway after this and buying some 30 degree tungsten carbide engraving bits all is perfect. You also inspired me to use standard wire and a press for the via’s, and it works beautifully. We’ve adapted an old embossing press for this. Anyway thanks for all your help.
Moving on to a slightly different subject, do you think it would be possible to get 100mm+ range on the Y axis of the MF70? Also what file format does your finished CNC MF70 interpret?
I’m considering getting one myself.
retromaster said
Mark, I am glad to hear that you solved all the problems.
I do not think it’s possible to get 100mm+ travel on the MF70 Y-axis without substantial modification of the base…. In the end, the length of the base is the limiting factor, that is, you would need to mount the table further away from the Z-column to further increase travel.
I use emc2 for controlling the MF7-CNC, so, the input is gcode, but bear in mind that I only use the CNC to drill PCB holes. I’ve written a small python script to convert the NC drill files output by the PCB design software to gcode.
Mark Magness said
Hi again Retromaster,
I thought I’d share this with you,
http://www.ofitselfso.com/LineGrinder/LineGrinder.php
It’s the piece of free shareware we use to produce our isolation milling and drilling files, however I have modified our version quite a bit to make it use peck drilling, and make it use a slower feedrate for X and Y movements below 50mm.
retromaster said
Thanks a lot, Mark, I did not know about this… I’ll play around with it if I decide to try out isolation milling in the future.