First you should download the latest version of Repetier-Server from our homepage at https://www.repetier-server.com.
By default the server stores all data in a global directory, which is normally located at C:\ProgramData\Repetier-Server\. This directory gets never deleted by updating or uninstalling the server to prevent data loss. If you want to backup your current state, just backup this directory.
The Server works as a background service. For this reason, you will never see it in the
list of running programs and you never start it directly. It will be started automatically
at startup of windows, so you can access it any time with your browser. To start, stop or restart it
manually, you can do this in Repetier-Host:
Alternatively, you can follow these steps:
By default the server stores all data in a global directory, which is normally located at /Library/Application Support/Repetier-Server/. This directory gets never deleted by updating or uninstalling the server to prevent data loss. If you want to backup your current state, just backup this directory.
The server works as a background daemon. For this reason, you will never see it in the list of running programs and you never start it directly. It will be started automatically start with the first initated connection with your browser. To start and stop it manually, open a terminal windows and enter
# Stop server sudo launchctl unload /Library/LaunchDaemons/com.repetier-server.RepetierServer.plist # Start server sudo launchctl load /Library/LaunchDaemons/com.repetier-server.RepetierServer.plist
To uninstall Repetier-Server, please open your terminal and enter:
To install a new version of Repetier-Server download the version matching your computer and open a terminal and go to the download directory. There you enter:
sudo dpkg -i NewRepetierServerVersion.deb
After this, the server should already be running and you can access the interface with http://localhost:3344 or http://<ip address>:3344 if you are running it on a remote linux computer.
By default the server stores all data in a global directory, which is normally located at /var/lib/Repetier-Server/. This directory gets never deleted by updating or uninstalling the server to prevent data loss. If you want to backup your current state, just backup this directory.
The Server works as a background daemon. It will be started automatically at startup of linux, so you can access it any time with your browser. To start, stop or restart it, enter the following command in a terminal:
# Start server sudo service RepetierServer start sudo /etc/init.d/RepetierServer start # Stop server sudo service RepetierServer stop sudo /etc/init.d/RepetierServer stop # Restart server sudo service RepetierServer stop sudo /etc/init.d/RepetierServer restart
In newer systems with systemd init configuration, you need to use the service command. The init.d version only works on older systems!
The easiest way to set up a new printer is to upload an existing config file. Go to
and click on Upload Printer
Configuration. Enter a printer name, select the configuration file and click Create
That's all. Maybe you need to change the serial port.
To set the port, select your new printer on the dashboard and go to Printer Settings.
To create a configuration file, go to and click
Download Printer Settings in the printer
Another very simple way to add a new printer is our Configuration Wizard. Go to and click on + Add new Printer.
3D printing is cool, but it always takes some time and nobody wants to spend all the time sitting next
This is where the Repetier-Informer app
(the required app is available for Android and iOS devices) enters the scene. This will give you the
status reports via fast and
free push messages to your smartphone and/or tablet.
Click at top right of the browser window on the gear and choose Global Settings Push Messages to configure your push messages. Here you have to enter an informer group you have created in your app and you can specify for which events messages are sent:
Repetier-Server creates preview images for all uploaded g-codes and STL files, so that you can easily browse through your models and see them. To set the quality and colors, go to and choose Global Settings Preview Images.
Here you can set the material colors for each extruder. The color settings are used for all printers, so here may be more extruder displayed as you have.
To set the color you can enter the rgb values in hexadecimal format, use our color picker or click Select predefined colors and choose one of our color proposals.
Normally you just have to choose between hard and soft shadows for STL files (G-Codes always have hard shadows). Soft shadows take much more time for rendering. If you select Individual Advanced Settings, you can set all parameters like antialaising quality, shadows, refelctions, colors of bed and horizon, lights, ... manually. Note that some settings can extremely increase the computing time. For all the parameters you will get examples by clicking on .
With Repetier-Server you can calculate in advance what a print will cost.
Click at top right of the browser window on the gear and choose
Printing Costs to configure your price calculation.
Here you can set your currency, a handling fee (for professional offers) and costs per hour (e.g. electricity prices, hourly usage charge and printer wear). Then you can create any number of filament types and for each a price per kg and a weight per cm³.
With the API key in your Global Settings you can get
access to the server. This is used to allow servers to communicate with each others or to add
other software without the use of login/password. Keep it secret or change it if you think it got
To change the API Key, klick the button Replace with new API
If you do not want to give complete access to the server, use the API Key from a User at User Profiles. Here the server gets the same rights as the choosen user.
Each server installation has an own server name and helps to identity your installation when running multiple instances and when you use the cloud to control all your instances. If you change your server name, referencing servers will automatically rename to the new name. To connect to the cloud, you need the UUID, which must be unique. If you copy an running server image, you might copy the UUID, so you could get two installations with the same id, which will cause troubles when you connect to the cloud. In this case, click New Server UUID before connecting to the cloud.
If your server runs on a slow machine, it might be useful to delegate cpu or memory intensive tasks to
other Repetier-Server instances on other
computers. It is not necessary, that the other instance is configured for any printer. It must be
is all that is required. So if you have a
pc that runs anyway, you might want to add the pc to the list. If no other server in this list is
server runs the task locally.
You can set if the remote server is used for time intensive computations and if it has access to stored
To add an new Repetier-Server instance, click the button Add, enter a name, the API key of the instance, the IP address and the port and click the button Apply Changes.
Notice: The server will always try to outsource computations, if there are cloud computers specified. Therefore it is important to set this only to more capable and faster computers. The first accessible computer from the top of the list is used, so that the fastest computer should stand at the top.
If you have upset an external route with domain name and port, you can enter the connection data here
it for example as QR code on the dashboard.
Depending on the NAT roules in your router, the port may differ from the port the server really uses.
If a webcam is activated in the printer settings, you can specify that images are taken at predetermined intervals. These images can be played via the website like a video. If you want to export it as an mp4 video, you must install FFMPEG. Free download of FFMPEG (version 1.1 or newer) for all operating systems: http://ffmpeg.org/download.html
After installing FFMPEG you have to enter the path (eg C:\ffmpeg\bin\ffmpeg.exe or /usr/bin/ffmpeg),
all. If a remote server is connected, rendering will be outsourced, if the remote server has also FFMPEG
Notice: Alternatively you can install avcanv instead of FFMPEG. Everything will work the same except repeat first/last frame, which will be replaced with no repetition. The executable must be named avconv to be detected automativally.
Threads for Conversion: If you have a multi-core processor, you can specify here how many threads will be used simultaneously to render the video.
Repeat First Frame for: Thus the print does not start immediately on the video, the first picture can be repeated for x seconds.
Repeat Last Frame for: Here the last picture can be repeated for x seconds.
Min. free Disk Space: To avoid that hard disk space runs out while the video is created, here you can specify how much disk space must be at least free, so that the video rendering will start.
Delete images after conversion to video: To save a lot of disk space, you can delete the pictures automatically after creating the timelapse video.
Add Watermark: Here you can specify if you want to embed a watermark in the video.
Watermark Position: Here you define, in which corner the watermark appears.
Watermark Image: Here you can upload your own image, which is used as a watermark. The image must be a PNG and may have alpha channel transparency.
Notice: Each webcam has additional settings defined in printer configuration and in the webcam view of the printer.
Here you can register local folders, which you can use to import G-Code or STL files into the server.
reasons are usb sticks or frequently used folders to provide new files.
You can enter a folder name for each folder. Click Browse to select the folder and
Add new Folder to save the folder.
If you use our image for Raspberry Pi, you can configure Network via acces point mode or wired
details click here:
With such a setup you can configure your Network in Global Settings Network/Time. You can configure your PC to connect to an existing WLAN or to act as an access point. The settings have 4 blocks.
The block Available WLAN Router shows all available WLAN routers. Here you can connect to one of these. Click on the wanted router. If it is encrypted or the password is not stored you will be asked for the passwort.
The block Connection Settings configures some general parameters:
First you should set the region in Connection Settings. Only with the correct region the adapter will work on the channels allowd in your country. You might also want to change the host name. That is the name that will appear in your routers or can be used as part of the URL, if your OS supports Bonjour/Zeroconf. The URL will be in our case http://repetier-server.local/.
The block Wired Connection allows overriding the default settings querried from the DHCP server. Normally there is no need to change anything here.
The block Time allows to set your time zone. This will be used for several time outputs.
The emergency stop button looks by default like real emergency buttons without having the exactly same function. If your safety officer or you have a problem with this fact, you can choose to use a different icon instead.
If you use our touchscreen interface on your printer, you can set a pin to unlock the display after the screen saver is activated, so that no unauthorized persons have access. You can enter a pin with up to 6 numbers. Then you can lock the printer discplay manually. Without a pin, you can not lock it. To activate the lock automatically when the screen saver startes, select Lock screen when the screen saver is activated. Because the printer display has no users, there is only one pin for all users.
While you can already see in your print history when you printed which file, the reports added to the history offer more details about the prints and are also a great way to document your work in downloadable pdf files eg. if it is a commissioned work and you want to deliver a print report.
The report contains a rendered preview image and if you have a webcam you can add a webcam snapshot of the finished print to the report as well. Due to the embeded images the reports can be up to one MB, so you might want to reduce the number of stored reports or disable them completely. Deletitions will happen on the next report generation. If you select Do not generate print reports., the saved reports will not be deleted.
With these settings you can use your computers GPIO pins as input or output to control things like filament sensors, door sensors or lights directly. Wrong usage of GPIO pins can destroy hardware so use only if you know what you do! Use on own risk.
For more information please visit our GPIO Tutorial:
Here you can add individual links to Repetier-Server.
You can use the links as global functions or associate them with a specific printer. The order of the links can be changed by moving them with the left mouse button.
You can also add own icons. We strongly recommend using SVG graphics, as they are always scaled to the right size and can be adjusted to the color scheme. If colors are predefined in the graphic, they can be set to currentColor by clicking on the color, so that this color can be adapted to the color scheme by the program. However, PNG graphics can also be specified.
Web actions are requests to a given url to trigger an action. They can appear in the global or printer menu or just be selectable in g-code with @webAction name.
Typical use cases are updating public states, trigger hardware like IFTTT controlled plugs to enable/disable printer.
Repetier-Server has a user management to assign individual users specific legal rights. Anyone who uses Repetier-Server alone and only in the home network does not necessarily need a user management. But if you would like to have access to Repetier-Server over the internet from anywhere, you should definitely create a user account, otherwise hackers may have access to the your server.
The first created user is a superuser with all rights. Then more users can be created with specialized rights, so that they eg can not change the printer settings.
Click at top right of the browser window on the gear and choose
To add a new user click Create User. You just have to set a
name and a password, mark the wanted rights and click Create User.
The first created user is a superuser with all rights.
After you have created a user, you need to sign in to get access to Repetier-Server.
Every user has an API key. With this API key you can get access to the server with the selected rights.
This is used to add connectivity with other software without the use of login/password. Keep it secret
it if you think it got compromised. To change the API key, click the
Edit button for the user and then click the button
Now that you have your network ready Repetier-Server installed and you are familiar with it and like using it in your local intranet, you might wish to access it from everywhere to check out your prints.
This requires that there is known route from your internet connected device to your Repetier-Server instance. As long as you are using the server only in your intranet, it might be an option to not add any users. As soon as you open your server to the internet you should forget that option. Create a user before doing so or everyone who finds the route through scanning will be able to use your 3d printer and do whatever they want and you might not like that at all. So minimum requirement is to have users with passwords. Then you might still have the problem that traffic is unencrypted so a man in the middle could easily get access to it. But there are also secure solutions – it is up to you how secure it is.
Please understand that we can not provide further assistance on this subject since there are so many different routers, internet provider and software solutions on the market. We do not know them and do not use them all, so we can not provide any help here. The basic problem you need to solve is how to publish a ip:port from your intranet to the internet.
This is the easiest solution. You tell your router to map the port 3344 on the local ip xxx.xxx.xxx.xxx to any port you like. Then you can access the server from everywhere using http://your_router_ip:port
While this might work for many users, some will not succeed. The reason is then normally your internet provider who uses a protocol like DSLight which shares one external IP with different clients, so ports to the outside get mangled to something different and you will not find the way in. In that case this solution does not work.
If you have switching IP addresses you might want to use a dynamic DNS hosting provider who maps your current IP to a static domain name. A free solution would be https://www.duckdns.org.
One thing to consider with this solution is, that the data is not secure as you use the unencrypted http standard. If you want this more secure, you need a https->http proxy in your intranet that forwards secure requests to the regular 3344 port. If you use our pi image, such a proxy is already available under port 443.
Using a virtual private network you get access to your complete intranet in a secure way including all Repetier-Server instances. You access them with the same IP as in your intranet – just remember to connect to your VPN first. Some routers provide VPN out of the box and there are many other VPN solutions. Since they all differ we can not provide additional help.
There is another solution that we like to mention here, because it is the most simple one. A forwarding service starts a connection to the forwarding service so they can exchange data. That service has a public url on the internet and request send to that domain get forwarded. This does not require a port mapper or anything, just a script running on the computer running Repetier-Server. The easiest solution we found so far is https://ngrok.com. You can use the free account which is enough for private usage. The only real problem with the free account is that on every start of the ngrok client you will get a different domain name. The paid solution allows to always get the same domain.
Once you have the ngrok client installed and set up your account token as described on their homepage you start it with
in your terminal window. You will then see two forwarding addresses – one for http and one for https. For security reasons you should always choose the https version.
ngrok http 3344
The only drawback of this solution is, that data gets send from your pc to ngrok web server and from there to your browser. This increases latency and speed is also limited by the slowest component.
There are surely other possible solutions. One would be to make your own forwarding service if you own a web server in the internet. You could create a ssh tunnel to your web server and there use the web server to proxy the data to a subdomain of your choice. But this is an expert solution only for users familiar with networking, web server and proxy creation.
This page guides you to the best pages to solve problems. In addition it will offer solutions to some
fixes that might be necessary.
Repetier-Server tries to not overload your computer. Therefore all long computations are queued into two lists. One handles calls to external programs and the other internally computed tasks. With some files or settings it can happen, that a task never finishes, also this is only a very rare case. The fact that only one of these processes runs at a time, a blocking process means that all further computations will not happen. As an indication you see the slow background computations do not decrease and new uploads do not get rendered. In this case you can stop the task using the Stop Task button. This will kill the running process an continue with the next. As a result that file will never get rendered or whatever the task was for will not finish.
If you click on the respective button, the corresponding control panel will open.
In the case of an emergency, a hardware reset is the best and quickest solution. If the printer does not have a reset button or you are not near your printer, you can use our emergency stop button . This will send a M112 command to your printer. The command is not processed until the buffer is empty, it may therefore take a few seconds to affect. For M112 different actions can be set in the firmware. Please test in advance what happens when you click .
You can quickly change the speed with the round slider or by clicking on the number in the middle. The speed is relative to the G-Code speed, so 100 means original speed and 150 means 50% faster than planned. Changing the speed will not changed the calculated times correctly. If you have changed your speed, you do not have to change the flow. Increasing speed may reduce the print quality.
You can quickly change the flow with the round slider or by clicking on the number in the middle. The flow changes the amount of extruded filament. If you see that you get not enough extrusion, you can increase the value. If you see filament piling up to high you should reduce it. Ideally your slicer should contain the right flow multiplier, so that you always print with 100%. If you change the speed, you do not have to change the flow.
You can quickly change the fan speed with the round slider or by clicking on the number in the middle. If you are printing, the G-Code may contain fan controlling commands which can overwrite your settings. Below the slider you can switch the fan power on and off without changing the value.
You can quickly change the temperature of the current extruder with the round
slider or by
clicking on the number in the middle.
If you have defined temperature values in your printer settings, they get displayed below, so that
click them directly.
To set these predefined values go to Printer Settings Extruder Predefined Extruder Temperatures.
You can quickly change the bed temperature with the round slider or by clicking on
number in the middle.
If you have defined temperature values in your printer settings, they get displayed below, so that
click them directly.
To set these predefined values go to Printer Settings Extruder Predefined Bed Temperatures.
With this function it is easy to change your filament.
If you are printing several objects in parallel, it can happen, that one object failes or you just do not need all objects. For this case you can add rectangular regions, where nothing gets printed. Click Add Region to add a rectangle on the print bed while pressing the left mouse button. You can add multiple regions. Each region gets a separate color and is listet with this color in the Exclude G-Codes list, so you can find and delete the corresponding region easily.
You can add new regions anytime before or during print. They take effect immediately after adding. After a print job is finihed, all regions get deleted.
Hint: If you need to send a non g-code command, e.g. for firmwares accepting shell commands you need to prepend a # char to the line. In that case, the line will be send 1:1.
Repetier-Server has a rescue system, that can help you to continue prints that were
to connection or power loss. Before you enable this feature in
to understand how this works and how it can be improved.
When the rescue system is enabled and you start a print, it will write an additional file with the extension .recover, which contains lines send and acknowledged. If a connection is lost it will also mark the exact position and close the file. A bit more difficult is the case of power loss. If printer looses power the server will most likely also loose power, so it can not flush and close the file safely. So the last lines send might be missing and it also depends on the os ability to recover the file. With some luck the firmware has a power loss detection and can inform the server. If you have told Repetier-Server what the firmware sends on power loss it will also as fast as possible flush and store the file. If the PSU last long enough this means we have the last lines saved and restarting is easier. After server is up you will see the reason for failure. If we were fast enough you will see power loss, otherwise unknown reason.
In any case you will see in the web frontend a message that the print failed and you can go to the rescue page. Meanwhile the server will try to reconnect, enable heated bed and chamber (if configured to do so) and run a recover connection script. The script is just a entry point to help increasing the likelihood of recovering the print. For example if z moves easily it might be a good idea to enable motors to prevent z axis from moving and hence loosing the position. On the other side if you home to z max that makes it easy to get the right position after failure.
To continue the print, you have to tell from which point to continue. If the firmware supports the host rescue protocol we might get the last printer position from the firmware and you can not choose. In all other cases you see the g-code around the time of failure. You can mark last acknowledged and last send line with a button or click in the g-code listing on the left side to mark a different line. Then make sure everything is as needed to continue and hit Continue Print. This will replay the g-code to the marked position internally and only send some state changing commands to firmware. Once the position to continue is reached the process script gets exectuted and then the normal print will continue. The script will be called after the last temperatures are set, except if the script contains the command @waitForAllTemperatures, in that case your own script has to define where to wait and with which tolerance.
You use a usb microscope mounted on your bed looking upwards. You move the extruder nozzle over the microscope so that you can see the opening sharp and position it to be in the center of the cross. You acknowledge the position and click Centered to switch to the next extruder. Firmware will probably move it but maybe not 100%. You justify it again and click Centered , then we can calculate the error. Depending on your firmware the error then can be corrected automatically or you use the knowledge to fix it in firmware yourself.
In Projects you will find your model manager for stl, obj and 3mf files. You can see projects on alls connected Repetier-Server instances. Click on in the top navigation to open your projects.
In each project you can manage any number of related 3d models as well as save further files and information, so that you have everything compact and clearly arranged. Projects can be sorted in folders and subfolders. You can use breadcrumb navigation to select connected servers or jump to parent folders.
Click on an image to open the folder or project. Click on the file or folder name to change it.
Using in the preview image you can copy or move the project to another folder or to other Repetier-Server installations and delete the project. Depending on the size of the project, copying and moving may take some time.
Click Search to search in all projects.
Click Add Project to create a new project in the current folder.
Click Add Folder to create a new folder in the current folder.
Click Import Project to import a project, that has been created with Repetier-Server. These files have the extension .rsproj. The advantage of these files is that all files and additional information are contained in the correct format and that everything is already rendered, so that the import is completed very quickly.
Click Import ZIP to create a project named like the ZIP file that will contain all included files. This works great with ZIP files you downloaded from thingiverse.com, youmagine.com or other model repositories.
If you have opened a project by clicking on the preview image you will find the rendered images and the uploaded images with sliders above.
Click to download the image and 3D to open the 3d view of the model.
In the 3D view you can rotate the object by holding down the left mouse button. To move the object, hold down the right mouse button. Use the mouse wheel to zoom in and out. With the elements of the 3d view you can switch autorotate on and off, center the object, change the object color and switch to full screen view.
Click Download All Files to download a ZIP file with all uploaded files of the project. The rendered images are not included. After clicking the button, the download will start automatically after a while, depending on file size and computer speed.
Click Export Project to download a .rsproj file with all uploaded files and all data. After clicking the button, the download will start automatically after a while, depending on file size and computer speed. The advantage of these files is that all files and additional information are contained in the correct format and that everything is already rendered, so that the import is completed very quickly.
You can set a license and add some tags to find this project afterwards.
You can also set a description of the project and instructions.
Click Upload a File to upload any file. If you upload a stl, obj or 3mf model, a preview image is created. This can take some time. This work can be outsourced to a more powerful computer (see Global Settings Connectivity Alternative Servers). Uploaded images will be shown at the top. All other files will be listed at Other Files. If you upload a html, txt, pdf or mp4 file, you can open them by clicking on .
All uploaded models are shown at Models. Click on the model name to change it. To download it click . To set a rendered image as project preview image click .
At the end everyone who has access to the project can leave a comment. If no users are configured, an author must always be specified; for logged in users, the name is set automatically.
With our search you can keep track of all projects and find them even in large collections.
You can search specifically for tags. The most common are proposed directly.
In the normal search, project names, file names, descriptions and instructions are searched. You can combine tag and normal search. The corresponding project is always displayed as a search result.
If you have a printer with touchscreen, the operability of the regular pages of Repetier-Server can be too complicated and depending on hardware and screen resolution too complex and memory intensive. For this reason we have developed a customized interface for common touchscreen sizes with different resolutions.
You access the touchscreen web page at: http://localhost:3344/modules/front2/app/app.html/
Currently, the following screen resolutions are supported:
To use this touchscreen interface, you need a brwoser that supports Flexbox (e.g. Firefox, Iceweasel or Chrome) and run this browser in fullscreen mode. If you are a printer manufacturer and need a different screen resolution, please contact us, then we can add other resolutions.
The surface fits automatically to the display resolution and can be operated intuitively. The design can easily be customized with HTML and CSS knowledge, which is particularly interesting for printer manufacturers who want to offer this with their own branding. More about adapting can be found on our website.
Notice: Since the cheap mini PC Raspberry Pi is very popular and there are a number of touchscreen monitors for this, we have created two special images, which differ on the following points from the standard Jessie distribution:
Version 1 (without display):
Version 2 (with touchscreen display):
Sometimes it is usefull to be able to call some external commands from the web interface. For example if you are running the server from a Raspberry-PI and want to shut it down, it would b econvenient to do so savely without opening a ssh terminal. For that reason you can extend the top right menu with external commands, which then appear there. On the other side you might want to run some commands on special positions of the print. The server therefor has the @execute command allowing to call an external programm. For security reasons it is not possible to call arbitrary commands. Instead you have to write a extcommands.xml file which you drop in your databbase subdirectory inside your storage directory (see installation where this is for your os).
Below you see an example of such a code. After adding/changing the file, you need to restart the server. Make sure your file keeps valid!
<config> <!-- If you want to run external commands, enter them in this configuration with full path. You will see them in the main menu. Copy this file into the <storage>/database directory. Security consideration: The reason there is no online editor for this is simply security. The commands you enter here are executed with the privileges of the daemon running the server. If you would allow online configuration, a hacker could simply add any command he needs to hack your system. Commands are normally visible in the global menu. If you want one to appear only in in the printer menu, add the attribute "slug" with the slugname as value to command tag where it should show up. You see the slugname when you select a printer as part of the path. --> <command> <icon></icon> <name>Shutdown Server</name> <execute>sudo /sbin/shutdown -h now</execute> <confirm>Really shut down the server?</confirm> <!-- Define if command should show up in local printer interface, default true.--> <local>true</local> <!-- Define if command should show up in remote printer interface, default true.--> <remote>true</remote> <!-- Define if command should show up only for users with print permission, default true.--> <print-permission>true</print-permission> <!-- Define if command should show up only for users with add files permission, default false.--> <add-permission>true</add-permission> <!-- Define if command should show up only for users with del files permission, default false.--> <del-permission>true</del-permission> <!-- Define if command should show up only for users with configuration permission, default false.--> <config-permission>true</config-permission> </command> <command> <icon><![CDATA[<svg aria-hidden="true" focusable="false" data-prefix="fad" data-icon="alarm-snooze" class="svg-inline--fa fa-alarm-snooze fa-w-16" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><g class="fa-group"><path class="fa-secondary" fill="currentColor" d="M434.55 422a223.27 223.27 0 0 0 44.61-134c0-123.71-99.91-224-223.14-224S32.88 164.29 32.88 288a223.21 223.21 0 0 0 44.61 134l-39.95 40.06a16.05 16.05 0 0 0 0 22.63l22.54 22.62a15.89 15.89 0 0 0 22.54 0l39.94-40.09a221.25 221.25 0 0 0 266.91 0l39.95 40.09a15.89 15.89 0 0 0 22.54 0l22.53-22.62a16 16 0 0 0 0-22.63zM338.4 223L242 344h77.77a16 16 0 0 1 15.93 16v16a16 16 0 0 1-15.93 16H192.23a24 24 0 0 1-18.67-39L270 232h-77.77a16 16 0 0 1-15.94-16v-16a16 16 0 0 1 15.94-16h127.51a24 24 0 0 1 18.66 39z" opacity="0.4"></path><path class="fa-primary" fill="currentColor" d="M319.74 184H192.23a16 16 0 0 0-15.94 16v16a16 16 0 0 0 15.94 16H270l-96.44 121a24 24 0 0 0 18.67 39h127.51a16 16 0 0 0 15.93-16v-16a16 16 0 0 0-15.93-16H242l96.4-121a24 24 0 0 0-18.66-39zM1 96a95.11 95.11 0 0 0 15.24 51.26L161.57 25.68A95 95 0 0 0 96.62 0C43.83 0 1 43 1 96zM415.38 0a95.09 95.09 0 0 0-64.93 25.66l145.32 121.57A95.14 95.14 0 0 0 511 96c0-53-42.84-96-95.62-96z"></path></g>]]></icon> <name>Reboot Server</name> <execute>sudo /sbin/shutdown -r now</execute> <confirm>Really reboot the server?</confirm> </command> <!-- G-code files can contain @execute cmd param1 param2 commands. To prevent external users from executing unwanted or dangerous commands, only commands defined here are allowed to execute. More over, only the shortcuts defined here are to be used as cmd in @execute. Prevent parameter where ever possible. --> <execute name="play" allowParams="true">/usr/bin/afplay</execute><!-- play the sound file on moc os x --> </config>
Allcommands have a default icon. If you want your own icon put a url to the icon in the icon property of the command tag. Best is to use a svg image, so it gets the correct color in dark and light mode. The icon gets automatically resized to the available space. Use the external links interface where you also can set own icons. The editor there generates working svg code that can be used here.
The commands in execute tag are executed asynchronously be default. That means the server will not wait for them to finish and directly continous sending g-code. Normally a good thing as it does not disturb the print. In case you want the server to wait for the command to finish, e.g. because you wait for some starting condition you can add the attribute sync="true". In that case you also have the option to stop the print if the returned error code is not 0. To enable this add attribute stopOnFail="true".
All commands get executed with the user account and privileges the server daemon runs. So if you want to allow it to shutdown your computer, you need to add RepetierServer to the list of allowed users. To do this, open a shell and enter the following commands:
# sudo -s # echo "repetierserver ALL=NOPASSWD: /sbin/shutdown" > /etc/sudoers.d/repetierserver-shutdown
Often users have problems adding new commands on linux. Here are some common pitfals that we know users run into:
Sometimes you might want to initate actions at special positions of the G-Code beeing send. To allow this, you can add server commands inside the code. Server commands start with @ or ;@. Use the latter if the code should also woek without the server. Then it would be handled as a simple comment and gets ignored. You can also send these commands over the console panel.
Use this to pause at a predefined position. Add some text to give a hint on why you did pause. If push messages are enabled for pauses you will get also a message on your smartphone. Depending on your configuration this will disable extruders and heaters after a while.
Like @pause but no cooldown of extruders even if set.
Like @pause but with immediate extruder cooldown.
Like @pause but with immediate extruder and heated bed cooldown.
Simulates receiving a message from firmware to change filament.
Stop a active pause. If heaters were disabled first continue only starts heating.
Make sure heaters are at same temperature as at pause start. If they were not disabled nothing happens.
Stopps the running print and runs the kill event script. If you add parameter 0 the kill event script will not be run.
Simulates receiving a power loss message from firmware.
Puts the message into the message queue. Usefull to get some timings or why ever you might want a message.
Shows "some text" as info dialog for printer until an user clicks on ok button.
Shows "some text" as warning dialog for printer until an user clicks on ok button.
Shows "some text" as error dialog for printer until an user clicks on ok button.
Starts creation of a server side dialog. For further information please visit our dialog tutorial: https://www.repetier-server.com/dialog-tutorial/
Normally dialogs are non blocking, which means that the code after @dialogShow will be executed directly. If you need to wait before executing following commands add this after @dialogStart. Be aware that this also stops all other commands from being send until you select a option in the dialog.
Adds a button to the dialog being created. The second argument is the g-code to execute when the button gets pressed.
Shows the server dialog with all button created so far. If no buttons exist a "ok" button to close the dialog will be added. The dialog keeps open until the user selects one of the buttons. Then the g-code gets executed and the dialog is closed.
Sends a push message if enabled with the text.
If you have set up a extcommands.xml with some execute statements, you can run them with @execute. cmd should match the name given with name attibute. Additional parameters are only added if this was allowed in extcommands.xml.
Executes the quick command with given name.
Runs the command that should be executed on hitting some special buttons. Since printers might want different actions for these, they can be overridden in printer configuration. With this solution, we always execute the command the wanted command. Possible commands are:
Marks the current position as at home coordinates. Usefull if your printer has no endstops yet.
This command tries to reset the printer with the DTR/RTS signal toggle. Not all printers can be reset that way!
Will wait for all set temperatures to be within the given difference. If maxDiff is omitted, the last or default value gets used. This will only prevent the running job from being executed while manual commands can still be send!
Will cancel any existing wait for temperatures.
Triggers a event with given name. Might be of interest when you write own event responders in plugins.
Makes a snapshot if timelapse is enabled. webcamId is the webcam to use starting at 0. For 0 you can omit the number.
Writes the IP address on the LCD display.
Skips count following lines. If count is omitted only the next line will be skipped. This may make sense if you can solve problems with gcodes or server commands. E.g. if you want a firmware side pause if printing from sd card and a server injected pause if printing over the server. Then ;@skip would skip the gcode and the following ;@pause would make the pause. Printing from sd card all lines starting with ; get ignored anyway, so no action on ;@ server commands.
Creates a communication error.
Reloads all lua scripts. Nice when editing lua script so you do not need to restart server to make them active.
Starts the next job in the print queue automatically as soon as the currently running job is
Note: This is intended for printers that clear the bed automatically, because otherwise it will be printed on the full printing bed, which can cause damage!
Starts the next print in job queue if no print is running and a print is waiting. If a print is running, but paused it will act like a continue.
Displays important communication variables.
Send this to log extended communication behavior. Send it again to stop it.
Normally the printe rbuffers commands and in addition also moves. So you never know exactly where the tool is or when a command will be executed. @syncMotion will send so many wait for end of move commands that it is guaranteed, that the next command will be executed as next command with tool at the last commanded position. The price you have to pay is, that the tool will come to a full stop.
The server has a job timer for each print. You can set, report and wait based on that timer. By default the timer is initialized to0 when a job starts. Unit is milliseconds!
Reports the current timer value. Will add msg if you need a hint to the meaning of the output.
Sets timer to a new value. Default value is 0.
Stops executing new commands until timer is higher/equal the given value.
The server allows a limited amout of conditional commands that exclude some code from execution. These commands should be used with care as they can modify computed times and might get executed wrong in the case of a replay during rescue operations. It is allowed to next several conditions. Make sure that all @if... commands have a matching @endif. You can not send @if ... @else and @endif in the console. They will be ignored.
Executes the included code, if the current timer value was below the value. Can be used to add extra pauses with @waitForTime.
Executes the following block if the last @if condition was false.
Finishes a @if block. Every @if block must be finished by exactly one @endif line.
Removes all stored and active @if conditions. Is only to get back into a working state if @endif was forgotten somewhere.
Reports active @if conditions in log. Only used to debug problems with unclosed @if commands.
Rendering commands have no influence on the print itself. They only influence how the G-Code renderer creates the preview images.
Ignore next print moves for object size calculation. This is interesting if you make a extrusion at a fixed position. Then the server will include that into the size and that may lead teh rendere to show a much too small object.
Stops the @nosize command from neglecting size computation. Never forget this if you use @nosize. They should always come as a pair.
Forces the G-Code renderer to use the given color for extruder ID (extrID). Extruder ID starts with 0 for extruder 1. Example: @extruderColor 0 #ff0000
Sometimes it is necessary, that the firmware can report results or requests to the connected hosting software. Just think of temperatures or fan speeds. Apart from these typical responses, the need for special solutions may arise. Therefore Repetier-Server supports special responses and also has a flexible system to adjust expected answers. In the installation directory is a directory firmware where a definition of special responses is given. If you have a fork with different messages, it is possible to adjust this in the proper firmware file. Special cases are defined below.
In some heavy error cases you might want that the server disables a printer, so it does not try to reconnect. To achieve this, the firmware needs to send:
In the printer configuration you can create named G-Code scripts. These can be send in the terminal or in the control tab. It is also possible, that the firmware requests such a script to be run. A typical case is when the script executes some commands on the pc, not really for injecting g-code. To request this add this:
G0 X<xpos> Y<ypos> Z<zpos> E<epos> F<feedrate>
G1 X<xpos> Y<ypos> Z<zpos> E<epos> F<feedrate>
G10 S<1 = long retract, 0 = short retract = default>
G11 S<1 = long retract, 0 = short retract = default>
G32 S<0..2> P<0..1>
G134 Px Sx Zx
G201 P<motorId> X<pos>
G202 P<motorId> X<setpos>
G204 P<motorId> S<0/1>
M42 P<pin number> S<value 0..255>
M99 S<delayInSec> X0 Y0 Z0
M104 S<temp> T<extruder> P1 F1
M140 S<temp> F1
M163 S<extruderNum> P<weight>
M164 S<virtNum> P<0 = dont store eeprom,1 = store to eeprom>
M200 T<extruder> D<diameter>
M207 X<XY jerk> Z<Z Jerk> E<ExtruderJerk>
M220 S<Feedrate multiplier in percent>
M221 S<Extrusion flow multiplier in percent>
M226 P<pin> S<state 0/1>
M231 S<OPS_MODE> X<Min_Distance> Y<Retract> Z<Backlash> F<ReatrctMove>
M233 X<AdvanceK> Y<AdvanceL>
M300 S<Frequency> P<DurationMillis>
M302 S<0 or 1>
M303 P<extruder/bed> S<printTemerature> X0
M340 P<servoId> S<pulseInUS>
M350 S<mstepsAll> X<mstepsX> Y<mstepsY> Z<mstepsZ> E<mstepsE0> P<mstespE1>
M460 X<minTemp> Y<maxTemp>
M602 S<1/0> P<1/0>
M604 X<slowdownSteps> Y<errorSteps> Z<slowdownTo> T<extruderId>
M908 P<<address> S<value>
We offer manufacturers and vendors the possibility to create a custom branding for Repetier-Server with own name, logo and colors and to distribute this customized version to their customers. For this a license code is required in any case. On request we offer licence codes for resellers at reduced rates.
If you want to customize the touchscreen interface, click here.