X-Y table - Page 1
Forum section: electronics / projects

author: Zom-B
author_rank: Regular Contributor
timestamp: July 29, 2020, 12:35:29 pm
content: I want to make an X-Y table of 3x3 meter using extrusion pipes/rods (or similar), stepper motors, and end switches. I found candidate drivers based on DRV8825, Pololu A4988, and TMC21xx at a local 3D printer shop. I'm not sure whether the X motor will be on the moving bridge or if I'll use the H-frame type with two fixed motors (see image).My real question is, what would be the right software to control this? All it has to do is go to a specified point (acceleration-limited movement) and stay there until the user specifies the next point. The points will be in a list of points which should be repeatable without having to type the coordinates every time.I prefer using a laptop, but in order to connect the end switches and drivers, I assume I can't get away without using a RPi. Is that correct? Otherwise, what connectivity and USB->I/O converter would the PC software use? I saw one example using an Arduino MEGA and RAMPS shield.Bonus points if the software can be controlled by command-line, a python script or similar (in which case the software itself doesn't have to support a "list of points").Alternatively, all software could be contained in the Arduino if it supports simple serial command like G-codes G28 and G1, and does so with limited acceleration.

author: mikerj
author_rank: Super Contributor
timestamp: July 29, 2020, 01:22:07 pm
content: Something like an SKR Mini would likely be the easiest and probably cheapest way to control this. Firmware is open-source (Marlin) and you can add an LCD touchscreen/encoder for very little money to enable manual control if you need it.

author: sleemanj
author_rank: Super Contributor
timestamp: July 29, 2020, 01:32:21 pm
content: I'd just use a 3d printer control board, and standard 3d printer firmware like Marlin on it (https://github.com/MarlinFirmware/Marlin)Just ignore the Z and E axes. Firmware will allow you to control the acceleration etc you want, and you can just send the appropriate G code for homing and positioning (USB-UART serial).

author: Zom-B
author_rank: Regular Contributor
timestamp: July 29, 2020, 01:52:37 pm
content: Thanks for the response. The SKR Mini looks promising but might be a bit overkill on the firmware side. Does it support setting acceleration via serial link or only via LCD/encoder?

author: mikerj
author_rank: Super Contributor
timestamp: July 29, 2020, 03:30:53 pm
content: You canconfigure accelerationvia G code over the USB link.

author: phil from seattle
author_rank: Super Contributor
timestamp: July 29, 2020, 04:04:01 pm
content: 3 M x 3 M may be an issue for a belt driven mechanism - that's pretty big. Have you looked at other belt driven machines that size? How accurate does it need to be? You are going to wind up with about 18 M of belt. I don't know how much stretch that will have but worth knowing before building it. You will have to put pretty high tension on it. Definitely get high quality belts but they all have some stretch. Actual stretch specifications seem hard to come by.I second the 3D printer board suggestion. Marlin 2 is 32-bit and I would focus on using that. You can control the whole thing via USB from your laptop.

author: Renate
author_rank: Super Contributor
timestamp: July 29, 2020, 06:39:49 pm
content: Hmm, that's an interesting configuration.If the two motors are considered "X" and "Y" then you end up with a coordinate system that is rotated 45 degrees.This might make homing and limiting a bit confusing.I'd think that you'd have to modify the software for X = sum and Y = difference (or the other way around with polarity).Or am I missing something? Is this totally normal and an option that Marlin has already?Edit: My bad. I didn't realize that everyone in the universe knew about H-drive but me.

author: chris_leyson
author_rank: Super Contributor
timestamp: July 30, 2020, 08:59:20 am
content: HP used to make a flat bed X-Y plotter that way and they used stranded steel wire. Not sure what they used for drive motors but I don't think they were steppers. Can't remember the model number but it had two fixed motors and a single steel drive wire, I got to service one when working at Winnersh for a while. I think there was a problem with the electrostatic paper holding so that may help date it.

author: Zom-B
author_rank: Regular Contributor
timestamp: July 30, 2020, 09:23:25 am
content: The accuracy I require can be expressed in millimeters. Probably a centimeter will be adequate but at least for the first build I'd be tuning it until it's at worst 2mm. Considering the belt stretch I don't think I'll go for the H-frame design. The traditional design has lessthan half the beltand I just found a nice 'extensible' design:https://pinshape.com/items/46225-3d-printed-a0-flexible-sized-plotter-including-software

author: moffy
author_rank: Super Contributor
timestamp: July 30, 2020, 09:25:13 am
content: Look at GRBL, it uses an arduino uno or even nano. Lot's of configurations and it uses standard GCode. Make sure your steppers have enough drive and I agree I think 3m x 3m is too large for a belt, you'll get stretch. You can buy some TB6600 stepper drivers, in a case, cheaply and they work very well. I've used 3 and they are great.

author: phil from seattle
author_rank: Super Contributor
timestamp: July 30, 2020, 04:00:43 pm
content: Quote from: moffy on July 30, 2020, 09:25:13 amYeah, grbl would work too. On the TB6600 steppers - most being sold on ebay/amazon/whatever are actually counterfeits and have a lesser controller in them. You can tell easily because they have a 1/32 microstep and the real TB6600 doesn't. They do work, just don't expect to get more than about 2/3 of the step current.

author: jmelson
author_rank: Super Contributor
timestamp: July 30, 2020, 04:19:02 pm
content: Quote from: Zom-B on July 29, 2020, 12:35:29 pmMachinekit on a Beagle Bone with the CRAMPS board will directly mount any Pololu-compatible drivers (I think the 4988 are better than the 8825), for a relatively inexpensive and very compact system. (The CRAMPS board pulgs right on top of the Beagle.)Full disclusure : I make the CRAMPS boards.programming is in G-code (RS-274), although there are other ways of doing it.Jon

author: moffy
author_rank: Super Contributor
timestamp: July 31, 2020, 12:24:49 am
content: Quote from: phil from seattle on July 30, 2020, 04:00:43 pmDidn't know that, thanks.

author: langwadt
author_rank: Super Contributor
timestamp: July 31, 2020, 02:40:43 am
content: it's not going to be easy to make it accuratehttp://www.doublejumpelectric.com/projects/core_xy/2014-07-15-core_xy/

author: wizard69
author_rank: Super Contributor
timestamp: July 31, 2020, 08:16:18 pm
content: Without defining what the XY able is doing for is for it is not possible to give solid advice. In any event some general comments:Number 1 I hate H-Bots. They generally appear to be the result of some engineer doing a "see what I can do" without any real experience as to what the resultant creation is. What they are is more trouble than they are worth.Quote from: Zom-B on July 29, 2020, 12:35:29 pmWithout more information my guess would be that the mechanism mass is more that the drivers here and the small stepper they drive can handle. Basically you need to consider how much torque you can get out of steppers driven by one AMP.QuoteI'd avoid an H-Bot at all cost unless you have a very specific needs for an H-Bot characteristic. Beyond that belt drive can be very good in many XY systems but you need to be real careful about systems that produce reaction forces like mill / routers.QuoteThere are so may solutions or ways to do this that ultimately it is up to the engineer to choose what is easy for him. For instance you can go the the CNC approach which means code written in some form of G-Code. This is a slightly higher level language designed for motion control. You can implement an extremely low end solution on an Arduino with the GRBL software or go high end with a FANUC controller.You second alternative is to use the various single board computers and a bit fo C++ to write your own control software. Depending upon the board and the libraries available this may or may not be easy.The third alternative is to use intelligent drives with an Indexer interpreter built in. Here you simply tell the drive to move to a specific position. Depending upon the drive it might be as simple as telling the drive, over RS232, to move to a specific position.The four approach would be a PLC with a motion module plugged into the backplane. The advantage here is you can integrate motion control with the rest of the machines control needs.There are likely many more approaches but these are off the top of my head.QuoteNo, but here are qualification. You can hook up most fo your control needs to an Arduino running GRBL. GRBL however would require an interface app of some sort on a ""PC"". That PC could be a RPi.QuoteAgain that depends upon the route you choose and frankly it depends upon what this XY table will be doing.QuoteGiven enough time you can write a Python script to do anything. You could even make a new GUI for GRBL.QuoteI get to the end here an really don't know what you are after. It looks like you know what your options are but have an inability to move forward. Without more info on this project I really can't offer direction either. If this is a machine for commercial usage, in a business with employees, realize that you have a whole host of safety issues to address.A 3 meter x 3 meter machine is pretty big and is going to have some mass to it no matter what it is doing. This means you need to up scale your controls and the simple drive and stepper systems of a small 3D printer will not be optimal.