Jump to content
Ultimaker Community of 3D Printing Experts
abstract

Octoprint and Ultimaker 2, A couple of month's experience

Recommended Posts

After a couple of months experience using UM2, and Octoprint, I thought I would share some of the info.

I have my UM2 outside in a garage, connected to a Raspberry Pi running Octoprint (octopi). I try to reduce the number of trips in and out using Octoprint to do some of the work. Primarily Octoprint is used for the Camera, which is a logitech WebCam which hangs from the top front of the UM2 from a little bracket I printed.

The camera works pretty well, although I can't see the while bed from that position and it can't focus on the front part of the bed. However, it gives me a pretty good picture of roughly what is happening, including failure and completion.

I have previously posted about my challenges with cold startup - sometimes the UM2 refuses to start because the temperature of the print head is 5 degrees or less. In this case I have to warm the head a bit with a hair dryer - only takes a few seconds, then UM2 starts OK.

The major thing I try to optimise is how much time I have to spend stood in front of the UM2 waiting for the bed to warm up. This can take quite some time to go from 5 degrees to 75 degrees. One technique is based on starting the UM2 (optional hairdryer sequence), and using the Advanced menu to manually warm the bed to 75 degrees. (this is trip 1 outside). Then I go in and wait for a while, perhaps prepare an SD card. Then on trip 2, I can often insert the card, and hit print - because the bed is already hot, I can generally wait a little while and babysit the startup of the print. I try to do this due to fairly common issues with startup such as nothing coming out (too much PLA dripped out during head warmup) or avoiding mess contaminating the print when the pre-extrusion PLA gets involved in the print.

Another option is to simply start the print, and let the UM2 sort out heating up the bed from cold, and the new firmware now delays the head heat up. This can often work, although a number of times I have found that the print simply doesn't start (not sure why) and I go out to find the head front left, bed up, but no printing started. Hence, my babysitting.

Now, to the Octoprint : This is a great tool, and running on a Raspberry PI it is very convenient.

I use the Octoprint for 3 jobs.

1) Camera

2) Manual Warm up, before a UM2 front panel print

3) Complete Print jobs.

1) I have already talked about above

2) If the UM2 is already turned on, from a previous print, I will often connect with the Octoprint and set the bed to warm up to 75 degrees. This allows me to monitor the warm up from inside, then only go out and start a front panel print (babysitting startup) when the UM2 is almost ready to go

3) Sometimes I will do the entire print from Octoprint. Note that this requires you to make a machine setting in Cura which outputs RepRap instead of UM2 code, since it requires some extra steps which the UM2 front panel normally inserts. In this case I manually warm up the bed, then manually warm the head, export RepRap GCode from Cura, drop into the Octoprint web page, then start the print. Quite often this will work nicely. I have observed that the retraction in RepRep mode is not as good as the native UM2 language retraction, so I usually only use method 3) when I don't need any retraction. Also, by default, the RepRap code doesn't lower the bed, although no big deal.

Overall, the Octoprint adds a lot of extra flexibility and limits the number of trips I make out to the garage. Once you get used to all the variables its pretty easy to juggle these different methods.

One thing which I can't really get around is the need to wait for the bed to cool before removing a print, then warming it up again. This adds quite a bit of time between prints. Trying to remove a print with a hot bed is tricky and usually results in you damaging the print. Pops off nicely when cool tho (especially in a cold environment). I clean the glass in warm water once in a while, then apply a full coating of gluestick, then carry on with that for a few days - I don't bother re-applying it, since it seems to leave a residue even after a print which serves the next one.

I have tried PLA from a few companies so far. The UM2 blue was nice, good prints, I then got 100M of Black and White PLA from Faberdashery and was astonished to find it didn't come on a spool. So I ended up unspooling all the blue and manually winding on the Black (that was a chore I can tell you). So, a tip - make sure your PLA comes on a spool !!!

I also got 100m of white PLA/PHA from ColorFabb (which did come on a spool) but that led to some blockage, and I have abandoned that reel.

I have also got some 10m samples of PLA and ABS from 3D Filaprint, but not tested those yet.

The Faberdashery 3mm PLA material has printed *great*, but I still need to find a good UK supplier with quality filament *on a reel*.

