BeBoPr+ vs Replicape

Can someone tell me the difference between a BePoPr+ cape and a Replicape?

Dave

is the replicape available anywhere?

I guess so, I got an email from them pointing me to http://www.thing-printer.com/product/replicape/

I kinda understand what the BePoPr+ does, and I think the Replicape does the same basic job, but I can’t figure out why it has a separate RJ45 jack.

Dave

Hi Dave,

[Note that I might be biased, being the designer of the BeBoPr boards]

Here are some facts:

The BeBoPr+ is no longer being made, it will be replaced by the BeBoPr++. The BeBoPr++ will be the low-cost replacement for the BeBoPr+ and BeBoPr plus Bridge combination. Right now I'm making an initial batch of 100+ boards. These should be ready for shipping in the second half of February.

Have a look at the support forum (http://forum.bebopr.info/viewforum.php?f=4) for more information and links to the wiki pages.

Since you're asking for differences, the most obvious difference is that the BeBoPr has no on-board stepper drivers chips. One can use the BeBoPr with either low-cost Pololu compatible stepper modules or use off-board heavy-duty motor drivers.

The BeBoPr boards have been available for over a year, since the original BeagleBone (white). It was the first cape to support LinuxCNC and the BeagleBone.

Cheers,
-- Bas

There are many differences, but to me a few of the key ones:

* The Replicape has on-board stepper driver, while the BeBoPr family
uses standard Pololu modules.

* The BeBoPr family of boards is currently supported by both LinuxCNC
and by Bas' custom software. At the moment, I believe you have to use
Elias' software for the Replicape, although I plan to get it supported
with LinuxCNC once I get a production board in-hand.

I have a general overview of hardware capes lists on my blog you might
find helpful:

http://bb-lcnc.blogspot.com/p/hardware-capes.html

...but I haven't updated it with info from today's e-mail yet (that
indicates the Replicape is now available for sale).

Is there anything specifically you were wondering about?

I am actually trying to use your LinuxCNC MachineKit on a steel router/printer/digitizer with a 4’x8’x18" build area that I am building (see here). I am making good progress and will be mounting motors and wanting to see them move in the not-too-distant future.

I plan to use a bipolar NEMA 34 (4.6Nm) dual shaft motor with a 5.5A-6.5A per phase draw for the X axis and I need to make sure I get a stepper/driver board that will handle that sort of load.

I suppose that since the BePoPr++ allows for off-board stepper/drivers I need to go with that one as I doubt the built-in devices on the Replicape can supply that sort of power.

Right now I am playing around with a 0.23Nm stepper motor and an EasyDriver board hooked up to my BBB. Which makes me wonder… what if I just hooked up 6A versions of the EasyDriver to my BBB to drive the motors and ran LinuxCNC? I am moving motors without a BeBoPr++ now, why do I need one? what does the BePoPr++ do exactly? (obviously a newbie question)

Dave

The BeBoPr+ and the Replicape are focused on 3D printing, so provide
support for things like high-current bed and extruder heater outputs and
analog inputs for thermistors to measure temperature.

If you are interested mainly in "conventional" CNC, you may find one of
the other capes on my list more appropriate for your use.

Besides the 3D printer stuff you don't need, reasons to use a cape would
include:

* Level translation and protection of the BeagleBone's 3.3V I/O pins.

* Hardware support for E-Stop.

* Easier / cleaner wiring (if you have CNC hardware designed to connect
to a standard DB25 parallel port pinout).

...but there's absolutely no reason you can't just wire some drivers and
limit switches to the BeagleBone I/O connectors using flying wire, a
prototype cape, or any other method at hand. Just make sure you don't
feed anything over 3.3V into the BeagleBone (or 1.8V for the analog
signals), or you can fry it.

While my beast has routing as its first planned jobs, I also plan to print 6’ wings and fuselages for R/C aircraft, so I definitely need to keep the extruder heaters and sensors front and center.

What packages am I likely to need for routing on the BBB? for printing? Can LinuxCNC do routing and printing?

Both boards mention something about some software/firmware that comes on/with them… what is that about?

Dave

For both routing and printing, you need some form of motion control
software. Both tasks are very similar (coordinated moves in multi-axis
space), but each has it's own unique requirements as well (spindle speed
and coolant for routing/machining, extruder and heater control for 3D
printing). AFAIK, there are currently three solutions for natively
controlling a CNC machine on the BeagleBone:

* The software written by Elias to run the Replicape

* The software written by Bas to run the BeBoPr

* LinuxCNC, which is a generic machine control platform traditionally
used on x86 machines

* Let me know if I missed any!

All three available solutions use the on-board PRUs (dual 200 MHz 32-bit
deterministic micro-controllers a.k.a. Programmable Realtime Unit) to
generate step/dir signals with precision timing that is unaffected by
the generally lousy interrupt latency performance of the ARM core.

