CNC Controller with >8 stepper motor ports

I am working on a project where FluidNC macros are going to be used to control the A, B, and C stepper motors to control a custom ATC. I am not very good when it comes to electronics so designing my own board isn’t a great option. Are there any FluidNC boards that support nine or more motors? If not, is there a way to plug a board into the USB port on the Jackpot Controller that allows for additional motors?

1 Like

None that I know of.

The USB port on a Jackpot is only used for loading firmware, diagnostics, and gcode sending. You can’t use it for adding steppers.

There also isn’t a FluidNC way to expand jackpot beyond the 6 steppers that it can support.

There are also some limitations in FluidNC around the B and C axis that might be a bit of an issue for you- depending on your implementation.

Can you elaborate more on what you’re trying to build and how you’re going about it?

As independent channels/axes? Most likely not. So far as I know the Jackpot and Bart’s six pack controller are soing some fancy dancing to get 6. Maybe it could be done if you don’t want UART control of things like driver current and don’t need end stop channels. (Basic step and dir pin control, back to jumpers for microsteps, and tiny pots / Vref for current control with DRV8825 or A4988 stepper drivers.) It would be a pretty big step back though.

However if you need 6 axes with some of them having more than one motor, you could still wire the motors in series, like we used to use 3 channel controllers for 5 motors, when dual end stops was an advanced build, lol.

Octopus with a can adapter for 2 more? Not sure how that will work out, but an idea…

Klipper will span several controllers. So you could just hook up more controllers like 2 skrs To the raspberry pi running it.

This is the best suggestion. I’ve seen Klipper printers with an SKR for 5 steppers (bed slinger, dual Y, Dual Z, single X) and 4 extruders on a RAMPS.

Where Klipper gets funny though, is in having good support for anything out of the box for the additional axis interfaces. So, extruders or multiple X/Y/Z is pretty standard. Tool changers and spindles are a different story.

If you can macro program it may work for tool change, but I don’t think multi axes beyond xyz are supported.

I am building a 3D printable custom ATC for a school engineering project. I’ve never built any CNC machine from scratch before so this is new to me. My plan was to use the XYZ for the mill while using the ABC to control 3 stepper motors for the ATC. The different bits are going to be in a carousel connected to stepper A with a quarter ellipse connected to stepper B that pushes the bit into the collet. Stepper C will be used to loosen the collet. The fourth stepper would be activated by a limit switch so it doesn’t require the use of G-code. The idea is that when FluidNC sees T01, then it runs the tool one macro that moves the spindle into the correct position, swaps the tool, and the spindle returns to the original position and continues the milling process.

I was looking into the octopus controller earlier today. With Klipper being a 3D printing firmware, I was worried about being able to control the spindle speed. Since Solidworks allows the use of a different spindle speed for each bit, It will have to change throughout the milling process.

FluidNC claims to support 12 steppers and 6 axes. If I were to go down the route of making my own board, do you think it would be possible to use a gpio expander to control additional steppers?

if I wire them in series aren’t they going to both get less voltage?

In series, yes they will split the voltage, but also function in tandem and not independently.

Spindle speed in grbl is specified with S# where # is the speed. M3. M4. M5 control fwd. Reverse, and off spindle commands. Klipper doesn’t have S defined from a quick search result. But you could define spindle speed as a fan output and have proportional control of speed similar to a fan mapped to a board output and get similar functionality with M106 S# gcode commands.

FluidNC uses a special hardware acceleration capability in the ESP-32 to do GPIO expansion. You can’t just slap on any GPIO expander and have it woirk.

If you’re willing to get deep into embedded software development, you might be able to expand the scheme used on the 6-pack and Jackpot boards beyond what is already done- but it would have to be new, custom development by you.

Sounds like a really fun and interesting project. I hope you’ll stick around here and continue to update this thread and the forums with your progress and outcomes.

This isn’t a thing in FluidNC, Klipper, or Marlin- as far as I know. It’ll have to be something custom that you do.

How are you planning to do spindle speed control? RS-485 to a VFD?

he should check the tourret atc by RAPIDCHANGE ATC its already under Development.

Okay, I will look into the octopus + raspberry pi. It sounds like my best option for the many stepper motors.

Yeah, its looking like the octopus is my best option unless I want to wire the motors in series, which I don’t want to do due to the power split.

I will definitely keep updating about my project.

I was planning on doing something custom for this part since I have no problem with programming; as I continue to develop more ideas it may no longer be necessary.

I am using the 600w Daedalus Spindle Kit and the motor driver that comes with it. The driver is compatible with Mach3; I don’t see a reason why it wouldn’t be compatible with anything else.

I just looked into this, and its a cool tool changer; since this is a school project, I need to design my own ATC. I also want to use one collet instead of having a collet attached to each tool. I may be able to use the spindle’s rotation to to loosen the collet, but I am unsure if my spindle has enough torque to do this since on their website it says their spindle has about 10-15 pounds of torque. Also my goal is to make a tool changer that can be used with almost any machine and spindle, so it can’t only work with higher power spindles.

Also, you’d need a spindle that can go in reverse.

Any chance you could use (hobby-style) servos for any of your functions? I know several boards aimed at 3D printing support several servo connections.

You may also be able to use a solenoid for simple on/off engage/disengage and not need full stepper driver control.