Please read this page and follow the steps here when using the 3D Printers
3D printers are devices that are able to turn filament into functional components. They work by pushing the filament with the extruder and into the hotend, where it gets melted and pushed through the nozzle. It gets turned into thin layers of plastic that get stacked, starting from the bed, to form the desired components.
All our klipper-based printers can be accessed online over the printer portal located at printer.lucaciresearch.net. This URL can also be accessed from the Dashboard.
![]() |
|---|
| Medina | Iron | Envy | Malice | Supermodel | Kraftmaschine |
|---|---|---|---|---|---|
| Voron 2.4 3503 | Voron Zero 1203 | Prusa i3 MK3S+ | Prusa i3 MK3S+ | DuelingZ | DuelingZ |
Our slicer of choice is PrusaSlicer. After installing, the first time you open the slicer, it will ask which printer models we have. You can select any printers that you own.
Do not select any of the team's printers in the configuration wizard. We maintain a custom repository of configuration and it is ideal we do not stray from it. They will be imported in the next section of this page.
It is very important to update your slicer configuration to the latest version. The printers will refuse to print a gcode that is sliced using an older version of the slicer configuration.
Download ZIP.~/.config/PrusaSlicer%APPDATA%\PrusaSlicer (Type this in your file explorer, it will open the right directory)To ensure that the parts do no warp and lift off the plate, try to break down complex geometry into simpler parts.
Keep massive, warpy parts off the edges of the buildplate. Because the edges of the buildplate are slightly colder than the center, putting warpy parts on the edge will cause the print fail.
Rounding corners also helps prevent warping.
| Example: large parts as close to the center |
|---|
![]() |
When choosing a material for a print, take into consideration the following:
For filament compatibility, as a general rule:
If a filament profile is not available in the slicer, it generally means that the selected printer is not compatible with it. If you need to print nonstandard setups, talk to us and we will figure out a way to make it work.
We use spoolman to track the filament usage. Spoolman can be accessed from the Dashboard or at spoolman.lucres.net All the klipper-equipped printers report to spoolman the used quantity of material.
Each spool is tracked using an unique number (example: #17) that is written using a marker on the spool or on the spool box. If opening a new spool, please take the time to transfer the writing from the box to the spool itself using a suitable permanent marker. Some spools will have a sticker that you can transfer to the spool.
![]() |
|---|
Before printing, ensure that you have enough filament on the spool. You can typically see this information inside the printer's page in the spoolman section. In this menu you can also eject the spool (1) (if using an untracked spool) or change the spool to another (2).
![]() |
![]() |
|---|
Always change the spool configured in the printer when switching spools. If you forget, the printer will keep consuming from the old one and we'll end up with bad data in spoolman.
It is possible to correct this situation by weighing all the affected spools manually and entering the data into spoolman. Ask Cristi or Alex to help with this operation.
You might get an error similar to
Cannot reach spoolman instance. This is because you might not be logged in to the spoolman instance in a long while. To fix it, open the Spoolman URL and then refresh the printer page.
Palmyr has a different way to integrate with spoolman. Because there are up to 8 gates/spools, we cannot use the usual spoolman panel to set the filament. If we still use the regular panel and/or macros, the spool will remnain set only until the next load/unload happens, when the data is overriden and lost.
Palmyr keeps track of spool ID's inside its gate map. To modify the gate map, follow the instructions below:
| Locate the MMU panel and open the Edit Filaments menu inside the dots button | Click on the gate you wish to modify and enable Spoolman. Type the spool ID or click the Choose Spool button to have it auto-filled. To remove a gate from filament tracking, just disable Spoolman from that gate. |
|---|---|
![]() |
![]() |
The printer will fetch filament's details from spoolman like type, name and color. At each filament switch, the printer will set the appropiate spool ID and Moonraker will submit filament consumption to Spoolman. Selecting a gate will not change the current spool, only load operations.
Before printing, please have a look at the printer to ensure that it is operating normally.
Before the print, always wipe the bed with Isopropanol.
When in doubt, PLEASE ask Alex to help figure the issue out.
Medina is a large format, enclosed Voron 2.4 printer. It only uses ABS and ASA.
The print sheet to be used is the PrusaXL Satin sheet.
Currently, when loading filament, you have to disconnect the bowden tube from the extruder to manually feed the filament inside the gears. The reason for this process is that the extruder body has burrs from CNC machining and feeding from the tube will cause filament to get stuck.
To control the printer, use the webpage or the klipperscreen terminal.
The Satin sheet does not provide excellent adhesion for large parts.
If you need to print large parts, prefer to redesign so that the effects of warping are minimized. If that is not possible, the Smooth sheet can be used instead, but PLEASE let us know first.
The strong adhesion of the Smooth sheet combined with significant warping can permanently damage the sheet!After using the Smooth sheet, always revert to the Satin sheet.
Prusa Mk3S+ are the 3D printers that our team has used since 2021 and they have been the most helpful tools for building our robots across the years, allowing us to bring our components and designs into reality. They were bought in the form of kits directly from Prusa and were built by our team with the help of the very user-friendly assembly manual. The assembly manual can also be used when doing teardowns of the printers to fix any issues, alongside other instructions and suggestions from the support page.
In 2026 we chose to upgrade our Prusa Mk3S+ printers to the Prusa Mk3.5S model, using upgrade kits bought from Prusa, and were assembled by our team using the very user-friendly upgrade manual.
The Prusa Mk3.5S upgrade gives us access to more modern features, such as input shaper, a new screen interface with USB support and printing over network, while maintaining most of the hardware used by the Prusa Mk3S+. These features make the printers run faster than ever while having a more user-accesible interface, helps us print pieces faster and easier than before.
The bed sheets attach magnetically to the bed and can be changed with our other sheets stored near the printers. For more information about the materials that can be printed on Prusa Sheets, you can consult Prusa’s Material Guide.
We print PLA on the smooth sheet and PETG on the textured sheet.
For more general information about the Prusa Mk3.5S printers you can consult the printer's handbook or read the physical versions present at the workshop, stored near the printers themselves.
To print, remove the printer's USB stick and conect it to the workshop's PC, upload your gcode file on the USB stick and insert the USB stick back into the printer. Press the "Print" button on the printer's LCD screen, select the file you uploaded and start printing.
All Klipper printers are connected to a data collection system called Prometheus. To view the status of the fleet, access the Grafana application from the Dashboard. When you open Grafana from the Dashboard, you should be automatically logged in.
Grafana is a tool that can create visualisations from any given data. It is able to read data from Prometheus, SQL databases, time series databases, log collection systems like Loki and more.
We use Grafana to create fancy graphs
After you open Grafana, you will see an empty welcome page. In the left menu, go to Dashboards then select the Printers dashboard. You will see a page with overview of the fleet status.
Full history is available for analysys in Grafana. Select your time interval in the top-right box and all charts will update. You can also drag on a graph to zoom in on a time interval.

Create a 55mm3 cube in the slicer. Do the following settings:
Print the cube. After it has finished doing infill layers, lower the EM until there are gaps between the lines. Then, slowly raise it, waiting 5-6 layers between each change. When the EM is too much, you will start to see extra filament buildup on the layers.
Perfect EM will have a nice finish of fused lines at the center of the surface. Disregard the edges where material builds up because of movement changes.
rotation_distance printer (hardware) valueDo the sequence above with the REFERENCE ABS roll loaded. This roll is a blue Everfil filament that is only used for reference calibration across printers. To save the value, go to the printer configuration and replace the value of rotation_distance with the new calculated value by this formula:
rotation_distance = rotation_distance * 100 / EM
To be able to obtain accurate values from this test, the printer's rotation_distance should be calibrated first.
This process should be done with every type and brand of filament we own. Save the value in the slicer's filament extrusion multiplier setting (scale 0-100% to 0-1).

Conversion between filament units:
Set default filament and print profiles by opening the printer file and change these lines:
default_filament_profile = "Prusament PLA @MK3.5"
default_print_profile = 0.20mm SPEED @MK3.5 0.4
Configure for each printer a model.
printer_model = CVoron24
printer_model = CVoron24-ERCF
printer_model = CVoron0
printer_model = CMK35
Configure for each material what printers can use it. Restrict based on cooling performance, temperature compatibility and extruder type. If the filament is specific for a single printer, please prefix the filament name with the printer's name (not the printer_model above) and restrict it properly.
compatible_printers_condition = printer_model=="CVoron24" or printer_model=="CVoron0"
For filament compatibility, restrict based on compatible printers and nozzle diameter.
Take into consideration multimaterial handling.
compatible_printers_condition = printer_model=="CVoron24" and nozzle_diameter[0]==0.4
If printing very small details (like teethed pulleys), apply the following settings to print:
All Vorons have a tendancy to accumulate plastic bits at the bottom, so make sure to remove them often. You can use a vacuum cleaner for this task.
After quite a few filament loads and unloads, the blobifier tray will fill up with purged blobs. Simply take it out by pulling the tab on the left towards the front and empty inside a trashcan.
Due to unusual behaviour of the Axon servo at startup, it will vibrate aggressively until it is commanded to go to a position.
If you hear it vibrate after bootup, go to the ERCF menu, the Manage submenu and order to servo to go to the Move or Up position.
If the loading of material starts behaving eratically and does not have enough grip, it is very possible that the servo horn is worn out.
Print this servo horn. The screw at the center is nonstandard, so make sure to not strip it and keep it safe during the repair.