LinuxCNC uses a real-time Xenomai kernel and provides a programmable HAL
(hardware abstraction layer) you can use to wire up various operating
blocks to control your machine (things like PID controller loops,
filters, gain and multiplexing stages, etc).

I believe the software from both Bas and Elias run on a regular kernel,
and rely on the PRU to do more than LinuxCNC (ie: things like motion
planning and velocity/acceleration profiling), but I'm not 100% sure as
I am not real familiar with either code base.

One thing I like about LinuxCNC, is the ARM core to do the motion
planning via Xenomai real-time threads, meaning the GHz CPU and FPU can
be used for tasks like non-trivial kinematics. I first started looking
into LinuxCNC because I wanted to control a linear delta printer like
the Kossel, and I am actively working on adding kinematics for other
non-Cartesian machines like the Wally and GUS Simpson.

Brandon Heller is farther along than I am on the linear delta front, and
has a nice video on G+ of printing using LinuxCNC on the BeagleBone:

https://plus.google.com/104919785646757688261/posts/i7XvKHi2c39

No non-Cartesian stuff for me yet! Whew! I think I will be sticking with your MachineKit and doing my own cape (my business partner has done many PCBs more complicated than a stepper/driver cape)

What does LinuxCNC use as its input file for a print or a route? I understand the concept of G-code as it applies to cutting with a router or laser in 2D, and I know G-code has control of the Z-axis as well to elevate the head for printing, but I don’t understand where all the ‘layered’ G-code comes from when you want to print a 3D shape.

Dave

It's still G-code, but some of the extra axis (ie: ABCUVW) are used to
control the extruder(s), and custom M codes are used to do things like
turn fans on/off and set the extruder and bed temperatures.

The G-Code is produced by a slicing program (essentially CAM for a 3D
printer). Be warned that the RepRap world uses non-standard G-Code
(only the X/Y/Z moves follow the standard), so you need to either use a
slicing program that outputs valid RS-274 G-Code for LinuxCNC, or
post-process the RepRap flavor G-Code into real RS-174/ISO-6983.

I recommend post-processing the RepRap gcode. It doesn't seem like the
non-RepRap code paths get much testing in the various slicing programs,
and I've seen a variety of goofs, glitches, and outright bugs when
trying to output anything but RepRap flavor G-Code. The post-processing
is pretty easy, I typically just use a sed script and substitute A for
all the E axis moves, and P and Q for the parameters (typically S in
RepRap G-Code).

Example slicing utilities to generate printing G-Code from a 3D model
include:

Slic3r
Cura
KISSlicer
Skeinforge

Each one has it's pros and cons. I personally use Slic3r most of the
time, but if Slic3r is having problems with a particular model I will
sometimes use one of the others.

Which app is responsible for adding the G-code for turning the extruder drive on and off (or varying its speed?) during a print?

Is LinuxCNC the thing responsible for setting and holding the extruder/bed at a certain temp (separate from the shape G-code stream)?

Dave

Which app is responsible for adding the G-code for turning the extruder
drive on and off (or varying its speed?) during a print?

The CAM software (slicing program) is responsible for turning a 3D model
into a series of coordinated multi-dimensional moves in X, Y, Z, and
Extruder space that will create a 3D print.

The machine control software (for instance, LinuxCNC) is responsible for
reading the G-Code and insuring these coordinated moves happen as
programmed, moving all appropriate motors simultaniously.

Is LinuxCNC the thing responsible for setting and holding the extruder/bed
at a certain temp (separate from the shape G-code stream)?

Yes, LinuxCNC (or whatever you have performing machine control) is
responsible for maintaining and controlling the machine state, including
the motor positions, the heater temperatures, fan or coolant enables, etc.

