Advanced Search

Search Results (Searched for: stepper spindle)

26 Sep 2024 04:31 - 26 Sep 2024 06:39

wiring mesa 7i96s to servo driver as a spindle

Category: Driver Boards

Both are new to me, the 7i96s and the servo. The 7i96s is wired and running stepper motors, one of them closed loop stepper. Looks beautiful

My question:
In the past I used db25 bob with parallel port, and vfd spindle. The bob has 24 v Power supplied to it in order to supply a modulated analog signal to the vfd.

I read the 7i96s manual, I could not figure out where the outsource 20 vdc power supply is terminated into the 7i96s.

image for the servo driver is included for speed control mode

Good day 

Philip
   

 
23 Sep 2024 17:12

intending to use a servo motor as a spindle with mesa 7i96s

Category: PnCConf Wizard

The analog input is VREF and AGND (pin 25 and 13)

So it can run as a stepper motor and as a analog/spindle

I will make a wire diagram and post a new thread within 2 to 3 weeks (time permits) before powering.

Many thanks 

Philip
23 Sep 2024 14:26

intending to use a servo motor as a spindle with mesa 7i96s

Category: PnCConf Wizard

Position mode = step/ dir or same as a simple stepper system
Speed mode = velocity mode = analog input of +-10V <<< notice + and -
Torque mode = avoid using this, it requires doing stuff
-
For use with Mesa 7i96S the best would be using the position mode.
Notice of the above notice about + and - , Mesa 7i96S has an analog output that does 0-10V, that is not the same as +-10V.
0-10V on Mesa will work with +-10V drive, only in one direction, so check the manual if the drive has also an input that can change direction.
 



Excellent
I will take into consideration

many thanks

 
23 Sep 2024 14:17

intending to use a servo motor as a spindle with mesa 7i96s

Category: PnCConf Wizard

Position mode = step/ dir or same as a simple stepper system
Speed mode = velocity mode = analog input of +-10V <<< notice + and -
Torque mode = avoid using this, it requires doing stuff
-
For use with Mesa 7i96S the best would be using the position mode.
Notice of the above notice about + and - , Mesa 7i96S has an analog output that does 0-10V, that is not the same as +-10V.
0-10V on Mesa will work with +-10V drive, only in one direction, so check the manual if the drive has also an input that can change direction.
22 Sep 2024 22:56

Indicator LED behavior of action buttons changed in version 2.9.3?

Category: Qtvcp

Since I'm new in this forum I'd like to show the background for my question. We have an old Taiwan drilling/milling machine upgraded with stepper motors and encoders on the axes. Axes motion and spindle (on/off, fwd/rev) are controlled by LinuxCNC 2.8.4 on Debian 10 using a Mesa 6i25 card. Later, some approaches adapting the GUI (AXIS) to fit the personal workflow had taken place. Quite soon the choice came to Qtvcp. Starting with the tutorial in the docs I set up a GUI according to my taste. For me it worked fine.

Now I want to switch to Debian bookworm using LinuxCNC 2.9.3 and, since I wanted to do minor extensions in the widgets, also want to have a development implementation cloning the git repository. The migration from 2.8.4 to  2.9.3 was basically not a big deal, only some conversion from python2 to python3 had to be done.

But, and that's my question, the behavior of the action buttons obviously has changed. The indicator LED of these buttons are only highlighted as long the buttons are not released (at switching on). The indicator function is referred to the status e.g. 'state_on'. The properties in the designer are set accordingly, i.e. 'indicator option', 'indicator_status_option' and 'is_on_status' e.g. are set to 'True'. The same behavior is observed in 2.10.0.pre (master c7b2655). I spent some time looking at the source code of action_button.py and indicatorMixIn.py. In the latter I came to the function 'connectSignals'   

def connectSignals(self):
        def _update(state):
            self.setChecked(state)
            if self._HAL_pin is False:
               self.indicator_update(state)
            # if using state labels option update the labels
            if self._state_text:
                self.setText(None)
            # if python commands call them
            if self._python_command:
                if state == None:
                    state = self._indicator_state
                self.python_command(state)

        if self.isCheckable():
            self.toggled[bool].connect(_update)
        else:
            self.pressed.connect(lambda: _update(True))
            self.released.connect(lambda: _update(False))
        _update(self.isChecked())

