Springs. There is still plenty of backlash in the gear train, I simply used springs to preload the gear train and pull it all to one side. There are some pictures farther up the thread of the springs used in the other arm configuration. They are torsion springs wrapped around the shaft that pull each arm back. You can see in the videos how well it works printing small cubes, there is no backlash transferred to the print.
I looked at the phidgets page and the product specs list your gear ratio as 50 4397⁄4913 : 1 ( ~ 50.8949 ). So if you have been using small integer gear ratios like 49 or 51 in your calculations that may cause some calibration issues.
Although they might be calculated, I suspect the numbers listed on the calibration page are measured.
I took a stab at estimating mm per step at a point, it would be interesting to know if the results match up with reality.
The closed form solution for the mm per step looked like it would get ugly, so I took a finite differences approach. I compared the step values at a point and another 0.001mm away in the x and y, but I don't know exactly how much error that introduces.
I saw Mr. Seward's post and he mentioned the calculations taking an atan, square root, some multiplies and adds, but I haven't figured out how to avoid using an arccos as well.
I listed the gear ratio at 49:1 because in this current configuration, I'm using gears to go from the stepper motors to the main shaft. They drop the overall ratio down a bit. I will definitely check out that file and see where I went off the rails.
While I'm still working out some bugs for the Morgan configuration, it occured to me that it was possible to make the Armstrong arms in such a way that they can not contact each other during start up. I was not able to implement Saurabh Lanje's end stop code, so will have to wait for the complete firmware to be released. The upper arms were machined in a sort of tear drop configuration.
After more time and effort than any sane person should spend on a task, the end stops are finally working for the Armstrong arms. And it ended up being a fairly simple fix. There was a section in tssalo's marlin_main.cpp section, G28, which he had disabled. I reenabled it, then went to the configuration.h section and set the y axis to home to the negative and the x axis home to the positive. Then in the slicer I added to the custom start G-code:
Have you decided on a linkage? Are you going with the Morgan type arrangement or something more like the latest renderings? I'm interested in making a SCARA type machine and have gone through a few design iterations, mainly looking at firmware at the moment.
Have you sorted out the firmware? The ancient TTSALO Marlin branch is pretty stale and although the main trunk of Marlin now has support for SCARA kinematics, the documentation is less than comprehensive.
Ultimately I'd like to make a machine very similar to what you're designing.
I've settled on the Armstrong type arms. One of the main goals I had when building that machine was compactness and portability. The Armstrong arms stow in a much neater fashion. If you modify Ttsalo's firmware in the manner I described above it will work fine, endstops and all. The only issue is at startup the one arm swings over as can be seen in some of the videos linked above. If I was doing the build over I would make the spacing between the arms wide enough that the arms could not connect when that happens.
As far as I know the main branch of Marlin currently only supports the Morgan type of SCARA. Let me know if you have anymore questions, the world needs more SCARA printers!
The Z axis was in need of some repair, so I purchased new bearing blocks and machined up new platform arms. Since the printer is now disassembled, I am going to take this opportunity to redo the sheet metal over the next few days.
Hi, nice design you have there.
I think it will be better if you try to modify wangsamas firmware than marlin for your scara.
there are some features that will make you more easy to make it fit for your scara
1. there are special controls and GCODE to rotate X & Y motor individually, beside move to X & Y direction. G5 X__ Y__
2. there are calibration GCODE tools, G50 that can be used to semi automatic calculate the length of arms, angles and steps per units.
you can find the firmware here [github.com]
and this is the website www.wangsamas.com