Advanced Search

Search Results (Searched for: )

  • jmelson
  • jmelson
05 Mar 2025 15:51

Should I just suck it up and buy a good stepper driver?

Category: Driver Boards

HEXFET, TrenchFET, Epitaxial FET, .... damn i am getting old and this time i am not blaming it on being 3:15AM right now, there are many more types of MOSFET's, and almost all have flyback diodes, you can spend days sifting through catalogs to find any that does not

 

I have been making servo amps since about 2004, and had some issues with them blowing up under certain conditions.  I used some beefy 56 A International Rectifier HEXFETs.  Using a digital scope, I was horrified to see that the body diodes in these transistors did not start to conduct until about 10 us after they were forward biased by up to 12 V!  So, I had to add in some ultra-fast diodes across the transistors to prevent this.  The issue was that when the high-side transistor was sourcing current and then shut off, motor and filter inductance would pull the source of that upper transistor down to large negative voltages, and cause the gate driver chip to turn both transistors on at the same time, leading to fireworks.  The  extra diodes solved this issue.
Jon
  • tommylight
  • tommylight's Avatar
05 Mar 2025 15:41

Should I just suck it up and buy a good stepper driver?

Category: Driver Boards

Any clue why adding fast diodes would cause them to blow up?

IT WILL NOT!
Unless you reverse polarity.
I wonder where are you getting such wrong info from and why are you so stuck at diodes ...
-
Are you aware that miss wiring the stepper motor will blow the drive?
The "fuses" you mention, are NOT fuses, they are resistors used for current limiting in the drives.
Also mentioned before, do NOT cut the drive power on the DC side, ever, meaning, if you wire the drive and motor and use any power supply that is already powered, then touch/wire the DC power to the drives = they are dead in most cases.
  • PCW
  • PCW's Avatar
05 Mar 2025 15:33 - 05 Mar 2025 15:34
Replied by PCW on topic HURCO KMB-1 Control Update

HURCO KMB-1 Control Update

Category: Milling Machines

Your hal file shows a software encoder rather than the 7I73's encoder,
A software encoder sampled at the servo thread rate will limit you to less than
1000 counts per second. You would need to use the 7I73s encoder counter to go
faster. From the 7I73 manual:

"The 7I73 can track encoder inputs up to a 50 KHz maximum count rate (4X modes).
Maximum count rate is 12.5 KHz in 1X modes and 25 KHz in 2X modes. These maximum
count rates will be reduced by quadrature distortion (deviation from 90 degree phase
difference between A and B ) so practical maximum count rates are normally somewhat
lower.
  • tommylight
  • tommylight's Avatar
05 Mar 2025 15:21
Replied by tommylight on topic 2 Encoders per axis ?

2 Encoders per axis ?

Category: EtherCAT

Short answer:
Yes, you can use encoders, even 2 encoders per axis/joint, or an encoder and a glass scale, both wired to Mesa/LinuxCNC,
and
Yes, you can have one encoder (usually the one on the motor shaft) wired to drive and a glass scale wired to Mesa/LinuxCNC
and
Yes, you can have new drives that take step/dir pulses and have their own encoder and add glass scales wired back to Mesa/LinuxCNC
and
Within reason, pretty much however you like/need.
As for backlash, the best and easiest way is the last version from above.
  • tommylight
  • tommylight's Avatar
05 Mar 2025 15:15
Replied by tommylight on topic Ethernet Settings for Raspi4

Ethernet Settings for Raspi4

Category: Installing LinuxCNC

The issue is that interface is setup for both dhcp and a static address.

Yeaaa man, sorry i missed that.
  • ihavenofish
  • ihavenofish
05 Mar 2025 15:15
Replied by ihavenofish on topic New ethercat / probe basic control for minimonster

New ethercat / probe basic control for minimonster

Category: CNC Machines

so to be clear, I need to make this folder. it is not one that should already exist?
  • Pipik
  • Pipik
05 Mar 2025 14:49
Replied by Pipik on topic Mesa 7i96 mixed voltage field input wiring