Outside of the UM2 ecosystem, (I am mostly making engineering parts) I am using Sketchup Pro on Mac, with a couple of plug ins : susolid and a STL import / exporter. SuSolid is a great tool and let's you easily visualise model glitches, which can be essential if you want to make 'solids' which can be combined by Sketchup. I had been using Blender to convert .stl to .dae to import stuff into Sketchup, but I have now found a good STL Import plug in which is working great.

The very best thing I have bought (apart from the UM2) is a 3DConnexion Space Navigator 3D mouse. This works really well with Sketchup and *transforms* the experience of 3D Modelling.

Hope all this info helps people new to Ultimaker.

 

  • Like 1

Share this post


Link to post
Share on other sites

Excellent info!! Thanks for taking the time to write it up. I started assembling my Octoprint RPi last night, and am excited to try it out.

As I've mentioned elsewhere recently, I quite like the loose coils of filament from faberdashery. I find that I get much better results with those than with any spooled filament attached to the printer. The radius of curvature on a typical spool is often too tight to unwind and feed easily, and if the spool is mounted on the printer, it's too easy to get poor lines in the print where the filament stuck on the spool and impaired feeding for a few seconds.

Generally I will put the coil of faberdashery filament, or spool if the filament is on one, on a lazy Susan turntable, on the floor below and to the side of the printer. Then I can have several meters of loosely coiled filament hanging in the air between the lazy Susan and the printer. That way I get really smooth feeding. As with any feed mechanism it needs to be checked on every now and then - but that's how I did my long slow prints recently, and was able to leave the printer unattended for upto 8 hours at a time, and only then straighten out any kinks that had developed, and free up enough loose plastic for the next 8 hours or so.

Share this post


Link to post
Share on other sites

It probably would cost you less than 1 penny per day to keep the bed and nozzle at 10C. What do you think of never turning it off when not in use?

Since you are in "reprap" mode anyway - it's easy to mess with the start and end gcodes. You could probalby set the end gcode to leave the bed and nozzle at 10C. At least when the weather is forecast to be below 5C.

As far as letting parts cool - the glass temp of PLA is around 55C. If the bed temp is below 50C it should be safe to pry the part off with a putty knife. But above 60C it's not worth the risk.

Alternatively, I have placed the glass under hot water (I made sure the water was at max temp before letting it touch the 60C glass). This dissolves the gluestick glue and makes it easier to pop the part off once you get a square millimeter of corner up and let water in. Also alternatively I have removed the glass with gloves and waved it around in the air up and down to speed up cooling yet still cool evenly (glass tends to shatter if you cool it unevenly - UM doesn't use pyrex).

 

Share this post


Link to post
Share on other sites

What I found to be even more useful about RPi and OctoPrint is that you can run multiple instances of the OP daemon and control more printers, each in another browser tab/instance. If you connect a regular 4-port USB hub to one of the RPi's USB port (and perhaps an WiFi dongle to the other) you can run a pool of 4 printers! Each printer daemon being configurable independently. I don't know yet if it works with 3 printers and a camera :)

 

Share this post


Link to post
Share on other sites

What I found to be even more useful about RPi and OctoPrint is that you can run multiple instances of the OP daemon and control more printers, each in another browser tab/instance. If you connect a regular 4-port USB hub to one of the RPi's USB port (and perhaps an WiFi dongle to the other) you can run a pool of 4 printers! Each printer daemon being configurable independently. I don't know yet if it works with 3 printers and a camera :)

 

How do you differentiate between the printers from the browser? Does OctoPrint sort this out for you?

 

Share this post


Link to post
Share on other sites

Also alternatively I have removed the glass with gloves and waved it around in the air up and down to speed up cooling yet still cool evenly

 

Would have loved to see this :)

Would be even funnier if you printed a bird and yelled, 'Fly!! ..Why won't you fly away!!'

If you have your UM2 in a very cold room, you also may want to make sure your rods stay lubricated.

And If you do not preheat your head, your nozzle will not run empty and you can easily select a job on the SD card and walk away. When the head heats after the bed, and you have a skirt enabled, your print should start fine.

