Use Snapmaker controller and linear modules for other projects

This is what I have learned trying to use Snapmaker 2.0 controller and linear modules for a liquid handling robot. I couldn’t find anything posted on the topic so I’m posting what I’ve learned and figured out.

  1. It doesn’t seem like you can mix and match linear modules of different lengths. It throws errors which can be cleared, but then homing doesn’t work properly.
  2. You can use linear rails of different lengths, but the boards in all the modules need to be from modules of the same length. there may be a software workaround but I gave up trying to find it. I built a system with (2) A350 for Y axis, an A250 for X, and a Z from an A150. I harvested the boards from two A350 and put them in the A250 and A150 and it works fine. There are youtube videos on taking these apart. Its not hard.
  3. Normal Snapmakers have (2) Z, (2) Y and one X axis. It seems to work fine with (2) Y, 1 X and 1 Z.
  4. Be mindful that there are two different leadscrew pitches on the modules. Z axis are 8mm and XY are 20.
  5. You may need to move the limit switch for your application since the carriage goes quite far to the end before hitting the limit switch. If you stack up 3mm male/female standoffs to the bottom carriage nut housing screw and make a little plate, you can move the limit switch actuation point inboard almost any length you want. There is no limit switch on the cable end of the modules, so your software has to be mindful of this.
  6. You can control all axis with standard 3D printing Gcodes. Here is a link to Gcodes supported by Snapmaker 2.0
    https://snapmaker.github.io/Documentation/gcode/G000-G001
1 Like

What did you build?

Thanks for sharing!

On point 3: The splitter (aka Converter) that joins the two Y and Z modules into one port of the controller, is just a port duplicator as far as I understand it. So, whatever limit switch of the attached linear module triggers first, will “win”. And using more than one converter (or perhaps the CAN hub?) you might even join 3, 4, … linear modules into one port, as long as the power limits are observed. There’s one user that doubled his X-axis to attach a more beefy milling-spindle to it, and has used the converter for that, works.

On point 4: The old, noisy Ax50 (no T/F) linear modules are all 8mm pitch, so if you happen to find them used for an acceptable price from someone who has updated their device, this may make you more flexible.

Last point: If you are willing to tinker with the firmware, this seems to be possible. Source code is open source, and a few people here successfully built their own. This might enable you to use different lengths of modules. Also, perhaps this is helpful? Set Home Offsets | Marlin Firmware

That all from someone who has not yet tried to alter configurations…

Just to bring up @Ronin and what he did with his snapmaker

2 Likes

Hi Hauke
Regarding point 3: True enough. I only have to modify one of the home limit switch distances on my Y axis since that one will trip and then it is done homing that axis.
Last point: C code is not one of my superpowers so I’m wanting to use the Snap controller stock. I saw the Set home offsets command and figured that is what it did.

nweolu,
I did not know about GRBL. Very cool stuff! He is able to move the limit switch to the other end because of GRBL. Snapmaker moves to the far end looking for the switch and I didn’t see any way to change that. I had not thought of cutting the rails shorter. That means cutting the leadscrew as well. A nail-biting moment.This guy is very clever. I will see what else he has been up to!

Yeah, cutting it is kinda extreme, I wonder if he could’ve used rails from snapmaker original. They are shorter. Or from snapmaker A150.

The Original linear modules use a different cable and protocol. They use an RJ45 connector, and no CAN bus. The protocol was reverse engineered by some people that wanted to make custom heads. It’s in the forums, but it’s getting harder to find posts about the Original. If you’re interested, I can spend some time searching.

The 2.0 announcement said that they would support the Original modules, but I’m not aware of that actually happening. I think you’re going to be writing C code to make this happen. The Original firmware is available as a .zip file in the forums, but I’m not aware that anybody figured out how to build and package it.

Regarding @Ronin’s projects - the following is very useful for own applications with linear modules,
he shared all files.
Snapmaker 2.0 modules + GRBL = SnapiGRBL - YouTube

To have fun in my free time, I soldered this controller, PCB and did a many tests.
There are two Arduino modules on the PCB - one is only used for communication of the CAN bus with the Snapmaker 2.0 module. Linear modules can be mixed freely - each can be different length. You don’t need to cut them - use what you have, etc.
After a simple procedure for assigning modules to the X, Y, Z axis, activation of any limits switches is transferred to digital outputs. So, You can use this PCB in your various applications.

The second Arduino module is only for GRBL software - but you don’t have to use it.
To move linear modules, all you need to do is use DIR and STEP signals.

Now, I don’t use GRBL firmware for the second Arduino module but I just made my simple program.
I tested several libraries and I can recommend the Accelstepper library - it works very nice.
Of course, the use of GRBL software gives much more possibilities.

2 Likes

we need more people like you sharing their developments! It’s really cool!
What did you build?

I haven’t built anything concrete yet, so far it’s just fun testing. I’m not an advanced engineer or programmer like @Ronin, it’s nice that he shares these projects.
But it’s very cool to control these modules with your own simple Arduino program. :metal:
I don’t have as many spare modules as I would need yet.
And after modifying the module connectors, they cannot be connected to the Snapmaker 2 controller in such an easy way.

1 Like