Obviously the indicator state gets set to False as soon as the button is released. Thus, the value previously set correctly by self._flip_state(..) gets overwritten. Shouldn't be the 'if'-statement, checking for the HAL-pin-option in the _update function also be extended to check for the status-option according to the _safecheck function in the action_button  code? Or do I mixing things with my very limited insight to the workflow of the code? At least, switching off the call of 'connectSignals' brings back the behavior known from 2.8.4.
Has anyone also observed this kind of behavior? And, just to mention, setting the button 'checkable' works as expected.
20 Sep 2024 03:06

Remora - ethernet NVEM / EC300 / EC500 cnc board

Category: Computers and Hardware

look, the square encoder gives us the direction and frequency, you can also calculate the angle and so on, depending on the accuracy of the encoder, the Z channel allows you to refer to the position of something, for the MPG Z is not needed, for stepper motor feedback, I would choose a diver with encoder support, and now I want feedback of the spindle speed, in theory it can be implemented using A encoder channel, or the Z channel theoretically could also give such functionality, I don’t need to cut threads, just feedback of revolutions per minute
18 Sep 2024 18:13

New and overwhelmed.

Category: General LinuxCNC Questions

Hello everyone, hopefully this is the right place to post this, and I'm sorry in advance for the long post.

To start my name is Adam and I have a custom cabinet/furniture shop that I run alone.  It is just me, from the Janitor to the CEO.  Well, I'm wanting to increase my production and the best way for me, would be a full size cnc.  Unfortunately I lack the funds required for such a purchase, so I'm thinking of retrofitting an older machine I came across.  For some background, I do own an xcarve, (small 30"x30" cnc, which uses a dewalt router) and laser cutter, have done designs and generated some g-code in fusion 360, but my primary cnc experience is with Easel, which is Xcarve's own web based processor for the cnc, and illustrator and lightburn for the laser.  Basically they are both extremely user friendly.

So that's the background, here is where I'm currently at...

I will say that diving into the world of building/retrofitting a cnc is like drinking from the fire hose.  I've read and watched so many youtube videos my head is spinning...  So that's why I'm here.  I believe I have settled on using Linuxcnc for the cnc control, but that's as far as I've gotten.

What I'm wanting to do:
Years ago my dad purchased a machine from a government surplus sale.  It came from Clemson University and is called a Data Technologies DT9066.  It was built in 2000.  Good luck finding information about them.  Anyway it, for all intents and purposes, is a cnc machine, but doesn't have a z axis or spindle.  It is a machine that was used for prototyping cardboard packaging.  It has a drag knife, creaser, engraver, etc.  It's working area is 90"x66", and has a vacuum hold down table.  I am thinking I can modify the gantry to move it and get a full 96" of working area out of it.  I'm going to have to modify it anyway to have a z-axis, as the gantry only sits about 2" from the bed.  Currently I do not have photos of it, because it's covered in junk as it's become a catch all in my shop, since it was essentially useless to me.

When we assembled the machine in my shop years ago, we connected it just like it was at Clemson when we got it, and it worked as far as moving around, so the motors and amplifiers are working.  The problem is the computer that controls it is incredibly old, and from what I understand the "motion controller" for it, is built into another computer tower, and the internals make absolutely no sense to me.  There's a tag that says "Gaudax" on one of the boards inside of it, but I couldn't find any info on that.

What I do know is it currently has 3 Servo's and amplifiers.  They are Magmotor servos with encoders on them.  They are driven through Copley Controls model 303, and 306 amplifiers, which is the start of my predicament.  

I know I will need to add another either servo or stepper for my z axis, that's obvious, but I was looking at various control boards, or break out boards, or motion controllers, and have seen some that will work with either analog, or digital step/dir but not both, so I think I'm going to have to either stick with an analog servo for the z axis, or replace all of the electronics with steppers and drivers.  On one hand, it may be easier to stick with all servos, because I've read good things about them, on the other hand it may be easier to start from scratch with new steppers and drivers, I mean the stuff on there is already 24 years old, and on the other other hand, maybe there's digital drivers for those old servos now, who knows?

I just don't know what to do next, so I am looking for advice.  If there is a mesa board that will function with the old analog amplifiers, will it also be upgradable if they go out and I have to replace them with newer digital drivers?  Would it be better to replace everything? (I said mesa because that is what usually comes up when I'm researching linuxcnc)  

