36V4 uncooperative

OK, we have tried that. Here’s the results (StepPeriodUs = 8000, HPSDDecay<pde::AutoMixed, HPSDStepMode::MicroStep1)
12V @ 1000mA Motor moved, chattered badly, moved about 5/8 of a revolution at full stepping
13.7V @ 1500mA Motor moves, chatters much less, moves 4 revolutions at full stepping

Changing StepPeriodUs=2000
13.7V @ 1500mA, moves smoothly, 4 revolutions
13.7V @ 2500mA, moves smoothly, 4 revolutions, high torque, does not stop
24V @ 2500mA., unreliable motion, 4 revolutions, torque not good, skips even when not under load

This was the maximum the adjustable power supply. So we switched to a 30A 12V supply
12V @ 3500mA, fast and smooth
12V @ 4000mA, fast and smooth

Conclusion: 12V @ 4000mA works best so far

Reduced SetPeriodUs to 1000
13V @ 2500 mA, No torque, very buzzy, motor vibrates a lot
Changed SetPeriodUs to 3000
12.7V @ 2500mA, Runs great, but not as good as 12V @ 4000mA
24V @ 2500mA, Runs great, but not as good as 12V @ 4000mA

12V @ 2500mA, with our sketch, 8000uS, motor sits there and vibrates, does not turn
12V @ 2500mA, with our sketch, 3000uS, motor barely turns

So we have now identified two conditions that improve it: lower voltage and lower delay. Our problem is now to figure out why our sketch does not work. But you have now given us a fixed point we know works, so now we will try to figure out what our program is doing wrong. Thank you. I will get back to you when we have more to report. One thing we did discover was that when we turned on debug printout, it started working, which suggests that the timing delay between steps is a factor. But we now know that even BasicSteppingSPI does not work at 36V @ 4000mA

Ah, well. We keep trying.
My student was out for over a week due to dental issues (a lot of pain from an infected tooth). We finally got back together tonight.

At this point, he wanted to try a NEMA-8. He has two from Adafruit, rated 3.9V, 600mA.

We tried BasicSteppingSPI, I set it up to cycle through 1/1 through 1/256 with the step delay StepPeriodUs set to 2000 us. The motor got really hot, but didn’t move.

Since we have to put about 8.5V into the 36V4 to avoid low voltage lockout, I suspected that the motor was being overdriven. So I worked out that 3.9*0.600 = 2.34W; I then did 2.34W/=275mA. The motor no longer gets hot, but it also doesn’t move. We put it on the “standard” 4988 control board, and it moves with a good deal of torque; we adjusted the current limit on the 4988 to 480mV, which should give us 600mA.

While I am typing this, my student has changed the wait time to 1000us, 2000us, 3000us and 4000us, which made no difference,

I am attaching the modified BasicSteppingSPI. The table from our program is in there, but mostly because I didn’t feel like retyping the whole thing; we only use the microstepping value, and hold the wait time constant, and the first two columns just do printout so we can see what the motor is supposed to be doing. Note that this worked fine for our 4000mA NEMA-23, and our 1500mA NEMA-17 but the little NEMA-8 just sits there and does nothing (it is being powered, but it doesn’t move).BasicSteppingSPI.ino (4.7 KB)
Thank you for your patience.

I recommend keeping the current limit equal to your stepper motor’s rated current limit for now (i.e. sd.setCurrentMilliamps36v4(600);). The driver will handle adjusting the output voltage dynamically to prevent problem and it is normal for the motor to get hot under those conditions, as I described in my previous post, especially when it is just holding position and not moving.

I tested the latest version of your code that you posted with a setup here, but I was unable to reproduce the problem (the motor stepped fine and it went through all of the microstepping modes). It is curious that it works for your other stepper motors and the problem is only with the NEMA 8 stepper motor. Can you post pictures of that setup? You might try adjusting the decay mode to see if that changes anything (e.g. slow, fast, mixed).

Brandon

My student is now recovered after a couple days of dental work. We tried using the big NEMA-23 motor. Nothing works. Here is a sample of the attempt.

Nothing happens when we try to activate the motor. So we typed ? to the command line, and got the output below the ======== line

The first two lines are the FILE, DATE, and TIME
The next line indicates that we are in full-step (“whole” step) mode ‘w’, with an interstep delay of 4000us (same as BasicSteppingSPI, and we have no offset adjusting that value.
I then print out some parameters, followed by the driver.readStatus() call, 0x10 and driver.readFaults() call, again, 0x10.
The next line says that we have selected motor [2] from our table of motors, it is the NEMA23 motor (a string in the table) and its current limit is 4200mA (Yes, I know this is high, but since the motor isn’t doing anything, there appears to be no load on the MOSFETS, as they remain cool)
The next line is the joystick calibration; the current position is 488, the approximate center of an untended joystick; the nominal zero position is thought to be 488, and the “dead zone” is 15 joystick units wide. We are not using the Y-axis of the joystick yet, so all we get is its nominal zero position.

Now, we see there is a Channel B predriver fault. I read the documentation on the chip, but I have no idea why this should happen.

We changed the power limit to 2500mA, removed power from both the 36V4 VIN and unplugged the Nano; powered up the Nano, then powered up the motor power, which is 36 volts (the NEMA-23 form-factor motor is rated for 24V to 48V, so we split the difference). Same problem. We tried a clearStatus() in both cases, which changed nothing. As far as we can tell, it only works on the NEMA-17 motor.

We tried BasicSteppingSPI with the current parameter set to 2500mA, and it didn’t work with that, either.

In an attempt to see what might be wrong, we changed 36V4 controllers. No joy.

Basically, the 36V4 works on the NEMA-17, but not a NEMA-8 or NEMA-23. I’m sorry we are being such a pain. We got better results for the NEMA-17 by setting the decay mode to AutoMixed as BasicSteppingSPI does. We are willing to try any other experiments you think of.

Much thanks. We appreciate your help and patience.

I forgot to ask my student for a picture of the setup, but he wants to get together tomorrow night. He was at the dentist’s at 8:30 am, spent a couple hours having his mouth abused by the dentist and was really tired by 1:15am.
Joe

Sigh.

The High-Power Stepper Motor Driver 36v4 has no meaningful over-temperature shut-off, so we strongly recommend you do not use a current limit setting beyond 4 A (unless you can confirm that the temperature of the MOSFETs will stay under 140°C).

At this point, there is probably not much more that we can do to help troubleshoot. We might be able to help you with a discount on a replacement if you think your boards have been damaged, but given that you’ve experienced problems with multiple boards, it seems likely the problem is elsewhere in the system.

My best suggestion is to start with one of our unmodified example programs (only modifying the current limit value to something appropriate), which we know should work, and get something working; then incrementally change one thing at a time until you find something that causes it to stop working and investigate that change closely. Please note that you should generally not make any changes to connections while the system is powered.

If the problem really comes down to simply swapping motors, then it could be something in the driver settings that need to be tuned to a specific motor (although that would be really surprising to me since in our testing, we haven’t encountered a situation where the driver simply didn’t even energize a motor at all with its default settings). It could be that between swapping motors and making changes to the setup that some wires were jostled or connections were inadvertently broken or changed, so you could also try going through with a multimeter to check for continuity and make sure you are seeing appropriate voltages where expected.

You might also consider switching to the Tic 36v4, which uses the same driver chip but has an on-board microcontroller to handle the low-level configuration and communication, which should both simplify your system (even if only for testing), and let you try different settings more easily.

Brandon