Dave, I might be able to shed some more light on this, unless you are completely set on making your own cape (Which is a lot of fun BTW :slight_smile:
I am also biased since I have made the Replicape, but I’ll try to be objective and summarize the differences as I see them:

Replicape - BeBoPr++
5 steppers - 4 steppers
Stepper current programmable by ADC - stepper current adjustable with a trim-pot.
Microstepping programmable via SPI down to 1/32 nd - Microstepping with dip switches down to 1/8 th (?)
Stackable for LCD3/Reach or similar - Not stackable, but can use the HDMI/I2C for display.
Low pass filter in analog input - Voltage clams on analog inputs
No over-voltage protection on end-stops - ?
Open source Hardware, software and firmware - Open source software (?)
$179 - $120 (is this right for the ++ board?) + four stepper boards ($10 each?)

Dave, I might be able to shed some more light on this, unless you are
completely set on making your own cape (Which is a lot of fun BTW :slight_smile:
I am also biased since I have made the Replicape, but I'll try to be
objective and summarize the differences as I see them:

A great comparison, Elias. A few minor comments in-line.

Replicape - BeBoPr++
5 steppers - 4 steppers
Stepper current programmable by ADC - stepper current adjustable with a
trim-pot.
Microstepping programmable via SPI down to 1/32 nd - Microstepping with
dip switches down to 1/8 th (?)

The BeBoPr uses 3 dip switches, and will support whatever mirco-stepping
is available on your Pololu drivers of choice (ie: 1/16 or 1/32 if the
driver supports it). This is just like the RAMPS or most other common
3D printer shields for the Arduino.

Stackable for LCD3/Reach or similar - Not stackable, but can use the
HDMI/I2C for display.
Low pass filter in analog input - Voltage clams on analog inputs

There is low pass filtering on the BeBoPr analog inputs, as well as
input protection.

No over-voltage protection on end-stops - ?

All I/O on the BeBoPr is protected and level-shifted, including the end
stops.

Open source Hardware, software and firmware - Open source software (?)
$179 - $120 (is this right for the ++ board?) + four stepper boards ($10
each?)

Bas has designed an add-on board to drive five steppers called the penta
board:

https://github.com/modmaker/BeBoPr/wiki/Penta-Stepper-Board

...you can also use the header the penta board connects to for driving
off-board stepper drivers if you need more power (for driving a real
milling machine, as an example).

Both are great boards, and which one will work best depends on exactly
what you're trying to do, whether you've got any Pololu drivers on-hand,
etc.

Dave, I might be able to shed some more light on this, unless you are
completely set on making your own cape (Which is a lot of fun BTW :slight_smile:
I am also biased since I have made the Replicape, but I'll try to be
objective and summarize the differences as I see them:

Good job, I think we need web page for this. Who's first? (I'm to biased since I made the BeBoPr++ :wink:

Dave: I agree with Elias, it's fun to build your own cape. But don't expect to get rich!

A great comparison, Elias. A few minor comments in-line.

Replicape - BeBoPr++
5 steppers - 4 steppers

On board yes, but with the Penta Stepper board, or with external drivers the BeBoPr++
board also support 5 axes.

Stepper current programmable by ADC - stepper current adjustable with a
trim-pot.
Microstepping programmable via SPI down to 1/32 nd - Microstepping with
dip switches down to 1/8 th (?)

The BeBoPr uses 3 dip switches, and will support whatever mirco-stepping
is available on your Pololu drivers of choice (ie: 1/16 or 1/32 if the
driver supports it). This is just like the RAMPS or most other common
3D printer shields for the Arduino.

Indeed, there is no difference in microstep options between the BeBoPr++ and the Replicape.
The Penta Stepper driver board also uses software setting of the microstepping. These DIP
switches are so horribly expensive !

Stackable for LCD3/Reach or similar - Not stackable, but can use the
HDMI/I2C for display.
Low pass filter in analog input - Voltage clams on analog inputs

The BeBoPr++ is meant to be the last cape of a stack. Since some LCDs also want to be
the last cape, only on of these can be used.
But the BeBoPr provides a firm mounting base for capes and with the LVDS cape
it's possible to use an LCD with touch, or just use the HDMI output.

There is low pass filtering on the BeBoPr analog inputs, as well as
input protection.

Yes, and even some RAMPS people are now implementing this design :slight_smile:

No over-voltage protection on end-stops - ?

All I/O on the BeBoPr is protected and level-shifted, including the end
stops.

Indeed, and the inputs are schmitt-trigger inputs, i.e. have hysteresis for slow changing signals.
This is a nice feature if you are using optical sensors (e.g. slot sensors, opto interrupters, etc.).

The BeBoPr++ inputs can also be used as 5V TTL compatible inputs. I'm not sure about the
Replicape inputs, AFAIK it's inputs connect directly to the BeagleBone. So in that case, using
5 Volts input levels is not possible.

Open source Hardware, software and firmware - Open source software (?)
$179 - $120 (is this right for the ++ board?) + four stepper boards ($10
each?)

The BeBoPr++ will cost around $99 (depending on exchange rate fluctuations).

-- Bas

Well, I've got the capes page on my blog:

http://bb-lcnc.blogspot.com/p/hardware-capes.html

...but I really don't want to make keeping it updated a full-time job!

The differences we're talking about now are fairly subtle. I propose
the time-honored tradition where both Elias and Bas put up comparison
charts showing how their board is all green-boxes and check marks, while
the other board is all red boxes and minus signs. I'll put links to
both charts on my capes page! :slight_smile:

ROFL

Haha, Charles! Great suggestion : )

I think your page will suffice for now : )

speaking of BeBoPr, does anyone know if/when there will be pre-orders for the new ++ model in the USA?

Doug