Grbl on Rambo, double Y-stepper

First off… As K pointed out, the two Z connectors drive both motors off of one driver, but they are wired in parallel, so the current is split between them. The “standard” way to wire them for our machines is to wire two steppers in serial, so the current goes from one coil, to the same coil on the other motor, and the current stays the same, essentially doubling the torque. Since the drivers are constant current, this has a good impact, without causing more heat or other issues.

Secondly, what you are asking for, running a second Y motor off of the E0 port is possible. We usually refer to that as “dual endstop” firmware. Because it allows you to use one endstop for each Y motor and when homing, it will move each motor to the endstop, squaring the machine. After homing, this will be essentially exactly the same as the standard firmware.

To get the dual endstop firmware, you can download Ryan’s firmware. That has been preconfigured for cnc and rambo and dual endstop for the mpcnc. If you are using this on a low rider, then you’ll want to change which axis is doubled, because you want a double Z and not a double X.

I’m not telling you to RTFM, but a lot of this info is laid out much better than I can wing it in the docs:

docs.v1engineering.com

And the forums are a bit tight on your first day. We have had basically no spam since we switched and the total traffic (useful and banter) has gone way up. Once you get past the initial hurtle, I think you will appreciate it.

2 Likes

Thanks for the link to that doc. Already learned a lot. I am used to a duet board an gecode setup, this is something else… I found out now, that E0 already is configured as second X motor, and E1is already configured for a second Y motor. So that is good and I don’t need to recompile for that.

If I may ask a follow-up question…
I am focussing on the Z motor now. I have a small Nema14 for the Z axis. Attached to the board it makes a high pitched whining noise that is slowly going down in frequency, while just holding torque (no movement). It does move when I ask it to, and when it does, the noise stops momentarily.

So, I was think about way too much current, and started googling about that. In the firmware I see $140 till $144 valued as 135. But everywhere I look it seems that that should be a value like 1.35 for 1.35A. So I think my Rambo is driving the motors on the max A it can give. I can’t find exactly how much Amps that is for a Rambo, but the X and Y motor seem to handle that perfectly (they are 1.68A rated motors) and are not getting very warm. The Nema14 for the Z axis however does get VERY hot, and I did not dare leaving it on for more that a few test turns. This motor is rated 0.5A

Now I set $142 to 0.3 and I do not see (and hear) any difference, the motor still gets hot very quickly. To test my theory of the 135 values on the other motors being wrong, I’ve changed $140 to 0.5. In my assumption that would lead to an X motor that can be pushed out of position easily. But it is not. I see no difference at all.

So my question is: What am I overlooking, and does the current values need to be 1.something or do I need to leave out the decimal like it is default in this firmware?

I don’t know how the current is set on a rambo with grbl. The current is constant, and only which wires it goes through changes when it is moving. So I would expect almost the same temperature if it is moving vs. stationary. The typical recommendation is 50C or less on the motors, to keep the plastic from warping.

The whining is normal. It is due to the way the driver cycles the voltage on and off to meet the desired current.

I would have to look at the source code to see how the rambo current is set in grbl. You could try to test the current through one coil, but remember that it does microstepping, so you’d want to step through a step at a time until it reached a max. Otherwise, in some positions it would be sending some current through each coil, and you wouldn’t measure the max. My guess is that when you first turn it on, it is at one full step, but I haven’t ever confirmed that.

Jeff, I appreciate your quick reply!
I think it is more a matter of “how does the firmware interpret the current” than how it is set on a rambo. I remember this Rambo in it;s Repetier period (it is a leftover from a Rostock Max printer), the current was set as a value between 0 and 255. Somewhere along the line repetier decided it should be a percentage (0 = 0A / 100 = max A). So a lot of users found themselves overdriving their motors after this firmware update. Duet RRF plainly gives a value that represents the real current. I checked the configuration.h on this grbl version of Ryan and it says 135 on all axes. But that could be a mistake. Most motors will not complain about anything if they run on the max Amps Rambo can give them (being 1.6A as far as I remember, but I am not sure and cannot find it real quick). Fact is, I cannot see anything different whether I put 135 or 0.5 in that value, and that seems odd. Can I just put a multimeter on the motor pins to test that? I thought it changes much to quickly to take measurements that way, but I can try.

Do you have grbl or Ryan’s Marlin? Ryan doesn’t have any grbl configurations, AFAIK.

You can measure the current with a meter. See the notes I made above. Also, make sure you know how to measure current with your meter. Otherwise you can short the driver or the meter, or both.

1 Like

