Jump to content
Ultimaker Community of 3D Printing Experts

Installing OctoPrint for the Ultimaker 2

Recommended Posts

French version: http://umforum.ultimaker.com/index.php?/topic/5184-installation-doctoprint-pour-lultimaker-2/


Hi all,


I just finished installing OctoPrint on a Raspberry Pi to use my Ultimaker 2 remotely. I've done this by following a couple of steps found on the internet so I'll just give you a step by step on how to install it for the Ultimaker 2.


Most of the stuff can be found around the web.


What do you need?


A raspberry Pi:



The Raspberry Pi is a low cost, credit-card sized computer that plugs into a computer monitor or TV, and uses a standard keyboard and mouse. It is a capable little device that enables people of all ages to explore computing, and to learn how to program in languages like Scratch and Python. It’s capable of doing everything you’d expect a desktop computer to do, from browsing the internet and playing high-definition video, to making spreadsheets, word-processing, and playing games.





I'd recommend buying the model B as it has two usb ports which are necessary if you want to make it wireless.


more info here: http://www.raspberrypi.org/help/what-is-a-raspberry-pi/


Power supply:


Raspberry are powered by a mini-usb cable. I personnaly use a power supply equivalent to those used for charging smartphones. 1000mA is enough.


Wi-fi dongle:


In case you don't have an ethernet cable available near your printer. You can find a list of dongles that are prooved to work here: http://elinux.org/RPi_USB_Wi-Fi_Adapters


Sd Card:


Raspberry pi needs an OS to work, it's installed on a SD card. For the OctoPi distribution you need at least a 4gb Card.


WebCam (optionnal):


For streaming videos of your prints, very usefull when monitoring from a remote destination. You can also automatically do some timelapse videos of your prints.


