Advanced Search

Search Results (Searched for: stepper spindle)

05 Mar 2024 04:56

ST-V2 5 Axis BOB clone, 2 different machines have recently failed enable high

Category: Driver Boards

I have a knee mill and a lathe controlled by the same LinuxCNC machine. Recently I noticed the lathe was enabling the steppers on startup. I think this resulted in burning up one of my closed loop steppers. 

Lathe has 2 steppers, rotary encoder and I just finished setting up pwm spindle control. BOB is only connected to PC through LPT cable. 
It has a 36V PSU with buck converted to 12V to power the BOB. The 12V has a second buck converter to 5V connected to PC , PCG. I confirmed on the lathe that the LPT port (disconnected) is setting pin 14 correctly, but I am always getting 5V on pin 14 of BOB. 

I ended up rewiring to pin 16 for the 2 drivers to get it back online. Now I am concerned that I will just keep burning out output pins.

The knee mill drives a relay off the enable pin that controls the stepper driver power supply. Recently I noticed the relay was always on but thought I had diagnosed it to the relay and not the input signal. 

Mill has 5 steppers, 48V PSU for drivers, PC PSU 12V and 5V connected to BOB 12V and 5V respectively.

I went to replace the relay for the mill and discovered it is the same problem. Pin 14 on the BOB is always high, now. It was working correctly before.

Both configurations share a common MPG handwheel and they are connected via 9805 chip and (2) SD-PEX10005 LPT cards.

What could cause these boards to fail in this way?

Any pointers appreciated, I am running out of parts and really need to be making things.

 
28 Feb 2024 07:10

Using HAL lincurve and offset to correct for a not-so-straight axis

Category: Show Your Stuff

I built my own CNC router with the long axis (I called it X for various reasons) at about 2.7m. It's all on 8020 profile and no matter how I tweaked it, I could never get the gantry to move in a straight line. It would shift reliably +/- 0.1mm (or about 0.005in), so I had an accuracy problem that was too large for my liking.

 

I got this same plot over and over at multiple Y locations, so lincurve  would be a good solution here together with offset .

Essentially, lincurve lets you define an equation of sorts, then lets you map the x value to the y value. In this case, I would map the input of my X of where the spindle is to the output offset I want to move my Y axis. The reverse of the error you see in the graph above. Then I use that offset and implement it in the controller using HAL offset.

The "equation" that you give lincurve however is not your usual y=f(x), but multiple points (up to 16) on the x,y graph. The lincurve link above explains it better than I would.

Here is a snippet from my HAL:
net y-index-enable => pid.y.index-enable
net y-enable => pid.y.enable
net y-pos-cmd => pid.y.command
net y-pos-fb => pid.y.feedback
net y-output <= pid.y.output

# Step Gen signals/setup
setp hm2_7i76e.0.stepgen.01.dirsetup [JOINT_2]DIRSETUP
setp hm2_7i76e.0.stepgen.01.dirhold [JOINT_2]DIRHOLD
setp hm2_7i76e.0.stepgen.01.steplen [JOINT_2]STEPLEN
setp hm2_7i76e.0.stepgen.01.stepspace [JOINT_2]STEPSPACE
setp hm2_7i76e.0.stepgen.01.position-scale [JOINT_2]STEP_SCALE
setp hm2_7i76e.0.stepgen.01.step_type 0
setp hm2_7i76e.0.stepgen.01.control-type 1
setp hm2_7i76e.0.stepgen.01.maxaccel [JOINT_2]STEPGEN_MAXACCEL
setp hm2_7i76e.0.stepgen.01.maxvel [JOINT_2]STEPGEN_MAXVEL

