Are all Rambo boards the same?

I’m trying to source a motherboard for my MPCNC.

There appears to be as many views and opinions (+1) as there are people on the forum :slight_smile:

Here in the UK, we don’t have access to quite as much as the US and buying from V1Engineering and importing adds a significant uplift to the price, could be 50-90%, so the $126 Rambo is probably going to come closer to $190+ by the time you work it through customs.

I’ve been trying to source an Rambo V1.3 or V1.4 or mini-Rambo locally and there are some Rambo boards on eBay for circa £100 (that’s about $120), but I have no idea if they are ‘genuine’ or ‘real’ Rambo boards or cheap knock off clones using rubbish MOSFETS or driver motors that fail after a few days as the components are rubbish.

Does having the name Rambo actually mean anything or do I have to buy it from V1Engineering to be assured of the quality? I suspect I know the answer but wanted to check.

I can get a Duet 2 Maestro for circa $115 or a Duet 2 Wifi for circa $180. These seem to be held in the same regard as the Ultimachine Rambo boards from what I have read on these forums.

Just printing off the lock corners for my MPCNC. Approx 9 hours to go :slight_smile:

Views and thoughts welcomed.

Rob

AFAIK, they are open source and lot of companies can sell a rambo. Some of the off brand mini rambos have had the stepper motors wired funny.

I’ve also seen a couple people with problems with the off brand mini rambos.

Conversely, I bought a full blown rambo board from ultimachine and another from aliexpress and I have problems with the one from ultimachine (cold solder) but the aliexpress one is humming along nicely. It’s got a black PCB and seems well put together.

1 Like

So you pays your money and takes your choice :slight_smile:

Thanks for the information. I have a SKR 3d printer board coming along in the next week or so, I may delay putting it into the Ender 3 andsee if it works with MPCNC.

Many thanks
Rob

I’m replacing my wonky ultimachine rambo on my 3d printer with an SKR as well… I have a feeling I’ll wish I had one on my lowrider too once it’s all done with… the new marlin seems to be cpu hungry.

The new Marlin V2 firmware is definitely RAM hungry. I think the CPU side is OK, but after struggling to get Marline 2.0 into 128Kb, it seems worth the effort.

The other option I’m looking at is a Raspberry PI, they have a lot of CPU and a lot of RAM and are cheap as chips. I suspect a PI will easily cope with powering a printer AND a CNC at the same time. Now interfacing it is more of a problem…

Rob

When I have auto bed levelling and junction deviation and linear advance on and I’m printing at a high feedrate everything gets jerky and the LCD and jog wheel start getting really laggy. I’m probably printing way faster than most people though. I’ve noticed jerkiness with high feedrates on the low rider too but haven’t narrowed that one down between serial port and driver/stepper and CPU.

I considered a raspberry pi running octoprint talking to Klipper… it just seems like a nice fast 32 bit board with socketable drivers is the simpler future proof solution.

I’ve used the Pi for lots of projects. You get a decent (ish) CPU, lots of memory 1GB+, Ethernet, linux, Wifi, GPIO for £34. Compared to the 8bit boards in the Ender, far more capability. However you do need to add a stepper shield and do all that stuff, so it’s not as cheap.

The new pi 4 looks a little too hot to me for embedded use. Dare I say too much power :slight_smile: ?

Rob

The newer duet boards are using pies as the web console controller now.

Ok, thats interesting. Will check and see if that works for me.

Having a UNIX box with a GB of RAM controlling things should make life easier for those of us struggling with 128Kb :slight_smile:

If you want a Pi as your controller, you’ll probably want to look at LinuxCNC. The problem with the Pi (and most Linux distros) is that they aren’t real-time OSes, and you’ll have all sorts of interrupts and CPU scheduling and the like. With the microprocessors, you have a dedicated CPU running no OS, in about as real-time a fashion as you can get. The LinuxCNC port to RaspberryPi uses LinuxRT (I think).

Otherwise, use the V1Pi image to run Octoprint and cnc.js to manage your Marlin or GRBL-based controller (whatever board you use). :slight_smile:

@kvcummins

That’s a fair point about the real time element. Linux is normally not real time, you cannot normally guarantee that things will happen in a specific time. There’s so much going on under the hood, even with a non graphics interface, that it’s tricky to get things happening within a certain timescale. From memory you need to move more than userspace processes into the preemptive kernel.

If you mean RTLinux rather than LinuxRT, it has an interesting approach of running Linux as a task under a small preemptive scheduler. Think of it as a micrcontroller such as the ATMega running a full Linux as a sub-process, this means it can suspend the full Linux processes and execute a motor controller operation within a certain time period. I suppose you could argue it’s similar to Docker or a OpenVZ Container at least in concept. I vaguely remembered this sort of stuff as I was trying to get a Linux box to act as a music production system and failed miserably as the latency in the kernel was just too high.

