The Hacklab has a Ultimaker "Original" 3D printer that can print using PLA or ABS plastic. Almost all the filament in the lab right now is PLA. This page documents what you need to do in order to print something.
Generating the toolpath
Firstly you'll need a slicer to generate some g code (a toolpath). Download and install Cura on your computer. The settings are "Ultimaker original" with extruder upgrade and heated bed (self built). Skip the firmware update and print test.
Now you can load your STL model into cura and generate the toolpath and then save the g-code into a file.
Tweaking the settings
Cura's default "quickprint profiles" are good starting points if you just want to print something. You don't have to mess around with the "Full" / "Advanced" settings unless you fancy seeing if you can print just a little faster or higher quality. You can skip the next "Advanced Settings" section if you are using the quickprint profiles.
Hovering over an advanced settings text input box in Cura will give you a good explanation (and often a recommended range) of the setting. Read through each one. Generally you're going to be trading speed for quality and vica versa when tweaking the advanced settings. Here's some observations I've (TechnomadicJim) made while using the Ultimaker:
- The printer might struggle to extrude more than 5.00mm^3 per second so choose your "Print Speed" with this in mind. Hovering over the "Basic" > "Speed and Temperature" > "Print Speed" setting will give you the current settings expected extrusion speed.
- "Basic" > "Quality" > "Layer height" is the setting that has the greatest effect on speed and quality. The larger your layer height the less layers your print will have and therefore the quicker it will print but at the expense of quality. Generally 0.1mm for quality or 0.2mm for speed are good settings.
- Print speed can be finely tuned in the "Advanced" > "Speed" area. You will want to print slower on the bottom to get a good adhesion to the bed. You may want to print slower on the top and and outer shell to improve appearance. Any "Speed" setting under the "Advanced" tab with a value of 0 will default to the value of "Basic" > "Speed and Temperature" > "Print speed (mm/s)". If none of your advanced speed settings are 0 then the "Basic" > "Speed and Temperature" > "Print speed (mm/s)" will have no effect. I generally print the bottom/top layer at 30mms and the outer shell at 40mms.
- "Basic" > "Fill" > "Fill Density %" can be kept low (20%?) for ornaments but should be high for structural objects (60%+).
- "Basic" > "Filament" > "Flow%". I've been experimenting but increasing this to 130% and noticed that it can help improve prints as there's an issue that multiple people have complained about where the infill doesn't quite reach the outer layer (on only one of the axis) and leaves a small gap. The printer possibly needs its E-STEPS re-calibrating or there's a slight mechanical issue with the printer itself that needs looking at. Not sure on this one just yet.
- Temperatures. When you're printing PLA at ~5.00mm^3 per second you will probably need to increase the temperature to 230 degrees. Otherwise 210 is fine for PLA. A bed temperature of 70 degrees if good for PLA too.
- It's recommended to always print with a Brim "Support Type" as this gives the printer a chance to normalise its extrusion before it gets to printing the actual object.
Powering the printer up
To avoid damaging the controller, power up the printer in this order:
- Plug Raspberry Pi with PoE shield to PoE-enabled Ethernet socket (if not already connected and running)
- Connect usb cable between Raspberry and Ultimaker (if not already connected)
- Connect both heater power supplies or switch on the big extension cord
- If heaters do not start or printer does not respond, check black rocker switch next to the USB connector
Verify that the print bed is clear, filament has been fed to the printer and the filament feed-catch is locked into place (pointing away from the printer).
To shut down the printer, switching off heater power supplies is enough. Use the switch in big extension cord or disconnect both power supply cables. Normally Raspberry pi and printer's controller board can be left on. If they also need to be disconnected, make sure that both heater power supplies are switched off before removing USB cable between Raspberry and the printer or Raspberry's Ethernet cable.
Connecting to the printer
Connect to the hacklab internal network (wired ethernet or 'hacklab' / 'hacklab-fast' wlans) and point your browser towards | http://ultimaker.local/. Login with username 'hacklab' and password 'hacklab'.
Now you can upload your g-code file created by Cura (or whatever slicing software) to the octoprint and then click the small 'load' button next to the file in the list and after that you can start the print from the big 'Print' button.
At first nothing will happen as the printer heats up the bed and the extruder, you can see the temperature graphs in octoprint. The 'control' tab also gives you a webcam feed from the printer.
Remember to keep an eye on the printer when you are using it (especially at the start of a print) in case something goes wrong. Disconnect the printer after use by switching off the PSU or unplugging it's kettle lead.
Here's some other tips I (TechnomadicJim) can think of:
- Remember to ensure the filament doesn't get snagged as it could lead to under extrusion as the printer struggles to pull the filament. While we are working on a better (bearing based) solution you should probably rotate the filament occasionally throughout the print.
- You don't need to spray hairspray on the bed for every print. If you're getting poor bed adhesion then remove the glass, clean it under a hot water and then re-apply the hairspray to the glass with around 3 light coats.
- You can speed up or slow down the printer on the fly under the "Control" tab of octoprint. There's a "Feed Rate" option now that you can increase up to 150%. Choose the new Feed Rate then click the button underneath.
- Printer's model is Ultimaker Original (not plus)
- Heat bed is RepRap alu heatbed mk3 and its temp sensor is some 100ohm NTC or PT100.
- Ultimaker's default firmware does not work because of the custom heat bed
- Functioning firmware can be created with Ginge's Marlin Builder https://marlinbuilder.robotfuzz.com/ using following setup:
* Template: Ultimaker * Board type: Ultimaker * Extruder temperature sensor: thermocouple with AD595 * Heater bed temperature sensor: PT100 circuit found in the Ultimainboard V2.x
Full setup and compiled binary can be found from lab's github: https://github.com/HelsinkiHacklab/ultimaker