Oh, and when considering board options, ideally, in a perfect world, and not neccessarily all at once, I'd like to have an ATC spindle, and eventually a rotary, since I'll be processing sheets 48" wide, but my work area is 66" wide, I figured I could put an atc rack down one side with a rotary in front of it, if that makes sense.  That way the machine will be able to do anything I could ever want it to.


Sorry for such a long post, but I figured it'd be best to get all the information I could out at once, so please let me hear your comments, suggestions, advice, etc.  I am in the very early "planning" stage of this build, so I am open to anything.  I just want to keep costs down as much as possible, but am willing to spend a little more if it will make for a better end product.

Thank you,
Adam
12 Sep 2024 00:15
Pacer Cadet was created by Mattmk

Pacer Cadet

Category: General LinuxCNC Questions

Hello,

Charity where I volunteer has been given a Pacer Cadet CNC. It's probably around 20-25 years old, but in a good condition and very sturdy.

We are unsure if it works, and it has been driven by some proprietary software from a Windows XP computer through USB to Serial to Parallel adapters.

We are wondering if anyone has any experience with this machine and any suggestions about the best way to convert it. The charity is an actual charity and not a tax efficient way for someone to get rich and it's not gonna be a money maker, so the budget is tight.

Spindle controller: Hitachi L200
Spindle: Perske 1.2kW / 23k rpm
Steppers? HY200
Motion board: Axiomatic C902
Controller board Axiomatic Cadet VMC Board (looks like an ISA board; PC connected to serial off the board; the parallel connected to motion board)

We were wondering if we could get away with sending command to the controller board from LinuxCNC or we should consider replacing controller & motion boards. Any advice and input welcome.


 
28 Aug 2024 19:00

MCG Server Controller for 4th axis

Category: Driver Boards

The idea is to use it as a 4th Axis in a CNC mill. The machine already has closed loop stepper drives for x, y and z controlled via a Mesa 7i96s.

