Configuring Cura 4.3 for Makerbot Replicator 2

UPDATE: This method is a bit hacky, and breaks with updates – best to check on my newer method here

Wow this was harder than it should have been, so I’ll post what I can here to help you also.

We have 3 x Makerbot Replicator 2 3D printers, and for years used Makerware until it was discontinued for our printers and for Ubuntu it seems. So we’ve made the switch to Cura where all the cool kids hang out.

Of course Cura is primarily made for Ultimaker printers, but it can be configured for many others.

First up, I’m using it in Ubuntu Linux (18.04) so locations of files might need to be changed for your config files as needed.

Step 1: Set up your printer

I chose Makerbot Replicator from the printers page, and made a couple of changes as shown here:

I also renamed the machine name to “Replicator 2” just so I would remember.

Step 2: Start and end GCode

You’ll need some custom Gcode so here it is (picked from various places and organised after some testing).

Start Gcode:

; — start of START GCODE –
M73 P0 (enable build progress)
;this next line won’t work, but has the steps command
M92 X88.8 Y88.8 Z400 E101 ; sets steps per mm for Rep2
G90 (set positioning to absolute)
(**** begin homing ****)
G162 X Y F4000 (home XY axes maximum)
G161 Z F3500 (home Z axis minimum)
G92 Z-5 (set Z to -5)
G1 Z0.0 (move Z to “0”)
G161 Z F100 (home Z axis minimum)
M132 X Y Z A B (Recall stored home offsets for XYZAB axis)
(**** end homing ****)
G92 X147 Y66 Z5
G1 X105 Y-60 Z10 F4000.0 (move to waiting position)
G130 X0 Y0 A0 B0 (Set Stepper motor Vref to lower value while heating)
G130 X127 Y127 A127 B127 (Set Stepper motor Vref to defaults)
G0 X105 Y-60 (Position Nozzle)
G0 Z0.6 (Position Height)
; — end of START GCODE –

End GCode:

; — start of END GCODE –
G92 Z0
G1 Z10 F400
M104 S0 T0
M73 P100 (end build progress)
G162 X Y F3000
; — end of END GCODE –

This of course all assumes you don’t have a heated bed (also makes sure it doesn’t send heated bed commands which make the machine complain).

Step 3: Install X3G file converter

Go to the “Marketplace” button at the top right of your Cura window and in the marketplace search for “X3GWriter” and install it. Restart Cura so that it comes live.

Step 4: Modify X3GWriter so that it always detects “Replicator 2”

There seems to be a problem with X3GWriter in that with the above setup it always detects the machine to be a replicator 1, which is a problem as they have different amounts of steps per mm. You’ll know this because if you have a Replicator 2 and you try to print an object, it’ll keep printing larger than it should be. I’m sure there’s another way to make it detect “Replicator 2” but in the mean time I just changed it to always be Replicator 2 as that is all I have.

Locate your plugins folder – for me it’s in /home/username/.local/share/cura/4.3/plugins (where username is your username).

Go into the X3GWriter folder (and again into it, it’s nested twice – the path for me is: /home/username/.local/share/cura/4.3/plugins/X3GWriter/X3GWriter/)

Open “” with your favourite text editor. Be careful in here, it’s a python script so you want to use spaces, not tabs to indent, and indents matter. If you destroy it you may have to just remove the plugin and install it again.

We’re looking for the line like this:
return machine if machine in X3GWriter.known_machines else None

Note again that it’s indented with spaces in front. Put a # in front of this line to comment it out so it doesn’t get read like this:
#return machine if machine in X3GWriter.known_machines else None

Now go to the next line, press space until you’re lined up with the line above and put in:
return “r2”

Save the file and close Cura, then restart it. If all is well, you’ll find you can now export files that will print properly and be read by your Replicator 2.

If you find the X3G file option has disappeared from your list, then the plugin is broken. Check your syntax in the plugin file and try again.

Finally I can use a nice slicer on Linux and hang out with the cool 3D printer kids!

Video Triggering Software new home

I’ve been working again on my Raspberry Pi video triggering software again and have moved it to a new home at GitHub:

It’s open source and free – in the hopes that it might be useful to other artists and creatives (or any situation requiring a looping or triggered video player).

I’ll be continuing to work on it into the future, but as we’re about to put it into service on our new commission launching at the end of the year, so it has to be stable!

Always welcoming comments or help with it – join the fun!


Triggered video kiosk software

I’ve been busy on a new piece of software, actually my first Python program which also happens to be my first piece of software I’ve open sourced.

I’m pretty happy with it so far, and already it does what I need it to. It’s rough, and of course could do with much better documentation, as well as bringing external modifications I’ve done in the OS internally to the program, but it works.

Basically it’s a replacement for very expensive signage hardware that allows triggering of HD videos through physical inputs (buttons, relays, other triggers) or via network packet based triggers. It runs on Raspberry Pi using the very good little omxplayer which pushes the videos through hardware decoding. It also allows logic programming so any kind of installation/usage is possible that requires video/sound.

Lastly, it can function purely as a simple video looper, but with the added benefit of seamless looping (seamless as in no black screen between loops, but there is a tiny pause of 100ms or so at the loop point) with player crash protection (if the player dies for some reason, it’ll relaunch).

It’ll run on the stock Raspbian Lite image (smaller, no bloat, no desktop) and draws directly to the framebuffer, which means no desktop, less ram usage, and more ability to handle large videos with the remaining RAM.

Eventually I’d like it to have the ability to show images in the logic, and other bits and pieces, but I’m also aware I’d like to keep the program small and light so that not many resources are used.

We will use it to replace the expensive commercial signage players we use in our artwork where videos/sounds are played synchronised with mechanisms and robotics at about a tenth of the cost with more control.

Hopefully it will help other artists and creatives along with anyone trying to build a video kiosk, or show a video in a gallery etc.

Here’s the link (free, open source, feel free to download and use):