Hello Guest it is January 28, 2022, 04:40:20 AM

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - rickturner646

Pages: 1 2 »
Feature Requests / Re: conditional execution
« on: May 22, 2011, 04:11:57 AM »
I know - that's what I have ended up doing. VBS does at least support sensible language features.

Feature Requests / conditional execution
« on: May 14, 2011, 12:28:38 PM »
About time some conditional execution features were added to Mach - I found to my horror today that even the latest release does not support even the most basic of conditional functions.  :o

I really cant believe that in this day and age we're reduced to the equivalent of trying to programme the internet in Assembler and doing web page graphics by manually setting every bit in a bitmap image - this sort of thing went out over 30 years ago in the rest of the computing world.

Every other 'dialect' of gcode supports these functions, and to be taken seriously in the future Mach needs to support at least the obvious capabilities - 'IF-THEN-ELSE' and 'DO WHILE' along with the logical comparison functions (GT, GE, LT, LE, NE, EQ).

 I need to machine some parts that have repetitive reatures and thus simple to do in a loop - six lines of code - but bloat to a couple of hundred lines if I have to expand it out manually. Yuk. Not to mention the vastly increased chances of an error (typo) and additional maintenance overhead.

Named variables (rather than #1 etc) would not go amiss either. Collectively these changes would at least bring Mach up to par with 1970's programming languages - and maybe sometime we might even catch up with the 21st Century!


I tried velocity 80 and acceleration 125, and it's the closest that I've gotten yet - the calibration curve is near linear at the bottom but then swings up and away from the straight line, so that actual rpm is lower than the commanded one at higher revs - S1000 gets me 893 rpm actual, for example.

I have tried auto-calibrating the spindle but this does not get rid of the error.

I also put the Spindle3 card I have in place of the Spindle2 and get pretty well exactly the same results - a couple of rpm difference in actuals.

I'm beginning to wonder if there might be a problem of some kind with these controller cards.


Yep, the connections are labelled as the a-axis, but it's set up as a spindle (and not as a mill-style rotary axis).

The Spindle2 board is a slightly older version of the one you looked at - no real difference except for one less set of output connectors. I do have a Spindle3 card that I will try if I cant get it to work - it will eliminate the possibility of a dud card, if nothing else.

I may have fixed the counter issue. At least, I think so - I wont be entirely confident until I've had a chance to test it out some more.
Setting the index bounce to zero (as per the discussion in this thread: http://www.machsupport.com/forum/index.php?topic=6069.0) and increasing the device voltage to 12v (giving a signal voltage of ~5v on the output line) seem to have done the trick.

According to the now-hopefully-correct spindle index, my spindle maxes out at 1876 rpm, which makes sense - 2000 pulses/sec from the inverter at the full 10v, a 2-pole motor, divided by the pulley ratio which is just over 2.1

So, I set the pulley speeds to min 30 and max 2000, then ran a spindle auto-config and it completed successfully although giving me a curve that was a bit odd - it hit max rpm by around 50% of the control value, after which increasing the S value had no effect on the spindle speed. So I saved this curve, and now.... I still get the wrong rpm values - S50 commanded gets me 68 rpm actual, and the difference increases with speed - S1000 is actually running at 1579 rpm.

I am now trying to figure this out, so any suggestions welcomed as always.


Motor is a 250v 3ph one controlled through a Combivert 52 inverter. Breakout board is a Uniport v2 and spindle control board a 'Spindle v2', both from diycnc.co.uk.

The spindle board sits on the a-axis and converts the step/dir signals to 0-10v to control the inverter. Mach is configured to use a step/dir spindle and the port/pin for the motor are set to those that the breakout board uses for the a-axis. I can turn the spindle on and off, control rotation direction, and increase/decrease the speed. So, I know that I can communicate with the spindle and that the commands being issued do predictable things. Also, I've used these boards for other projects, where they work fine, so I dont think that it's board related.

I am first going to see if I can figure out why Mach isnt picking up the index pulse correctly (because hopefully, if I can fix this, I can then auto-calibrate the spindle and get rid of the speed problem). My encoder is a slotted disk with an opto-switch. Putting a meter across the switch output gives a kick once per revolution so this is working. The switch output goes to input 1 on the breakout board and Mach has its 'spindle index' configured to look at the port/pin for this input. Clearly, Mach gets a signal as it displays an actual rpm - it's just that the number it displays is wrong, and has little relation to the true rotational speed.

So, I am planning to increase Vcc on the opto-switch from 5v to 12v to 'boost' the output signal to a higher voltage, and see if this helps - it's possible that pulses are getting 'lost' at the moment. However, whilst this would explain underspeed readings (saying say '40' when the real speed is 50) it does not explain why I am getting overspeed readings like the one I described in my previous append - 17rpm (true) being reported as 400-450 rpm. That would need additional pulses.

It's not RFI either - the cable is shielded with the shield connected to ground.


Thanks for the suggestions - I tried both but no luck.

Index debounce made no difference at all.

Changing the steps per value allows me to plot a curve of 'steps per' vs measured rpm that looks sensible, and changing the pulley max speed moves this curve up and down as you'd expect, but it's still wrong - S10 gets me 48rpm, for example, at 4000 steps per and 2500 rpm pulley max.

If I set the pulley ratio to 1 (the speed encoder is on the spindle itself) the index speed is correct most of the time (it would, in the case above, say 48) but at lower actual speeds it goes haywire and gives nonsense values - at a (stopwatch measured) 17 rpm the index insisted that the speed was varying between 400 and 450 rpm. It's as if Mach loses track of where it is, somehow. A meter across the opto-encoder pulses happily once per revolution, so I know that the device is working ok.

So, I still have the same problems as before.

I did try to auto-calibrate the spindle but had to abort the procedure - Mach started drawing a 'calibration curve' that was in fact a near vertical line, and having a massive 12" power chuck spinning at several thousand rpm two feet away is a bit hair-raising, to say the least.


I need some help configuring Mach to correctly operate the spindle on a lathe. I have two issues to solve, which I suspect may be related:

1) the speed the spindle turns at doesnt match the speed specified in the command; if I enter for example M3 S10 on the MDI line I get a spindle speed of around 30 rpm. I have tried adjusting the 'steps per' figure in the motor tuning config screen but so far, have not been able to get the two to match. In fact, changing the steps per doesnt always behave logically - one would think that doubling steps per would halve (or double) the spindle speed but this does not seem to be the case.

2) the 'actual speed' reported by Mach is incorrect; in the case above (M3 S10 / ~30 rpm) I get the spindle speed reported as 87 rpm actual - which it patently isnt, just from looking at it. Also, if I enter say M3 S100 then I'm getting around 1500 rpm on the spindle, but the reported actual is 125rpm. My speed sensor is an opto-switch and slotted disk, and this is working just fine - if I put a multimeter across the input terminals that it connects to on the breakout board, I can see the needle 'tick' every time the slot goes past. This sensor is attached to input 1 on my (Uniport) breakout board, and that input maps to (port 1) pin 10, so I have configured Mach's 'index' to look at this port/pin.