Mesa 7i96 mixed voltage field input wiring

Category: Driver Boards

I get the general principle of inputs in your MESA cards, I understood. You have made a very simple and easily understable manuals with you cards, btw.

But I am trying to solve simmilar inputs possibilities in one of my arduino wirings. I would like to have a little universal solution like you have on 7i96 cards, not just TTL as usual, but cant figure out what parts is best to use to achieve this.
  • unknown
  • unknown
05 Mar 2025 14:49

Should I just suck it up and buy a good stepper driver?

Category: Driver Boards

What caused the original failures ?
Are the existing motors good or are they the cause of the initial failures ?
I've lost count of how many times a tech has replaced the failed component is a system, not investigated why it went only to destroy the custom ASIC they just replaced.
  • unknown
  • unknown
05 Mar 2025 14:39

Should I just suck it up and buy a good stepper driver?

Category: Driver Boards

Goto the gecko drive home page, they have some great stuff about stepper motors and drivers, and it's broader than just their own products
After becoming wiser pick drivers that match your motors, don't guess.
Carefully set one axis up, don't take any shortcuts or do anything additional you think is right, this would seem how you got into this mess.
The drivers are going to come from china, probably the same factory, only thing that may change is the silk screen on the front cover.
I've bought from stepper online, sellers from eBay and from aliexpress, no issues as long as you take care as would with any other job.
Do one axis at a time, thereby only having to debug one axis, wire the rest up the way you do the first one once it's works and you'll be fine.
Spend time doing research, you'll be wiser for it, you'll do a better job, you'll stop wasting money.
And for crying out loud keep your soldering iron away from the drivers.
If there is an area you are not totally grounded in get an expert in and don't suggest to them how to do their job.
  • PCW
  • PCW's Avatar
05 Mar 2025 14:33

Mesa 7i96 mixed voltage field input wiring

Category: Driver Boards

Typically you can only use mixed voltages with sinking inputs (input common grounded)
In this case, any positive input voltage from +5V to +36V will be detected by the 7I96
isolated inputs.
 
  • Sternfox
  • Sternfox
05 Mar 2025 14:28

7i95t pin and firmware files with Stepgens and Inputs 5Axis BoB

Category: Driver Boards

Hi PWC will any 5-axis bob work with this firmware? The Sainsmart boards are hard to get in the UK
  • jdowsonjr
  • jdowsonjr
05 Mar 2025 14:25
Replied by jdowsonjr on topic Problems with Lichuan Ethercat servo drive

Problems with Lichuan Ethercat servo drive

Category: EtherCAT

LC-E series drives dont have an auto tune feature. Has anyone successfully tuned these drives even when only one motor is used per axis (not a gantry)? Considering if I buy a kit as well over Inovance or Leadshine
  • unknown
  • unknown
05 Mar 2025 14:24
Replied by unknown on topic Ethernet Settings for Raspi4

Ethernet Settings for Raspi4

Category: Installing LinuxCNC

Read this page, not just the chapter in the link.
wiki.debian.org/NetworkConfiguration#Con...e_interface_manually
  • unknown
  • unknown
05 Mar 2025 14:21
Replied by unknown on topic Ethernet Settings for Raspi4

Ethernet Settings for Raspi4

Category: Installing LinuxCNC

The issue is that interface is setup for both dhcp and a static address.

I'd do a write up about how to setup an interface but for 2 reasons, it would get lost and ignored, and this kind of thing has been discussed far too many times to recall.

I think people have lost the art of being able to search.
  • Sternfox
  • Sternfox
05 Mar 2025 14:07 - 07 Mar 2025 20:03

Advanced Lube pump timing and memory for oil mist spindles

Category: Advanced Configuration

Hi Guys,

I have written a script for all of you that use oil mist spindles. 
This py script will time the on and off usage of your spindle and activate the lube pump for a specific amount of time. Then when you close down linuxcnc, a JSON file will be updated with the exact time that has elapsed. making sure you do not over lube your spindle. It will remember how long you last ran your spindle and only start the pump once the allotted lube cycle time has elapsed.

