3G 5D Shield

by tinkerings, published

3G 5D Shield by tinkerings Sep 24, 2011

Featured Thing!

Thing Info

16825Views 4141Downloads
Report Thing


Making those old red Gen3 motherboards more like a Gen4 motherboard.

You can buy one in the MakerBot Store! http://store.makerbot.com/3g-5d-shield-for-cupcake.html

This is a shield for the Gen3 Motherboard that allows connecting a fourth stepper (for controlling a stepper-extruder) directly to the motherboard. This is my "sorry guys" for coming up with the firmware changes and that ugly cable hack that was used to connect the Gen3 EC to an external stepper.

Note: I fixed a glitch in the RPM variants of the Machines.xml files. Sorry about that.

Below you can download a file "3G_5D_Profiles.zip" that contains three profiles:

A skeinforge 40 profile, called "3G 5D (Dimension) Example v2," that is the same profile I use with both Gen3+Shield and Gen4 motherboards. Note that this profile is NOT for use the RPM variants of the machines files.

Two skeinforge 35 profiles, called "3G 5D Shield (RPM) 1.75mm ABS MK7" and "3G 5D Shield (RPM) 1.75mm PLA MK7," that can be really be used with any stepper-driven extruder. These are for use with the RPM variants of the machine files.

Update Oct 2nd, 2011: I just updated the hex file with endstop fixes. I also uploaded a new firmware based on 3.0 that will work better with RepG26. You will need to update the EC to 3.0 as well. The stock EC firmware will work. The source for the new 3.0 fimware is here: https://github.com/giseburt/G3Firmware/tree/3G-5D-Shield-3.0

Update Nov 4th, 2011: I've added an E-Stop connector and associated circuitry to make it reset the bot in case of a failure. Because of this I've changed the pricing slightly.

Update Nov 13th, 2011: I've fixed a glitch in the 5D machines file for use with RepG27.


Proper build instructions for the kits can be found at http://wiki.makerbot.com/3g-5d-shield

1) Solder all of the parts onto the shield -- there are 4 SMD parts that are fairly easy to solder, but are all optional. One of the SMD parts is the reset button, and since the shield covers the reset button on the motherboard I think you'll probably at least want that. The other three SMD parts are AND (or OR) gate chips for the endstops. (See notes about endstops below.)

All of the rest of the parts are very simple-to-solder thru-hole parts. All of the headers go on the top, following the clearly marked solder mask, and all of the male headers go on the bottom. Endstop connectors are optional. (See notes about endstops below.)

2) Solder the female headers onto the Gen3 motherboard. (Did you even notice the place for them?) There will be three strips of 9-pins, one strip of 10-pins, and one 4-pin strip in the I2C area. You need to solder the header in the four I2C pins closest to the reset button.

3) Place the shield onto the motherboard, being careful to get all of the pins in place. Watch to make sure that the single "VCC" pin goes into the I2C VCC position okay.

(The following instructions are MakerBot firmware/ReplicatorG-specific. RepRap firmware will need pin settings modifications, but should work just fine.)

4) Connect the power and FTDI cable, and upload the new firmware. (It's one of the files on this Thing.)

5) Place the 3G 5D Machines.xml file into your ReplicatorG/Machines folder. Open ReplicatorG and choose the 3G 5D () or 3G RPM () Driver that best suits your machine. The settings are all for Cupcakes, so you may have to modify for a Mendel or other type of machine. They are also all for Mk5/6-style extruders, and will need minor modification for other extruders.

6) Connect the X, Y, and Z stepper drivers to their marked positions. Connect the extruder stepper driver to the A position. If you are connecting to drivers that have 6-pin headers you can connect a 10-pin connector to the same cable. I have attached a photo showing how I did this.

7) Print! You will now be able to use most of the same settings in Skeinforge as you can with Gen4 hardware. You can chose 5D (with Dimension) or RPM (with Reversify). Make sure the driver you choose matches which type of gcode you want to generate.

Notes About Endstops

The Gen3 Motherboard uses almost all of the available pins. Driving a stepper motor requires three pins: Direction, Step, and Enable. After discussing it with several other MakerBotters and RepRappers, we concluded that the endstops are rarely used, and at least three them could be eliminated to make three pins available to drive a fourth stepper.