# ---closedloop stepper signals---
# Alter Y position dependent on X position in order to straighten X axis
setp x_straight.x-val-00 0.0
setp x_straight.y-val-00 0.04341242632711628
setp x_straight.x-val-01 607.2917010709281
setp x_straight.y-val-01 -0.0941465387965644
setp x_straight.x-val-02 1150.4857125892602
setp x_straight.y-val-02 0.06777797847289474
setp x_straight.x-val-03 1405.8006869324868
setp x_straight.y-val-03 0.10253790211206171
setp x_straight.x-val-04 1662.603323359967
setp x_straight.y-val-04 0.07153820324398952
setp x_straight.x-val-05 1963.5065299510084
setp x_straight.y-val-05 -0.04292886830166562
setp x_straight.x-val-06 2341.4825252892224
setp x_straight.y-val-06 -0.053798901184427095
setp x_straight.x-val-07 2435.0
setp x_straight.y-val-07 -0.10441928397325695
net x-pos-fb => x_straight.in
net y-offset <= x_straight.out
net y-offset => x_straight_offset.offset
net y-pos-cmd-raw <= joint.2.motor-pos-cmd
net y-pos-cmd-raw => x_straight_offset.in
net y-pos-fb-raw <= hm2_7i76e.0.stepgen.01.position-fb
net y-pos-fb-raw => x_straight_offset.fb-in

net y-pos-cmd <= x_straight_offset.out
net y-vel-cmd <= joint.2.vel-cmd
net y-output => hm2_7i76e.0.stepgen.01.velocity-cmd
net y-pos-fb <= x_straight_offset.fb-out
net y-pos-fb => joint.2.motor-pos-fb
net y-enable <= joint.2.amp-enable-out
net y-enable => hm2_7i76e.0.stepgen.01.enable

And voila:
 
25 Feb 2024 14:30

stepper driven turret with index and home switch

Category: Turning

HI folks,

I am currently retrofitting an emco pc turn 50 lathe, it was missing it's electronics ( including the turret board). So far I have the axis, spindle control and feedback figured out. A few years back I configured a pc 5 turret but it had no position feedback or homing. 
My turret setup is comprised of the original "cheese wheel" with the two sensors, and a newly added stepper to drive the turret, the turret needs to move back to switch position and then run in reverse to lock against the ratchet. It has 6 positions. 

It seems to me that the carroussel comp should be able to drive it, though I've been warned by another user that the double trigger on the locking move could be an issue. 

