Welcome! Log In Create A New Profile

Advanced

Pin assignments and arduino ports

Posted by akhlut 
Pin assignments and arduino ports
February 01, 2014 10:52AM
I got bored last night and started to look at the port assignments of the various 2560 board iterations (RAMPS, RUMBA, RAMBO, MEGATRONICS). Some boards group specific functional pins together on a single port, while others have seemingly random pin assignments.

For instance, the RAMBO has all the enable pins on one port, the step pins on another and the direction pins on yet another.

Another board groups enable, step and direction pins for a single driver to a port.

From a performance perspective which is best?


- akhlut

Just remember - Iterate, Iterate, Iterate!

[myhomelessmind.blogspot.com]
Re: Pin assignments and arduino ports
February 01, 2014 01:53PM
I would personally try and stick to all XYZ steps are on the one port if possible, as most firmware use bitwise operations for control.

This would ensure that any X/Y/Z steps (or whatever it works out for a Delta) are happening at the same time.

Extruders could follow the same thing (and even the same port if it comes to it). If you're using a mixing extruder, you want them to all step at the same time for consistency.

Direction needs to change a bit, but not as often as Step. Heard some notes about some drivers needing dir to appear a set time before step (which is logical), so makes sense for a separate port from a speed point of view.

Enables don't need to be fast usually, so that's not really an issue.

IMO in theory it should be faster to set all your dirs on one port, then send all your steps on another, than to do them on the same port, but it won't be by much, and may even be too fast for the drivers anyway.

Note: The X/Y/Z issue makes the most sense to me with Deltas, as they have the most overhead, and also must step all 3 axes at once from an accuracy standpoint.
Re: Pin assignments and arduino ports
February 01, 2014 09:19PM
So based on this, can we say that boards that perform port grouping for critical signals have an edge in terms of performance? If so then the RAMBo should have a performance edge over the other boards.

[drive.google.com]

This will probably be irrelevant soon with all the ARM options coming online...


- akhlut

Just remember - Iterate, Iterate, Iterate!

[myhomelessmind.blogspot.com]
Re: Pin assignments and arduino ports
February 02, 2014 12:42AM
Depends entirely on the code as to how well they take advantage of it. If the code doesn't move the extruders at the same time as the axes (ie: if there is some other code in between), then it's not going to help at all.

As to ARM, yes, they're faster, but even then there are limits, especially if you decide to increase microstepping (I saw someone mention wanting 1/64th recently).
Re: Pin assignments and arduino ports
February 06, 2014 08:04AM
Probably best are the ones that have short tracks and small number of vias. Each via adds a parasitic capacitance maybe 20-30-40+pf which may not be all that much for normal logic tracks, but still probably should avoided in case of frequency signals like step or some tx/rx or some of sd card pins, stuff like that. So the routing on the board is best done for proximity and this means each pin has to be assigned manually to suit the particular layout, and routed like that. I would say that who assigns entire ports to one job is someone who "cba" to properly assign and manually route in an adaptive mode to the layout. Most probably using auto-routers for that, and this is less than optimal. Ofc all the above is - imho. Perhaps not so important in our boards, and more of a principle than a real constraint in our case, but thats how i see it ideally.
Sorry, only registered users may post in this forum.

Click here to login