I think faberdasherry is great filament and always gives me super surface finish, however (especially with a larger batch') I end up with tangled filament. I am not very lucky on that regard.

 

Share this post


Link to post
Share on other sites

How do you differentiate between the printers from the browser? Does OctoPrint sort this out for you?

 

Well, once in browser, all is simple: you can give it a name and make the header of the page a distinctive color.

But you have to get there, and this requires some configuration in Raspbian and a bit in OctoPrint.

I'll prepare a short guide in a couple of days and post it here. The basic idea is to use the USB device identification codes (usually stored in the EEPROM, e.g. for a FTDI FT232RL) and map the code to a particular name for each printer. Then the name is used to configure the http daemon of OctoPrint.

L.E. Here is a config guide for multiple printers on OctoPrint/RPi, pretty long, but hopefully detailed and clear enough.

Configuring RPi and OctoPrint for multiple printers is neither too simple, nor too complicated. Besides the specific steps below, there are some prerequisites that you should/shall fulfil:

 

  • install and update/upgrade Raspbian

  • configure a fixed IP address for RPi

  • install and test OctoPrint in default configuration

Once all the above are in place and working we have to perform the following steps:

 

  • discover the unique codes of the serial interfaces for all printers

  • define names for every printer and map them to codes

  • create the configuration file for each OctoPrint daemon

  • create quick links in browser

Let's have a more detailed look to these steps.

To find the codes of interest, after RPi boots up, issue the following command to dump the kernel message buffer:

 


dmesg

There will be a pretty long listing of messages pertaining whatever has happened during the boot process. Scroll down to find the beginning of the USB devices tree. In the example below, there are:

 

  • one 4-port USB 2-0 hub connected to the third USB port (well, yes, the first is internally used to provide the Ethernet port, while the next two are available physically to connect USB external devices)

  • four printers connected to the four ports of the USB hub, each equipped with a FTDI FT232RL chip

 


...

[ 3.531762] usb 1-1.3: new high-speed USB device number 5 using dwc_otg

[ 3.680789] usb 1-1.3: Product: USB2.0 Hub

...

[ 4.002011] usb 1-1.3.1: new full-speed USB device number 6 using dwc_otg

[ 4.142434] usb 1-1.3.1: New USB device found, idVendor=0403, idProduct=6001

[ 4.190939] usb 1-1.3.1: Product: FT232R USB UART

[ 4.206725] usb 1-1.3.1: Manufacturer: FTDI

[ 4.214382] usb 1-1.3.1: SerialNumber: A10248WD

...

[ 4.311927] usb 1-1.3.2: new full-speed USB device number 7 using dwc_otg

[ 4.459478] usb 1-1.3.2: New USB device found, idVendor=0403, idProduct=6001

[ 4.490897] usb 1-1.3.2: Product: FT232R USB UART

[ 4.541582] usb 1-1.3.2: Manufacturer: FTDI

[ 4.547665] usb 1-1.3.2: SerialNumber: A102499T

...

[ 4.671972] usb 1-1.3.3: new full-speed USB device number 8 using dwc_otg

[ 4.829533] usb 1-1.3.3: New USB device found, idVendor=0403, idProduct=6001

[ 4.881350] usb 1-1.3.3: Product: FT232R USB UART

[ 4.904643] usb 1-1.3.3: Manufacturer: FTDI

[ 4.910623] usb 1-1.3.3: SerialNumber: A10248W3

...

[ 5.141922] usb 1-1.3.4: new full-speed USB device number 9 using dwc_otg

[ 5.285609] usb 1-1.3.4: New USB device found, idVendor=0403, idProduct=6001

[ 5.319118] usb 1-1.3.4: Product: FT232R USB UART

[ 5.332834] usb 1-1.3.4: Manufacturer: FTDI

[ 5.338718] usb 1-1.3.4: SerialNumber: A90197ZC

...

Please note that could be other lines besides those kept in the listing above.

For each printer, write down idVendor, idProduct and SerialNumber . Each set makes up the unique identification code of one printer.

Now, we need to create some mapping rules that will assign a more human readable name to each printer. To do that, issue the following command, to create and edit a rules file:

 


sudo nano /etc/udev/rules.d/10-local.rules

For each printer, we need to enter one line, as in the example below:

 


SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", ATTRS{serial}=="A90197ZC" SYMLINK+="Huxy1"

SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", ATTRS{serial}=="A10248W3" SYMLINK+="Huxy2"

SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", ATTRS{serial}=="A102499T" SYMLINK+="Huxy3"

SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", ATTRS{serial}=="A10248WD" SYMLINK+="Huxy5"

Well, you have to select names in a way that will enable further configuration. There should be a common root of all the names used. Later on, OctoPrint will have to select each printer out of a bunch of devices, and this is accomplished by filtering out the name strings based on this common root, then looking for an exact match. The example above is appropriate in case it's about the same type of printer, so that just an index could differentiate them. In case of a pool of different printers, it would be adequate to use the printer name, prefixed by something, e.g. the nickname of the owner.

Be sure to use the exact syntax or the rule will be entirely ignored. Once everything is fine, save the file and reboot RPi.

That's all about Raspbian setup, now let's prepare OctoPrint as well.

Having more printers, we have to create and setup a configuration file (config.yaml like) for each. Among many other options, here are the ones that we are interested in, as an example for Huxy1 above:

 


serial:

# Instead of Huxy1, use a name for your printer

port: /dev/Huxy1

# Default is false, but configuring it to true will do the job, well, not really always

autoconnect: true

# Instead of Hux, use you specific prefix

additionalPorts:

- /dev/Hux

server:

# Use a different port number for each printer

port: 5001

appearance:

# Give each of your printer a suggestive name that will appear in the title and navigation bars

name: Huxy 1

# Customize the color of the navigation bar (limited choice of colors)

color: blue

Obviously, there many other options that deserve some attention, but these are part of other interesting features of OctoPrint.

After each configuration file has been defined, start the corresponding http daemon (or restart it, if already made the configuration for automatic startup).

There is one more step, to create a quick link (favorite) to each printer in the preferred browser.

Assuming that RPi will be a dedicated print server, you'll have to configure automatic startup of all http daemons. This and many other useful setup and configuration instructions are available on OctoPrint wiki pages.

 

Share this post


Link to post
Share on other sites

That's all about Raspbian setup, now let's prepare OctoPrint as well.

Having more printers, we have to create and setup a configuration file (config.yaml like) for each. Among many other options, here are the ones that we are interested in, as an example for Huxy1 above:

 


serial:

# Instead of Huxy1, use a name for your printer

port: /dev/Huxy1

# Default is false, but configuring it to true will do the job, well, not really always

autoconnect: true

# Instead of Hux, use you specific prefix

additionalPorts:

- /dev/Hux

server:

# Use a different port number for each printer

port: 5001

appearance:

# Give each of your printer a suggestive name that will appear in the title and navigation bars

name: Huxy 1

# Customize the color of the navigation bar (limited choice of colors)

color: blue

Obviously, there many other options that deserve some attention, but these are part of other interesting features of OctoPrint.

After each configuration file has been defined, start the corresponding http daemon (or restart it, if already made the configuration for automatic startup).

There is one more step, to create a quick link (favorite) to each printer in the preferred browser.

Assuming that RPi will be a dedicated print server, you'll have to configure automatic startup of all http daemons. This and many other useful setup and configuration instructions are available on OctoPrint wiki pages.

 

^ This is where I get lost. Where do I put this configuration file? What do I do with it when it's created? I have both printers connected, and can connect to one or the other through Octoprint if I choose ACM0 or ACM1 when connecting. Would love a little more help. Thanks!!!

 

Share this post


Link to post
Share on other sites

Nick, you can configure most of this things via the interface. Click on the settings wrench a the top right. Alternatively you can place it in the home directory where you installed OctoPrint. If you use Linux and went with the stanrdard pi user, then it is ~/.octoprint/config.yaml (or more verbosely: /home/pi/.octoprint/config.yaml).

 

Share this post


Link to post
Share on other sites

Doesn't seem like you can access anything related to having multiple printers via the web interface.

What is the structure for adding multiple printers to this config.yaml file? The instructions above make it seem like each printer needs its own config.yaml file. What do those files end up getting named in that case?

 

Share this post


Link to post
Share on other sites

To me it looks like this starts the second instance. Of course you'd have to have ~/.octoprint2 (with standard settings for the second printer). So you can use one base directory of your OctoPrint installation and when you start the daemon, point the second one to a new port and another directory with octoprint settings (~/.octoprint2).

 

Share this post


Link to post
Share on other sites

The UM2 supports a new style of gcode (UltiGCode) that OctoPrint doesn't support yet. So in order to use it now you have to switch to regular gcode in Cura. (Menu -> Machine -> Machine settings -> GCode Flavor).

I have not tried it yet myself, I am using OctoPrint only for its webcam streaming for now.

 

Share this post


Link to post
Share on other sites

Oops, was not here for a while :)

 