This has been developed for use with a HAAS mill using the Bijur Lubrication system.

I hope it helps someone. 

File Attachment:

File Name: lube.py
File Size:3 KB


Hal components needed 
loadrt oneshot count=1

#central lubrication
loadusr -W /home/cnc/linuxcnc/configs/haas_probebasic/lube.py
net lube-run lube.run => hm2_7i95.0.ssr.00.out-02 # your output for the lube pump
net spindle-cw   lube.spindle_status <= 
.PY is attached but i will paste it here with some explanations
#!/usr/bin/env python3
import linuxcnc, hal, time, os, json
# File to store cycle state
STATE_FILE = "/home/cnc/linuxcnc/configs/haas_probebasic/lube_pump_state.json"  #location of the json file that will automatically be generated
# Initialize HAL component
lube = hal.component("lube")
lube.newpin("run", hal.HAL_BIT, hal.HAL_OUT)
lube.newpin("delay", hal.HAL_BIT, hal.HAL_OUT)
lube.newpin("spindle_status", hal.HAL_BIT, hal.HAL_IN)
lube.newpin("reset", hal.HAL_BIT, hal.HAL_IN)
lube.ready()
# Pump timing settings
PUMP_RUN_DURATION = 10  # Seconds HOW LONG THE PUMP WILL RUN
REST_DURATION = 1800  # 30 minutes (in seconds) HOW LONG THE PUMP CYCLE TIME 
# Initialize variables
pump_running = False
resting = False
elapsed_rest_time = 0
remaining_rest_time = REST_DURATION
start_time = None
# Load previous state if exists
if os.path.exists(STATE_FILE):
    try:
        with open(STATE_FILE, "r") as f:
            state = json.load(f)
            elapsed_rest_time = state.get("elapsed_rest_time", 0)
            resting = state.get("resting", False)
            # Ensure remaining rest time continues exactly where it left off
            remaining_rest_time = max(0, REST_DURATION - elapsed_rest_time)
            if resting:
                print(f"Machine restarted. Pump remains in rest mode for {remaining_rest_time:.2f} seconds.")
            else:
                remaining_rest_time = REST_DURATION  # Reset if not previously resting
    except Exception as e:
        print(f"Error loading state: {e}")
print("Lube system initialized.")
try:
    while True:
        time.sleep(0.1)  # Reduce CPU usage
        # Check spindle status
        if lube["spindle_status"]:
            if not pump_running and not resting:
                pump_running = True
                lube["run"] = 1
                start_time = time.time()
                print("Pump running.")
            # Stop pump after run duration
            if pump_running and (time.time() - start_time >= PUMP_RUN_DURATION):
                pump_running = False
                resting = True
                lube["run"] = 0
                lube["delay"] = 1  # Indicate pump resting
                start_time = time.time()
                print("Pump resting.")
        # Handle rest period
        if resting:
            if lube["spindle_status"]:
                elapsed_rest_time += time.time() - start_time
                start_time = time.time()
                if elapsed_rest_time >= REST_DURATION:
                    resting = False
                    lube["delay"] = 0  # Rest complete
                    elapsed_rest_time = 0
                    print("Rest complete. Pump ready to run again.")
            else:
                start_time = time.time()  # Pause timer if spindle stops
        # Save state periodically
        with open(STATE_FILE, "w") as f:
            json.dump(
                {
                    "elapsed_rest_time": elapsed_rest_time,
                    "resting": resting,
                },
                f,
            )
        # Handle reset signal
        if lube["reset"]:
            print("Reset signal received.")
            resting = False
            elapsed_rest_time = 0
            lube["reset"] = 0  # Reset the reset signal
except KeyboardInterrupt:
    print("Shutting down lube system.")
    lube["run"] = 0
    raise SystemExit

 
Displaying 15181 - 15195 out of 20809 results.
Time to create page: 0.328 seconds
Powered by Kunena Forum