Mini-Rambo 1.3 and dual end stops

Hi everyone,

Brand new to CNC and V1 so please forgive any ignorance. I bought my electronics after putting everything else together. Right afterwards I was reading about the endstops upgrade. Naturally I’m kicking myself for getting the MR1.3. It is what it is though, and I’m left with trying to figure out how to get the end stops to work with it. According to the firmware page, it is possible for someone with skills. Does this mean someone needs to invent a way, or that there is a complicated way to do it already? Google has been no help on this one. The page says the problem is the 4 drivers, but there seems to be endstop plugins on the board. Is there a way to get this to work? What is the problem with 4 drivers when there are endstop plugins already? I know this is probably brain dead easy for some, so I thank you for your patience in advance.



Single endstops don’t make a whole lot of sense on a CNC, because the location of the work changes where the origin is all the time.

Dual motor drivers mean each motor is capable of being driven independently. Dual endstops means that when homing the firmware will move each motor to it’s respective endstop independently. If you put your endstops carefully, or you tune then carefully in software, your X and Y will be aligned the same way each time you home the machine.

To effectively use dual endstops, you need dual motor drivers. If you only have 4, then you can only double one axis. The MPCNC has two identical axes (X and Y) that can really take advantage of the dual motors and dual endstops. You could double up the belt axis (X or Y, depending on how you configured it) with two motor drivers, and dual endstops. That wouldn’t require an expert, just someone willing to edit the firmware and flash their mini rambo.

If it makes you feel better, the squareness of a low rider is generally very high, because it’s very easy to get each side within 1-2mm, and with a 60" pipe, that is very very square. IMO, the low rider doesn’t benefit nearly as much as and MPCNC, and there were a lot of great projects done before we made the Dual Endstops. My LR doesn’t have dual endstops.


I wonder if it would be possible to set up a script that killed power to the z axis allowing the z carriage to bottom on the wheel bases or work surface, then repower and lift together, eliminating the z necessity, and using the 1 good dual end stop for the x axis. Please keep in mind I haven’t built this thing completely and have a very limited grasp of the software. It may mean that you have to put your work piece in after squaring, but that wouldn’t bother me. Is that crazy? The y axis could use a single stop since it only uses a single motor right?

I would try it without first. It’s very easy to set up accurately without endstops.

When I start up, I usually mount my workpiece first, but later is fine

I have already prepared the front edge of my table to be square to the wheel axis. I have two sticks I clamp to the front of the table. One on each side. I turn the Z screws a little to remove any spring in the couplers, but the gantry is all the way down on both sides. Then I pull the machine until it’s flush with both sticks. That leaves the machine square. Then I power up the machine, which keeps it that way. Then I jog (I use a raspberry pi to do that) to the origin on the workpiece and reset the origin.

Sometimes I take extra steps, like setting the Z zero somewhere else, but that’s usually it. There are bigger things to worry about than endstops, IMO.

If you don’t want to jog the machine, you could also get fairly close using just a tape measure. Just push the gantry into place, measure the distance to the square edge of the table on both sides, and start it up. Seriously, it’s got a 60" long axis, it’s hard to get far out of square. I already had experience with the MPCNC before I made my LR, but I’ve never been out of square on the LR to make any difference in the final parts.

Having said my peace, it’s definitely possible to have dual Y motor drivers and dual Y endstops. You’ll need to configure the firmware to enable the feature and reprogram the mini rambo. You’d start with your Z axis square before you turned on the motors (like I do) and then home towards Z max. You’ll still have to jog using the electronics to get to the origin.

1 Like

Sorry for the rookie questions, but what do you mean by jog? Is the moving the router to a known point in reference to the work piece? How are you using a pi to do this? Thanks so much for taking the time to respond. This is so new to me, I’m due a ton of trial and error learning on this project.

Welcome to the forums, this is what happens here :slight_smile:

I say “jog” when I mean manually move the machine using the electronics. So you can use the LCD to jog by 10mm at a time with the knob or you can connect a laptop and use repetier host to jog with the buttons there. I don’t know if it’s universal, but I dont say kog when I’m just pushing the machine around with my hands. FWIW.