Having more printers, we have to create and setup a configuration file (config.yaml like) for each

 

So, you need ONE config file for EACH printer. You name them, e.g. config1.yaml, config2.yaml, etc. Then, when you write the daemon start command line, you just mention the corresponding config file, as indicated in the main instructions of the github repository

 

You can also specify the configfile or the base directory (for basing off the uploads, timelapse and logs folders), e.g.:

 


./run --config /path/to/another/config.yaml --basedir /path/to/my/basedir

See run --help for further information.

 

Actually, you may want to write one such a line for each printer in the file used for automatic start up, as indicated in the wiki. Config (yaml) files are by default in ~/.octoprint, but you may place them elsewhere.

To recap:

 

  • one config file for each printer
  • one daemon started for each printer, the command line to start it having to specify the corresponding config file

As an example, here is my octoprint-start file that the RPi is executed automatically at the end of the boot sequence:

 


OCTOPRINT_HOME=/home/pi/OctoPrint
$OCTOPRINT_HOME/run -c /home/pi/.octoprint/huxy1.yaml --daemon start --pid /tmp/huxy1.pid
$OCTOPRINT_HOME/run -c /home/pi/.octoprint/huxy2.yaml --daemon start --pid /tmp/huxy2.pid
$OCTOPRINT_HOME/run -c /home/pi/.octoprint/huxy3.yaml --daemon start --pid /tmp/huxy3.pid
$OCTOPRINT_HOME/run -c /home/pi/.octoprint/huxy5.yaml --daemon start --pid /tmp/huxy5.pid