I’m nor particularly wedded to a raspberry Pi or a SKR board, I work in the IT business and so these are just tools to be used for the right job. I was slightly more interested in micro controller boards as it’s a fun challenge to see just how much you can do in a 128KB of RAM (no swapping allowed). My toolbox has a few Pi’s and various Ardunino’s just sitting around doing nothing. I don’t have stepper shields though :frowning:

Best wishes and stay safe,

Rob

Rihgt, RTLinux, not LinuxRT… Working from faulty memory modules… :wink:

The firmware isn’t doing anything complicated (it isn’t running a web server in node.js :roll_eyes:. And it needs to be precisely timed. This is the perfect application for an 8 bit micro. It can run so much faster without a kernel. The pi, even with “real time” Linux seems like a bad fit.

I do like complimenting it with a pi, (which is why I made v1pi). Klipper is a really great solution, IMO. Move the RT to a cheap micro, do the algebra in Python on the pi where you can:

  1. Take your time. The python will still be faster than squishy humans, but if it pauses to handle a website request, the machine won’t crash.
  2. Make the software clear and testable. Python is so much easier to write and it expands the possible authors to people who don’t know embedded software (so 10x, at least).

If you geek out on this stuff, the interface between the pi and the microcontroller is really clever and a fun read.

All that said, the rambo is great, and does everything we need and a lot more.

@jeffeb3

So is the workflow:

  1. Send the files to Octoprint on the Pi from your design tool
  2. Octoprint interfaces with cnc.js on the Pi
  3. cnc.js then sends gcode (?) to Klipper running as the firmware on a small microcontroller, e.g. An Arduino class device or an SKRV1.3 or similar?

Is that how it works?

Oddly enough Python is one language I have never used, I have written a number of compilers for C (and Lisp) and I took one look at Python, saw that it was white space sensitive and ran screaming from the room :slight_smile: We’ve spent years eating whitespace and ensuring that it means nothing and Python now makes it code sensitive. Oh well, these modern languages.

2 Likes

No, octoprint or cnc.js do the same thing. You can use either. So it is like this:

  1. Send the files to Octoprint on the Pi from your design CAM tool
  2. Octoprint streams the gcode to klipper, using a linux tty
  3. Klipper sends it’s small planner/motion commands to the microcontroller running the Klipper firmware.
  4. The klipper firmware just does what it is told, stepping the stepper pins with precise timing.

The commands in 3 are basically a ramp up (to accelerate), a constant speed section, and a ramp down. These little trapezoid commands come with precise timing for the microcontroller, and the microcontroller’s only job is to control the step, dir, and enable pins, so it can cycle those pins at 10x faster than other firmwares. Not that it matters that much, since we don’t reach those speeds.

golang has code format built into the compiler. It could be worse :). The Python whitespace seems offputting when you start it, but as soon as you start using it, it becomes clear that “this is the way”. Something that resonated with me is that young programmers coming out of school prefer C/C++, and devs with lots of experience prefer Python. The reasoning was partly that young devs like to program really fast games and graphics, and old devs just want to stop worrying about dangling pointers and are tired of writing Yet Another Container Class.

In fact, a lot of the modern C++11 (and 14, and 17) features seem to me to come right out of the Python playbook. I use C++ and Python professionally, and I think they are great compliments to each other.

1 Like

@jeffeb3

Got you, understand the workflow now. Once I’ve got the machine built I can look at stuff like this. At the moment my Ender 3 Pro is stuffed as I tried to get my BLTouch working again. Sadly the firmware upgrade didn’t fix the bug so I’m having to downgrade the firmware but something else has stopped working. Just not my day. .

I’m very old school and actually got my Unix versions from Brian Kernighan on 1/2" tape from Berkeley. This was when C was really C, functional arguments were kinda optional and pointers were something to be embraced and used. Every malloc must have a free :slight_smile: Mind you when it went wrong, all we got was a large core dump we had to try and analyse.

I may well come back and pick your brains on configuration later when I’ve actually got this beast built. Expecting stepper motors, controllers and stuff shortly.

Thanks
Rob

Hah funny how we are all developers. I made the switch to managed code when Java 1.0 and C# 1.0 came out after spending a few years in malloc/free hell :slight_smile:

There’s also tons of research type stuff going on with Python and AI. Lots of really cool machine learning libraries about.

1 Like

I still like C and Perl. I wrote a large database for personalised traffic alerts for London drivers a few years ago. All in Perl for the backend, SQLite for the database (didn’t need the multi-user overhead of PostgreSQL as Perl handled it through forking) and JavaScript for the application on IOS and Android. All still running with zero maintenance.

Python is on my list to learn, just a few things to do first, like get this CNC machine built. About 45 hours of printing left. I got the stepper motor driver boards today and when the PSU arrives, might hook the MB, stepper motors and play about with it bare. It has a massive 256Kb of RAM, wow, the 1980’s are calling…

Rob