So, that's exactly what I did. I rerouted three endstop connections (the max endstops) to drive a fourth stepper. But the more I thought about it, the more I thought that there's no need to lose those endstops. We can just route them to the same pins. So, X-Min and X-Max become the same signal. This requires some minor modifications to the firmware, but is otherwise not a problem. Well, except that some endstops (Gen4 mechanical endstops, for example) are use a normally High (+) signal to indicate not triggered. Which means if I simply tie two endstops together, when one gets triggered it will short out on the other one and shut the bot off.

To solve this I came up with two options, both of which are on this PCB:
1) Use only Min endstops. Since the firmware sees them as both min and max they can really be at either end of the travel.
2) Use an AND chip (or an OR chip if your endstops are normally low) to tie the two signals together safely. The problem with this method is that it you don't have both endstops in place, then you have to tie one high somehow. The current version of the schematic doesn't handle this problem, so you have to put "fake" endstops in place. I'll update it soon to have pull-up resistors for the Max positions.

With this PCB you can go with either solution. I suspect most people will not be using endstops, and those that are using endstops will only need one endstop for each axis. For the case where you only need one endstop per axis there's a simple solder-jumper for each axis that you can bridge with a lump of solder to directly connect the Min connection of each axis to the appropriate pin. Do not bridge these jumpers and install the AND chip. You will most likely permanently damage the chip.

Alternatively you can solder the three AND chips in place. I'm using these chips here: http://octopart.com/sn74ahc1g08dbvr-texas+instruments-464404


You can buy these in the Makerbot store! http://store.makerbot.com/3g-5d-shield-for-cupcake.html


The firmware source is at https://github.com/giseburt/G3Firmware/tree/3G-5D-Shield
I'll issue a pull-request with MakerBot once I clean it up to play nicely with the other firmware options.

Ugly cable hack alternative

Ok, for those of you that don't mind having an ugly cable hack, and you don't need endstops, you can make the following connections to make the 3G 5D Shield firmware work with a fourth stepper motor:

Solder 0.1" female headers onto the long rows of pin connections on the Gen3 motherboard. We will connect to the pins that way. We only need the pins A0, A5, and 21.

On the stepper driver it will have either a 10-pin or 6-pin connection. With the gap in the side of the header shield to your left when looking at either size of connector then pin 1 is the top left, pin 2 is top right, pin 3 is below pin 1, etc. All directions assume you're looking at it in this orientation. See http://wiki.makerbot.com/smd3 for a great illustration and explanation of the pins.

Connect Pin 3 of the stepper driver, which is directly down one pin from the top-left pin, to the pin marked "21" on the motherboard. This is the STEP pin.

Connect Pin 4 of the stepper driver, which is directly to the right of Pin 3 that we have already connected, to the pin marked "A5" on the motherboard. This is the DIR pin.

Connect Pin 5 of the stepper driver, which is directly below Pin 3, to the pin marked "A0" on the motherboard. This is the ENABLE pin.

Connect X, Y, and Z to their stepper drivers as you normally would.

Notes: I haven't tested the cable hack. It's very important than you do not connect any max endstops when using a Gen3 stepper driver! It could release the blue smoke or short and burn a trace on the PCB, causing a fire and ... just don't do it! You can connect a "Max" endstop to the Min position of the Gen3 without any trouble, since Min and Max are now the same signal. For a great example of a cable, tim1986 posted a photo of the one he made: http://www.thingiverse.com/derivative:13984 If you do use the ugly cable hack method, please take a photo and post an I Made One! Enjoy!

Thing Info

16825Views 4141Downloads
Report Thing

Liked By

View All


3G 5D Shield by tinkerings is licensed under the Creative Commons - Attribution license.

Give a Shout Out

If you print this Thing and display it in public proudly give attribution by printing and displaying this tag. Print Thing Tag

Hey Guys, would anybody of you be interested in selling me a 3G 5D Shield ? either in kit form or assembled. I live in Mexico and Makerbot's page wont accept my credit card... I need one of these desperately... I can pay via paypal. cheers

Great stuff! Thanks!

I finaly have time to setup my stepstruder MK6 which was left in the drawer for almost a year now.
I have two questions, if anyone can answer please:

  1. why was there a need to extend X Y and Z axis connectors, and not only the Estops and A axis?
  2. It seems the stepstruder's fan using the same co
    nnections as the Automated Build Platform. Does that meen I can not use the Automated Platform with the Stepstruder?


This is awesome thank you for your work.

I set up my cupcake with the firmware that the wiki 3G 5D page points to. (A dropbox URL) It says something about having early acceleration, which I'm totally interested in as well. I got the stepper (a brutstruder from makergear) working and I think tweaked for pulling in 100mm of filament via sc
ale/stepspermm. Two questions, one is the motor_steps in
gt; used at all anymore? And two, accel on the A axis, can it be turned off or how do you adjust accel on any axis?