Share this post


Link to post
Share on other sites

Thanks! I feel like I'm closer. It's still not working, though. I created the .yaml files and put them in .octoprint, and added lines which run them to the octoprint-start file...... but web interface still just loads for my old (single) printer. I can tell because the names I defined for the new printers are not being used. Questions:

- Do I need to do any command line stuff to initiate this updated start script?

- My octoprint-start file has some other stuff in it - a few similar lines with VIRTUALEN added in them. My octoprint install came from the pre-loaded SD card image at http://www.gitiverse.com/octopi/. Do I need to comment anything out? Do I need to put the new lines in a specific location?

- How am I supposed to access the specific printers from the browser? I set them on port 5001 and 5002... does that mean I use 192.168.1.127:5001 and 192.168.1.127:5002? Neither of those work. Do I need to forward them through my router or something?

 

Share this post


Link to post
Share on other sites

I understand you already have a start up file that is called octoprint-start that came in the octopi package.

You have to comment out the line that starts the http daemon. Normally should be only one (don't know how octopi is configured by default).

The new lines have to be added after the original ones (normally at the end of the file).

Access via the browser is as you pointed out, with each printer in one tab or another browser instance if you prefer. The fact you cannot yet, means that the corresponding daemons are not started, but the one corresponding to the default configuration is working, which in turn means that the configuration is not completely correct.

Check if the names were defined correctly and they are actually attached to a physical USB port, for example enter:

 


ls -l /dev/Huxy1

and should get something like this - of course, you should use the names you gave :)

 


lrwxrwxrwx 1 root root 7 Jan 1 1970 /dev/Huxy1 -> ttyUSB2

If you get an error, there is an issue with names association, and while you can connect to the printers as /tty/USBx ports, you have no control of which printer is defined at that port.

If the name is available but you cannot access the web interface, then the daemon is not started, which means the start up configuration is not correct.

There should be no router specific configuration, assuming you just use the router as an Ethernet hub/switch on the LAN side (proved as you can connect one printer with default config).

I'll try to have a look inside the octopi pack.

 

Share this post


Link to post
Share on other sites

 

 


ls -l /dev/SOBILongan

returns the correct stuff.

 

My .yaml files seem correct, based on the examples you posted above.

 

 

