Stepper Motors, TMC2225, Multi Stepper silent control

Hello,
I've been researching how to accomplish the goals of this project and need some additional advice and guidance. I've read tons of posts, white papers, spec sheets, etc.. and have landed on some specifics already, but an open to input (on motors, controllers, etc.)

The goal of the project:
To create a system that allows dispensing control of up to 12 liquids via a button pad through stepper motor controlled peristaltic pumps. The motor/pump sets will be mounted below a counter with the output hoses being gathered into a collector above the counter, this is so the output of the liquid can be dispensed into beakers, jars, cups, etc.

Here are some details:

  1. We'll use an outboard 24V Power Supply or other if recommended
  2. We will likely use this stepper motor/pump combo to test with: Amazon.com: Stepper peristaltic pump 24V high flow Kamoer KPHM400 lab liquid dosing pump 400ml/min variable speed : Industrial & Scientific which operates at 400rpm max at ~400mL/min output
  3. The dispensed volumes will be based on 7mL increments (one rotation) and can vary by up to .2mL +/-
  4. Given the low 400 rpm speed, we're hoping to create a nearly silent system (esp. given it will be mounted below a countertop, in a cabinet) using something like the StealthChop2 the TMC drivers are capable of. If we exceed that speed, from what I've read, the StealthChop become unusable and we'd need to implement the SpreadCycle function.

Code Info:
Stepper Motor/Pumps are pre-defined in code
Buttons are predefined in code
Number of steps per motor/pump are predefined in code

There will be two phases of development, with the first phase including an initial 12 buttons, that are each directly related to a motor/pump and operates that motor/pump for the predefined number of steps for each button press.

EX: Press Btn 1 === preset # of steps for pump 1,
2 presses === 2x the preset # of steps

Phase two will include adding 6 additional buttons that act as a macro - they will operate a predefined set of motor/pumps at predefined # of steps for each.

EX: Press Btn 13 ===
Pump 2 * 400 steps
Pump 6 * 200 steps
Pump 10 * 100 steps

I believe this will work for our needs using either NEMA 17 or NEMA 23 motors, the Teensy 4.1 based processor running TMC2225 controllers. We looked at the TMC2208 controllers initially but found that the 2225 have better thermal handling, etc.

What suggestions do you have?
Would it be better to use a DC motor instead of steppers, given the accuracy we need?
What are we missing, if anything, to consider - stepper libs, etc. ?
Is the TMC2225 controller the best option here?
How would you recommend connecting 12 of these stepper drivers - any tips/tricks?
I've seen pibots multi stepper board but it seems to be perpetually out of stock. Any other suggestions?

  1. Find the actual requirements for your motors.
  2. Make a prototype.

A block diagram, a schematic, a working prototype, the code, some results.

Twelve what? Buttons? Controllers? Motors? Pumps?

The hardest part is starting.

I suggest your first test should be to discover a peristaltic pump that will fit those requirements. Without that all the rest of the requirements do not matter. You can even operate the pump by hand for testing.

Thanks for the reply, I think.

Yes, obviously, starting with a prototype is the next step, thanks for that.
I was asking in case there was something obvious to others that I was just missing.. instead of buying the components we're looking at, just to find some helpful advice could have saved time and money.

Your sarcasm, though moderately funny, is really out of place for a noob trying to inquire on this forum.

re: your responses;
The context of "connecting 12 of these" was in reference to the TMC2225 drivers, as the following comment about the pibots stepper board is also related to.

yes, thank you. The pump I linked will fit our requirements fine.. Since this is our first project using drivers and stepper motors, I was trying to see if anyone saw a glaring flaw in our direction. We're ordering the parts and will setup a prototype to begin testing.. just wanted to save time and money if someone knew there was a possible issue with the components we selected (eg. try this driver, works way better, because...)

How many turns to get 7ml?

Where? Are you telling me requirements, block diagrams, schematics, code and prototypes are sarcasm? Are you offended by being required to do some work? Do you think you are the only novice? Do you think I was born knowing how to make an LED blink at a 1Hz rate? Are you being sarcastic?

You fed some words into chatGPT and posted it. How can I not be sarcastic?

One turn, at 400rpm, based on 400ml/min at the speed. 7.1mL actually, but that is more than close enough for our needs

Remember you are pumping liquid, so will need to accelerate the stepper motor and be sure it will stop immediately when the pulses stop.

Understood. I've never worked with steppers before... from my reading it sounded like they stop and hold that position once the code bring them to a final step. I've seen a couple libs for acceleration, etc.. is there a lib you'd recommend I look at over any others?

Not going to happen at 400 rpm! Look for stepper libraries that support acceleration/deceleration.

Perfect, this is what I need to know... from what I've read, somewhere between 300-400rpm stepper motor controllers implement different types of control, like StealthChop2 or SpreadCycle... Is this because it's problematic to stop a stepper going that fast?

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.