Networking two TinyGs page 2

From the original Synthetos forum (2011–2025)

Started by jpistorino on in TinyG Support. 39 replies, last activity Jun 15, 2016.

#

Assuming you asked me:-),

> Can you shoot me a note as to where you are physically located?

Tampere, Finland.

> if you are using fiducials to align what the camera is seeing with the real world of the CNC domain. If so, how do you do it, what fiducials are you using, and how did you fabricate them?

I'm using industry standard fids, a round pad with no soldermask and no hole. On CAD, those are just another SMD component, with position data, manufactured by the PCB maker. At pre-processing, I find these from the pick-and-place file. I have a jig on the table where the board goes, so I know approximately where the board origin is in cnc coordinates. I go look at the fiducials, and regognize them using AForge.NET vision library to get the exact fid positions in cnc units. Then just some math to get board offset, scale and skew, which then give me the true component locations and rotation in cnc units.

Of course, I also need to know the needle point offset from the camera, as a function of rotation. For this, I use another camera, looking up from a hole in the table.

This has nothing to do with networking TinyG's anymore. We can start another thread or take this off-line. (There are no private messages on this forum?)
My mail is juha <at> kuusama point com.

Staff #

I certainly don't mind if you continue discussion here. This is fascinating.

#

I will take up Alden's offer.

Juha,

I knew that you were in Finland and your project is great.
You are a few steps ahead of me.
When you say "industry standard", can you point me to something that has details about the fids?

Thanks,
James

#

Thanks Juha.
It it interesting because those fids are both: 1) not unique (i.e., you cannot distinguish between two fids except on expected location); and 2) they are rotationally symmetric such that you need two to determine skew, etc.
I am looking at the fids used in augmented reality as an alternative.

Still hoping that John is Bay Area and that we can talk.

Regards,
James

#

Hey James,

I'm in Seattle, so not quite the bay area, but at least same time zone. I'm really early on in thinking through what elements are needed for the Pick and Place project. The part I'm working on right now is a laser solderer. Not sure it's going to work though. I have the hardware built and now adding a widget to ChiliPeppr to control it. It's got a PID to control the laser to not overcook the solder using the Melexis MLX90614 infrared heat sensor. I have a USB Microscope mounted to be able to see the process.

So far I don't need a fiducial for recognition as I already know the location from the PCB Gcode, however I'm keen to see if the fiducial recognition can happen inside ChiliPeppr because it is a fundamental item that will be needed for a lot of things in the future. I have a lot of webcam integration built using WebRTC. The cool thing with WebRTC is you can just grab a frame and then process it as a bitmap to do things like object detection. This blog seems to give a decent rundown on object detection using WebRTC. http://techslides.com/object-detection-with-html5-getusermedia/

-John

#

John,

i have a quick question on implementing a jog feature. What is the best way for me to reach you? No email address is here in this forum.

Thanks,
James

#

I have a similar question. I have a setup where i'm currently using all 4axis XYZA(x doubled up) and it works great, but I would like to add one more small stepper like this one: https://www.sparkfun.com/products/10551

It will do sort of an in-between job like cleaning the head, so it does not have to synchronize with the other axis.

What would be the easiest was to implement this with tinyg?

thanks, Peter

Staff #

In theory, two tinyGs can be networked together.
I am not aware of anyone who has actually tried it.

Other ideas:
Use 1 tinyG. Drive both X motors from one driver, Y from another, Z from another leaving A (or B or C)axis available. If X, Y and Z are heavy duty motors, could use 2 external drivers on the X axis for your X.

or

Try tinyG2 running on a DUE. Use Gshield for 4 motor drivers, wire an external driver to the 5th port pins on the DUE.
or
Experiment with a 5 driver shield such as an Ultimaker shield connected to DUE running tinyG2. Would require a lot of Motate pin remapping and some customization of the Ultimaker.

If you machine has heavy duty X,Y,Z motors, I'd suggest the external driver approach. None of the Shield products have very good heat sinking for the driver devices, IMHO.

#

Thanks, I already have XXYZA on the M1-M4 drives, so the DUE control could be the way to go for the extra stepper.

Is there any way to use the spindle pins(PWM, sdir, spin) to communicate to a stepper driver -like 'big easy drive'- and add a 5-axis?

Staff #

I am not a dev, will guess "maybe", depending on what exactly the ‘big easy drive’ needs, but would be a lot of reprogramming of tinyG internals, plus you would have to figure out how to feed your reprogrammed logic with a command string.
Due would seem a more straightforward path, to me anyway. There is good code build support for the G2/DUE combination.

Sorry, I missed the fact you were already XXYZA.

I have seen, somewhere, shield like boards and code to drive steppers from a RazPi.
If you are a Chilipeppr user and already have a Pi, that might work for you.

#

This thread has gotten me thinking on a few reasons to network a TinyG together--not for a pick and place machine--with either another TinyG or some other board. My first thought would be the ability to utilize additional limit inputs (X-, Y-, and Z- min/max switches) without losing any physical limit switch functionality on the machine itself. Consider using it with a 3D touch probe in the G54-G59 coordinate system. Using a similar setup with CP already has for mapping the face of a PCB board with the Z-min limit, but expanding on it to map both the x- and y- limit of the work piece.

Another thought would be the ability to take advantage of additional TinyG outputs such as the coolant trigger: instead of having M7 and M8 function by turning on the same output allow the TinyG to set M7 for one output and M8 for the other. In similar fashion two spindles could be utilized (combined mill/lathe machine maybe?).

Those shouldn't require synchronization as utilizing the steppers would. Would something like that be possible, or rather I should say: Would something like that produce less programming and new board production requirements than the G2?

#

Alden, this is a bit off topic but along similar lines. I have a TinyG V8 and my setup runs two motors on the Y axis. What I would like to do is add an A axis to my current hardware. However all of my stepper motor drives are tied up. I would like to add an easy driver to say Port J17 and run both my Y axis that way. This would free up an on board motor driver which I could assign to my Aaxis. Will an easy driver work for this task in port j17 or j18? I an trying to avoid buying a TinyG 2 at this point until they have all the bugs worked out, also trying to go the least expensive route. I already have a Nema17 and easy driver I could use. Thanks for your help.

This topic is from the original forum (June 2016). Your reply starts a new discussion linked to it.

Reply

Different problem? Ask a new question

Back to TinyG Support or latest activity.