This is my octoPrintStart file. I've tried commenting out the VIRTUALENV_HOME lines and it doesn't seem to change anything.

 


#!/bin/sh
OCTOPRINT_HOME=/home/pi/OctoPrint
VIRTUALENV_HOME=/home/pi/oprint

# start the webui (hashed out to run two printers)
#$OCTOPRINT_HOME/run --daemon start
#$VIRTUALENV_HOME/bin/python $OCTOPRINT_HOME/run --daemon start

# added to run two printers:
$OCTOPRINT_HOME/run -c /home/pi/.octoprint/SOBILongan.yaml --daemon start --pid /tmp/SOBILongan.pid
$OCTOPRINT_HOME/run -c /home/pi/.octoprint/SOBIRambutan.yaml --daemon start --pid /tmp/SOBIRambutan.pid
#$VIRTUALENV_HOME/bin/python $OCTOPRINT_HOME/run -c /home/pi/.octoprint/SOBILongan.yaml --daemon start --pid /tmp/SOBILongan.pid
#$VIRTUALENV_HOME/bin/python $OCTOPRINT_HOME/run -c /home/pi/.octoprint/SOBIRambutan.yaml --daemon start --pid /tmp/SOBIRambutan.pid

 

Share this post


Link to post
Share on other sites

Don't know what to say. I tried to download the octopi, but the speed was awful and after 4 hours I closed the lid of the laptop by mistake and guess what... I'll let it download overnight.

Might be something pre-configured that conflicts.

Is there the - (dash) in front of /dev/SOBI prefix definition in the yaml file? I just ask because I initially though is a mistake, eliminated it and... didn't work :)

 

Share this post


Link to post
Share on other sites

- How am I supposed to access the specific printers from the browser? I set them on port 5001 and 5002... does that mean I use 192.168.1.127:5001 and 192.168.1.127:5002? Neither of those work. Do I need to forward them through my router or something?

 

In order to test that the other OctoPrint instances are started correctly, you could log into your octpi via ssh on different terminals and start the deamons manually. Then access each instance in a browser tab (by appending the port number - exactly like how you wrote it: 192.168.1.127:5001 and so on).

To start the daemons manualli, change to your OctoPrint directory and run the commands from your config file:

 


./run -c /home/pi/.octoprint/SOBILongan.yaml --daemon start --pid /tmp/SOBILongan.pid

Then in another ssh session/tab:

 


./run -c /home/pi/.octoprint/SOBIRambutan.yaml --daemon start --pid /tmp/SOBIRambutan.pid

Then use the netstat command to list your open ports:

 


netstat -tan|grep LISTEN

Share this post


Link to post
Share on other sites

Oops, I found something missing: a wildcard * after the SOBI prefix.

So the correct statement should be:

 


serial:
additionalPorts:
- /dev/SOBI*

Without it, when enumerating the devices, it will look for an exact match, which will not return anything. Subsequently, when trying to open the port as named further, it could not find it and the server will not start.

Hope this will fix it.

Here is a full copy of one of my config files:

 


appearance:
color: blue
name: Huxy 1
controls:
- children:
- command: M106 S%(speed)s
input:
- default: 200
name: Speed (0-255)
parameter: speed
name: Start Fan
type: parametric_command
- command: M106 S0
name: Stop Fan
type: command
name: Fan Control
type: section
feature:
swallowOkAfterResend: false
printerParameters:
movementSpeed:
e: 600
x: 12000
y: 12000
z: 150
serial:
additionalPorts:
- /dev/Huxy*
autoconnect: true
baudrate: 115200
port: /dev/Huxy1
timeout: {}
server:
firstRun: true
host: 0.0.0.0
port: 5001
system:
actions:
- action: shutdown
command: sudo shutdown -h now
confirm: You are about to shutdown the system.
name: Shutdown Huxy Pi
temperature:
profiles:
- bed: 110
extruder: 220
name: ABS
- bed: 70
extruder: 200
name: PLA
webcam: {}

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

    • How to 3D print with reinforced engineering materials
      Ultimaker is hosting a webinar where we explain how you can achieve and maintain a high print success rate using these new reinforced engineering materials. Learn from Ultimaker's Product Manager of Materials and top chemical engineer Bart van As how you can take your 3D printing to that next level.
      • 0 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!