1. About
  2. Features
  3. Explore

The wiki page for the RAMBo board mentions:

Step and Direction pins are on their own ports for synchronous movement capability

What does this mean, and how does it affect printing? Do I need special firmware to take advantage of this?

1 Answer 1

A "port" for the AVR microcontroller is a set of eight IO pins that are controlled together at a hardware level. The underlying machine code can write an entire byte to set the status of all 8 pins at once. So in principle, all the step pins on the RAMBO board can be triggered exactly simultaneously.

The Arduino IDE hides this behavior from firmwares by abstracting the port's byte handling as a function call for each individual pin. That means programmers only have to know the Arduino PIN number, not which port and position on the processor is being used. And then the modern firmwares typically used by RAMBO do a further layer of abstraction to make it easy for the same firmware to be used by different boards, by changing pin assigned names in a config file (usually pins.h) and not assuming any specific port selection was made during board design.

There's no guarantee for open-source firmware that a particular pin selection was made in hardware. Lots of 3D printer controller boards even have pretty dumb pin assignments, like using hardware-PWM-capable pins for stepper signals rather than PWM'd heaters. Marlin and Repetier have chosen flexibility over performance optimization in this regard. They pretty much let the board designer use any pin for anything. When they have to do stuff like run heater PWM control or fire a bunch of step pulses as fast as possible, they emulate that in software rather than taking advantage of specific hardware that isn't always available.

In this specific case, there may not actually be all that much performance gain/loss. Writing to an output pin is pretty fast. The amount of time difference between firing a few step pulses in sync or firing them sequentially is on the order of a few microseconds. That won't make any difference to the motion fidelity of the printer's physical drivetrains. Somebody involved in the RAMBO design just thought it could be useful, and put a reference to it on the Wiki page (in the very first upload!) and it's never been clarified or removed from the Wiki page in the years since.