Skip to content

Commit

Permalink
Merge pull request #1 from rootiest/dev
Browse files Browse the repository at this point in the history
Version 4.0.0 Beta Release
  • Loading branch information
rootiest committed Jun 1, 2023
2 parents fc014a9 + 9e80b4b commit e17dd12
Show file tree
Hide file tree
Showing 30 changed files with 2,799 additions and 265 deletions.
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
user_profile.cfg
user_config.cfg
user_config.cfg
logs/*
6 changes: 4 additions & 2 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
{
"licenser.projectName": "printcfg"
}
"licenser.projectName": "printcfg",
"python.analysis.typeCheckingMode": "basic",
"cSpell.words": ["printcfg"]
}
66 changes: 37 additions & 29 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,26 +1,26 @@
<!--
Copyright (C) 2023 Chris Laprade ([email protected])
This file is part of printcfg.
printcfg is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
printcfg is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with printcfg. If not, see <http://www.gnu.org/licenses/>.
-->

<!--
#####################################
## Printcfg Documentation ##
## Version 3.8.1 2023-5-21 ##
## Version 4.0.0 2023-6-1 ##
#####################################
-->

Expand All @@ -31,6 +31,8 @@
- [Overview](#overview)
- [Installation](#installation)
- [What the install script does](#what-the-install-script-does)
- [Updating](#updating)
- [Changing Profiles](#changing-profiles)
- [Configuration](#configuration)
- [Using the suite](#using-the-suite)
- [Profile Configuration](#profile-configuration)
Expand Down Expand Up @@ -69,7 +71,7 @@

## !!! WARNING: THIS IS STILL A WORK IN PROGRESS !!!

> I am currently running this suite on my personal machine so I consider it to be ready for brave testers to play around with. Expect to encounter issues! But please tell me about them so I can fix them in a later revision!
> I am currently running this suite on my personal machine so I consider it to be ready for brave testers to play around with. Expect to encounter issues! But please tell me about them so I can fix them in a later revision!
## Overview

Expand All @@ -91,25 +93,29 @@ You can also specify a preset profile for a more printer-specific default config

curl https://raw.githubusercontent.com/rootiest/printcfg/master/scripts/install.sh | bash -s -- default

Additionally, you can specify a different branch to install from:

curl https://raw.githubusercontent.com/rootiest/printcfg/master/scripts/install.sh | bash -s -- default dev

### What the install script does

The install script will begin by checking for dependencies and installing them if they are missing.

It will then clone the repo into your home directory in a folder named `printcfg`.
It will then clone the repo into your home directory in a folder named `printcfg`.

Please do not modify the contents of this folder.

The files for the profile you specified will be copied into your main config folder alongside `printer.cfg`.

This will consist of two files: `user_profile.cfg` and `user_config.cfg`.

> NOTE: You are free to modify these files as you see fit, but please only modify files that begin with `user_` so that the update system can successfully merge changes.
>
> NOTE: You are free to modify these files as you see fit, but please only modify files that begin with `user_` so that the update system can successfully merge changes.
>
> These files will be placed in your main config folder, so they will not be overwritten by future updates.
The following line will be added to your `printer.cfg` file:

[include print_config.cfg]
[include user_config.cfg]

This tells Klipper to include the printcfg config file. The other files will be included from there.

Expand All @@ -121,27 +127,25 @@ This adds some moonraker configuration, specifically the `update_manager` for pr

After all of these changes are made and verified, the script will restart Klipper and Moonraker.

Future updates will be performed by the `update_manager` service and will typically require a restart of only Klipper.

Most updates will be performed automatically, but some may require manual intervention. The installer will notify you if this is the case.
## Updating

When the update requires manual intervention, you will be notified of the changes that need to be made to your user_profile.cfg file and the installer will exit. Run the setup.sh script again to verify the changes were made and continue the update.
Updates are handled by moonraker's `update_manager` service.

In most cases this will only require you to add new variables or remove obsolete variables from your user_profile.cfg file.
They will appear in the UI alongside updates for Klipper and Moonraker.

Best efforts will be made to avoid this as much as possible, but future features may require new variables to be added and the process has been made as simple as possible.
The installer can now patch your config files to add new variables or configuration sections. This allows user profiles to be updated without overwriting your existing configuration.

It's important to keep the user_profile.cfg file untouched by the automated update process so that your customizations are not overwritten.
Most updates will happen completely automatically, but some may require manual intervention.If an update requires manual intervention, it will be marked as `MANUAL` in the changelog.

When new features are added, you will likely prefer to customize them to your liking, so it's best not to automatically append potentially unwanted new variables to your profile config.
## Changing Profiles

I'm also open to suggestions for improving this process or PRs that add an interactive update process for profile changes from a patch file.
To change profiles, run the following command:

## Configuration

The vast majority of the configuration is done via the `_printcfg` macro in `user_profile.cfg`.

This is the "master" macro that hosts the configuration variables for the entire suite.
This is the "master" macro that hosts the configuration variables for the entire suite.

It is here that we configure the behavior of the suite.

Expand All @@ -161,7 +165,7 @@ Preset profiles are [available](./profiles/) for various common configurations.

If you would like to submit a profile, please see the [Submitting A Profile](#submitting-a-profile) section below.

I'd love to have a wide variety of community profiles available for everyone to choose from!
I'd love to have a wide variety of community profiles available for everyone to choose from!

Custom configuration can be achieved by editing the `user_profile.cfg` file on your local installation.

Expand Down Expand Up @@ -231,7 +235,7 @@ This allows all the macros in the suite to be kept apprised of any slicer values

It's completely ok if you don't use these settings in your klipper install or even in your slicer!

This suite is built to support ***everything*** so that the user can simply set the configuration values (either manually in the config file or via `SET_GCODE_VARIABLE` commands)
This suite is built to support **_everything_** so that the user can simply set the configuration values (either manually in the config file or via `SET_GCODE_VARIABLE` commands)

The idea is that you don't need to worry about the correct way to configure the slicer for your needs or even finding (or creating!) the right macros for your needs.

Expand All @@ -245,7 +249,7 @@ The bulk of profile configuration occurs in the `user_profile.cfg` file. There a

### Versioning

- `variable_version`
- `variable_version`
- Determines when updates require new variables to be added to the profile. It is used by the install script to determine when profiles need updating.

### Default temperatures
Expand All @@ -265,7 +269,7 @@ The bulk of profile configuration occurs in the `user_profile.cfg` file. There a
## Chamber Variables

- `variable_chamber_type`
- Defines the chamber sensor type. This could be 'temperature_sensor', 'temperature_fan', 'heater', or 'none'
- Defines the chamber sensor type. This could be 'temperature_sensor', 'temperature_fan', 'heater', or 'none'
- `variable_chamber_name`
- Defines the name of the chamber sensor. Typically this will be 'chamber'.
- `variable_chamber_temp`
Expand Down Expand Up @@ -334,7 +338,7 @@ The bulk of profile configuration occurs in the `user_profile.cfg` file. There a
- `variable_park_extrude`
- Sets the default extrusion amount for parking moves.
- `variable_park_base`
- Sets the "native" command for parking. This is typically something like '_TOOLHEAD_PAUSE_PARK_CANCEL'
- Sets the "native" command for parking. This is typically something like '\_TOOLHEAD_PAUSE_PARK_CANCEL'

### Preheat Parking Variables

Expand Down Expand Up @@ -380,6 +384,7 @@ Setting any of these values to -1 will park at the center of all 3 axes.
- Sets the stepper current to be used during homing.

### Homing Macros

- `variable_home_x_macro`
- Sets the macro to be used for x-homing.
- `variable_home_y_macro`
Expand All @@ -388,12 +393,14 @@ Setting any of these values to -1 will park at the center of all 3 axes.
- Sets the macro to be used for z-homing.

### Pause Macros

- `variable_pause_macro`
- Sets the macro to be used for pausing.
- `variable_pause_no_park`
- Sets the macro to be used for pausing without parking.

### Speed Variables

- `variable_default_speed_factor`
- Sets the default speed factor for all moves.
- `variable_start_offset`
Expand Down Expand Up @@ -546,6 +553,7 @@ Setting any of these values to -1 will park at the center of all 3 axes.
- Enables debug logging for purging.

### End Gcode Variables

- `variable_end_print`
- Determines whether to run the end print macro.
- `variable_end_retract`
Expand All @@ -564,7 +572,7 @@ Setting any of these values to -1 will park at the center of all 3 axes.
### Filament Change Variables

- `variable_m600`
- Sets the command to be used for filament change.
- Sets the command to be used for filament change.
- `variable_auto_filament_sensor`
- Determines whether to automatically toggle the filament sensor.
- `variable_auto_filament_delay`
Expand Down Expand Up @@ -693,7 +701,7 @@ Each profile must consist of the following files:
This file contains the patch notes for the profile. It should list the version of the profile and "initial release" if it is the first release.

- **README.md**

This file contains the profile description. It should have one header with the profile name with By: Your Name underneath. It should also have a description of the profile and any special instructions for using it. You should also briefly list the printer and components the profile was designed for.

If your README file requires any images, please place them in an `images` folder within your profile folder and reference them in your README file.
Expand All @@ -703,7 +711,7 @@ Each profile must consist of the following files:
The main goal is to make it easy for users to quickly find the information they need to use your profile.

Keep in mind that large files will increase the size of the install on every machine whether they use your profile or not. All profiles are synced alongside the rest of the repo. But only the selected profile is added to the user's config.

Please be reasonable with the size of your images to keep the repository size small and the sync time low.

When your profile is installed on a user's printer, only the variables.cfg and config.cfg files are used. The README.md and patch_notes.txt files are only used for display purposes in the repository. Similarly, any additional files you include in your profile will not be added to the user's config.
When your profile is installed on a user's printer, only the variables.cfg and config.cfg files are used. The README.md and patch_notes.txt files are only used for display purposes in the repository. Similarly, any additional files you include in your profile will not be added to the user's config.
Loading

0 comments on commit e17dd12

Please sign in to comment.