I made a v1pi raspberry pi image that has octoprint and cnc.js installed. If you google v1pi, you’ll find it. It runs a web server you can connect to with your phone or computer to control it. I think I made pretty good instructions for that too. Totally not needed, but it’s a fun add on.

1 Like

Ok .I’m running octopi on my 3d printer now. It’s pretty awesome. I’ll Google it. Thanks for the help.

Wow, Heffe Thank you for eloquently wording that stuff. I might need to add that to the dual page.


Well Brian, welcome and it sounds like I am not needed for this one. Full circle pay it forward day, I helped a friend most of the day and come back and the forums have all been sorted out. Great day to join us.

1 Like

Thanks Ryan. I’ve been lurking for a while getting ready to do this build. I’m glad to finally join. I’ll probably have a ton of questions for you in the future. I’ll try to space them out. It seems like there is a ton of community support! I’ll be glad to start contributing when I learn what I’m doing.

1 Like

Hey Ryan,

So I’ve gotten the LR2 up and running on the Uno CNC Shield and it works great. I’ve been using EstlCAM to flash the firmware and its awesome. My RAMPS 1.4 clone died… set the current to .87 on my drivers and for some reason the 5v regulator on the mega went up in smoke, my guess is cheap parts since that should have been in tolerance. but in using it, I fell in love the Graphics controller. I got my MR1.3 in the mail today, and I’m looking to get it up and running. I’m still stuck on wanting to home my x and y axis though. I know I can uncomment the code to clone the x or y axis to the E0 driver, and I know that there is a way to reassign the pins to use as an end stop for the E0 driver, but I’m still stuck on how to get those two ideas working together. For my own setup, I’m interested in the X and Y homing, then allowing the z to fall to a zeroed point and using that as xyz home. I’m planning to make a hinged block I can flip up when I need to between the z gantry’s two parts to create a leveled but not zero home point to protect my router bits and ensure leveling on both sides. I just don’t have the expertise to alter the firmware. Any chance you’ve worked out a single axis dual end stop on the MR1.3 before? Theres dual z endstop support in Marlin already. Can it possibly be repurposd?I’m all for completely cannibalizing the Z endstops to make it happen for a min and max on the dual x or y axis.

I know this is really not a great fix, but the hardware will support it. Any chance you could help me with the technical details on the firmware side? I’m getting to know marlin, but it is not exactly my cup of tea. Is there a customary bribe for this sort of work lol?

some discussion on the topic:



So you want dual x motors and dual x endstops?

First off, dual motors will use the first not used E motor. Since E0 can’t be disabled, you need to edit pins_minirambo.h. you have to add stuff for E1 and set the pins to the values for E0. Set the E0 pins to 70. This way, the furnace will use the first unused socket (E1) which will be the pin values for E0.

Next, the easy part. In configuration_adv.h, you can find the dual motor setup section. Enable dual motor x and dual endstop x. Set the x2 endstop to xmax. Now, you wire your X2 motor to the E0 driver, and that endstop to the xmax pin.

You’re going to have to do the normal endstop set up as well. You can use M119 to check your work and when you think it’s right, you can home with G28 X and G28 Y, but don’t do G28 alone, or it will try to home Z too.

1 Like

Thanks for the response. I may be working with a different firmware than you are. Everything is setup except for the dual endstop for the x-axis. there only appears to be a “Z_DUAL_ENDSTOP”. Should I find a way to repin that?



Huh. What version are you looking at? It’s been in there since 1.1.8, IIRC. It’s also in the bugfix 2.0.x branch.

It was in the 1.1.7 version.

Oh ok. I’m working off the preconfigured files on the v1 website for the t8 lead . I’ll see if I can’t reverse engineer what Ryan set into the preconfigured file that’s different from the stock version and give it another whirl. The dual drivers on the x axis work though! I don’t know why anyone wouldnt want to use the extra stepper driver. It’s an unburdened driver that can mitigate any disadvantage of driving in series/parallel.




I’m not sure which version you’ve got. Ryan’s GitHub has a mini rambo version you could start with. It’s based off of bugfix 2.0: