Retromaster’s Electronics Projects

…related to old computers and other assorted stuff…

MF70 CNC Control Board

Posted by retromaster on November 6, 2009


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.

3 Responses to “MF70 CNC Control Board”

  1. Jony said

    Good day! My name is Eugenij. This very good controller! You can made HEX for PIC18F4550 and application software for this CNC controller free for hobby cnc project? You can add 4x axis from 3D rotation tools mechanics?
    With best regards from Russia

    P.S. I don’t can made code for MicroController (((
    Only hardware and repair electronics.

  2. retromaster said

    Hi. I will probably release sources and binary at some time in the future, but they need some improvements, so we’ll see. And yes, it’s possible to add 4th axis, although I am not sure that I’ll do it, since I do not need it.

  3. Eugenij said

    Here and here option=com_content&view=article&id=4&Itemid=6 there are open projects, but they are made as USB-LPT Adapter. Your controller much easier and well approaches for experiments for management of engines from 5 “FDD. It is a pity that it is impossible to repeat the project, but it is not terrible, I will do It is a pity only that in it too 3 axes. In the presence of 4 oh it was interesting to try to make плотер with adjustment of giving and the screw of giving of ink. Though occurrence film photoresist has made it not actual. With the best regards in development of the project from Russia Jony Silver the Project nice)))

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: