Print The Porto

A collection of tips about 3d printing.

Updating your Printrbot firmware to use e3d v6 thermistor

I wanted to update to the firmware on my printrbot simple metal to the latest as of this writing (August 7, 2015), for the Rev F version 5 boards on Mac osX.

Here's a handy download of the simple metal hex file.

There is a excellent write up on the whole process at But for brevity sake here is how to do it quickly on a Mac.

Download the following:

  1. Pre-configured Arduino build environment for compiling Marlin on a Mac with the Printrboard This also requires java, if you don't have it installed go to
  2. Grab the latest firmware files for your board version on their Github page:
  3. Flash tool from Printrbot:

Once everything is downloaded we need to setup the Arduino app.

Start up the app and then go to the menu and choose Arduino > preferences. Next to the "show verbose output:" Make sure to turn on the "compilation" checkbox. Click "ok" to save the change.


Next set up the board that Arduino should use, "Tools > Board:" set to "usbtinyisp".

choose board

Now let's open the file to edit go to the firmware files you downloaded. For my particular case, I went to "Downloads > Marlin-RevF-Version-5 > Marlin" folder and double click the "Marlin.ino" file.

Go to the Configuration.h tab and scroll down to the line that says: #define TEMP_SENSOR_0 1. You want to change that "1" to a "5" So now it should read #define TEMP_SENSOR_0 5.


A few lines below change the max temperature for the hot end to 290, #define HEATER_0_MAXTEMP 275 to #define HEATER_0_MAXTEMP 290.


The last change to do is comment out #define ULTIPANE. Scroll down to line 457 and add '//' to the front of the Ultipanel line, change #define ULTIPANEL //the ultipanel as on thingiverse to //#define ULTIPANEL //the ultipanel as on thingiverse. Make sure to save the file after the changes.


Bonus from a member of the printrbot forum on facebook (Joe Nappi). Go to the tab tha reads config_adv.h and let's turn on the "heat Sanity check" by uncommenting it. Remove the "//" from lines 18 and 19 and save the changes after un-commenting them.

#define WATCH_TEMP_PERIOD 40000 //40 seconds
#define WATCH_TEMP_INCREASE 10 //Heat up at least 10 degree in 20 seconds

sanity check

Go to the language.h tab and edit line 25 #define FIRMWARE_NAME "PB Marlin Rev F v5" to #define FIRMWARE_NAME "PB Marlin Rev F v5 modded 4/5/16" and save the file. This allows you to run the M115 command to display firmware info and ensure you're running the modified firmware.

Lastly, compile the source into a firmware file, by clicking the big checkmark in the upper left corner of the app. On the bottom of the app, you should see a bunch code scrolling by. Eventually it will stop and you have a hex file. The easiest way to get to the file is by using the terminal to copy it to the desktop. Open the terminal app by using spotlight and type out "terminal".

When it is open you want copy the 2nd to last line in the output window of the audrino app (this is the location of the output firmware file) and type the following in the terminal window cp */*/*/Marlin.cpp.hex ~/Desktop/Printrbot.hex

For example I did the following for my configuration:
cp /var/folders/s2/pvmb1wld19j9p8ht3llnpcsw0000gn/T/build3876152333868340870.tmp/Marlin.cpp.hex ~/Desktop/Printrbot.hex

With your new hex file, you can use the firmware update application you downloaded earlier. Please refer to step 3 of You can follow the instruction on there for your machine. But quick overview is to first, make sure to short the boot jumper, which is located in the center of the board. If you don't have an extra jumper laying around, use folded aluminum foil. Start the firmware flash app you downloaded earlier and follow the command prompts from the application.


Categories: printrbot simple metal

Tags: printrbot simple metal, firmware, e3d

Comments: 2 Comments


How to pause printing to switch filament

In order to do multi color print with one extruder. You can pause the printer at a specific height. Just insert the following after the layer height call in the gcode file. For example search for "; layer 5" and add the following after it:

;Pause Code
G91 ;Set Relative Mode
G1 E-5.000000 F500 ;Retract 5mm
G1 Z15 F300 ;move Z up 15mm
G90 ;Set Absolute Mode
G1 X20 Y20 F9000 ;Move to hold position
G91 ;Set Relative Mode
G1 E-40 F500 ;Retract 40mm, this can be commented out if you just want to pause to insert magnets or something.
M300 ;Beep (marlin)
M0 ;Idle Hold
G90 ;Set Absolute Mode
G1 F5000 ;Set speed limits, depending on slicer this can be set to your initial mm/min speed or it can be used for the following move only then the next layer will set the speed
G28 X0 Y0 ;Home X Y
M82 ;Set extruder to Absolute Mode
G92 E0 ;Set Extruder to 0

There is also the G4: Dwell command

Example: G4 P200

In this case sit still doing nothing for 200 milliseconds. During delays the state of the machine (for example the temperatures of its extruders) will still be preserved and controlled.

Categories: gcode, tips

Tags: tips, gcode

Comments: No comments yet


Making your printrbot metal simple a bit quieter

I've actually done this after a month after owning my PSM. It works and is very noticable. Make sure you check which board you have before making changes. Copied from:

Below is a copy for an easier read, but its for the Rev F version of the printrboard.

The guide for Rev B through D is located here.

Image 1/2: Note: Commands are case sensitive.

Step 2

Stepper motor current is adjusted by sending commands to the printer.

Note: Commands are case sensitive.


M907: Sets motor current as a percentage of the full-scale adjustment (ex: M907 X30 Y30 Z30 E30 sets all motor current levels to 30% of the full-scale reference value).

M909: Reads the present motor current setpoints (similar to M501).

M910: Saves motor current setpoints (similar to M500).

Image 2/2: Commands:

2 Step 3

Use the M907 command to set a mid-level value (50 is a good starting point). For example: M907 X50 Y50 Z50 E50.

Use manual movement commands (larger values work best) to move the motors.

Incrementally adjust individual axis down 10 points at a time until they stop moving. Example: M907 X40, and then M907 X30.

When the motor stops moving reliably (skipping steps), move it back up 10 points, and move to the next axis.

Step 4

Run M910 to save the new values.

Step 5

Run M909 to verify that the values were saved.

Categories: tips, gcode, printrbot simple metal

Tags: tip, gcode

Comments: No comments yet