The instructions on http://makerbot.commakerbot.com have become somewhat unclear since RepG started shipping your firmware mods.

RepG offers me Motherboard v1.2 firmware 3.1 for 3G-5D. Which of the many extruder firmwares shall I use with this? 3.1's not in the RepG feed yet, so it'll either be "3.0 w/relays" or "3.0 w/relays and stepper extruder."

Somewhat counterintuitively, I suspect that I don't want the stepper ex
truder firmware, as that's probably for Koenkooi's EC stepper hack. Yes?

Got it built, but having a problem. The shield seems to keep the motherboard in reset when it's plugged in. I jumpered all the pins separately to discover this. The switch seems to work properly and grounds reset when depressed.

If I use this to upgrade my cupcake gen3 to a MK6+ extruder, do I need to buy a thermocoupler too?

I asked the same question on Google Groups and got a response that I wanted to share here in case anyone else has the same question:

"You use your thermistor. If you want to add a thermocouple, you have to get the Gen4 Extruder controller"

Cool stuff, thank you! I'm now running a Wade-Extruder with your cable hack and it gives so much nicer prints :)

Now, there are two minor issues as well and I'm not sure where the problem is. (I use the firmware from http://dl.dropbox.com/u/88233/3G5DShield/3G-5D-firmware.xml)http://dl.dropbox.com/u/88233/....

  1. The Z-axis is often active when it shouldn't, meaning the stepper is holding but not turning (or only a few single steps). This
    doesn't affect the print, but it makes it impossible to adjust the height while printing which is often necessary for the first layer. "Hold Z axis" is disabled in the onboard machine options.

  2. Tower doesn't work correctly: When going down again, the Z axis motor skrieks as if physically obstruct
    ed (it isn't, it works perfectly fine via control panel) and doesn't turn far enough, so my MakerBot extrudes into the air.

So, thanks for any hints.

Ok, so I think in general there is a problem with the 3.1 motherboard firmware source-thus this modded version is exhibiting the bug as well. The symptom is that your print ends up being too short vertically after running the bot for multiple prints. I outlined my experience in this thread http://wiki.makerbot.com/forum/t-416181/problem-with-z-axis-positioning#post-1323473http://wiki.makerbot.com/forum...

I would say that we should go back to 3.0 for stability, but I also think that means the ABP doesn't work. ABP never worked that great for me so no loss there. Alternatively staying with 3.1 firmware, if you hit reset on the motherboard before any print, it seems to eliminate this z bug. A pain, I know, but at least it seems to work for me.

This bug is a pain because you likely will not know until your print is finished or nearly finished there is an error!!!!

I've been struggling to get the MK6 installed into my cupcake. I've been using the cable hack (which takes various signals from the Gen3 extruder and sends them to the MK6 stepper controller) but this hasn't worked for me at all. I've tried various combinations of firmware and currently have the following setup:

RepG version: 28 (machine driver is cupcake with hbp and stepper extruder)
Motherboard Firmware: 3.0
Extruder Controller Firmware: 2.6 stepper with relays

Nothing seems to work. I was going to try the cable hack on this page (A0, A5, and 21) but I wanted to see if it would work before I did too
much more. I pulled out my trusty O-scope and hooked it to pin 21 expecting to see stepping signals when I entered values in to the RepG control panel. I see nothing. I am certain that my test equipment is working and my motherboard appears to work well for driving the other axes. I'm at a loss
for what to try since I can't show that this cable hack (or the 5G sheild) will even work with my motherboard! Any suggestions would be VERY helpful!

Note: There are two "ugly" cable hacks.

One is between the extruder controller and the stepper driver -- it requires the beta 2.8x firmware on the extruder controller board and works the old way of doing things -- it is not 5d ready, but you can get reasonable results with reversify.

The other is the one between the motherboard and t
he stepper driver board [as described above]. It requires 3.x firmware. It is 5d ready and works with the dimension plugin.

You cannot mix 3.0 motherboard firmware with 2.6 extruder firmware. They changed the entire communication code in 3.0 and it will never work. You either run all 3.x series on both boards or pre 3.0 but not mixed.

Tinkering posted great info as well.

I'm not clear on what you tried, other than the old EC-driven cable hack, which is very unstable.

You should have the Gen3+Shield 3.1 firmware on the motherboard and the 3.0 or 3.1 (preferably the 3.1) on the extruder controller. You won't see signals for a 4th stepper until the shield-special firmware is installed on the motherboard.

You should be able to follow most of the instructions on t
he wiki using the cable-hack outlined on this page. Here's the link to the wiki:

How will this be sold? PM then Paypal??

2 Questions:

1 - Just realized that looking at the shield, it really covers up the USB header. Can you still get the USB FTDI cable onto it?

2- Any update on the manufacturing process? :)

NVM on #1. I just saw the other angle photo and yeah there's clearly enough space.

BTW, I uploaded new firmware. One is 3.0/RepG26 compatible.

Thanks a lot! This is exactly what I was looking for! Any suggestions on the extruder controller firmware? I have the v3.6 extruder controller, currently running firmware 2.9.

That should work great. I'll have a new firmware uploaded this weekend. I'm going to rebase it off of the 3.0 firmware.

Also, at the moment the SD card appears to be disabled for some reason. I'll try TP get that sorted out as well.

Umm... do you have instructions for setting up the software/profile?

Judging from looking @ the firmware's source, this will make a cupcake behave like a TOM, so you can use a TOM profile and just have to disable the homing code (unless you have all the endstops installed in which case u you do some calculations to make it work). You will also have to edit the start.gcode and end.gcode, which is under the alterations folder, associated with the profile to be more like your cupcake's current profile, although I left the end.gcode alone because I copied the TOM with HBP, which is basically my cupcake.

I say did because I did the "old" ugly cable hack on the MBI wiki, which has latency issues but from a profile/software perspective works the same. I'm working on reworking that into the "new" ugly cable hack, mentioned here, until Rob get's the shields made.

Thank you! It is a lot more clear now.

Great work Rob!

I am keen to try the new firmware (yet to decide on the shield itself). I'm currently using min endstops plus tbuser's pololu stripboard (http://www.flickr.com/photos/tbuser/4874166644/)http://www.flickr.com/photos/t... for the extruder.

  • Does the ugly cable hack alternative lose all endstops, or just the max endstops?
  • Wha
    t are the functions on each of A0/A5/21? (i.e. how to connect to the stripboard?)

Thank you! This has been rolling around in my head for a lo g time and is way overdue.

I updated the thing better explaining the pin functions and explaining that the Gen3 stepper driver "Max" endstops are the only thing to avoid. The Min endstop connections are safe, and you can also connect an actual Max endstop (as far as the actual direction of travel goes) to the Min position o
n the Gen3 stepper driver and it'll work fine. Remember, the Min and Max signals are combined to the same pins with this firmware.

One question...

No max endstops with Gen3 drivers? Erm.... I have a mix on my cupcake, X and Y are pololu based and the Z and Extruder are still Gen3. How do I use those without blowing things up? I really really want to intergrate max endstops (because then I can keep my z-max endstop).

Yeah, you can use all six endstops.

On each axis the Min and Max are combined. I may simply rename them X-End-1 and X-End-2 to eliminate the confusion. If you are using just one for each axis, then it doesn't matter which end of the physical travel it's on.

If you are using two endstops on the same axis then you need the IC. If th
ey are normally-high and go low when triggered, like the MakerBot mechanical endstops used in the Thing-O-Matic, then you need an AND IC. If they are normally-low and go high when triggered, then you need an OR IC. Both ICs have the same footprint and pinout, and you can use a different one per axis

I definately don't recommend the Ugly-Cable-Hack method with two endstops on an axis unless you're ready to make that cable really ugly.

If you use the Max endstop with connector on the motherboard, using a Gen3 driver, your endstop signal will interfere with the extruder stepper signals and m
ay short out the bot.

This configuration should work fine with the 3G 5D Shield.

Ok, things are absolutely no more clear at all..

My pololu's are connected using the Gen3 size connectors (and theres at least 1, possibly 3 cupcakes that could do with this upgrade) so lets just talk about Gen3.

I want to use Gen3 drivers (because its what I have). I also want to at the very least use the Z-max endstop. How do I do this withou
t releasing any of the magic smoke?

I assume that its just a matter of cutting all those extra connectors on the Gen3 MB-driver cable. But clarification would be nice :)

Ok, nevermind me. I found my answer in the other comments.

The MB can no longer tell the difference between 'min' or 'max' enstops. So I connect my endstop I'm using for 'max' to the 'min' socket. It will still function as desired, just the firmware has no way of knowing that if its really the min or max endstop. Which isn't a big issue.

Simple :)

You can configure it to do 6.