Personnaly i bought a RaspiCam (http://www.raspberrypi.org/product/camera-module/) it's very small and you can print a case for it.


List of compatible webcams: http://elinux.org/RPi_USB_Webcams




You can either buy one or print it yourself, there are a lot of cases on thingiverse.






There are various ways for installing octoprint on a raspberry. The easiest is installing the OctoPi distribution which has all you need.


1. Download the image here: http://docstech.net/OctoPiMirror/


Take the last stable version.


2. Once downloaded extract the img file from the zip.


3. Insert the SD card into your SD card reader and check what drive letter it was assigned. You can easily see the drive letter (for example G:) by looking in the left column of Windows Explorer. You can use the SD Card slot (if you have one) or a cheap Adapter in a USB slot.


4. You will need a software to flash the SD Card with OctoPi: i used http://sourceforge.net/projects/win32diskimager


5. Extract the executable from the zip file and run the Win32DiskImager utility; you may need to run the utility as Administrator! Right-click on the file, and select 'Run as Administrator'


6. Select the image file you extracted above.


7. Select the drive letter of the SD card in the device box. Be careful to select the correct drive; if you get the wrong one you can destroy your data on the computer's hard disk! If you are using an SD Card slot in your computer (if you have one) and can't see the drive in the Win32DiskImager window, try using a cheap Adapter in a USB slot.


8. Click Write and wait for the write to complete.


9. Exit the imager and eject the SD card.


10. You are now ready to plug the card into your Raspberry Pi.


In Windows, the SD card will appear only to have a fairly small size once written - about 55 to 75 MB. This is because most of the card has a partition that is formatted for the Linux operating system that the Raspberry Pi uses which is not visible in Windows. If you don't see this small directory with files such as kernel.img then the copy may not have worked correctly.


Source of explanation: http://elinux.org/RPi_Easy_SD_Card_Setup


First Run:


Insert the SD Card in the raspberry, plug in a usb keyboard, connect the raspberry to a monitor (i used my TV as the Raspberry has an HDMI output). Connect the power supply. The raspberry should boot.


At this step i got a menu (sorry i don't have the screenshot) where you choose from different options. One of them was to boot directly to the os desktop (which i selected).


I'm not sure if this is what i was supposed to do as the OctoPi page has no information between flashing the SD card an using OctoPrint.


Once this was done the OS booted and i got the desktop displayed. Unfortunately for me i wasn't able to use my usb mouse (not sure why) the os wouldn't boot when i plugged it in. I needed to configure my Wifi access and this is why i had to be able to use the raspberry desktop.


Probably the following steps are optionnal if you have more luck than me but i thought it could be usefull to share this.


This can probably be done all using SSH for the most geeks of you ^^



How to configure wifi in SSH:




Set up remote desktop on the raspberry (optionnal):


1. Plug in an Ethernet Cable and reboot the Pi (i had to unplug the power supply).


2. Download Putty: http://www.chiark.greenend.org.uk/~sgtatham/putty/


There are a lot of settings you can mess with in PuTTY, but we only need to worry about a single thing to connect to our Pi. On the main Session interface, just type in the IP address of your Pi and select SSH below it:




Hit Open at the bottom and PuTTY will launch a terminal window for you, connect to your Pi, and prompt you to log in. Go ahead and log in with:


user: pi

password: raspberry




Remote command line access is awesome, but so is having access to the desktop for GUI-focused activities. Let’s bring the powers of the command line and the powers of the desktop together.


Although we’ve been referring to it as “remote desktop” to this point, the tool we’re actually installing is known as Virtual Network Computing (VNC)—iterations of which many are familiar with such as RealVNC and TightVNC. For this tutorial, we’ll be installing TightVNC on the Pi.


Download TightVnc here: http://www.tightvnc.com/download.php


3. Install tightVncServer on the raspberry:


At this step i had some more troubles ^^ when trying to install the package i had the folling error:


Something wicked happened resolving blablabla (name of the mirror).


To resolve this do the following:


Edit your /etc/resolv.conf (type: sudo nano /etc/resolv.conf in your putty window) and add the google public DNS addresses like this:.





Once this is done install the tightvncServer:


sudo apt-get install tightvncserver


This will download and unpack the installation files; when prompted to continue press Y. After the installation is complete, you’ll be returned to the prompt. You can start the VNC one of two ways. Simply running the command for the server like so:






Will prompt you enter a password to access your VNC desktop—as seen in the screenshot above. The password needs to be 4-8 characters long. Once you confirm the password, you will be prompted to set a view-only password (you can opt out of the step, as we did).


4. Connect remotely to the raspberry desktop


Now that we have the VNC server up and running, let’s connect into it from our remote desktop. Fire up TightVNC viewer on your computer and plug in the IP address of the Raspberry Pi unit followed by :1 like so:




And here’s our reward for successfully configuring our VNC server—a nice full screen view of our remote Raspberry Pi unit:




5. Set up Wifi


Just click on the wifi config icon and configure your wifi.


Source of explanation: http://www.howtogeek.com/141157/how-to-configure-your-raspberry-pi-for-remote-shell-desktop-and-file-transfer/all/


Use OctoPrint


Now that i finally made my raspberry connect with wifi I could connect it to my Ultimaker 2.


Simply plug in the usb that is delivered with your printer.


You should be able to access it at http://octopi.local


If you are running Windows, you might need to install “Bonjour for Windows” http://support.apple.com/kb/DL999 first for this to work – or alternatively at its regular IP.


To connect with an Ultimaker 2 set the baudrate to 250000


You can then upload your gcode directly to octoprint and watch all the magic in your web browser.


You'll need to set the gcode flavour to reprap in Cura for this to work (File -> Machine Settings).


I've done all of this yesterday so i thought i would share all this if it can help someone.


Octoprint looks very nice and usefull you can monitor your prints with the gcode visualizer or check your webcam to see if everything is ok.


It is possible to make your OctoPrint available from everywhere but i didn't do this, i don't want to make it possible for anyone to access my beloved ultimaker if i mess something up in the configuration.


Anyway to access it i installed teamviewer on my pc (which has then to stay connected while i'm away and need monitoring), i then access to octoprint remotely by connecting to my pc. It can even be done with your smartphone.


Hope that this little tutorial will help. Any more advices, remarks or insults are appreciated :)


  • Like 2

Share this post

Link to post
Share on other sites

The difference is convenience (cool, it rhymes :) ).

With UltiGCode you get gcode that does not depend on the filament diameter. Usualy when you slice your model, you have to specify the diameter. With UltiGCode the diameter is saved in firmware (menu entry "Material"). Now you could slice a model and print it in different colors (assuming all your different filament brands have the same diameter).

To be honest I am a bit torn on this issue. Filament is rarely consistent reagarding its diameter. But then again if the fluctuations are small enough, they are negligible. I am printing nice models with only one material preset set to 2.9mm diameter... And since presets can't be renamed on the UM2 yet, and you can't select a preset in the tune menu - they are not that useful to me right now.

On the other hand OctoPrint ist extremely useful. Not only do you get a nice interface but your past prints are saved so you can allways come back and take a look at the print settings. It does allow you to track the printing time (vs. the calculated time - something that's a hit or miss issue with Cura).

I wish OctoPrint would do a bit more regarding logging and accountability. It could track for example how much filament you have left because it knows what you have printed. It could also allow rating/taking notes for finished prints so you can later search and re-print your best models (in different colors if it would support UltiGCode). It could automate the "I made one" feature for Thingiverse (or YouMagine) if you have a webcam.

So many cool features. But for now I'll stick with Cura/sd card/walking up to the printer. Since the dreaded filament strand always gets in the way when a print starts, I'll have to be there and snag it off. There is no fully automated click print and come back when done system yet.


Share this post

Link to post
Share on other sites

Ok i don't really understand what bothers you because saved in the firmware or in the gcode doesn't change much does it?

But i must say that pluging the sd card in the pc uploading the gcode directly from cura and printing with the controller is much more confortable if you have the printer next to you. I just like watching the statistics during the print without having to go to the tune menu and stuff ^^


Share this post

Link to post
Share on other sites

Ok i don't really understand what bothers you because saved in the firmware or in the gcode doesn't change much does it?


Oh but it does. With normal gcode when you slice a model in Cura you have to specify the filament diameter. If you then change filament and it has a different diameter, you have to throw away your gcode file and slice it again in Cura. This means take the sdcard out, go to the Mac, slice in Cura, go back, insert card and print.

With UltiGCode you can simply change the filament diameter in the material preset on the UM2 display and start another print.


Share this post

Link to post
Share on other sites


i installed octopi for my UM2 and everything runs fine except printing. I changed gcode falvor to reprap (Marlin/Sprinter).

When the print starts, it starts printing the object immediately. There is no startup procedure like when using ultigcode flavor and starting the print form sd card. So there is no material extruded at all when it starts printing.

This is the start code which is added when changing the flavor to reprap (I am using Cura 14.07):


;Sliced at: {day} {date} {time}
;Basic settings: Layer height: {layer_height} Walls: {wall_thickness} Fill: {fill_density}
;Print time: {print_time}
;Filament used: {filament_amount}m {filament_weight}g
;Filament cost: {filament_cost}
;M190 S{print_bed_temperature} ;Uncomment to add your own bed temperature line
;M109 S{print_temperature} ;Uncomment to add your own temperature line
G21 ;metric values
G90 ;absolute positioning
M82 ;set extruder to absolute mode
M107 ;start with the fan off
G28 X0 Y0 ;move X/Y to min endstops
G28 Z0 ;move Z to min endstops
G1 Z15.0 F{travel_speed} ;move the platform down 15mm
G92 E0 ;zero the extruded length
G1 F200 E3 ;extrude 3mm of feed stock
G92 E0 ;zero the extruded length again
G1 F{travel_speed}
;Put printing message on LCD screen
M117 Printing...

Is this code correct?


Share this post

Link to post
Share on other sites

I hope Gina (OctoPrint developer) will add support for UltiGCode. That's the only reason the put me off using OctoPrint. Right now I am using it only for streaming...


Actually, it's not just Gina that needs to do work for this. It's also on the firmware side that's not really compatible for UltiGCode except if you use the LCD menu.


Share this post

Link to post
Share on other sites

Ok, didn't know that. I hoped it would be just a small™ change...

I really hope it is not that complicated (read: it doesn't take forever because it might not be that far up on the list of priorities) because both OctoPrint the UM2 are awesome and would explode in awesomeness when properly combined :)


Share this post

Link to post
Share on other sites

Hey I got the OctoPrint setup working directly from my Mac! Thanks Didier for writting all this. It helped quite a bit getting some of the final things together.

I use TeamViewer to remotely connect from my phone to the mac and got my camera and stats running on it.

There is so few things I dont like with octoprint:

- The printer will reset every time I connect to it with octoprint. This mean I cant connect while in the middle of a print :(

- The SD card browser is shit. It doesnt show the names properly ex: 870201~1.GCO (SD) instead of 87290_blablabla.gcode. When you have 5 files starting with the same number its kind of a wild guess to know which one to pick.

- Starting a print from OctoPrint will, like 470m said, starts right away without pre print setup.

- I cant cancel a print if it wasnt started by octoprint. I need to send the head home, lower bed, disconnect and reconnect to force a reboot.


Share this post

Link to post
Share on other sites


same here. Just got my UM2 back and now I'd like to use it with OctoPrint.


  1. I think that's not so problematic because if you start a print via OctoPrint you wouldn't need to connect again.
  2. If I remember correctly it is the same (albeit a bit better) with the UM2 display too. But you could file a feature request for OctoPrint.
  3. That's weird. OctoPrint should honor the gcode where the nozzle is primed. With the latest firmware the pre print setup changed (like the bed is moved up first, slow extrusion first, then faster and finally positioning and printing. I hope illuminarti could provide us with his custom gcode (since I know he also uses reprap style gcode from time to time.
  4. I'd say that's expected too. Since you didn't start the print via OctoPrint, it makes no sense to be able to cancel it from there. When OctoPrint is in use, it assumes exclussive usage of the printer.

But why did you install OctoPrint on the Mac? Wouldn't it be way cooler to have a small Raspberry Pi somewhere near the printer and connect to it via the web interface? Because why bother to use OctoPrint if you could print from sd card if the printer is near you?


Share this post

Link to post
Share on other sites

1. You're right.

2. Names on the UM2 display are the real names. They get trimmed if too long but at least its the real name. In OctoPrint I do not see the real name. Just the first few characters are ok. The rest is a reduced version ex: 0201~1.GCO

3. Nope. Straith print. Not even waiting for the nozzle temp or bed temp to be reached.

4. I like to monitor the print with octoprint but since of the issues above I dont want to use it for printing just yet.

I installed in on the mac because I dont have a Raspberry Pi and the main goal for now was to be able to monitor prints remotely. Working full time I cant leave long prints unattended. I just need a way to see the print and cancel it if needed. Therefore having my mac connected is enough.


Share this post

Link to post
Share on other sites

2. Names on the UM2 display are the real names. They get trimmed if too long but at least its the real name. In OctoPrint I do not see the real name. Just the first few characters are ok. The rest is a reduced version ex: 0201~1.GCO


There is a whole bunch of techincal reasons for this. But the main thing boils down to "originally the developer that made the SD card support thought the longer filenames where impossible." I proved him wrong, but, starting files trough USB from the SD card still needs the short names, which is why Octoprint displays the short names.


Share this post

Link to post
Share on other sites

Has anyone found a way to just monitor a print job started from the printer? The lack of a printing startup process (heat up, extrude material, then start print) means I have to start from the printer but the UM2 doesn't like that when a USB connection is present.


Share this post

Link to post
Share on other sites

if you connect to the printer first you should be able to monitor it but wont see the progress in percentage. Only temp monitory will be active.

It would be nice if we could insert some extra codes just to give progress feedback. Having the printer to send command reporting percentage of print or layer number and total layer count. Maybe there is already something for this but it would be cool to have something from Octoprint to follow these commands and even automatically send reports as email when print reach some percentage.


Share this post

Link to post
Share on other sites

Are you connecting to your printer via USB using OctoPrint? It shouldn't trigger a print unless you tell it to once you have connected to it.

When connecting using octoprint it will reset your printer so don't do it while printing... Once its connected it always monitor/change temp, you can move print head and bed, you can extrude filament and browser a gcode to print it.

EDIT: and you can use the UM2 normal controls.


Share this post

Link to post
Share on other sites

I've managed to install octoprint and connect it but i can't seem to make it start a print correctly. Are you really expected to move the build plate to the correct location, heat up the nozzles and then start it? It just starts printing without heating. If I actually heat everything first then it starts printing in mid air :)

Not really useful except for temperature monitoring for me so far :)


Share this post

Link to post
Share on other sites

Same for me really. I use it as a fail safe more than anything else when remote monitoring a print.

I use TeamViewer to connect to my pc. Check the webcam and if its clogged or failling a print I'll connect to the printer with octoprint. It will cause a reset of the printer and move the head and bed to home position.

Thats all I do with it..


Share this post

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Our picks

    • Ultimaker Cura | a new interface
      We're not only trying to always make Ultimaker Cura better with the usual new features and improvements we build, but we're also trying to make it more pleasant to operate. The interface was the focus for the upcoming release, from which we would already like to present you the first glance. 
        • Like
      • 85 replies
    • "Back To The Future" using Generative Design & Investment Casting
      Designing for light-weight parts is becoming more important, and I’m a firm believer in the need to produce lighter weight, less over-engineered parts for the future. This is for sustainability reasons because we need to be using less raw materials and, in things like transportation, it impacts the energy usage of the product during it’s service life.
        • Like
      • 12 replies

Important Information

Welcome to the Ultimaker Community of 3D printing experts. Visit the following links to read more about our Terms of Use or our Privacy Policy. Thank you!