Uhm, no I was mistaken sorry. I am not using Ryan’s firmware, but the Grbl mentioned in this thread:

I will inform myself better before measuring the current on the steppers. But something odd is going on with this motor getting that hot. Also am aware of motors sometimes whining, but the high pitched gliding scale frequency of this motor while standing still is certainly not the same, and it gets very hot for a reason I am sure. It looks like it is not taking the $140-144 commands correctly. I will ask that question in that thread.

1 Like


This is how the dual endstop/auto squaring motors are setup for the RAMBo 1.4 board. I bought mine from Ryan and it was pre-flashed with the dual endstop, but with the Marlin firmware. I flashed the GRBL software and it works great! Just flash the firmware and change your endstops from normally closed to normally open. It’s that easy.

Thanks Anthony.
I will try, the endstops are on it’s way, so I can try that only after Easter.
May I ask why you prefered Grbl over Marlin? And how did you configure the stepper current? Seems like $140-144 do not do anything, and no one knows if the entered values should be percentage, 0–255 or actual current value.

I use GRBL on my other CNC and every other CNC I have ever used. It’s what I learned on and what Im comfortable with, plus I use Easel Pro and Carveco software, so no need to edit G-code. I honestly didn’t play with any other settings after installing it. Mine is running great. I did buy my kit from Ryan, including my RAMBo board and homing setup because he offers real authentic RAMBo boards, and has great prices.

Antony, (or anyone really…)
Can you tell me how you set motorcurrent? As told before, nothing seems to work… My gantry stepper are just fine with the defauilt current (I think it is maxed out for the rambo board), but my Z steppermotor is a nema14 rated 0.5A and that one gets seriously overheated by holding steady torque alone.

Im not sure on a nema14. For my 17’s I have the x&y at .06A and the z at .04A. Let me check the formula and see what I can come up with. Do you have specs for the motor?

I think he is asking how to set it not what to set it to

1 Like

Those A values you mention are extremely low… Usually a Nema17 is rates between 1.5 and 2A. The Nema14 I have for (the Z only) is rated 0.5A. It’s a .9 degrees stepper and I am running the motors at 24V, because that is advised with 0.9 degree steppers (because of the torque). It’s this one:
https://www.amazon.de/-/nl/gp/product/B07SPK6BT4

Tim is right. I am wondering how to set that. As far as I found, the steppercurrent in Grbl is set through $140 to 144 for the Rambo Board, $142 being the Z-motor current. In the FW i got (dual Y) it is set as 135 in the configuration.h, and those values also show as $140-$144, but no matter how I set them, I feel no difference in the holding torque.

Can you just set them in the configuration.h and reflash?

Yeah I could try that.
But does someone have inside information on the type of value. I know that 135 is the current current (?) value, but I am questioning if it should not b a percentage, or actual current value. It can probably be found somewhere in the firmware code, but I am not so familiar with arduino language.

#define DIGIPOT_MOTOR_CURRENT { 135,135,135,135,135 } // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)

2 Likes

I found that setting in the cpu_map.h, and it looks to have some effect indeed.
Still I wonder what the $142 value means exactly. At these low values, they also seem to have some effect.

Behaviour I get now:
In cpu_map.h I’ve put this:
#define DIGIPOT_MOTOR_CURRENT { 135,135,40,135,135 } // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)

When I power up I can turn the Z-axis by hand, with just a bit more force than needed unpowered.
Checking the value of $142 it returns 135
Setting the value of $142 to 40 I need significantly more force to turn the axis by hand.
If I set $142 to 60 I need just a little more force, but the motor heats up significantly quicker.
If I set $142 to 135 I get the same high pitched sound and great overheating as before

The new questions are:

  • Why does the setting $142=135 not get effected from bootup.
  • How do I make the new setting permanent.

Thanks Anthony and Jeff, for pointing me in the right direction.

$x=value Command used to save a GRBL setting. Replace the “X” with a number from the list
above and the “value” with the corresponding setting.

Also universal gcode sender has a settings viewer built in and works well for changing settings but not sure it it shows those settings as I dont have a rambo set up on mine it goes to S135 not sure about past that

$x=value Command used to save a GRBL setting. Replace the “X” with a number from the list
above and the “value” with the corresponding setting.

Yes it does, and I see that value remaining after a reboot. But the crazy thing is, that this Z stepper defaults back to some really low torque and I can’t explain that. After reboot $$ shows me $142 to be 40, but the torque is really low. When I set $142 to be 40, the torque gets high and $142 is still 40. After a revoot it also is still 40, but the torque is low again.