What I believe is happening: Each axis has a motor idle circuit, that is intended to lower the power for the motors (If J4 is not installed), but also switch out the sync functionality of the chip. Turning off the sync functionaliy is used as described in the data sheet for the bip mainly to reduce noise from the motors when they are in hold mode (not running). the Sync function does some syncronisation between the Aa output and the Bb output. for more details please read the datasheet.
So reading the datasheet, I found the following section:
///////////// . Chopping Synchronous Circuit The SLA7070M series has a chopping synchronous function to protect from abnormal noises that may occasionally occur during the motor-Hold state. This function can be operated by setting the SYNC terminal at high level. However, if this function is used during motor rotation, control current does not stabilize, and therefore this may cause reduction of motor torque or increased vibration. So, Sanken does not recommend using this function while the motor is rotating. In addition, the synchronous circuit should be disabled in order to control motor current properly in case it is used other than in dual excitation state (Modes 8 and F) or single excitation Hold state. //////////////
So looking at the text its clear that they do not recommend switching the sync pin during motor operation. however the board is set up so that its the step pulses that is used to trigger the change on the sync pin - and the further more, the sync pin is not flipped immediately, but flipped after a RC circuitry (R9+C15 on X axis as example) is charged, so the enabling of the sync is happening a slightly after the chip is recieving pulses...
In the application notes it DOES suggest to use this kind of circuitry with clock sence and RC circuitry, but it is stated that: ... The RC time constant in the circuit should be determined by the minimum clock frequency used... and when you build the circuitry the RC delay is set to 10 seconds?
What I did: I didnt care about motor noice, so I wanted to be able to controll this myself. BEFORE the pulses would be send to the chips..
There will be many ways to fix this issue on the board, where you would retain the auto 10 sec powerdown, but controll the sunc pin only etc etc.. but since I didnt use the powerdown function (my J4 jumper is installed), I did it the following way.
The smith trigger/inverter chips Q8 and Q9 (74HC14D) is to be located.
On each chip, the connections going to pin 2 and to pin 12 on both Q8 and Q9 have to be cut. There are only one copper track going to each of these pins, the other end of the copper track should end at the middle pin on the BS250P FET sitting just by its side. - again.. this connection should be cut. -> verify with a ohm meter or the like. (pin 2 copper track in on the bottom side of the PCB, pin 12 copper track is on to upper side of the board)
Now take a thin wire and solder/connect the middle pin (G for Gate) of all the 4 BS250P (Q1, Q3, Q5, Q7) fets together.
Now find a 10K resistor, and solder it to the middle pin of one of the fets you soldered a wire to pin 7 (GND) of one of the chips.
At this state the mod is finished, but if you connect the middle of one of the gates on (Q1, Q3, Q5, Q7) to +5V, you will switch ON the "Power down + Sync Disable".
Naturally this means that if you pull this connection to a switch on the front panel, you will be able to externally enable/disable this feature.. but I think mine will be keept switched off, to keep the motors running as smoothe as possible regardless of how long time I used it last..
Last words: I or the designer of the board will naturally not be held responsible for any issues you may encounter under or after this modification or equipment related to this. I can only say that I have dont this exactly on my own board and it fixed my problem.
I have discussed the problem with the designer of board, but as I was told that he only used TurboCNC? or MACH3, and not EMC2, he could not give me suggestion to what the problem was, but said that it most likely was timing isseus with EMC2.. however after increasing the values of EMC2 to above rediculus (but would still run perfectly, but still saw this issue), I tried to look elsewhere.. and came up with this mod. The designer of HobbyCNc? told me that some people have reported this before, but it was very seldom seen, but they alledgely fixed it by changing the timing. But the way I se it, no timing settings can change the fact that the SYNC pin is changed afterthe step pulses is send to the chip. Since there are so many variables to change, it will become quite a detective job to pinpoint the exact difference to their system and us unfortunate... therefore I will describe my vital system components, and maybe someone experience the same and with partial same setup...
- HobbyCNC Rev1 board. - Set to 0.280 volts ref voltage (2A) on all axis. - All axis set to 1/4 step - 305 oz-in motors (A-azis is 208 oz-in) - 4:1 beltreduction from motors to leadscrews. - Ballscrew leads 20mm pr rev. - Jumper pin J4 is attached - EMC stepconf setup with 2000 ns on all variables (This is actually supported by the the datasheet of the chip.)
Link to datasheet of the SLA7070M series ships: http://www.allegromicro.com/en/Products/Design/an/2821003.pdf
Best regards Kim Mortensen
Additional note by BGlackin This board was also investigated by a MACH user encountering lost steps and plunging Z axis problems. THe link is here:
I personally used this modification (jumpering a few components with no physical alteration to the board) and it eliminated the issues I had with the HobbyCNC board. It now runs flawlessly and the motors are stone cold should I leave the system up over a weekend. As with all changes your mileage may vary and modifications of the board may void any implied warranty for which I cannot accept responsibility.