Posted by retromaster on November 23, 2009
MF70 CNC X and Y axes
I’ve had some progress with my Proxxon MF70 CNC conversion project. X and Y axes are complete, and so far it seems to work fine with no significant vibrations at a decent speed. I went through a few design ideas and eventually came to choose a rather simple one where I replaced the lead screws and made new nuts out of delrin for both axes. This had the nice side effect of a somewhat increased resolution as well. In addition to the motor mounts, I also built the aluminum couplings between the leadscrews and motor shafts.
Now it’s time to work on the z-axis, which should basically be the same. Once the machine is complete, I intend to use it to manufacture parts for a new design for the Y axis, where I’ll be able to extend the travel of the axis by about 20mm. This should enhance the usability of the machine greatly.
Posted in Projects, Robotics | Tagged: CNC, Proxxon MF70 | Leave a Comment »
Posted by retromaster on November 6, 2009
MiniStep CNC Control Board Rev A Solder Side
MiniStep CNC Control Board Rev A Component Side
Here is the control board for the CNC-converted MF70. I opted for a rather simple design. It contains a PIC18F4550 microcontroller and 3 ULN2003A darlington arrays for driving the steppers. The PIC handles USB communication with the PC host, interprets incoming commands and controls the motor stepping sequences. It is probably a bit of an overkill for this kind of project but I already had some :). There is a ULN2003 per motor, implementing unipolar drive. The motors I use here are 12V, 0.6A motors and with a some current limiting a ULN2003 is able to drive one although not exactly at full torque. The whole system is powered from a 12V, 2A power adapter.
As the pictures show, I had to solder directly to the USB data pins on the board to get the USB communication working reliably. Using the on-board type B USB connector did not work very well, and I guessed that it was due to the rather long differential USB data traces on the single-sided board. To be honest, I did not pay much attention to the impedance of the USB traces and it seems this was a mistake :(. Anyway, I’ve already redone the PCB layout to shorten (and thicken) the USB traces to better meet the impedance requirements. To achieve this, I’ve rotated the PIC sideways in this new layout. I haven’t built the new layout yet, but I guess it might be one of the first PCBs I’ll build with the MF70 CNC when I get it working.
In its current state, the board can step the motors and it is detected properly as “Retromaster MiniStep” by the host OS. I decided to use the WinUSB API on the host side to avoid writing a device driver. Up until now, I tried to get USB control transfers to work with the firmware as that mode of communication seemed appropriate for this type of device. Even though control transfers with no data stage work fine, I could not get control transfers with a host-to-device data stage to work. I did examine the Microchip USB firmware thoroughly and tried several things, but without an in-depth knowledge of how USB control transfers and Microchip silicon work, I could not succeed. What makes matters worse is that Microchip firmware documentation on the subject is rather poor (and likely inaccurate), and to my knowledge none of the available device firmware examples use this kind of control transfer, which leads me to suspect that this functionality of the firmware was never properly tested. Anyway, I dropped the idea, and decided to use bulk transfers instead.
Posted in Projects, Robotics | Tagged: CNC, PIC18, Proxxon MF70, Stepper, USB | 3 Comments »
Posted by retromaster on November 2, 2009
MF70 CNC X-Axis First Version
Having found a decent solution for the problem of soldermask making, I decided to further improve the quality of my homemade PCBs by having the holes drilled automatically, rather than manually as I have been doing up to now. I own a Proxxon MF70 manual micro-mill that is quite suitable for conversion to CNC (as proven by several examples I’ve seen on the net). The MF70 has a rather limited Y-axis travel (of only 46mm), but this problem can be solved by a little bit of manual intervention, at least in the case of PCB drilling.
So, thinking that it would be rather cool to have a micro-CNC available for my workbench, I started working on it right away. I made a motor mount for the X-axis, as well as a rigid, set-screw type coupling that also serves as a stop to prevent the play of the leadscrew. The motor mount turned out all right but the center hole for the coupling was a little off-center and not perfectly straight. Anyway, I decided to change the design a little (separate the coupling and the stop) and I ordered some new tools that should allow me to make much better quality couplings / stops.
I also built a control board that connects to a PC host through USB and drives the 3 stepper motors. I’ve managed to drive the steppers using the board (and move the x-axis of the MF70) but there are problems with the USB. I’ll make a more detailed post about the control board later.
Anyway, it seems that I got sidetracked once more. Hopefully, I’ll have some quick progress with this new project so that projects like UFE won’t suffer from more delays. Actually, this MF70 CNC project is the sort of project that should prove to be a time saver in the long run.
Posted in Homebrew PCBs, Projects, Robotics | Tagged: board, CNC, PCB, Proxxon MF70, Stepper, USB | Leave a Comment »