I am unsure of how to link the carroussel comp into my hal file to the tool change routine, as well as how to setup the separate stepgen for the turret, and lastly, as I am already using the encoder pins of the mesa 7i96s for the spindle feedback, can. I use regular input pins to read the position? (case 'I" in the component I assume ).

thanks

 
 
25 Feb 2024 06:00 - 25 Feb 2024 09:48

ESP32/S2/S3 LinuxCNC Controller (6 axis hardware step gen), USB plug-and-play

Category: Computers and OS's

With mesa it's streaming data as fast as possible to LinuxCNC but that was before offloading to hardware became a thing.
Which is fine.

However with offloading to external hardware you can produce the very nearly the same results with IOs being monitored in real time (down to 50 microseconds) and any changes get raised to host immediately + transfer delay.

Encoders are counted in hardware and updated values are sent to the host the moment they change or based on a frequency depending on the application. 99% of use-cases won't require a sub-millisecond constant streaming of data from whatever peripheral you wish to monitor. Specifically, for axis related motor encoder positions, they must be counted in hardware on the MCU with the data streamed back to the host, the good news is that it already does via the current built-in stepper position feedback and so adding motor encoders would be fairly straightforward. This allows for LinuxCNC to continue to perform closed-loop PID control of motor positions.

Spindle/lathe RPMs for rigid tapping would only require a certain interval - say a 5ms period - the current RPM of the motor feeds into a tuned PID on the host (as long as the encoder pulse counts are handled on the MCU in hardware).

MCU hardware handles all aspects that need to be done at a regular intervals. LinuxCNC simply processes the received data as it arrives from the MCU however LinuxCNC can continue to run its own loops for hal components as normal.

There will always be latency with any encapsulated medium, however given the use-case, all IO is monitored via interrupts, hardware counters and as a result the latency between host and MCU is less of an issue. 

The UDP latency via USB is around a 1.2ms, which when compared to a native ethernet interface at 0.47ms approx is actually very good.

With regards to motion -
All axis commanded position is continuously streamed to the MCU via UDP.
When there is a positional difference the command is added to a pulse queue and sent to the RMT peripheral for step pulse generation based on the positional difference.
The firmware runs in absolute position mode continuously but at high speed (try not to compare to velocity vs position mode in LinuxCNC since this is done in hardware regardless of motor velocity) The ESP32 RMT hardware peripheral maintains a track of the pulses which are converted to a motor position co-ordinate and can be read at any time.

As the host and MCU can easily send 1000 UDP packets per second - each of which include every axis' new commanded position (not pulses, actual axis co-ords) in each packet then positional errors are a non-issue.

Axis position feedback is sent to LinuxCNC immediately once a new commanded position packet is received or until the motor(s) reach their targeted position co-ords. Equally LinuxCNC hal ensures the motors are always at their desired position by comparing desired vs actual position and ensuring packets are generated to ensure they match in every loop. If they don't it will throw a joint follower error.

I will be providing axis follower error scope outputs in LinuxCNC to prove this soon - I'm currently tweaking the LWIP stack it so it's a nice and true flat line.

I could have probably just said "its all offloaded" but that would have been easy!

Hope I've explained it clearly enough

EDIT: formatting and reworded
EDIT2: cornholio, RE USB BULK transfers, The wording on that link is very generalised. It depends on many things, but realistically speaking that's less of an issue today. You really need to push the bus alot for timing to even to start to become even a minor issue. It would require lots of high IO devices on the same roof hub, e.g  disks, 4k webcams etc, then *maybe* you'd see the odd stalled EP. The firmware handles those conditions anyway. Please take note of what I've mentioned above. The proof will be once I have optimised everything and show the results in detail via datasets. Please do take the time to watch the more recent YouTube videos that I've published for an initial idea of performance. The iperf udp jitter results I have should help ease any concerns. Will share in due course...
EDIT3: Do remember its use case specific. The data sizes exchanged between host and MCU over USB is tiny, less than 100 bytes per packet. That helps to additionally ensure the transfers are executed fast. I've tested a 1500 bytes packets (standard mtu) at 10k pps and latency is stable. Its all pretty standard stuff these days. 4G/5G dongles etc
18 Feb 2024 23:13

Mesa 7i76E and YL620 VFD: Reference Voltage Not Dropping to 0 and Maxing at 8V

Category: Driver Boards

Hi,I have two boxes for my self-built CNC. One contains the Mesa card, stepper drivers, and 24V/36V power supplies, while the other contains the VFD. Both boxes are connected with a ~2m cable. I believe it is connected correctly. Spindle+ to 10V, Spindle Out to V11, and Spindle- to GND.Just by powering everything up, the spindle out reads roughly 1.2V, and if I start the spindle, it reads 8.1V. Also, the VFD shows ~20-40Hz in the off state and ~350-370Hz in the on state. That is obviously not what I want.

I tried setting 03.06 to 150 and 03.07 to 800, but that didn't help
 Did I miss something? Is the cable simply too long?
17 Feb 2024 19:34

MESA board recommendations for 7 axis

Category: General LinuxCNC Questions

I have found plenty of posts on here about picking mesa boards, but I am not really sure what specific I/O, outputs, etc. I need to make my machine work. I plan to have 7 steppers controlling a 5 axis machine. The X and Z axis will both have two motors, and each other axis will have 1. I don't need all that much I/O, but I would like to have individual homing/limit switches for each of the 7 axis, if that is possible. Other than that I think I will only need spindle speed. I do not know if I should control it with parallel or ethernet, or what the advantages of each would be. Would it be possible to get a parallel bob work for my purposes? Any help is appreciated!
16 Feb 2024 19:11

servo as spindle connected to mesa 7i96s db25

Category: General LinuxCNC Questions

hello all. I am in the process of building a small cnc milling machine (350x450x700mm-y,x,z) and im using a 1000w ac servo for a spindle motor. my question is; how do i configure the mesa 7i96s so i can control the servo through the db26 connector connected to the parallel port of the drive? i bought a db25 to parallel port connector that will plug right into the servo drive. i am new to linux cnc as this is my first build. i attached the manual for the drive. there is little to no info on this drive on the interweb but i would assume its not too different than any other drive of the same type. what is the 10vdc for, that a daughter card would provide? also, what is the difference between the 7i96s and the 7i96 as there is a ton of info on the 7i96 but very little info on the 7i96s card? i have two of these servos and plan on using the other one as a fourth axis in the future. for now, i am using nema 23 steppers to drive the x,y,z with cw5045 drives, but plan on upgrading to servos or a closed loop stepper system. what would be the best option for a daughter card for my application? my understanding, from reading the 7i96s manual, is the db25 pins can be configured in any way i see fit as they are fpga and have endless possibilities. i guess i can't upload the entire manual as it is too large, but here is the part number of the servo 80F-0330TBL-Z. thank you in advance for any info you can provide. please excuse my ignorance. i know im making this more complicated than it needs to be.
14 Feb 2024 02:39

Retrofit small 5-axis mill - Ideas for EtherCAT drives

Category: EtherCAT

This is going to be long. Skip to the end for the question.

I bought a tiny 5-axis mill recently, sight unseen. I didn't know what to expect, but knew it would be a fun project regardless of what I got. What I got was a large crate with a lot of aluminum, ballscrews, and 2x harmonic drives. Of course, there is a spindle. It's a 1.2 kW 60,000 RPM IMT with ATC, accepting from 3 mm to 1/4 in collets, and a nice spindle drive.

The controls were B&R Automation - using their MAPP CNC modular approach. It's an extremely well designed group of components, but more PLC and factory automation than CNC machine. I didn't get the machine's deep unlock code. I fantasized about a code breaker - a 3D printer driven 'finger' and a Keyence color sensor to sense the absence of the "Wah, wah, wah" wrong code dialog to pound away on the touchscreen. I also downloaded B&R's Automation Studio and got familiar. I'm not a machine integrator, and would have zero support to recreate the machine. So, I've chosen to take the OpenCNC route instead. I'm choosing to go EtherCAT. I'm looking for advice on the controls.

Axes X, Y, Z are pretty conventional. The A & B are harmonic drives. A is kind of roll, and B is pitch, mounted to the A axis. This was a dental mill, so the workpiece is roughly the size of a human jaw. I'll make some changes to that. I'll add some risers to increase the rotational travel of the B axis (currently ~60 degrees).

The B&R controls include 5 NEMA 23 steppers with A/B/Z encoders on them. The encoders are unusual, in that their supplies are 24V.

My first thought was to go Leadshine - closed loop steppers. We planned out 2x 2-axis 2CS3E-D507 drives + 1 single axis CS33-D507. These are 7 A/phase drives and require power supplies. Unfortunately, the paired motors do not have Z-channel encoders. This is surprising, given the level of sophistication for the package. I'm sitting on the quote, and I'm seeking advice.

- Closed loop steppers (rtelligent, Leadshine) or open loop EtherCAT + encoders for position verification?
- Do I need a Z pulse? Can I get away with homing to a switch, or am I going to regret that?
 
09 Feb 2024 03:13

Which Mesa Card Should I Buy?

Category: Driver Boards

4-axis mill
7i76e/7i73
Steppers on XYZ
Servo on harmonic A
VFD spindle w/1:1 timing belt drive - motor encoder goes to 7i76e
PDB
18-station carousel ATC, stepper driven w/5:1 planetary

 

This browser does not support PDFs. Please download the PDF to view it: Download PDF

08 Feb 2024 22:58

Which Mesa Card Should I Buy?

Category: Driver Boards

After reading spumco's great summary and looking at the Mesa site, I guess I settled on the 7i96S. If I understand correctly, this is a stand-alone I/O board that only requires an Ethernet connection back to the host PC. Is this correct? I need to drive three stepper drivers (and maybe a 4th down the road), the analog VFD spindle control and an additional 6 I/O. Pretty simple set up.

Yes it is correct, glad to see this was useful as soon as it got posted! :)
7i96S is good for 5 drives + spindle with encoder feedback, and if you ever need more IO, a 7i84 will do just fine and very easy to wire in.
08 Feb 2024 22:17 - 08 Feb 2024 22:19
Replied by Dean on topic Which Mesa Card Should I Buy?