It's driving me slightly nuts trying to figure out what is going on, so any pointers or help will be greatfully received!

Regards, and thanks in advance,


General Mach Discussion / Re: "PWM Bumped to Minimum Setting" message
« on: July 03, 2008, 04:34:20 PM »

I am not sure who makes the boards for Syil, but I have asked them. Judging from the markings on the chipsets they are chinese made. The machines come pre-assembled so it's not as if I have sourced the parts myself.

I'll attach pictures of the stepper driver and interface boards here, perhaps you can recognise them.

I'll also attach the xml file as requested.



General Mach Discussion / Re: "PWM Bumped to Minimum Setting" message
« on: July 02, 2008, 04:59:49 PM »
Hi Brett,

it's on pulley 1, min 300 rpm, max 3500 rpm, ratio 1.

Note though that the mill does not have pulleys - it's a Syil x4 so has a direct variable speed drive (300-3500 rpm, as it happens).

The config file is the one that Syil sent me, and this setting is one that came with it.


General Mach Discussion / "PWM Bumped to Minimum Setting" message
« on: July 02, 2008, 03:11:26 PM »

I'm having trouble getting the speed on my mill to match what is set in the g-code, and when I do so I get the information message in Mach "PWM bumped to minimum setting". I cant find any explanation for this message in the docs or online, so can somebody please tell me what it means, and how I fix it?

The speed problems I am having are a bit odd. If I put say 'S500' into my g-code, the mill will start up at 740 rpm. If I put S900 into the code, then I will still get 740 rpm. If I then use the manual override in Mach, and boost the speed, it will do nothing for two or three clicks and I will end up with a situation where Mach says 'normal speed 900', 'speed override 1140', and a mill still doing 740 rpm...... At some point, the speed override does kick in but incorrectly - in this case, upping it again to say 1200 manually will make the mill jump to maybe 1420 rpm. This is driving me nuts, as you might imagine.

I've tried auto-calibrate on the spindle speed, but it simply does not work. Sits there indefinitely doing nothing.

All suggestions etc gratefully received!



Pages: 1 2 »