ZenXY morphing to SCARA

I currently have a ZenXY2 (CoreXY) machine that uses BDring’s TMC2209 Pen Laser V2.0 controller board and Grbl ESP32 firmware. If my memory is correct, I just selected the “tmc2209_pen_laser.h” machine when compiling the firmware and I was pretty much good to go. I would now like to use that same controller board in a SCARA polar arrangement using the gcode output by Sandify (polar machine). Can anyone offer any guidance on how to configure GRBL to make this work?

1 Like

The SCARA output from sandify assumes all the responsibility for kinematics. The firmware doesn’t know it is a SCARA. You would configure grbl as a regular XY machine, with the shoulder as X and the elbow as Y.

There are some assumptions. Not every SCARA set up will work. Check out the wiki:

Got it. I used the same “tmc2209_pen_laser.h” machine and just commented out the “CoreXY.cpp” custom code file name. It seems to be working on the benchtop. I hope to have the SCARA mechanics assembled later this week.

1 Like

I completed my SCARA arm and I now have everything working as intended. I designed a slightly smaller version of @woobag 's arm using his Thingiverse STEP file as a reference. I wanted to make a table top machine so for me smaller is better. I did make a few rookie mistakes that may help others. I was not aware that some settings in GRBL require a power cycle to take affect. I needed to change a stepper motor direction and I couldn’t get it done using the settings. I ultimately physically switched one pair of motor wires to change the direction. I then discovered the need to perform a power cycle and that solved that. I also incorrectly assumed that just by selecting the polar machine type in sandify that I would get the desired SCARA output. I completely missed the “export as” drop down selector. Once I got that sorted out all was good. Now I need to design a circular enclosure. That should be easier for me. I’ll post the finished product at some point in the “Your Builds” area of the forum.


5 Likes

Hello, I’ve been struggling to get anything working at all software wise. My 3d model works pretty well when just spinning the motors but I cant get anything to work right with fluidNC firmware. Could you send some tips with what configuration file I should use?

It’s been over a year since I worked with this firmware. GRBL and using Visual Studio Code was all new to me. I have not used FluidNC so I don’t know how it differs from GRBL. I know that FluidNC has a Discord channel where you can interface with the authors. They also have a section devoted to Art-Bots where SCARA devices are discussed.

I believe that I downloaded the source code for Grbl_ESP32 from here: GitHub - bdring/Grbl_Esp32: A port of Grbl CNC Firmware for ESP32 and the machine definition from here: TMC2209_Pen_Laser/firmware at main · bdring/TMC2209_Pen_Laser · GitHub

I think that I just added tmc2209_Pen_Laser.h to Machines and edited Machine.h to include “Machines/tmc2209_Pen_Laser.h”

Sandify creates the SCARA motion using standard X-Y gcode. Shoulder is X and Elbow is Y.

I wish that I could help more but I am coding illiterate. I just beat it into submission!

1 Like

Thanks a ton! Could you share your wiring for the tmc2209? I have the en pin currently on a io pin on the esp32 but I dont think the firmware is pulling it to ground to turn on the motor. I get " ERROR:8 Grbl ‘$’ command cannot be used unless Grbl is IDLE. Ensures smooth operation during a job." error when i try to move the motor. I am also using STALLGUARD_LIMITS if that changes anything

I did not have to wire the drivers as they are integrated into the controller that I used. This schematic of the controller may help: TMC2209_Pen_Laser/TMC2209_Pen_Laser_V2_Schm.pdf at main · bdring/TMC2209_Pen_Laser · GitHub
You can also check out this Wiki: Home · bdring/Grbl_Esp32 Wiki · GitHub
I used ESP3D. It always starts in the Alarm state. You have to reset the alarm before the motors will move. I am sure that there is a GRBL command for that…I just don’t know what it is.

The machine locks itself out until it gets a
$X
Command to bring it out of “locked” and into “idle”
You can also do this by clicking the locked button on the webui