584,837 active members*
5,452 visitors online*
Register for free
Login
IndustryArena Forum > WoodWorking Machines > DIY CNC Router Table Machines > Open Source CNC Controller Specification
Page 1 of 2 12
Results 1 to 20 of 29
  1. #1
    Join Date
    Jun 2004
    Posts
    131

    Lightbulb Open Source CNC Controller Specification

    [B]Open Source CNC Controller Specification[\B]

    The purpose of this document is to specify the requirements for an open source CNC Controller.

    The Controller will support up to a 3-axis hobby CNC machine with a target cost of less than $50.

    The Controller will be designed for constant current control of inductive load, two-phase bipolar stepper motors. Each of the three motors will be controlled by two signals: step and direction. Each motor drive can be individually configured for full step, half step, quarter step or eighth step mode. The drivers will supply 1.5A max peak current to each phase. The peak load current level may be set as a part of the board configuration. The controller will be able to supply up to 48 Volts across each motor phase.

    1.) The drivers will have an operating frequency up to 75 KHz and have thermal shutdown circuitry.
    2.) A Panic Shut down will be hard wired to the drivers to shut off the motors with out software intervention.
    3.) The Controller will interface to a PC through the parallel port. The parallel port will interface to a wide range of PCs. This will include the 3 Volt laptop interface as well as the standard 5 Volt PC standard.
    4.) There will be a single voltage supply required, this may range from 12 to 48 Volts.
    5.) The controller will support a standard set of General purpose I/O for other functions on the CNC machine including:
    a. 1 panic button
    b. 3 home position switches
    c. 6 limit switches – normally closed in series
    d. 1 open collector output to control the spindle – on/off
    e. dual input jog encoder
    f. touch probe input

    6.) Connectors
    a. 25 pin D-sub parallel port interface
    b. Power supply inputs - 4 pin screw terminal block
    c. Motor connectors 12 pin dual row .156” center header
    d. 20 pin .1” dual row header type connector for the following:
    1. Panic button –2 pins
    2. open collector output for spindle control – 2 pins
    3. 3 home switches – 6 pins
    4. limit switches – 2 pins
    5. touch probe input – 2pins
    6. dual input jog encoder – 4 pins
    7.) Configuration – The controller shall have non-volatile memory to store the user configuration on board. No jumpers or dip switches are to be used. The controller is attached to a PC via a parallel port. This offers a simple way to configure the board. The configuration of the board is set by copying a setup file to the parallel port. Once the controller is configured for a given machine, it will retain its configuration even if the controller is powered off. The following parameters can be set from the host PC:
    a. Individual configuration of each motor as to full step, half step, quarter steps or eighth step.
    b. Max current level for each motor. This will be in 10% increments of the total 1.5 Amp max.
    c. Master enable for each motor. Unused circuits can be turned off.

    8.) Total cost of materials shall be under $50

    This is to be a fast track program. The specification is complete as it stands (6-16-04). Now the schematic will be worked on. This will complete this time next week.

  2. #2
    Join Date
    Feb 2004
    Posts
    2337
    That sounds great gregmary. I am wondering about your post. Does this mean you are going to submit all of the above? Or is it a wish list that you want others to contribute to?

    If your intention is to do all of the above, could you let us know how we can support you?

    I notice you have only 3 posts to your name. Welcome to the forum.

    Benny
    Being outside the square !!!

  3. #3
    Join Date
    Sep 2003
    Posts
    1113
    gregmary -
    Very nice summary of the Specification! Is there room for a "modular" approach in the design? I was thiniking of a plug and play module (like a pc board) so you could have 3, 4, or 5 (6)axis with 3 as baseline. They could use extra headers to add purpose built daughter cards. These daughter cards could have their own home and limit switch inputs (plus all the necessary power and motor connections. (might even need their own power supply). Just mull over the concept a bit - You've got some great thoughts there. Understand the target audience - but given the wide range of performance options - 12 - 48 volts, 5 amps etc, seems like a natural to keep the board and then expand as you need.

    A couple of questions maybe:

    Would you be interested in providing the printed boards? Or licensing someone else to do that?
    (I'm not volunteering - just got too many hobbies to take up making my own board - no matter how easy it may seem - they all come with a lot of extra stuff - and my garage is chocker!)

    Target cost for the product(s)?
    Will you also provide a source list for the materials?

    Sorry to see the DOS legacy - considering that MACH2 bypasses some of the WIN "hangups"? Linux might be too small a market - certainly there are a bunch of DOS users out there still.

    Would the board support LAPTOPS - low voltage (3.3 vice 5 on some parallel ports)?

    Will the 5 volt logic be from onboard PS or could you pull it from a usb cable? (just wondering how much current you'll be requiring - I believe the USB passes 500mA on the 5 volt line)?

    I'll follow with great interest - might be a soldering project I could get into - but would rather move off the DOS !
    Cheers - Jim
    Experience is the BEST Teacher. Is that why it usually arrives in a shower of sparks, flash of light, loud bang, a cloud of smoke, AND -- a BILL to pay? You usually get it -- just after you need it.

  4. #4
    Join Date
    Jun 2004
    Posts
    131
    Let me answer your questions as best as I can:

    Is there room for a "modular" approach in the design?

    I very much like your idea of a modular design. Understand that making the design modular increased the cost somewhat as there are now multiple boards and interconnections. The reliability can also be less due to addition interconnections. That said, given the goal of a single design that can support a wide range of needs of hobbiest. I think a modular design would be worth the extra cost. How would you take the single spec above and break it down into sub componenets?

    Would you be interested in providing the printed boards?

    I would be willing to provide the Printed Circuit boards at cost for a while. or if a few people wanted to go together we could order a lot of boards at once and share in the expense.


    Or licensing someone else to do that?

    This design will be open source, so anybody can take the files I provide get boards made.


    Target cost for the product(s)?

    $75 or less for a completed controller. We will know more when we get the bill of material together, also the design will be scaleable and you will not need to stuff all the parts, only the ones for your application.

    Will you also provide a source list for the materials?

    I will provide a list of materials and a source for the materials and current cost.


    Sorry to see the DOS legacy - considering that MACH2 bypasses some of the WIN "hangups"? Linux might be too small a market - certainly there are a bunch of DOS users out there still.

    It is not my preference to use DOS, I would much rather use a Windows based application. But I want to stick with the Open source, free to all approach and the TurboCNC application fits this bill. If you or anyone knows of a Windows based application that is free to all I would love to consider it.



    Would the board support LAPTOPS - low voltage (3.3 vice 5 on some parallel ports)?

    Yes, The board will support laptops as it will have two sockets (or you could solder them in) for termination resistors allowing the customizing of the interface to various PCs.


    Will the 5 volt logic be from onboard PS or could you pull it from a usb cable? (just wondering how much current you'll be requiring - I believe the USB passes 500mA on the 5 volt line)?

    The 5V supply will not be on the board, but the requirements for the 5V are very low and you could use a cable to the USB (possibly) to supply this voltage. We will have to see, I have not done that before.


    I'll follow with great interest - might be a soldering project I could get into - but would rather move off the DOS !

    If you can help me figure out a way to move away from DOS and maintain the open source spirit I would love to.


    Thanks for the feedback,

    Greg

  5. #5
    Join Date
    Jun 2003
    Posts
    3312
    Looks good, have you looked through this thread ? http://www.cnczone.com/forums/showth...&threadid=4079
    Maybe there can be some colaboration.

    Phil
    Phil, Still too many interests, too many projects, and not enough time!!!!!!!!
    Vist my websites - http://pminmo.com & http://millpcbs.com

  6. #6
    Join Date
    Sep 2003
    Posts
    1113
    Greg - had a few more questions/thoughts (I just finished assembling - well, wiring up - my Xylotex board and PACSCI motors)
    The OS - DOS or Windows based - how does that impact the board design? Is it in the maximum number of steps, minimum stepping/pulse width? - or? Maybe the board could do both and still be Open Source, and for those that want to use a WIN based system, it could also be compatible.

    Stepping levels (full step. half step, quarter step, etc) - Jumper selectable?

    Bi-Polar or Uni-Polar - or both? that seems to be the bugger on most boards I've seen. If you want both it may drive the choice of chips? (Agin - I'm not a "wirehead" on this --yet)
    I'm doing some thinking on the daughter cards a bit more - surely smarter people will come up with more feedback.
    Cheers - Jim
    Experience is the BEST Teacher. Is that why it usually arrives in a shower of sparks, flash of light, loud bang, a cloud of smoke, AND -- a BILL to pay? You usually get it -- just after you need it.

  7. #7
    Join Date
    Jun 2004
    Posts
    44
    I'll be happy to buy a pcb off you
    and if I can help out in the design I will
    I'm a bit rusty on my electronics stuff
    but I maybe of some use I'm not looking for
    anything huge right now

    yes you can pull 500 ma from a usb cable I'll gladly explain that
    I have spliced a few usb cables for portable hard drives and such
    you could also pull it from the keyboard port as well at or ps2

    the post that pminmo has mention above has a pretty good head start on this
    already but I'm looking to get my board built soon so I can start playing with the motors I have
    so if you got something you can mill or etch that will egt 3 axis up and running with out Power supplpy
    as I have one I'll glady pay you for it and then I'll be happy to help mill borads for
    people that are looking for them

  8. #8
    Join Date
    Jun 2003
    Posts
    3312
    A couple of things, a simple 3 term regulator for the 5vdc would be much preferred to a seperate input. Second I would advise agains a mechanical relay, switching high inductive currents on a logic board isn't a good idea. Many places you would get by with it some not. Besides solid state relays are not that expensive. The limit switches, hardware diswable or just going back to the PC?

    Phil
    Phil, Still too many interests, too many projects, and not enough time!!!!!!!!
    Vist my websites - http://pminmo.com & http://millpcbs.com

  9. #9
    Join Date
    Jun 2003
    Posts
    3312
    I did a little consolidation of the files I have been working on:

    http://webpages.charter.net/pminmo/cncelectronics.htm

    Always looking for colaboration and help. It would be really good if there is somebody at the zone that could build a mill file for the 5804 copper board.

    Phil
    Phil, Still too many interests, too many projects, and not enough time!!!!!!!!
    Vist my websites - http://pminmo.com & http://millpcbs.com

  10. #10
    Join Date
    Mar 2004
    Posts
    37
    I lost my first post attempt because it did not like my jpeg file with the .jpe extension.

    I am not involved with the Opensource DIY controller yet but here is a picture of my design so far. The board is twice as big as it needs to be but it is only a prototype for now. I am using it to test my ideas and when I am done I will respin the PCB to the proper size. My intention is that I will have one board that drives 3 axis. The extra I/O functions are easy and I do not need to test them and evrything on the specifications list can be added. It just makes the board bigger. My design is a microstepping chopper constant current controller. Presently it is driving my 8A bipolar parallel test motor @ 35 volts. It has been tested with motors of 1,2 and 3.5 Amps as well. The small stepper seen in the picture is actually the jogger input. I have been discussing this in the Stepper motor forum.

    The board can be connected to any software that uses a parallel port for input. I did not use optos on the parallel port inputs but they can be added.
    More specs.

    1. The board uses a small external adapter for the power supply to derive its required 12 and 5 volts. Motor power is separate.
    2. The micro is flash based and reprogrammable through the parallel port. Programmer is built in to the design. A Visual Basic program does the code uploading.
    3. Board is programmable for 1,2,4,8,16 or 32 microsteps. I use 8 microsteps because I find anything beyond 8 is superfluous. Again settable through the port. Max speed, I do not know as my test machine with TurboCNC can only do 30 kHz. I use 19.2 kHz. I cannnot see the need for 75 kHz for a hobbiest.

    I went into the design with both feet to see what I could wring out of a simple micro and stayed away from the chipsets that are presently used by others. The chipsets also put a limit on the maximum current of the motor and I wanted to not have such a limit.

    To me cost and ease of making are important. Presently I am testing my 3 FET driver options.
    1. Pure discrete. Low cost, robust but lots of components.
    2. IR2110. High cost, but a pain to keep the high side drivers charged without an external boost circuit.
    3. SMT driver. Moderate cost but may not be that easy for everyone to solder.

    I have tested a lot of options and I have a few more to test. I have other chips on order and a few look excellent but again they are SMT.

    Any comments or questions are welcome.
    Attached Thumbnails Attached Thumbnails proto2.jpg  

  11. #11
    Join Date
    Jun 2003
    Posts
    3312
    Looks good, micro pic, avr? What CAE tool did you use?

    Phil
    Phil, Still too many interests, too many projects, and not enough time!!!!!!!!
    Vist my websites - http://pminmo.com & http://millpcbs.com

  12. #12
    Join Date
    Mar 2004
    Posts
    37
    I used a PIC16F873 as I have quite a few of them. I thought of using a PIC16F630 in the final design to save a few dollars. 1 micro is needed per axis. I use ORCAD for both capture and layout. I can read and export into a few other formats if required. The micro is coded in C.

  13. #13
    Join Date
    Jun 2004
    Posts
    131
    Jim,

    I will try to answer your questions:

    The OS - DOS or Windows based - how does that impact the board design? Is it in the maximum number of steps, minimum stepping/pulse width? - or? Maybe the board could do both and still be Open Source, and for those that want to use a WIN based system, it could also be compatible.

    Actually, I do not beleive that the DOS versus windows issue really effects the board layout. I just have a parallel interface to the PC and if either program is somewhat flexible as to what signal is put on what pin, then they both should work. I am familair with TurboCNC (DOS based) and so plan to use it for qualification testing of the board. If someone can point me to a Windows based program that works as well (I am actually running TurboCNC in a DOS window under win98) and is available to all I would gladly use it as well to qualify the board.


    Stepping levels (full step. half step, quarter step, etc) - Jumper selectable?

    My current plans are to support full step, half step--jumper selectable for each axis. Any comments?

    Bi-Polar or Uni-Polar - or both? that seems to be the bugger on most boards I've seen.

    I am planning on two phase bi-polar. These seem to be the most popluar motors and most cost effective. A design that supports more than one type of drive is more expensive. Comments?

    I have been reviewing the modular approach and my parallel port connector is completly used up (There are about 15 or so pins on the parallel port that can be used for I/O) To add more motors or more limit switches and the like you would need another parallel port card in your computer and another parallel port on the controller. It seems it would be just as easy to have two controllers one for each parallel port and if the second controller did not need all three motor drive circuits then you could only populate the circuits that you need. See below my parallel port pin out definition and see if you agree:

    Pin # Signal Input or Output

    1 GPI1 OUT
    2 DIR X IN
    3 STEP X IN
    4 DIR Y IN
    5 STEP Y IN
    6 DIR Z IN
    7 STEP Z IN
    8 Spindle IN
    9 GPO1 IN
    10 Panic OUT
    11 Home X OUT
    12 Home Y OUT
    13 Home Z OUT
    14 Limit OUT
    15 Jog A OUT
    16 Jog B OUT
    17 Touch OUT
    18 No Connect
    19 GND
    20 GND
    21 GND
    22 GND
    23 GND
    24 GND
    25 GND
    26 GND
    27 GND
    28 GND
    29 GND
    30 GND
    33 GND

    Take care,

    Greg

  14. #14
    Join Date
    Jun 2004
    Posts
    131
    Phil,

    In response to your message:

    A couple of things, a simple 3 term regulator for the 5vdc would be much preferred to a seperate input. Second I would advise agains a mechanical relay, switching high inductive currents on a logic board isn't a good idea. Many places you would get by with it some not. Besides solid state relays are not that expensive. The limit switches, hardware diswable or just going back to the PC?

    I have been looking at relays that control the spindle and agree with you that you do not want to switch that on the controller board. I had planned to use a small relay rated at about 2 amps 30V that could be used to switch a full size 120 Volt 16 AMP type relay off board. What are your thoughts regarding this? You mention a solid state solution. Would this be on board or off board?

    The limit switches go back to the PC, but the panic switch and the limit switches are also hardwired to the drive enable on the controller chip and would shut down the motor drivers with out software intervention. This is to prevent a motor run away. This is often a UL saftey requirement on boards of this nature.

    Also a simple three terminal regulator could be added to the board, it would also require some DC decoupling capacitors (filtering) and these can be big and eat up a lot of board space, but the parts would not have to be stuffed if one did not want to use them. I think PCB boards cost about $2 per square inch or so including fabrication, and so this might be a $4 PCB cost adder, what do you think?

    Thanks for the input,

    Greg

    Take care,

    Greg

  15. #15
    Join Date
    Jun 2003
    Posts
    2103
    Greg what would the total cost for 3axis components be? Estimate of course since the builders would have access to different sources. One suggestion that I think would help the readers of this thread. When you respond to someone's post and include it in your response, please use " as it sure helps to follow the dialog. Not a flame just a request . In regards to this request, are you intending to support full, half and quarter or just full and half?

    Mike
    No greater love can a man have than this, that he give his life for a friend.

  16. #16
    Join Date
    Jun 2003
    Posts
    3312
    Greg,

    In response to your message:



    I have been looking at relays that control the spindle and agree with you that you do not want to switch that on the controller board. I had planned to use a small relay rated at about 2 amps 30V that could be used to switch a full size 120 Volt 16 AMP type relay off board. What are your thoughts regarding this? You mention a solid state solution. Would this be on board or off board?
    Off Board, most SSR's can be driven with 20ma or so:

    Example : http://www.futurlec.com/Relays/SSR10A.shtml

    One discrete open collector driver output from the board.


    The limit switches go back to the PC, but the panic switch and the limit switches are also hardwired to the drive enable on the controller chip and would shut down the motor drivers with out software intervention. This is to prevent a motor run away. This is often a UL saftey requirement on boards of this nature.

    Also a simple three terminal regulator could be added to the board, it would also require some DC decoupling capacitors (filtering) and these can be big and eat up a lot of board space, but the parts would not have to be stuffed if one did not want to use them. I think PCB boards cost about $2 per square inch or so including fabrication, and so this might be a $4 PCB cost adder, what do you think?
    www.olimex.com DS approx $1/sqinch prototype.
    My 3977 proto board from them:

    http://webpages.charter.net/pminmo/board2.jpg
    To me it's worth it for several reasons. Grounding, wiring noise, simplicity and elegance.




    Thanks for the input,

    Greg

    Take care,

    Greg

  17. #17
    Join Date
    Mar 2004
    Posts
    37
    quote:
    --------------------------------------------------------------------------------

    My current plans are to support full step, half step--jumper selectable for each axis. Any comments?

    Yes you really should use 1/4 or 1/8 microstepping for a smoother running motor.

    quote:
    --------------------------------------------------------------------------------

    A design that supports more than one type of drive is more expensive. Comments?

    No depending on how you implement the controller it can be made to support Unipolar and Bipolar very easily at no extra cost.

    Greg Mary what chip set are you planning on using?

    Decoupling of the micro and associated IC's is not an option and always needs to be done. A well layed out ground plane or ground copper pour is always required to keep the switching noise down. Using a small relay onboard to switch a line operated device (120 volt AC) is not an issue. We have done it for years in all our Air conditioning and furnace controls, 30A 240 V. A solid state relay, or a TRIAC and an optocoupler drive like a MOC3052 is a good idea but remember it can oly be used to drive an AC circuit. A relay can switch AC or DC.

    Greg Fill

  18. #18
    Join Date
    Jun 2004
    Posts
    131
    Greg

    quote
    __________________________________________________ ___________________


    Off Board, most SSR's can be driven with 20ma or so:

    Example : http://www.futurlec.com/Relays/SSR10A.shtml

    One discrete open collector driver output from the board.
    __________________________________________________ _________________________

    Cool, I like it

    Greg

  19. #19
    Join Date
    Jun 2004
    Posts
    131
    Greg Fill

    quote
    ----------------------------------------------------------------

    A design that supports more than one type of drive is more expensive. Comments?

    No depending on how you implement the controller it can be made to support Unipolar and Bipolar very easily at no extra cost.

    Greg Mary what chip set are you planning on using?
    ------------------------------------------------------------------------------------------

    I am planning to use a dual chip set: a controller and two full bridge driver chips per motor.

    I am planning on using the ST L6203 and the L297

    http://rocky.digikey.com/WebLib/ST%2...0Data/L297.pdf
    http://rocky.digikey.com/WebLib/ST%2...6201_02_03.pdf




    This design meets MY needs, but I would like this to be an open source, general purpose solution. This chip set supports half and full step modes. If there are some better chip sets or more flexible chip sets I am game.... From reading other threads it seems that half stepping is not good enough.

    Give me suggestions....


    Thanks,

    Greg

  20. #20
    Join Date
    Jun 2004
    Posts
    131
    The purpose of this thread is to establish a specification for an open source hobby CNC controller. I have gotten input that is should support more than one type of motor. To do so I need input as to the other types of motors is should support. The current motor spec is as follows:


    The controller will be designed for contant current control of inductive load two phase bipolar stepper motors. Each of the three motors will be controlled by two signals: step and direction. The chopper oscillators for all motors will be synchronized to mainimize ground noise problems. Each motor drive can be individually configured for full sep mode or half step mode. The drivers will supply 5A max peak current to each phase and 4 Amps toal RMS current. The peak load current may be set with on board potentiometers or fixed value resistor dividers. The controller will be able to supply up to 48 Volts across each motor phase.

    If it is thought that other motor types should be supported then they should be specified in the same level detail as the one above.

    I have received input that the board should support both bi-polar and uni-polar motors.

    I have also received input that half step and full step is not fine enough control. The the board should support quarter step and maybe even eighth step.

    Any input before I finalize the motor types that the controller will support?

    Thanks,

    Greg

Page 1 of 2 12

Similar Threads

  1. PIC Open source Servo Driver Schematics development?
    By Rossz in forum Open Source Controller Boards
    Replies: 90
    Last Post: 10-26-2011, 09:37 PM
  2. Web space available for open source cnc
    By ShayArnett in forum Open Source Controller Boards
    Replies: 1
    Last Post: 01-11-2005, 04:31 PM
  3. 3D or 2D MAXI Style Hobby CNC PWM Controller!
    By icm in forum News Announcements
    Replies: 1
    Last Post: 01-05-2005, 03:36 PM
  4. OPEN SOURCE DIY CNC "thing"
    By High Seas in forum DIY CNC Router Table Machines
    Replies: 45
    Last Post: 05-01-2004, 06:53 AM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •