Networking two TinyGs

Home Forums TinyG TinyG Support Networking two TinyGs

Viewing 15 posts - 1 through 15 (of 40 total)
  • Author
    Posts
  • #6729
    jpistorino
    Member

    I have a TinyG v8 and now realize that I need to control 5 stepper motors. I have seen fleeting references to the ability to chain TinyGs together. Is there someplace that describes how to do this for the complete novice, including how to make whatever data/electrical connections would be required?

    Anybody else try doing this?

    Any help appreciated.

    Regards,
    James

    #6730
    flux
    Member

    I don’t really know about the networking, but do note that TinyG supports up to 6 stepper motors; it just comes with four drivers. The two other are available on the board, you just need to add pin headers. You should be able to hook up a 3.3v-controlled stepper driver to those. I haven’t done this either, but it would seem pretty straight-forward, at least if proper caution is taken :).

    Probably cheaper and less complicated way to go.

    #6731
    alden
    Member

    The best way to get 5 steppers at this point is to use the (experimental) G2 code branch on an Arduino Due. The ARM version has the horsepower to properly drive 5 or 6 axes. The code is compatible with the Synthetos gShield to drive the first 3 axes, then you must come up with 2 more drivers. You could jumper in another gShield, or use some pololus or Easydrivers or something like that.

    It means you are in for a bit more build on your own. Also the G2 code base is still experimental, but it’s getting pretty good (if I can say so myself).

    #6732
    jpistorino
    Member

    Thanks Alden.

    I will try my luck with a question more specific to my project.

    I already have a TinyG that is working fine with my CNC with dual X motors driving the gantry. My project basically uses a 24V power supply for everything. My project will need an Arduino (of some kind) as well for some adc and other stuff. I had been planning on operating the TinyG and Arduino independently. Right now, I am starting to write a JSON interface to control the TinyG.

    I already have another TinyG, so if connecting them was a relatively simple task, then I would do that. Alternatively, if there is something simple that I could interface with my single TinyG (like hooking http://www.pololu.com/product/1182 to J17 as I think flux suggests) and do this that would be great.

    Alternatively, I could go with multiple gShield but would have a lot of questions.

    For me, price is not really an issue but getting something to work quickly is. I am a hardware novice and am looking to focus more on software.

    What do you advise?

    Thanks,
    James

    #6733
    alden
    Member

    What kind of machine are you building and what is the requirement for coordination between the axes?

    The reason I ask is that it is possible to network 2 tinyg’s for 5+ axis control, but the communications lag makes fine control of 5 axes not possible. If you are not really doing a full 5 axis machine – instead doing 3 or 4 axes and indexing – then slaving a tinyg should work fine. If you are looking for full coordinated motion, however, it does not work well enough. We have tried this and know from experience.

    It’s not possible to just slave another driver, as the board really only outputs 4 motor channels. So this is OK for doubling up a channel for a dual gantry situation, but not an option if you need truly independent 5th axis.

    #6734
    jpistorino
    Member

    Thanks Alden.

    I am trying to build a pick and place machine similar to OpenPNP. The four drivers on the TinyG are used for the gantry with dual X drive. However, you have to correct the orientation of the picked up part and that requires another stepper motor (a NEMA 17). Thus, there is no requirement to coordinate the orientation motor with the XYZ axes. You juts get to the right physical location, then correct the part orientation.

    Would attaching the Pololu part I referenced to J17 work on the hardware side?
    If so, how would I reference the fifth motor on the software side?

    Thanks,
    James

    #6735
    ascott
    Member

    Since your machine has doubled X-axis motors, could you attach an additional stepper motor driver to the Motor 1 pinout? Then your machine configuration could be
    Motor 1 -> Doubled X-axis
    Motor 2 -> Y-axis
    Motor 3 -> Z-axis
    Motor 4 -> A-axis (your NEMA 17 for part orientation)

    #6736
    jpistorino
    Member

    I am in favor of anything that works and is easy.

    When you say “motor 1 pinout” is that J17 such that I could attach a http://www.pololu.com/product/1182 to it and get the drive both X motors?

    If so, would the fact that you are using two different drivers (one on the TinyG and the Pololu part) be an issue?

    If this would work, this would seem to be a fairly easy answer and could solve a need for five motors. I would think that many people are using dual motors on one axis of their gantry. Thus, they run out of space to drive anything else requiring a stepper motor.

    #6738
    ascott
    Member

    When you say “motor 1 pinout” is that J17 such that I could attach a http://www.pololu.com/product/1182 to it and get the drive both X motors?

    Yep, you got it.

    If so, would the fact that you are using two different drivers (one on the TinyG and the Pololu part) be an issue?

    I’m not sure about this – maybe Alden can answer whether there are any problems mixing and matching motor drivers. One issue that I see is that there is no way to set the microstepping for the Pololu driver from the TinyG, so you would have to make sure that the Pololu driver’s microstepping (set either in hardware or from some other device) matches the TinyG’s Motor1 microstepping (set in software, and reset to default any time you do a firmware upgrade). If the microstepping for the drivers don’t match, they’ll drive the X-axis motors at different rates. Yuck.

    Oh! To get around the mismatch problem, I suppose you could just use TWO of the Pololu drivers connected to J17, and leave the TinyG’s Motor1 driver unconnected. Note that in order to get accurate positioning, you’ll still have to make sure that the microstep setting ($1mi) in TinyG matches your external driver configuration.

    Now that I think about it, I think doubled external drivers is the better way to go. I haven’t actually tried running a dual motor axis yet, though, so you may want to get additional input before you go shopping 🙂

    • This reply was modified 10 years ago by ascott.
    #6740
    jpistorino
    Member

    Thanks for your help.

    I will wait for Alden to weigh in but this would be great if it works.
    It essentially adds another motor control to the TinyG for $12 for a dual gantry configuration.
    Dual gantry is probably the most common larger scale configuration so you use up all the drivers.
    If it works, I would suggest adding a wiki page/promoting this as it would fill what I expect is a need.

    Alden – what do you think?

    #6742
    ascott
    Member

    Sure thing. Have you looked at this driver?
    http://www.pololu.com/product/1183
    It appears to be the same as the one you posted, with the exception that this one has built in 5v and 3.3v regulators so you can power the board straight from your 24V power supply. Should simplify setup, if you’re willing to spend the extra $4 per board.

    #6743
    alden
    Member

    Looks like a good plan. The external driver needs to be able to be driven from a 3.3v signal, have a step pulse min of 3 microseconds or less, and you will need to set the microsteps manually to agree with the slaved axis. I have not reviewed the specs on the pololu deriver, but this should be OK.

    #6744
    jpistorino
    Member

    Thanks Alden.

    I suggest that Synthetos offer this as a TinyG accessory: an expansion board that can be connected to the pinouts to drive dual axes while preserving four axis control. Anybody that is already using all four axes, can add dual driving to one or more of them of them. Anybody that is already using dual drive, can now get access to another stepper motor. All of this for ~$15-25. A little ribbon cable so that you can mount the expansion board somewhere and you are all set.

    I will try it and let you know how it works out.

    Thanks to you and ascott.

    #6759
    jlauer
    Member

    Hi James,

    I too am trying to create a pick and place machine and it’s partly why I started ChiliPeppr. So, I’d be up for collaborating. The basic model I have in place is that the Serial Port JSON Server can talk to multiple serial ports at the same time from one software interface, i.e. ChiliPeppr. Then you can coordinate commands between multiple TinyG’s and multiple Arduinos or other serial port devices. I have an example of doing so with this Youtube video https://www.youtube.com/watch?v=TiGAtmWwY8E. It works great and is the start of controlling multiple devices at the same time.

    I imagine for Pick and Place that the video integration I’ve already done with MultiCam (see the macro in ChiliPeppr / I also show MultiCam in the youtube video above) can be used to do machine vision alignment. Then based on that, commands can be sent to the pick and place steppers to align, rotate, etc. Also commands could get sent to turn on suction, etc like in my Youtube video where i send “laser-on” and “laser-off”. Then XYZ commands can get sent to the main TinyG for placement, again like in the video.

    For pick and place, I think we all should work on the vision recognition part including a “thingiverse” type library for the part recognition.

    I envision a new Widget or series of Widgets that have the pick and place control parts like what OpenPNP sort of started doing.

    #6761
    JuKu
    Member

    Talking about pick and place and vision, I am working on a TinyG based machine: http://hackaday.io/project/1755-LitePlacer—a-low-cost-Pick-and-Place-machine
    There is a video showing needle calibration. I haven’t updated the project, but the contraption actually picks and places. I use vision for machine homing, fiducials recognition (nominal to machine coordinates transform), parts pickup (no feeders, locating parts by looking at tape sprocket holes), loose part pickup, camera to needle and other calibration and rotation angle – needle position offset measurement. Pretty obvious how the four motor drives of TinyG are used. 🙂

    • This reply was modified 10 years ago by JuKu. Reason: Link did not show up
Viewing 15 posts - 1 through 15 (of 40 total)
  • You must be logged in to reply to this topic.