Which Mesa Card Should I Buy?

Category: Driver Boards

Okay, this thread has been posted at the perfect time. I built a smaller 3-axis CNC gantry router approximately 10 years ago. It's been a super machine and has done all I've asked of it. Over the years I've upgraded the ACME screws to ball screws and and six months ago I replaced all of the guide bearings with linear rails.

Before I go any further, I should say I'm pretty good mechanically, but know just enough electronically to be dangerous and to free the magic smoke on occasion. My machine has used the 5i25 and 7i76 to run the I/O and Parker CompuMotor OEM750's to drive the steppers since the day I built it. Never a problem in all of those years.

Fast forward to yesterday. When I tried to turn on my system, LCNC wouldn't start and threw errors on the debug screen. It didn't take long to figure out that my 24v power supply had failed. So I ordered another from Amazon and received it today. Plugged it in and got a solid 24.0v out. Then, when I connected it into the 7i76 board, it (the power supply) blew. Unfortunately, I haven't a clue how to troubleshoot the board, so I'm looking for a replacement and see that the 7i76 is no longer available.

After reading spumco's great summary and looking at the Mesa site, I guess I settled on the 7i96S. If I understand correctly, this is a stand-alone I/O board that only requires an Ethernet connection back to the host PC. Is this correct? I need to drive three stepper drivers (and maybe a 4th down the road), the analog VFD spindle control and an additional 6 I/O. Pretty simple set up.

