Forum Replies Created
-
AuthorPosts
-
Chris SMember
OK, that seems to have fixed it, no more occurrences on four systems.
Thank you for your time.
Chris SMemberI’m doing some pretty extensive logging, these commands commands preceed G01X197.00Y128.00Z0.00F5000:
$azb=2
$ej=1
G28.2 X0 Y0 Z0
M02I’m using the TinyG more as an industrial motion controller than a CNC machine controller so I’m probably executing a lot of non-standard messaging. In trying to further debug this I looked at the computer serial input buffer I get a massive message dump from the TinyG when the G28.2 completes (the buffer swells to > 3,000 bytes) and I think the TinyG is losing it’s mind when that happens.
I think I know what’s happening with that message dump and this morning I’m going to make a change that should reduce or eliminate it. I’ll post back here with the results. I can email you the log file if you want but I don’t think I should post it here.
Thanks.
Chris SMemberThanks mate, you’re a legend.
We have ovens and pre-heaters and hot air rework stations here that will probably be used for this. More importantly we have people here who know how and when to use all that stuff, they’ll decide the right tools for the job.
Thanks again.
Chris SMemberRegarding 1.00 = ‘1’, I understand. Thanks.
{“gc”:”G28.2X0Y0″} executes the homing sequence. I guess it would be helpful if I explained what I’m trying to accomplish and why…
I have some systems deployed, temporarily, in a high-ESD environment. While I’ve taken every precaution I can (treating the floor and furniture with anti-static spray works surprisingly well, instituted ESD safety rules like smocks and ground straps) it’s been proven inevitable that people are going to shock these machines. When that happens the TinyG resets and my GCode administrator keeps sending commands because it doesn’t detect any error. This often leads to crashes.
I’ve determined that when this reset event occurs the $hom bit is set to FALSE (0). What I’d like to do is be able to query this bit between commands to detect that an error has occurred.
Or something with the same result that tells me the thing has lost its mind.
Thanks.
PS – ideally I’d fix the underlying problem but right now I have no choice but to keep the machines where they are.
Chris SMemberThanks, I’ll check it out!
Chris SMemberOnce I slowed down and looked one more time I found the footer array definition in a table here:
https://github.com/synthetos/TinyG/wiki/JSON-Details
{[array_ID/version,status_code,RX_received,checksum]}
Chris SMember“JSONese”
Ha, that’s good. I’m going to use it. Schema is probably a decent comparison.
I think that your link to “json_parser.h” is pointing me in a direction that will work. I’ll probably post in the issues section too.
Thanks.
Chris SMemberIt’s all working very well now, 100% functional using this motor/controller/power supply:
Here’s a table of commanded and actual revolutions per minute measured with a mechanically coupled tachometer, seems like it tops out at 10,000 RPM:
Commanded Actual
1000 720
2000 1832
3000 3110
4000 4340
5000 5570
6000 6649
7000 7552
8000 8301
9000 8915
10000 9442
11000 10013
12000 10530If it’s ever helpful to anyone here are the provisioning commands I’m sending at initialization:
G21 // Set the units to metric
$aAM=0 // Disable the A axis
$bAM=0 // Disable the B axis
$cAM=0 // Disable the C axis
$mt=10.00 // Set the motor idle timeout to 10 seconds
$1tr=31.4 // Set motor #1 (X axis) travel-per-revolution
$2tr=31.4 // Set motor #2 (Y axis) travel-per-revolution
$3tr=31.4 // Set motor #3 (Z axis) travel-per-revolution
$1pm=1 // Motor #1 (X axis) is always powered to hold its place
$2pm=1 // Motor #2 (Y axis) is always powered to hold its place
$3pm=1 // Motor #3 (Z axis) is always powered to hold its place
$3po=0 // Motor #3 (Z axis) polarity is NORMAL
$ST=1 // Set the limits switch type to NORMALLY CLOSED
$XSN=1 // Set the X axis minimum limit switch function to homing
$XSX=2 // Set the X axis maximum limit switch function to kill
$YSN=1 // Set the Y axis minimum limit switch function to homing
$YSX=2 // Set the Y axis maximum limit switch function to kill
$ZSN=1 // Set the Z axis minimum limit switch function to homing
$ZSX=2 // Set the Z axis maximum limit switch function to kill
$ASN=0 // Disable the A axis minimum limit switch
$ASX=0 // Disable the A axis maximum limit switch
$xTN=0 // Set the X axis travel minimum to 0 mm
$xTM=250 mm // Set the X axis travel maximum to 250 mm
$yTN=0 // Set the X axis travel minimum to 0 mm
$yTM=165 mm // Set the X axis travel maximum to 165 mm
$zTN=0 // Set the X axis travel minimum to 0 mm
$zTM=-60 mm // Set the X axis travel maximum to -60 mm
$xLV=80 // Set the X axis homing latch velocity to 10 mm/min
$yLV=80 // Set the Y axis homing latch velocity to 10 mm/min
$zLV=80 // Set the Z axis homing latch velocity to 10 mm/min
$xVM=1200 // Set the X axis velocity maximum to 1200 mm/min
$yVM=1200 // Set the Y axis velocity maximum to 1200 mm/min
$zVM=800 // Set the Z axis velocity maximum to 1200 mm/min
$xZB=2 // Set the X axis homing zero back off to 2 mm
$yZB=2 // Set the Y axis homing zero back off to 2 mm
$zZB=2 // Set the Z axis homing zero back off to 2 mm
$p1frq=5000 // Set spindle PWM frequency to 5000 Hz
$p1csl=0 // Set the clockwise spindle LOW speed to 0 RPM
$p1csh=12000 // Set the clockwise spindle HIGH speed to 12000 RPM
$p1cpl=0 // Set the clockwise spindle LOW phase to 0
$p1cph=1 // Set the clockwise spindle HIGH phase to 1
$p1wsl=0 // Set the counter-clockwise spindle LOW speed to 0 RPM
$p1wsh=12000 // Set the counter-clockwise spindle HIGH speed to 12000 RPM
$p1wpl=0 // Set the counter-clockwise spindle LOW phase to 0
$p1wph=1 // Set the counter-clockwise spindle HIGH phase to 1
$p1pof=0 // Turn off spindle PWM for devices that are not off at 0 phase. This tells the TinyG to comppletely turn off PWM when M5 received.Thank you for your assistance.
Chris SMemberYeah, I failed to do one of the first configuration steps: Set the axis motor current limit potentiometers. Still can’t follow instructions, just like elementary school. 😉
All taken care of now, running quiet and cool.
Thanks.
PS – This TinyG board is amazing. It’s so flexible and configurable and easy to implement. If it’s as robust as we hope we’ll be in business.
Chris SMemberSo far, so good. Auto homing works and I’m running X, Y, and Z without issue. The motors are getting a bit warm so I need to figure out why. My new spindle motor, controller, and power supply should be here today.
I’ll post here with results.
Thanks again for the assist.
Chris SMemberThank you for the replies.
The collet has two opposed set screws which press inward on a 4mm shaft. Nothing fancy.
That motor doesn’t seem to be designed as a spindle and I’m not sure what kind of runout you would expect to get.
I’m told that runout is not a concern.
We’re polishing a surface, not really milling. At this point I’m looking at turning a 9.5mm felt pad between 3,000 and 10,000 RPM with diamond paste and lubrication applied between it and the surface to be polished; 1.5 to 3.0 lbs downward pressure provided by a linear bearing. The z axis stepper motor doesn’t hold any weight because the spindle motor and a brass weight are mounted to a linear bearing on the z axis. I can provide a picture if you think it will be helpful.
…be aware that tinyG does not directly support them, but can with an interface circuit.
OK, thank you for confirming what I was beginning to suspect.
Thank you for the examples/non-recommendations. 😛 Now that I understand a bit more what to look for I can dig a little deeper.
-
AuthorPosts