So if I understand this correctly, wiring the MCG servo amp directly to the 7i96s control the motor wont work (I'm using the analog pins for the spindle currently).

I need to have an intermediary device such as the Gecko 320X to convert the signals? or would it be easier to just get a DCS810 and use it directly with step/dir wiring to the 7i96 ? Or is it likely that this motor doesn't do step/ dir, only analog ?
 

Yes, I am pretty sure you are right, the Mesa board probably will send step/direction to a motor drive, and the MCG drive wants analog.  But, a Gecko 320X will do what you want.  steps in -- brush motor out.
Jon
28 Aug 2024 18:30

MCG Server Controller for 4th axis

Category: Driver Boards

The idea is to use it as a 4th Axis in a CNC mill. The machine already has closed loop stepper drives for x, y and z controlled via a Mesa 7i96s.

The servo motor is most likely brushed based on similar motors I've seen for sale.

So if I understand this correctly, wiring the MCG servo amp directly to the 7i96s control the motor wont work (I'm using the analog pins for the spindle currently). I need to have an intermediary device such as the Gecko 320X to convert the signals? or would it be easier to just get a DCS810 and use it directly with step/dir wiring to the 7i96 ? Or is it likely that this motor doesn't do step/ dir, only analog ?

Sorry I don;t have a ton of experience with servos.
27 Aug 2024 15:39

8 Spindle Gang Router

Category: Show Your Stuff

This 8 spindle gang router with 8 independent Z axis (using closed loop stepper motors), tandem servos for the Y axis gantry, and a servo on they X axis.
 
This machine has evolved a bit over time.  It was my very first Linuxcnc(EMC2) retrofit.  I have shared some details of it through the years.  Here is a link to what it looked like when I was first setting it up on Linuxcnc.
forum.linuxcnc.org/38-general-linuxcnc-q...-help?start=50#11052
The machine originally only had 3 joints, with a single servo moving a large (2ft x 8ft) aluminum plate up and down via a centrally mounted lead screw.  All 8 spindles were bolted to that plate with a hand actuated screw to fine tune each spindle's depth.  The Y axis was moved by a set of helical rack and pinion gears on each end of the gantry, connected together by a 12ft long torque tube drive shaft, then a 12:1 belt reduction to the servo motor.  The X axis was driven by a servo/lead screw combo.  After 20years of use all of the linear components needed refreshed, so we decided to redesign most of it.

X axis received the least change, changing from a high lead lead screw connected to the servo via a belt reduction, to a new 25mm x 5mm lead ball screw directly coupled to the servo, and new linear ways.

Y axis, got new larger linear ways, and replaced the rack and pinions with two 25mm x 10mm lead ball screws and 2:1 belt reduction to the old Y and former Z servos.

For the Zs, I removed the large 3/4inch thick by 2ft x 8ft plate, cut off 8 pieces 5inch x 24inch and milled them to mount a pair of linear ways and a ball screw for each spindle and a NEMA 23 closed loop stepper motor for each.
Here is a link to a Google photo album containing some photos of the pieces I milled for each of the 8 Z-axis joints.
photos.app.goo.gl/Tx2oYkS272xBUMvZ7

Then I'm attaching a copy of my config directory so others can see how I implemented the individual Z axis joints.  The Z axis is set up as a dummy master joint that automatically homes.  Each spindle joint is set up as an "extra" joint.  There is a GladeVCP panel that lets the operator enable and disable each of the spindles.  When a spindle is enabled, that spindle's Z-joint is connected to the dummy master's position plus a tool offset.  When it is disabled the spindle's joint is moved back up to it's home position.  This way only the spindles actually being used are ever moved with the Z axis. 

There are also buttons on the Glade panel for tool probing routines for each of the spindle Z-axis.  These disable all of the other spindle Z-axis and enable the one being probed, then sets the tool offset for that spindle according to the probe results.

Then I created a GladeVCP tab window for displaying and manipulating the tool offsets for each of the spindles.
 

 

File Attachment:

File Name: Digital68ZConfig.zip
File Size:86 KB

 
26 Aug 2024 13:19 - 26 Aug 2024 13:32

What's the Oddest Machine You Have Powered with LinuxCNC

Category: Off Topic and Test Posts

It is used for decorative wood carving (signs, plaques...). Carving 8 pieces at a time. Originally it only had a single Z axis. with a hand screw for fine adjustment of each spindle height. This was difficult to maintain and adjust the Z depth between each spindle for varying material thicknesses or when changing tools. So I recently rebuilt the machine with a separate closed loop stepper motor, ball screw and linear guides on each spindle. I also replaced the old single servo, 12ft torque tube, rack and pinion drive system for the Y axis with new larger linear ways, two ball screws and 2 servos. Then after doing all of that work I found out that the majority of the slop in the old system wasn't due to compliance in the old drive train, but fex in the bridge. So I stiffened the bridge, and it is greatly improved. (The X also got new ways, and replaced a belt driven lead screw with a direct drive ball screw and added tool touch probe and probing routine.)
16 Aug 2024 16:16 - 16 Aug 2024 16:18

Mesa 7I92TM Parallel port pin mapping

Category: PnCConf Wizard

Successfully flashed 7i92t_5abobx2d.bin onto the MESA card (and performed a reload).

Here is the output of readhmid:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Configuration Name: HOSTMOT2

General configuration information:

BoardName : MESA7I92
FPGA Size: 20 KGates
FPGA Pins: 256
Number of IO Ports: 2
Width of one I/O port: 17
Clock Low frequency: 100.0000 MHz
Clock High frequency: 180.0000 MHz
IDROM Type: 3
Instance Stride 0: 4
Instance Stride 1: 64
Register Stride 0: 256
Register Stride 1: 256

Modules in configuration:

Module: DPLL
There are 1 of DPLL in configuration
Version: 0
Registers: 7
BaseAddress: 7000
ClockFrequency: 100.000 MHz
Register Stride: 256 bytes
Instance Stride: 4 bytes

Module: WatchDog
There are 1 of WatchDog in configuration
Version: 0
Registers: 3
BaseAddress: 0C00
ClockFrequency: 100.000 MHz
Register Stride: 256 bytes
Instance Stride: 4 bytes

Module: IOPort
There are 2 of IOPort in configuration
Version: 0
Registers: 5
BaseAddress: 1000
ClockFrequency: 100.000 MHz
Register Stride: 256 bytes
Instance Stride: 4 bytes

Module: QCount
There are 2 of QCount in configuration
Version: 2
Registers: 5
BaseAddress: 3000
ClockFrequency: 100.000 MHz
Register Stride: 256 bytes
Instance Stride: 4 bytes

Module: StepGen
There are 10 of StepGen in configuration
Version: 2
Registers: 10
BaseAddress: 2000
ClockFrequency: 100.000 MHz
Register Stride: 256 bytes
Instance Stride: 4 bytes

Module: PWM
There are 2 of PWM in configuration
Version: 0
Registers: 5
BaseAddress: 4100
ClockFrequency: 180.000 MHz
Register Stride: 256 bytes
Instance Stride: 4 bytes

Module: LED
There are 1 of LED in configuration
Version: 0
Registers: 1
BaseAddress: 0200
ClockFrequency: 100.000 MHz
Register Stride: 256 bytes
Instance Stride: 4 bytes

Configuration pin-out:

IO Connections for P2
DB25 pin# I/O Pri. func Sec. func Chan Sec. Pin func Sec. Pin Dir

1 0 IOPort PWM 0 PWM (Out)
14 1 IOPort None
2 2 IOPort StepGen 0 Step/Table1 (Out)
15 3 IOPort None
3 4 IOPort StepGen 0 Dir/Table2 (Out)
16 5 IOPort StepGen 8 Step/Table1 (Out)
4 6 IOPort StepGen 1 Step/Table1 (Out)
17 7 IOPort StepGen 8 Dir/Table2 (Out)
5 8 IOPort StepGen 1 Dir/Table2 (Out)
6 9 IOPort StepGen 2 Step/Table1 (Out)
7 10 IOPort StepGen 2 Dir/Table2 (Out)
8 11 IOPort StepGen 3 Step/Table1 (Out)
9 12 IOPort StepGen 3 Dir/Table2 (Out)
10 13 IOPort None
11 14 IOPort QCount 0 Quad-A (In)
12 15 IOPort QCount 0 Quad-B (In)
13 16 IOPort QCount 0 Quad-IDX (In)

IO Connections for P1
DB25 pin# I/O Pri. func Sec. func Chan Sec. Pin func Sec. Pin Dir

1 17 IOPort PWM 1 PWM (Out)
14 18 IOPort None
2 19 IOPort StepGen 4 Step/Table1 (Out)
15 20 IOPort None
3 21 IOPort StepGen 4 Dir/Table2 (Out)
16 22 IOPort StepGen 9 Step/Table1 (Out)
4 23 IOPort StepGen 5 Step/Table1 (Out)
17 24 IOPort StepGen 9 Dir/Table2 (Out)
5 25 IOPort StepGen 5 Dir/Table2 (Out)
6 26 IOPort StepGen 6 Step/Table1 (Out)
7 27 IOPort StepGen 6 Dir/Table2 (Out)
8 28 IOPort StepGen 7 Step/Table1 (Out)
9 29 IOPort StepGen 7 Dir/Table2 (Out)
10 30 IOPort None
11 31 IOPort QCount 1 Quad-A (In)
12 32 IOPort QCount 1 Quad-B (In)
13 33 IOPort QCount 1 Quad-IDX (In)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
and here is the current HAL file (after manual edits for num_encoders, num_stepgens and num_pwmgens)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Generated by PNCconf at Fri Aug 16 08:59:19 2024
# Using LinuxCNC version: Master (2.9)
# If you make changes to this file, they will be
# overwritten when you run PNCconf again

loadrt [KINS]KINEMATICS
loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS
loadrt hostmot2
loadrt hm2_eth board_ip="10.10.10.10" config="num_encoders=2 num_pwmgens=0 num_stepgens=3 sserial_port_0=00xxxxxx"
setp hm2_7i92.0.watchdog.timeout_ns 5000000
loadrt pid names=pid.x,pid.y,pid.z,pid.s

addf hm2_7i92.0.read servo-thread
addf motion-command-handler servo-thread
addf motion-controller servo-thread
addf pid.x.do-pid-calcs servo-thread
addf pid.y.do-pid-calcs servo-thread
addf pid.z.do-pid-calcs servo-thread
addf pid.s.do-pid-calcs servo-thread
addf hm2_7i92.0.write servo-thread
setp hm2_7i92.0.dpll.01.timer-us -50
setp hm2_7i92.0.stepgen.timer-number 1

# external output signals


# external input signals


#*******************
# AXIS X JOINT 0
#*******************

setp pid.x.Pgain [JOINT_0]P
setp pid.x.Igain [JOINT_0]I
setp pid.x.Dgain [JOINT_0]D
setp pid.x.bias [JOINT_0]BIAS
setp pid.x.FF0 [JOINT_0]FF0
setp pid.x.FF1 [JOINT_0]FF1
setp pid.x.FF2 [JOINT_0]FF2
setp pid.x.deadband [JOINT_0]DEADBAND
setp pid.x.maxoutput [JOINT_0]MAX_OUTPUT
setp pid.x.error-previous-target true
# This setting is to limit bogus stepgen
# velocity corrections caused by position
# feedback sample time jitter.
setp pid.x.maxerror 0.000500

net x-index-enable => pid.x.index-enable
net x-enable => pid.x.enable
net x-pos-cmd => pid.x.command
net x-pos-fb => pid.x.feedback
net x-output <= pid.x.output

# Step Gen signals/setup

setp hm2_7i92.0.stepgen.01.dirsetup [JOINT_0]DIRSETUP
setp hm2_7i92.0.stepgen.01.dirhold [JOINT_0]DIRHOLD
setp hm2_7i92.0.stepgen.01.steplen [JOINT_0]STEPLEN
setp hm2_7i92.0.stepgen.01.stepspace [JOINT_0]STEPSPACE
setp hm2_7i92.0.stepgen.01.position-scale [JOINT_0]STEP_SCALE
setp hm2_7i92.0.stepgen.01.step_type 0
setp hm2_7i92.0.stepgen.01.control-type 1
setp hm2_7i92.0.stepgen.01.maxaccel [JOINT_0]STEPGEN_MAXACCEL
setp hm2_7i92.0.stepgen.01.maxvel [JOINT_0]STEPGEN_MAXVEL

# ---closedloop stepper signals---

net x-pos-cmd <= joint.0.motor-pos-cmd
net x-vel-cmd <= joint.0.vel-cmd
net x-output => hm2_7i92.0.stepgen.01.velocity-cmd
net x-pos-fb <= hm2_7i92.0.stepgen.01.position-fb
net x-pos-fb => joint.0.motor-pos-fb
net x-enable <= joint.0.amp-enable-out
net x-enable => hm2_7i92.0.stepgen.01.enable

# ---setup home / limit switch signals---

net x-home-sw => joint.0.home-sw-in
net x-neg-limit => joint.0.neg-lim-sw-in
net x-pos-limit => joint.0.pos-lim-sw-in

#*******************
# AXIS Y JOINT 1
#*******************

setp pid.y.Pgain [JOINT_1]P
setp pid.y.Igain [JOINT_1]I
setp pid.y.Dgain [JOINT_1]D
setp pid.y.bias [JOINT_1]BIAS
setp pid.y.FF0 [JOINT_1]FF0
setp pid.y.FF1 [JOINT_1]FF1
setp pid.y.FF2 [JOINT_1]FF2
setp pid.y.deadband [JOINT_1]DEADBAND
setp pid.y.maxoutput [JOINT_1]MAX_OUTPUT
setp pid.y.error-previous-target true
# This setting is to limit bogus stepgen
# velocity corrections caused by position
# feedback sample time jitter.
setp pid.y.maxerror 0.000500

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_7i92.0.stepgen.00.dirsetup [JOINT_1]DIRSETUP
setp hm2_7i92.0.stepgen.00.dirhold [JOINT_1]DIRHOLD
setp hm2_7i92.0.stepgen.00.steplen [JOINT_1]STEPLEN
setp hm2_7i92.0.stepgen.00.stepspace [JOINT_1]STEPSPACE
setp hm2_7i92.0.stepgen.00.position-scale [JOINT_1]STEP_SCALE
setp hm2_7i92.0.stepgen.00.step_type 0
setp hm2_7i92.0.stepgen.00.control-type 1
setp hm2_7i92.0.stepgen.00.maxaccel [JOINT_1]STEPGEN_MAXACCEL
setp hm2_7i92.0.stepgen.00.maxvel [JOINT_1]STEPGEN_MAXVEL

# ---closedloop stepper signals---

net y-pos-cmd <= joint.1.motor-pos-cmd
net y-vel-cmd <= joint.1.vel-cmd
net y-output => hm2_7i92.0.stepgen.00.velocity-cmd
net y-pos-fb <= hm2_7i92.0.stepgen.00.position-fb
net y-pos-fb => joint.1.motor-pos-fb
net y-enable <= joint.1.amp-enable-out
net y-enable => hm2_7i92.0.stepgen.00.enable

# ---setup home / limit switch signals---

net y-home-sw => joint.1.home-sw-in
net y-neg-limit => joint.1.neg-lim-sw-in
net y-pos-limit => joint.1.pos-lim-sw-in

#*******************
# AXIS Z JOINT 2
#*******************

setp pid.z.Pgain [JOINT_2]P
setp pid.z.Igain [JOINT_2]I
setp pid.z.Dgain [JOINT_2]D
setp pid.z.bias [JOINT_2]BIAS
setp pid.z.FF0 [JOINT_2]FF0
setp pid.z.FF1 [JOINT_2]FF1
setp pid.z.FF2 [JOINT_2]FF2
setp pid.z.deadband [JOINT_2]DEADBAND
setp pid.z.maxoutput [JOINT_2]MAX_OUTPUT
setp pid.z.error-previous-target true
# This setting is to limit bogus stepgen
# velocity corrections caused by position
# feedback sample time jitter.
setp pid.z.maxerror 0.000500

net z-index-enable => pid.z.index-enable
net z-enable => pid.z.enable
net z-pos-cmd => pid.z.command
net z-pos-fb => pid.z.feedback
net z-output <= pid.z.output

# Step Gen signals/setup

setp hm2_7i92.0.stepgen.02.dirsetup [JOINT_2]DIRSETUP
setp hm2_7i92.0.stepgen.02.dirhold [JOINT_2]DIRHOLD
setp hm2_7i92.0.stepgen.02.steplen [JOINT_2]STEPLEN
setp hm2_7i92.0.stepgen.02.stepspace [JOINT_2]STEPSPACE
setp hm2_7i92.0.stepgen.02.position-scale [JOINT_2]STEP_SCALE
setp hm2_7i92.0.stepgen.02.step_type 0
setp hm2_7i92.0.stepgen.02.control-type 1
setp hm2_7i92.0.stepgen.02.maxaccel [JOINT_2]STEPGEN_MAXACCEL
setp hm2_7i92.0.stepgen.02.maxvel [JOINT_2]STEPGEN_MAXVEL

# ---closedloop stepper signals---

net z-pos-cmd <= joint.2.motor-pos-cmd
net z-vel-cmd <= joint.2.vel-cmd
net z-output => hm2_7i92.0.stepgen.02.velocity-cmd
net z-pos-fb <= hm2_7i92.0.stepgen.02.position-fb
net z-pos-fb => joint.2.motor-pos-fb
net z-enable <= joint.2.amp-enable-out
net z-enable => hm2_7i92.0.stepgen.02.enable

# ---setup home / limit switch signals---

net z-home-sw => joint.2.home-sw-in
net z-neg-limit => joint.2.neg-lim-sw-in
net z-pos-limit => joint.2.pos-lim-sw-in


#******************************
# connect miscellaneous signals
#******************************

# ---HALUI signals---

net axis-select-x halui.axis.x.select
net jog-x-pos halui.axis.x.plus
net jog-x-neg halui.axis.x.minus
net jog-x-analog halui.axis.x.analog
net x-is-homed halui.joint.0.is-homed
net axis-select-y halui.axis.y.select
net jog-y-pos halui.axis.y.plus
net jog-y-neg halui.axis.y.minus
net jog-y-analog halui.axis.y.analog
net y-is-homed halui.joint.1.is-homed
net axis-select-z halui.axis.z.select
net jog-z-pos halui.axis.z.plus
net jog-z-neg halui.axis.z.minus
net jog-z-analog halui.axis.z.analog
net z-is-homed halui.joint.2.is-homed
net jog-selected-pos halui.axis.selected.plus
net jog-selected-neg halui.axis.selected.minus
net spindle-manual-cw halui.spindle.0.forward
net spindle-manual-ccw halui.spindle.0.reverse
net spindle-manual-stop halui.spindle.0.stop
net machine-is-on halui.machine.is-on
net jog-speed halui.axis.jog-speed
net MDI-mode halui.mode.is-mdi

# ---coolant signals---

net coolant-mist <= iocontrol.0.coolant-mist
net coolant-flood <= iocontrol.0.coolant-flood

# ---probe signal---

net probe-in => motion.probe-input

# ---motion control signals---

net in-position <= motion.in-position
net machine-is-enabled <= motion.motion-enabled

# ---digital in / out signals---

# ---estop signals---

net estop-out <= iocontrol.0.user-enable-out
net estop-out => iocontrol.0.emc-enable-in

# ---manual tool change signals---

net tool-change-request <= iocontrol.0.tool-change
net tool-change-confirmed => iocontrol.0.tool-changed
net tool-number <= iocontrol.0.tool-prep-number

# ---Use external manual tool change dialog---

loadusr -W hal_manualtoolchange
net tool-change-request => hal_manualtoolchange.change
net tool-change-confirmed <= hal_manualtoolchange.changed
net tool-number => hal_manualtoolchange.number

# ---ignore tool prepare requests---
net tool-prepare-loopback iocontrol.0.tool-prepare => iocontrol.0.tool-prepared
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
I still get no movement in any of the axes.  I wonder if there's something I am not properly enabling?  I didn't setup the Home or e-stop signals.

Thank you for your continued assistance,

 
13 Aug 2024 20:25
MESA 7c81 HELP! was created by waukeenahBob

MESA 7c81 HELP!

Category: Driver Boards

I have a good bit of experience with CNC... built 2 machines in the past... one Mach3 another GRBL.  Long time linux admin.  Have built lots of things with RPI, New to LinuxCNC.

I am refactoring a vertical mill that I converted to CNC and Mach 3 several years ago to use LinuxCNC.  In the past I used a UC ETH-300 which of course is not compatible with LinuxCNC.  So I bought a Mesa 7c81 and an 8gb Raspberry Pi 4.

I have everything connected, Installed LinuxCNC 2.9.2 using the RPI image, have enabled SPI and it appears that I am talking to the Mesa card.
I have a standard chinese BOB connected to port 1 and plan to use ports 2 and 7 for home/limit switches, probe, spindle etc.

Started with pncconf selected my card and the 5ABOB3 firmware, looked up my stepper drivers for time, space, hold etc... 

Cannot figure out the P1, P2, P7 Mesa Card config pages as far as pins goes... expecting to assign pin2 for step X etc...  according to the BOB documentation.
I have assigned the Axis StepGen's to P1 0:, 1:, and 2: just to be able to write the config out.
When I try to test/tune an axis I hear the relay trip on the BOB which is encouraging... and when I try to jog I see the numbers changing on the Hal Meter etc but I get nothing from my steppers... they do feel slightly warm so I believe there is current going to them... but no movement at all

if I try to launch LinuxCNC using the config pncconf created I see some errors come up
"Unexpected realtime delay on task0 with period 70000" and hm2/hm2_7c81.0 Watchdog was bit.

My plan is to get basic stuff working and then add complexity... 

Wondering if anyone has a config they would be willing to share?

Or advice on where to go next... been googling and searching my tail off and figure there is something basic I am missing and once I see it properly configured I will have a big DUH moment :)

Any help would be appreciated!
10 Aug 2024 21:33

Trouble getting PWM to work with 7i92TF and BoB but steppers working fine

Category: PnCConf Wizard

Hi everyone, I've managed so far after all these years to get all the info I need on these boards by being a lurker, so thank you everyone for all the knowledge on here. I'm at a crossroads with this one though as I'm still quite new with the mesa boards.

I have the following BoB below and can confirm I can get the PWM working using software stepping by setting it on Pin 1 in the Stepconf wizard.




When setting this up using the Mesa board (7i92TF), I followed the guide below which works perfectly fine for running my steppers.
forum.linuxcnc.org/49-basic-configuratio...rallel-port-bob-g540

What needs to be changed on my setup to get this working? Mind you the config on my mesa board is whatever came straight out of the box.

My intention is to use this PWM signal to control a laser since I mainly control my spindle manually (or RS485). I'm currently testing this potential laser setup right now with an LED. If this helps, one thing I also noticed differently between software stepping and the mesa board, is that during PC boot the LED is already lit versus when it is connected to parallel port it is not.

I've attached my INI and HAL file for the mesa config. Any help would be appreciated, thanks!
Displaying 1 - 15 out of 179 results.
Time to create page: 0.576 seconds
Powered by Kunena Forum