If I posted this in the wrong spot, I'm sorry and feel free to move it. Otherwise any comments, advice and/or suggestions will be greatly appreciated.

Thanks,
Dean
06 Feb 2024 14:12 - 08 Feb 2024 01:54

Which Mesa Card Should I Buy?

Category: Driver Boards

9 - EXAMPLE WORK-LISTS

1. Manual lathe to CNC conversion
    • 2 axes, closed-loop stepper motors
    • 2 drive alarm signals
    • 2 home switches, no additional limits
    • 1 spindle motor driven by VFD
    • 1 spindle encoder for threading
    • Operator station
        ◦ 2 MPGs (one for each axis)
        ◦ 1 axis selector switch (2 positions)
        ◦ 1 jog increment switch (3 positions)
        ◦ 1 spindle override potentiometer
        ◦ 1 feed override potentiometer
        ◦ 1 external emergency stop
        ◦ 2 buttons (start & feed-hold)
    • Result:
        ◦ Drives - 2 S&D
        ◦ IO
            ▪ 10/ea digital in
            ▪ 2 MPG
            ▪ 2 analog in
            ▪ 1 analog out
            ▪ 2 digital out (spindle FWD/REV)
    • Mesa card suggestion:
        ◦ 7i96S + 7i73 for the operator station


2. Self-built CNC router
    • 4 axes, step-dir servo motors
    • 4 drive alarms
    • 4 drive enable
    • 4 home switches, no additional limits
    • 1 spindle motor driven by VFD
    • Operator station
        ◦ 1 MPGs
        ◦ 1 axis selector switch (2 positions)
        ◦ 1 jog increment switch (3 positions)
        ◦ 1 feed override encoder w/reset switch
        ◦ 1 external emergency stop
        ◦ 8 buttons
            ▪ jog-continous POS/NEG XYZ
            ▪ start & feed hold
    • Result:
        ◦ Drives - 4 S&D
        ◦ IO
            ▪ 8 digital in to main enclosure
            ▪ 13 digital in to operator station
            ▪ 4 MPG
            ▪ 1 analog out
            ▪ 6 digital out
    • Mesa card suggestion:
        ◦ 7i96S + 7i73 using 4x8 matrix for the operator station


Good luck, and please let me know if there are any errors.
-Spumco
06 Feb 2024 13:50 - 08 Feb 2024 01:50

Which Mesa Card Should I Buy?

Category: Driver Boards

6 - DRIVE COMMAND SIGNAL TYPE

Typical CNC machines require some type of motor control is required to move joints/axes.  Whether they are servos or steppers (closed-loop or open), the motors need a drive to actually cause movement.

The drive will be commanded by LCNC using some type of signal.  The command signal types most frequently used for steppers & servos are:
      
    • Step & direction
    • PWM
    • Analog (+/-10v)

