Current Reduction, HobbyCNC - Mach3


Page 1 of 3 123 LastLast
Results 1 to 20 of 47

Thread: Current Reduction, HobbyCNC - Mach3

  1. #1
    Registered
    Join Date
    Dec 2006
    Location
    Boise, ID
    Posts
    118
    Downloads
    0
    Uploads
    0

    Default Current Reduction, HobbyCNC - Mach3

    MODIFYING THE HOBBY CNCPro DRIVER BOARD TO USE MACH3 CURRENT CONTROL

    Before I can suggest anyone try this modification, conscience requires me to fully explain the background and logic behind it. I will try to make it as non-technical as possible, and I apologize in advance for its length. Or, you can skip the whole thing and go straight to the mod instructions at the end; short story: It works. It's worth it.

    The circuit background:
    The Hobby CNC Pro driver board (hereafter HCNCP) uses a timing circuit that activates when it receives a step pulse. When activated, this circuit stays active for ten seconds. While active, it turns off the driver chip sync function, and holds the driver current at a high level. This is the normal 'step activity' state. If there is no step activity for ten seconds, the circuit 'times out', which turns on the sync function (reducing noise), and reduces the driver current (reducing heat). Each axis of the HCNCP has its own timer circuit which operates independently for that axis only.
    This timer circuit is taken from the Allegro data sheet for the SLA7078 driver chip. In that data sheet, the circuit's use was intended for the sync function only, not the combination of sync-current reduction. Also, the time setting of this circuit was suggested to be something just longer than the average time between step pulses; something like a few tenths of a second (or less), rather than ten seconds.

    The problem:
    So, why is the HCNCP's timer set for ten seconds? I suspect the reason for that is because the timer-sync function has been bundled with the current reduction function. Remember, the timers for each axis are independent, so, if there is no activity on one axis, it could go to reduced current while another axis is in motion. Due to a total lack of experience in such matters, I can't say for certain, but it seems to me that you would always want all axes at full current while any are in motion. And, I believe this is the reason for the '10-second' timer on the HCNCP: If any one axis is idle for ten seconds, it's likely that all cutting and motion has ceased, and it is OK to reduce the current.

    That's probably a pretty good assumption, so why is it a problem? Well, the issue is, that it is the step pulse that triggers the timer, turning off the sync and restoring full current. That step pulse also goes directly to the driver chip, which immediately starts the commanded step, and that action doesn't wait for the timer/sync/current functions to return to a normal operating state.

    So, what happens is, you have an axis that functions normally most of the time, but when it has been idle for ten seconds, it stalls when attempting to begin motion again. This apparently happens because the current ruduction or sync functions have not really turned off when the step action starts. The common suggestion is to "reduce the acceleration" or "reduce the step rate", which is an attempt to slow down the initial motion to allow the circuit to 'catch up'. Apparently this is inadequate in some situations, or the driver software doesn't support it; regardless, it's what's technically known as a 'kludge'.

    The difficulty in diagnosing this problem is that it manifests itself differently on different systems; and all systems are different: Different motors, screws, nuts, lubrication, cables, masses, voltages, currents, etc. Some will never see an issue, while for others it appears to be a persistent problem. In testing on my own system, it's pretty easy to set up a step rate and acceleration that will jog reliably when there are no delays between jogs, but which will nearly always stall when attempting to jog after a 10 second idle time. This can be nearly always fixed by reducing the acceleration, or, by disabling the current reduction (placing J4). Since the problem is fixed by disabling the current reduction, we can be pretty sure that sync is not a part of the stalling problem (disabling current reduction does not affect the sync function). The question is though, why, should I have to live with reduced acceleration all of the time to accomodate this single problem case, or, why should I have to forego the temperature reduction advantage of a reduced current control to get back that acceleration?


    The solution:
    Briefly, the object is to eliminate the timer circuit on the HCNCP, and control the current and sync function directly with the current reduction control built into the driver software. Mach3 has an optional current reduction output - I have no idea about other driver software.

    On Mach3, if you assign the current reduction fuction to an output pin, it will command high current before any step activity takes place, will remain at high current when step activity is taking place on any axis, and will switch to low current only when step activity has ceased on all axes. There is also no reason why sync couldn't be combined to operate off of the same control.

    There is zero information on this control in the Mach3 documentation that I have found. I asked about it once on the Mach3 forum and got no response. The above description is the way I assume it works, based upon setting it up and observing it's action with an oscilloscope. I could be wrong.

    What this means: If you use the Mach3 current reduction output to control the HCNCP, there will be no ten-second delay before low current and sync are activated; they will activate when there is no step activity for some period (short and unspecified, but observed to be no more than a few hundred milliseconds). Since there is no ten second wait, and it will switch to low current even for short pauses, this probably means lower temperatures and less noise overall. The difference is that all axes must operate in concert - all will go to low current/sync only when none are active. When step activity begins on any axis, all will go to full current, before the step activity begins. Which, I believe, is exactly the type of operation you really want.


    HCNCP hardware modification for Mach3 current control:
    Tools/materials required:
    • fine-tip soldering iron, solder
    • fine-tip diagonal cutters
    • fine-tip needle nose pliers, or tweezers
    • wire strippers
    • small hook-up wire, ~12 inches (solid, 28-30 guage wire-wrip wire would work best)
    No modifications are made to the printed circuit board itself. The modification is reversible simply by removing any added wires, and replacing the removed components.

    The modification may be applied to a single axis at a time. Try it on one, and if that works, it can be added to the remaining axes.

    Got all that? Ready? Confident? Here's how to do the mod:
    Remember you can mod and test one axis only, or all at once, your choice.
    • For the X-axis, remove R9 (100K), C15 (100uF), and Q1 (BS250P)
    • For the Y-axis, remove R10 (100K), C16 (100uF), and Q3 (BS250P)
    • For the Z-axis, remove R11 (100K), C17 (100uF), and Q5 (BS250P)
    • For the A-axis, remove R12 (100K), C18 (100uF), and Q7 (BS250P)
    • If you are building a new board, the mod is simple, just don't install the indicated components. On an assembled board, you have to remove those components, but it's not very hard. If you want to be extra careful, you can unsolder and remove the components without damage, but it's hardly worth the trouble; they are common, inexpensive components that are easily replaced. The resistor and transistor can just be clipped out using small diagonal wire cutters. The capacitor is likely sitting flush with the board without the leads exposed, so it will probably have to be unsoldered - you can alternately heat one leg at a time from the bottom and 'rock' it out a little bit each time.
    • Now, for each axis, run a wire from the '+' hole of the removed capacitor location, to the #1 input location (near the parallel port connector, just above where it says "no pullups"). You could run these wires on the top or bottom of the board; I chose the top so it would be easier to insure I had the correct locations. You could also 'daisy-chain' one wire from cap-to-cap-to-cap-to-cap-to-#1, but using four separate wires is just as easy. No particular routing of the wires is necessary; you'll note from the pictures that I threaded them through the legs of other components to keep them dressed against the board.
    • That's it!
    If you are not confident to make this modification yourself, or, don't have the tools to do so, I'd be happy to install it for anyone that wants to give it a try. No charge, just pay the shipping here and back.


    Configuring the Mach3 software:
    • from the main menu, select config\ports & pins
    • select output signals tab
    • scroll down to Current Hi/Low
    • column 1, click to get green 'enable' check
    • column 2, set to port #1 (or whatever port you're using)
    • column 3, set to pin #1
    • column 4, click to get green 'active low' check
    • Apply, OK, close, whatever
    The pics:
    • removed components and added wire. this is the Z-axis; the others are very similar.
    • all of the wires go to pin 1.
    • Mach3 output configuration screen
    • my current arrangement reduces the cutting area somewhat.


    Similar Threads:
    Attached Thumbnails Attached Thumbnails Current Reduction, HobbyCNC - Mach3-img_0201_800x600-jpg   Current Reduction, HobbyCNC - Mach3-img_0203_800x600-jpg   Current Reduction, HobbyCNC - Mach3-img_0206_800x600-jpg   Current Reduction, HobbyCNC - Mach3-img_0207_800x600-jpg  



  2. #2
    Registered
    Join Date
    May 2006
    Location
    USA
    Posts
    954
    Downloads
    0
    Uploads
    0

    Default

    is that a work bench or a joe cnc?



  3. #3
    www.joescnc.com joecnc2006's Avatar
    Join Date
    Aug 2004
    Location
    usa
    Posts
    3215
    Downloads
    2
    Uploads
    0

    Default

    very good info, will be interesting to see the machine running it, and see your final results on the mod.

    Joe



  4. #4
    Registered
    Join Date
    Dec 2006
    Location
    Boise, ID
    Posts
    118
    Downloads
    0
    Uploads
    0

    Default HCNCP - additional step modes

    Looking through the HCNCP instructions and the Allegro SLA7078 data sheets I noticed something curious: There are additional step modes available that aren't mentioned in the HCNCP instructions.

    Those instructions list the following positions for the step mode jumpers J1, J2, J3: (J4 is the unrelated current reduction disable jumper)
    • Full Step: ON, ON, OFF
    • Half Step: ON, OFF, OFF
    • 1/4 Step: OFF, ON, ON
    • 1/8 Step: OFF, ON, OFF
    • 1/16 Step: OFF, OFF, ON
    The other obvious combination of OFF, OFF, OFF; puts the drivers in Sleep mode, with no lockup current. A few users get worried when they first power-on their boards and don't get lockup; later finding out that at least one jumper is necessary to avoid the sleep mode.

    The Full and Half step modes selected by the jumper combinations above are called 'Mode F' in the data sheet. There are alternate selections for what is called 'Mode 8':
    • Full Step: ON, OFF, OFF (Mode 8)
    • Half Step: ON, OFF, ON (Mode 8)
    I'm not entirely clear on the difference between the modes. It appears that Mode F, provides 100% current all the time, while Mode 8 modulates the current to better balance it during a step. What I've read elsewhere indicates that Mode F gives maximum torque, while Mode 8 gives smoother operation. I suspect the difference would be imperceptable or nearly so, depending upon your system. Maybe worth a try though.

    Gary



  5. #5
    Registered DeWalt58's Avatar
    Join Date
    Feb 2004
    Location
    USA
    Posts
    138
    Downloads
    0
    Uploads
    0

    Default

    Great work Gary!!! I really didn't noticed the problem till I switched to the 1/2-8 (2 start) acme, but its there for sure and like you say turning down accel does reduce the problem but its still there, just a smaller hic-up. I'll do the mod for sure. Glad you investagated this problem, thanks!!!!!

    Cheers
    dewalt58



  6. #6
    Registered
    Join Date
    Sep 2007
    Location
    USA
    Posts
    740
    Downloads
    0
    Uploads
    0

    Default

    Thanks for the extremely detailed info Gary.
    I am one of the ones who had problems initially. Your threads in particular led me to try turning off the HCNC current reduction (J4) and this solved the startup issues.
    I will try this mod next time I get the solder station out.



  7. #7
    Registered pminmo's Avatar
    Join Date
    Jun 2003
    Location
    St. Peters, Mo USA
    Posts
    3312
    Downloads
    0
    Uploads
    0

    Default

    Allegro doesn't write the clearest data sheets in some aspects....I believe the difference between mode 8 and mode F is phase currents. Allegro runs full step at phase equal current angles, 45 degrees as example. So mode F has each phase at 45 degrees at 100% phase current and mode 8 has each phase at 70.7% phase current. They also change the off time between the two modes.

    An automatic current reduction isn't necessarily a good thing and it depends on the circuit of the driver. As for the 7078, the data sheet says that if the refence input value is changed, there needs to be a 100us delay between the time it changed and a clock pulse. So internally the 7078 must have an analog response time based on that 100us figure.

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


  8. #8
    Registered
    Join Date
    Jan 2007
    Location
    usa
    Posts
    219
    Downloads
    0
    Uploads
    0

    Default

    Thanks for the great work! I just got my 4 axis board and did this to it while building it. -Adam

    www.adambrunette.com - Converting My Harbor Freight X2 And My Jet Jvm-830 Knee Mill, As well as many other projects.


  9. #9
    Registered
    Join Date
    Dec 2006
    Location
    Boise, ID
    Posts
    118
    Downloads
    0
    Uploads
    0

    Default

    What, you mean it works? I was just joking...

    Gary



  10. #10
    Registered
    Join Date
    Sep 2007
    Location
    USA
    Posts
    740
    Downloads
    0
    Uploads
    0

    Default

    I must admit I never did try this. Things are working reasonably well now and I have not taken the time to open up the controller and get out the soldering station.
    Did anyone else try this? How's it working?



  11. #11
    Registered
    Join Date
    Aug 2007
    Location
    usa
    Posts
    19
    Downloads
    0
    Uploads
    0

    Smile New to cnc zone

    I had bought and extra hobby cnc boarda while back as a back up for my router cnc project that i am doing and just did the mod on that board will try it tonight or next week and leave feedback thanks for the great info. I have seen this problem on my other non modded board sometimes it seem like it just stalled, but the info here explains why this is happening.
    Thanks a lot for the GREAT INFO.

    Paul



  12. #12
    Registered
    Join Date
    Jun 2007
    Location
    Denmark
    Posts
    73
    Downloads
    0
    Uploads
    0

    Default

    Quote Originally Posted by gacrwell View Post
    The problem:
    So, why is the HCNCP's timer set for ten seconds? I suspect the reason for that is because the timer-sync function has been bundled with the current reduction function. Remember, the timers for each axis are independent, so, if there is no activity on one axis, it could go to reduced current while another axis is in motion. Due to a total lack of experience in such matters, I can't say for certain, but it seems to me that you would always want all axes at full current while any are in motion. And, I believe this is the reason for the '10-second' timer on the HCNCP: If any one axis is idle for ten seconds, it's likely that all cutting and motion has ceased, and it is OK to reduce the current.

    Interesting thread. I have always assumed that the independable current reduction on each axis was particularly meant to be smart when making a 2-d job, where e.g. the z-axis could be idle for several minutes at a time.

    It's a while since this thread was written, so it would be interesting to hear if anybody did try out this mod?


    CNCDevil



  13. #13
    Registered
    Join Date
    Jun 2007
    Location
    United States
    Posts
    54
    Downloads
    0
    Uploads
    0

    Default Re: board mods

    I made the modifications outlined above to my controller board and I want to report that it works great. I just built a Joe 4x4 hybrid mill and have been running it for a couple of weeks. I tried running with and without the jumpers in the j4 position and the motors stayed noticeably cooler with the jumpers removed- ie. when letting Mach3 power down the motors. I haven't noticed any missed steps.

    Thanks for the great write up and solution!

    Here is a picture of how I routed the jumper wires using the existing through holes to facilitate the soldering.

    Attached Thumbnails Attached Thumbnails Current Reduction, HobbyCNC - Mach3-controllermods-jpg  


  14. #14
    Registered
    Join Date
    Aug 2007
    Location
    usa
    Posts
    19
    Downloads
    0
    Uploads
    0

    Default

    I also have made this mod and found it to work as described (very good)
    Thanks a lot for the info on this mod and the research also the posts from others on this mod.

    Thanks Paulds



  15. #15
    www.joescnc.com joecnc2006's Avatar
    Join Date
    Aug 2004
    Location
    usa
    Posts
    3215
    Downloads
    2
    Uploads
    0

    Default

    Quote Originally Posted by Paulds View Post
    I also have made this mod and found it to work as described (very good)
    Thanks a lot for the info on this mod and the research also the posts from others on this mod.

    Thanks Paulds
    Thats great, I think we have 4 people now who are running the CNC 4x4 Hybrid with it and works well.

    Joe



  16. #16
    Registered
    Join Date
    Dec 2006
    Location
    Boise, ID
    Posts
    118
    Downloads
    0
    Uploads
    0

    Default

    I'm really glad to hear that this has worked out for people. Ironically, other than the initial testing, I haven't been able to use it myself. I injured my shoulder almost a year ago, doing the final assembly of my Joe's, and I haven't gotten over that yet.. perhaps looking at rotator cuff surgery. The Joe's sits unfinished.

    I thought I should add the following comments though. First, I have attached a schematic that shows the changes described, just so you can get a better idea of what's happening with the mod. The 'X's are the removed components, and the heavy lines are the added wires.

    Second, this schematic shows an added 10K resistor as a pull-up on the input pin. If your mod is working, I wouldn't worry about it, but some parallel ports might need a pull-up there. That resistor can be placed from TP1 to any nearby +5V point, or anywere else that effectively makes that connection. A handy place would be accross the Drain and Source pins on any of the removed transistors - those would be the outer two pins of the three-pin transistor pattern. I'll add a pic when I get around to doing this with mine.

    Finally, I completely endorse erniebro's alternate routing of the jumper wires; that neatens things up a bit.

    Gary
    http://www.linkedin.com/in/garycrowellsr

    Attached Thumbnails Attached Thumbnails Current Reduction, HobbyCNC - Mach3-hobbycnc-pro-m3-schematic-pdf  
    Last edited by gacrwell; 10-28-2008 at 02:03 AM.


  17. #17
    Registered
    Join Date
    Oct 2008
    Location
    USA
    Posts
    33
    Downloads
    0
    Uploads
    0

    Default

    I am looking over pictures of the EZ driver board and your schematics for the pro version and notice the only meaningful (as far as I can tell) difference is the Schmitt triggering of the 74HC14. Since you have an oscilloscope and the board there in front of you, could you tell me if the Schmitt trigger is truly necessary?
    It probably is, and that is why it is added, but even if not it seems as simple as adding a Schmitt trigger to the EZ driver board and run a 10K pullup resistor between the two and then out to pin 17 on the SLA7078M. Then the two would be functionally identical (except for the obvious 4th axis).
    If it seems my logic has gone awry please let me know, its just a thought to add increased functionality when only 3 axises are needed.



  18. #18
    Registered
    Join Date
    Dec 2006
    Location
    Boise, ID
    Posts
    118
    Downloads
    0
    Uploads
    0

    Default current control for the EZ

    Quote Originally Posted by imprez55 View Post
    I am looking over pictures of the EZ driver board and your schematics for the pro version and notice the only meaningful (as far as I can tell) difference is the Schmitt triggering of the 74HC14. Since you have an oscilloscope and the board there in front of you, could you tell me if the Schmitt trigger is truly necessary?
    It probably is, and that is why it is added, but even if not it seems as simple as adding a Schmitt trigger to the EZ driver board and run a 10K pullup resistor between the two and then out to pin 17 on the SLA7078M. Then the two would be functionally identical (except for the obvious 4th axis).
    If it seems my logic has gone awry please let me know, its just a thought to add increased functionality when only 3 axises are needed.
    Though I haven't seen one, I've glanced at the EZ pics too. Unfortunately the key bits that would be missing would be the FET transistors that switch on the current reduction (Q2, Q4, Q6, Q8). Pin 17 on the drivers only controls the sync. Pin 13 controls the current.

    However, current control could be added to the EZ; it would only take about a dollars worth of components and a small breadboard like they sell at Radio Shack. Remove three resistors from the EZ and wire into it at four points plus the power. I've included a schematic. It would not be terribly difficult to do, but it would require wiring up the transistors and resistors on the breadboard - it would depend on the user's comfort level with such things.

    Note that since the 74hc14 inverter is not in the circuit, the level of the pin 1 control in Mach3 would have to be set opposite to what it was for the other mod.

    Note also, that since I've never seen an EZ in person, I can't guarantee details of the schematic such as reference designators, but the circuit itself is pretty much a slam dunk - there's just no other way to connect it.

    Now, this wouldn't control the sync. Pins 17 on all the drivers are grounded on the EZ. So to do sync, traces would have to be cut to remove those ground connections. I don't know how easy that would be to do on the board. But sync isn't supposed to be used in microstepping modes anyway. (If one did want the sync, all pins 17 would just be separated from ground, and tied together and connected to P2 pin 1.)

    Gary

    Attached Thumbnails Attached Thumbnails Current Reduction, HobbyCNC - Mach3-hobbycnc-ez-m3-schematic-pdf  


  19. #19
    Member rlwoodjr's Avatar
    Join Date
    May 2006
    Location
    USA
    Posts
    168
    Downloads
    0
    Uploads
    0

    Default Setting current with this modification

    Do you follow the same procedure for setting the current?

    Also, just to be clear for those who are not using Mach software. If pin 1 is low, then you are in power reduction mode.... or when pin 1 is high you are in reduction mode?



  20. #20
    Registered
    Join Date
    Aug 2007
    Location
    US
    Posts
    9
    Downloads
    0
    Uploads
    0

    Default

    Does it matter weather U8 and U9 are left on or taken off the board?

    In post #1 they are on and in the picture on post #13 they are off.



Page 1 of 3 123 LastLast

Tags for this Thread

Posting Permissions

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


About CNCzone.com

    We are the largest and most active discussion forum for manufacturing industry. The site is 100% free to join and use, so join today!

Follow us on


Our Brands

Current Reduction, HobbyCNC - Mach3

Current Reduction, HobbyCNC - Mach3