Retrofitting a CNC machine will, hopefully, include re-using the existing drives.  This saves money and the original motors & drives were presumably engineered properly for the machine.  These existing, perhaps older, OEM drives tend to use analog command signals, although PWM is sometimes used.

Some newer servo drives, and most stepper motor drives, use step & direction command signals.

Building a new CNC machine means the integrator (you) can select which type of drive is to be used, including the command signal type.

Infrequently, a combination of drive signal types is required for a CNC machine build.  Perhaps the user has some surplus analog drives, but also has a step & direction drive for a 4th axis.  For these cases multiple Mesa cards will likely be required.

Mesa documentation refers to ‘stepgens’, which can be translated to mean ‘step and direction signal generator.’  Each stepgen on a card can control one axis/joint motor drive.  So ‘5 stepgens’ means 5 independent drives can be controlled.

For PWM signals, the Mesa stepgens can be converted to PWM signal generators using modified firmware.  How this is done is not important for this guide, but if you need 3 stepgens and 2 PWM outputs, this can be accomplished with a 5 (or more) stepgen FPGA card.

Analog command signals cannot be created/converted from stepgens; the card hardware is different.  If your drive requires an analog signal you must use an analog-out card.

Once the required drive command signal is identified, count up the number of drives - current and future - required for all joints/axes.  Example:
    • Stepper-driven gantry router
        ◦ 4 motors/drives (X, Y1, Y2, Z) - at least 4 stepgens are required
    • 2-axis lathe with analog servos plus a spindle servo
        ◦ 3 motors/drives - at least 3 analog drive outputs are required
05 Feb 2024 21:19 - 08 Feb 2024 01:45

Which Mesa Card Should I Buy?

Category: Driver Boards

2 - SHORT VERSION (TLDR)

Too impatient to read?  The bare minimum hardware you need to easily connect LCNC to the outside world using Mesa cards is:
    • An FPGA ‘main’ card
    • Screw terminal connections for drives and IO (depending on selection, these may be on the FPGA card or a daughter card)
    • Power supply for the FPGA card

That’s it; no network switch or other ‘stuff’ required.  Below are just a couple of examples out of the numerous Mesa options:

For simple stepper machine
    • You will need one step & direction ethernet FPGA main card with onboard IO
        ◦ Example - 7i96S
            ▪ 5 step/dir axes
            ▪ 11 inputs
            ▪ 6 outputs
            ▪ 1 analog spindle output
            ▪ 1 encoder input
            ▪ 1 Smart Serial port
            ▪ 1 25-pin expansion port

For analog servo machine
    • You will need one analog ethernet FPGA card with onboard screw terminal IO
        ◦ Example - 7i97T
            ▪ 6 +/-10v analog axes
            ▪ 6 encoder inputs
            ▪ 16 inputs
            ▪ 6 outputs
            ▪ 1 Smart Serial port
            ▪ 1 25-pin expansion port
OR
    • You will need one ethernet FPGA card with no screw terminal drive outputs or IO
        ◦ Example - 7i92TH
            ▪ 2x26-pin header
      AND
    • You will also need one daughter card with analog outputs & IO with a connector that matches the FPGA card
        ◦ Example - 7i77
            ▪ DB25 input (connects to 7i92TH 26-pin header with adapter cable)
            ▪ 6 +/-10v analog axes
            ▪ 6 encoder inputs
            ▪ 32 inputs
            ▪ 16 outputs
            ▪ 1 Smart Serial port
            ▪ 1 DB25 to 26-pin adapter cable

Do yourself a favor and go read the rest of this guide.
04 Feb 2024 03:49

Closed loop stepper driver configuration help

Category: Basic Configuration

I'll try that when I can get a hold of a DTI. For now I went redid the gcode with a re-done tool table, and it seems to make the biggest difference so far. I'm now getting about +- .05 mm

I still think it can do better, but for now I don't want to take it apart it.

I probably need to test the spindle run-out as well at some point.

thanks for the advice it's been helpful.
Displaying 31 - 45 out of 176 results.
Time to create page: 1.970 seconds
Powered by Kunena Forum