├── .gitignore ├── Config ├── filaments │ └── .gitkeep ├── firmware │ └── .gitkeep ├── macros │ ├── Save │ │ └── save │ ├── LED │ │ ├── LED OFF │ │ ├── LED 50% │ │ └── LED 100% │ ├── WIFI │ │ ├── WIFI_OFF │ │ └── WIFI_ON │ ├── Resume Print │ │ └── resume print │ ├── Air filtration │ │ ├── Air filtration 25% │ │ ├── Air filtration OFF │ │ ├── Air filtration 75% │ │ ├── Air filtration 100% │ │ └── Air filtration 50% │ ├── save_babystep.g │ ├── 2 - Autoz trigger height.g │ ├── 1 - Probe trigger height.g │ └── MaxSpeedAndAcceleration.g ├── menu │ ├── .gitattributes │ ├── imgs │ │ ├── bed.img │ │ ├── fan.img │ │ ├── home.img │ │ ├── temp.img │ │ ├── hline.img │ │ ├── motor.img │ │ ├── vline.img │ │ ├── zstep.img │ │ ├── feedrate.img │ │ ├── flowrate.img │ │ └── Unused Images │ │ │ ├── fan0.img │ │ │ ├── fan1.img │ │ │ ├── fan2.img │ │ │ ├── fan3.img │ │ │ ├── temp0.img │ │ │ ├── temp1.img │ │ │ ├── temp2.img │ │ │ └── temperature.img │ ├── scripts │ │ ├── autoLevel.g │ │ ├── unload.g │ │ ├── load.g │ │ ├── goToLevelPoint1.g │ │ ├── goToLevelPoint2.g │ │ └── goToLevelPoint3.g │ ├── macros │ ├── confirmAbort │ ├── LEDMenu │ ├── listFilesSD0 │ ├── listFilesSD1 │ ├── about │ ├── Air filtrationMenu │ ├── selectSD │ ├── printInfo │ ├── LICENSE │ ├── moveExtruder │ ├── changeFilament │ ├── mainMenu │ ├── bedLevel │ ├── moveAxis │ ├── altMain │ ├── preheat │ ├── main │ └── README.md ├── sys │ ├── start.g │ ├── homeall.g │ ├── resume.g │ ├── daemon.g │ ├── pause.g │ ├── homez.g │ ├── board.txt │ ├── homex.g │ ├── homey.g │ ├── AutoZ.g │ ├── Nozzle-clean.g │ ├── screen.g │ ├── stop.g │ ├── bed.g │ ├── globals.g │ ├── start_print.g │ ├── print_area_mesh.g │ ├── start_after_delay.g │ └── config.g └── www │ └── README.md ├── Images ├── upload.png └── releases.png ├── BtnCmd ├── Images │ ├── Backup.png │ ├── Import.png │ ├── Screenshot.png │ ├── Show_Settings.png │ └── Restore_Settings.png ├── README.md ├── BtnCmdforTroodonV2 - for 0.10.15+.json └── BtnCmdforTroodonV2 - for 01.02.02+.json ├── STL_Files ├── Formbot │ ├── PCB_Cover │ │ └── PCB.stl │ └── Corner_Piece │ │ └── Troodonv2cornerpieces.STL ├── TAP │ ├── Center_optical_v5_for_Troodon.STL │ └── README.md ├── Fisheye_3D │ └── Klicky │ │ └── Klicky_modified_m3.stl ├── Stealthburner │ ├── Clockwork2 │ │ ├── [a]_pcb_spacer.stl │ │ └── cable_door_for_pcb.stl │ └── README.md ├── ygk3d │ └── LIS3DH_Mount │ │ ├── Troodon_2_LIS3DH_Mount_v1.f3d │ │ └── Troodon_2_LIS3DH_Mount_v1.stl └── README.md ├── Slicer_Profiles ├── Cura │ ├── TroodonV2.curaprofile │ └── README.md └── PrusaSlicer │ ├── README.md │ └── PrusaSlicer_config_bundle.ini └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | Config/Zips/ -------------------------------------------------------------------------------- /Config/filaments/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Config/firmware/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Config/macros/Save/save: -------------------------------------------------------------------------------- 1 | M500 -------------------------------------------------------------------------------- /Config/macros/LED/LED OFF: -------------------------------------------------------------------------------- 1 | M106 P4 S0 -------------------------------------------------------------------------------- /Config/macros/WIFI/WIFI_OFF: -------------------------------------------------------------------------------- 1 | M552 S0 -------------------------------------------------------------------------------- /Config/macros/LED/LED 50%: -------------------------------------------------------------------------------- 1 | M106 P4 S125 2 | -------------------------------------------------------------------------------- /Config/macros/Resume Print/resume print: -------------------------------------------------------------------------------- 1 | M916 -------------------------------------------------------------------------------- /Config/macros/LED/LED 100%: -------------------------------------------------------------------------------- 1 | M106 P4 S255 2 | -------------------------------------------------------------------------------- /Config/macros/Air filtration/Air filtration 25%: -------------------------------------------------------------------------------- 1 | M106 P2 S62 -------------------------------------------------------------------------------- /Config/macros/Air filtration/Air filtration OFF: -------------------------------------------------------------------------------- 1 | M106 P2 S0 -------------------------------------------------------------------------------- /Config/macros/Air filtration/Air filtration 75%: -------------------------------------------------------------------------------- 1 | M106 P2 S187 -------------------------------------------------------------------------------- /Config/macros/Air filtration/Air filtration 100%: -------------------------------------------------------------------------------- 1 | M106 P2 S255 2 | -------------------------------------------------------------------------------- /Config/macros/Air filtration/Air filtration 50%: -------------------------------------------------------------------------------- 1 | M106 P2 S125 2 | -------------------------------------------------------------------------------- /Images/upload.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TeamGloomy/Troodon-V2/HEAD/Images/upload.png -------------------------------------------------------------------------------- /Images/releases.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TeamGloomy/Troodon-V2/HEAD/Images/releases.png -------------------------------------------------------------------------------- /Config/menu/.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /BtnCmd/Images/Backup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TeamGloomy/Troodon-V2/HEAD/BtnCmd/Images/Backup.png -------------------------------------------------------------------------------- /BtnCmd/Images/Import.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TeamGloomy/Troodon-V2/HEAD/BtnCmd/Images/Import.png -------------------------------------------------------------------------------- /Config/menu/imgs/bed.img: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TeamGloomy/Troodon-V2/HEAD/Config/menu/imgs/bed.img -------------------------------------------------------------------------------- /Config/menu/imgs/fan.img: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TeamGloomy/Troodon-V2/HEAD/Config/menu/imgs/fan.img -------------------------------------------------------------------------------- /Config/menu/imgs/home.img: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TeamGloomy/Troodon-V2/HEAD/Config/menu/imgs/home.img -------------------------------------------------------------------------------- /Config/menu/imgs/temp.img: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TeamGloomy/Troodon-V2/HEAD/Config/menu/imgs/temp.img -------------------------------------------------------------------------------- /BtnCmd/Images/Screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TeamGloomy/Troodon-V2/HEAD/BtnCmd/Images/Screenshot.png -------------------------------------------------------------------------------- /Config/macros/WIFI/WIFI_ON: -------------------------------------------------------------------------------- 1 | M552 S0 2 | G4 P10000 3 | M587 S"FORMBOT" P"zxcv555578" 4 | M587 5 | M552 S1 6 | M552 -------------------------------------------------------------------------------- /Config/menu/imgs/hline.img: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TeamGloomy/Troodon-V2/HEAD/Config/menu/imgs/hline.img -------------------------------------------------------------------------------- /Config/menu/imgs/motor.img: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TeamGloomy/Troodon-V2/HEAD/Config/menu/imgs/motor.img -------------------------------------------------------------------------------- /Config/menu/imgs/vline.img: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TeamGloomy/Troodon-V2/HEAD/Config/menu/imgs/vline.img -------------------------------------------------------------------------------- /Config/menu/imgs/zstep.img: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TeamGloomy/Troodon-V2/HEAD/Config/menu/imgs/zstep.img -------------------------------------------------------------------------------- /Config/menu/imgs/feedrate.img: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TeamGloomy/Troodon-V2/HEAD/Config/menu/imgs/feedrate.img -------------------------------------------------------------------------------- /Config/menu/imgs/flowrate.img: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TeamGloomy/Troodon-V2/HEAD/Config/menu/imgs/flowrate.img -------------------------------------------------------------------------------- /BtnCmd/Images/Show_Settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TeamGloomy/Troodon-V2/HEAD/BtnCmd/Images/Show_Settings.png -------------------------------------------------------------------------------- /BtnCmd/Images/Restore_Settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TeamGloomy/Troodon-V2/HEAD/BtnCmd/Images/Restore_Settings.png -------------------------------------------------------------------------------- /STL_Files/Formbot/PCB_Cover/PCB.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TeamGloomy/Troodon-V2/HEAD/STL_Files/Formbot/PCB_Cover/PCB.stl -------------------------------------------------------------------------------- /Config/menu/imgs/Unused Images/fan0.img: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TeamGloomy/Troodon-V2/HEAD/Config/menu/imgs/Unused Images/fan0.img -------------------------------------------------------------------------------- /Config/menu/imgs/Unused Images/fan1.img: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TeamGloomy/Troodon-V2/HEAD/Config/menu/imgs/Unused Images/fan1.img -------------------------------------------------------------------------------- /Config/menu/imgs/Unused Images/fan2.img: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TeamGloomy/Troodon-V2/HEAD/Config/menu/imgs/Unused Images/fan2.img -------------------------------------------------------------------------------- /Config/menu/imgs/Unused Images/fan3.img: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TeamGloomy/Troodon-V2/HEAD/Config/menu/imgs/Unused Images/fan3.img -------------------------------------------------------------------------------- /Config/menu/imgs/Unused Images/temp0.img: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TeamGloomy/Troodon-V2/HEAD/Config/menu/imgs/Unused Images/temp0.img -------------------------------------------------------------------------------- /Config/menu/imgs/Unused Images/temp1.img: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TeamGloomy/Troodon-V2/HEAD/Config/menu/imgs/Unused Images/temp1.img -------------------------------------------------------------------------------- /Config/menu/imgs/Unused Images/temp2.img: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TeamGloomy/Troodon-V2/HEAD/Config/menu/imgs/Unused Images/temp2.img -------------------------------------------------------------------------------- /Config/sys/start.g: -------------------------------------------------------------------------------- 1 | if sensors.filamentMonitors[0].status!="ok" 2 | abort "Filament sensor shows no filament loaded. Print aborted" -------------------------------------------------------------------------------- /Slicer_Profiles/Cura/TroodonV2.curaprofile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TeamGloomy/Troodon-V2/HEAD/Slicer_Profiles/Cura/TroodonV2.curaprofile -------------------------------------------------------------------------------- /STL_Files/TAP/Center_optical_v5_for_Troodon.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TeamGloomy/Troodon-V2/HEAD/STL_Files/TAP/Center_optical_v5_for_Troodon.STL -------------------------------------------------------------------------------- /STL_Files/Fisheye_3D/Klicky/Klicky_modified_m3.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TeamGloomy/Troodon-V2/HEAD/STL_Files/Fisheye_3D/Klicky/Klicky_modified_m3.stl -------------------------------------------------------------------------------- /STL_Files/Stealthburner/Clockwork2/[a]_pcb_spacer.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TeamGloomy/Troodon-V2/HEAD/STL_Files/Stealthburner/Clockwork2/[a]_pcb_spacer.stl -------------------------------------------------------------------------------- /STL_Files/Formbot/Corner_Piece/Troodonv2cornerpieces.STL: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TeamGloomy/Troodon-V2/HEAD/STL_Files/Formbot/Corner_Piece/Troodonv2cornerpieces.STL -------------------------------------------------------------------------------- /STL_Files/Stealthburner/Clockwork2/cable_door_for_pcb.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TeamGloomy/Troodon-V2/HEAD/STL_Files/Stealthburner/Clockwork2/cable_door_for_pcb.stl -------------------------------------------------------------------------------- /STL_Files/ygk3d/LIS3DH_Mount/Troodon_2_LIS3DH_Mount_v1.f3d: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TeamGloomy/Troodon-V2/HEAD/STL_Files/ygk3d/LIS3DH_Mount/Troodon_2_LIS3DH_Mount_v1.f3d -------------------------------------------------------------------------------- /STL_Files/ygk3d/LIS3DH_Mount/Troodon_2_LIS3DH_Mount_v1.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TeamGloomy/Troodon-V2/HEAD/STL_Files/ygk3d/LIS3DH_Mount/Troodon_2_LIS3DH_Mount_v1.stl -------------------------------------------------------------------------------- /Config/sys/homeall.g: -------------------------------------------------------------------------------- 1 | M98 P"/sys/homex.g" ; call homex 2 | M98 P"/sys/homey.g" ; call homey 3 | M98 P"/sys/homez.g" ; call homez -------------------------------------------------------------------------------- /Config/www/README.md: -------------------------------------------------------------------------------- 1 | Download the DWC version that matched your firmware from [here](https://github.com/Duet3D/DuetWebControl/releases) and extract the contents to this folder -------------------------------------------------------------------------------- /STL_Files/TAP/README.md: -------------------------------------------------------------------------------- 1 | # Troodon-V2 TAP Specific Files 2 | 3 | This file replaces the stock Center_optical_v5.stl used with Voron TAP. 4 | The only modification is to move the endstop mounting by 3mm to ensure the endstop triggers -------------------------------------------------------------------------------- /Config/sys/resume.g: -------------------------------------------------------------------------------- 1 | G1 R1 X0 Y0 Z5 F6000 ; go to 5mm above position of the last print move 2 | G1 R1 X0 Y0 Z0 ; go back to the last print move 3 | M83 ; relative extruder moves 4 | G1 E1.95 F3600 ; extrude 1.95mm of filament -------------------------------------------------------------------------------- /Config/sys/daemon.g: -------------------------------------------------------------------------------- 1 | ;#################### Electronics Bay Fan ########################### 2 | if move.axes[0].homed || move.axes[1].homed || move.axes[2].homed ; check whether X, Y or Z drivers are active 3 | M106 P3 S255 ; if they are, turn on the electronics bay fan 4 | else 5 | M106 P3 S0 ; if not, turn off the electronics bay fan -------------------------------------------------------------------------------- /Config/sys/pause.g: -------------------------------------------------------------------------------- 1 | M83 ; relative extruder moves 2 | G1 E2 F3600 ; retract 2mm of filament 3 | G91 ; relative positioning 4 | G1 Z5 F360 ; lift Z by 5mm relative to the print 5 | G90 ; absolute positioning 6 | G1 X{(move.axes[0].min + move.axes[0].max)/2} Y{move.axes[1].min} F3600 ; move the toolhead to the front and centre of the machine -------------------------------------------------------------------------------- /Slicer_Profiles/PrusaSlicer/README.md: -------------------------------------------------------------------------------- 1 | # PrusaSlicer 2 | 3 | For people not wanting to use the suggested profile, please using the following start and end gcodes. These also work with SuperSlicer and Orca Slicer 4 | 5 | ## Start 6 | ``` 7 | M104 S0 8 | M190 S0 9 | M98 P"start_print.g" A[first_layer_bed_temperature] B"[filament_type]" C[first_layer_temperature] D[nozzle_diameter] E{first_layer_print_min[0]} F{first_layer_print_max[0]} H{first_layer_print_min[1]} J{first_layer_print_max[1]} 10 | ``` 11 | 12 | ## End 13 | ``` 14 | M0 15 | ``` -------------------------------------------------------------------------------- /Config/menu/scripts/autoLevel.g: -------------------------------------------------------------------------------- 1 | ; Duet 12864 Menu Files 2 | ; 3 | ; This is a set of menu files for running a 12864 display with a duet3D control board. 4 | ; 5 | ; Written by Jadon Miller - 2/27/2019 6 | ; Partially adapted from the work of tinkerlifeprojects on Github. 7 | ; 8 | ; File "bedLevel.g" 9 | ; 10 | ; This script is run from the menu system to run the auto leveling routine. 11 | ; By default, it first homes all the axis then uses M32 to run the bed.g file. 12 | 13 | 14 | 15 | G28 ; Home all 16 | G32 ; Run the bed.g file. -------------------------------------------------------------------------------- /Config/menu/macros: -------------------------------------------------------------------------------- 1 | ; Duet 12864 Menu Files 2 | ; 3 | ; This is a set of menu files for running a 12864 display with a duet3D control board. 4 | ; 5 | ; Written by Jadon Miller - 2/27/2019 6 | ; Partially adapted from the work of tinkerlifeprojects on Github. 7 | ; 8 | ; File "macros" 9 | ; 10 | ; This file shows a header and the list of configured macros, which are clickable. 11 | 12 | 13 | 14 | ; --------------- Header --------------- 15 | text R0 C0 W63 F0 H1 T"Run Macro" 16 | image L"imgs/vline.img" 17 | button W64 F0 T"Back" A"return" 18 | image R11 C0 L"imgs/hline.img" 19 | 20 | 21 | ; --------------- Show Macros --------------- 22 | files R15 C5 F0 N4 I"0:/macros/" A"M98 P#0" -------------------------------------------------------------------------------- /Config/menu/confirmAbort: -------------------------------------------------------------------------------- 1 | ; Duet 12864 Menu Files 2 | ; 3 | ; This is a set of menu files for running a 12864 display with a duet3D control board. 4 | ; 5 | ; Written by Jadon Miller - 2/27/2019 6 | ; Partially adapted from the work of tinkerlifeprojects on Github. 7 | ; 8 | ; File "confirmAbort" 9 | ; 10 | ; This yes/no page lets the user confirm before issuing an abort command. 11 | 12 | 13 | 14 | ; --------------- Header --------------- 15 | text R0 C0 W128 F0 H1 T"Abort the print?" 16 | image R12 C0 L"imgs/hline.img" 17 | 18 | 19 | ; --------------- Buttons --------------- 20 | button R31 C20 W44 H2 T"No" A"return" 21 | image C64 L"imgs/vline.img" 22 | button C64 W40 H0 T"Yes" A"M0 H1|menu main" -------------------------------------------------------------------------------- /Config/menu/LEDMenu: -------------------------------------------------------------------------------- 1 | ; Duet 12864 Menu Files 2 | ; 3 | ; This is a set of menu files for running a 12864 display with a duet3D control board. 4 | ; 5 | ; Written by Jadon Miller - 2/27/2019 6 | ; Partially adapted from the work of tinkerlifeprojects on Github. 7 | ; 8 | ; File "probeMenu" 9 | ; 10 | ; This simple menu controls a Z Probe, like the BLTouch. 11 | 12 | 13 | ; --------------- Header --------------- 14 | text R0 C2 W63 H1 F0 T"LED" 15 | image L"imgs/vline.img 16 | button W64 F0 T"Back" A"return" 17 | image R11 C0 L"imgs/hline.img" 18 | 19 | 20 | ; --------------- Menu Buttons --------------- 21 | 22 | button R13 C1 F0 H0 T"- LED ON" A"M106 P4 S255" 23 | button R25 C1 F0 H0 T"- LED OFF" A"M106 P4 S0" -------------------------------------------------------------------------------- /STL_Files/Stealthburner/README.md: -------------------------------------------------------------------------------- 1 | # Troodon-V2 Stealthburner Specific Files 2 | 3 | These files replace the stock stealthburner files and allow the use of stock toolhead PCB 4 | The modified files for the PCB are taken from here https://github.com/MotorDynamicsLab/LDOVoron2/tree/main/STLs/LDOSBCW2MountCover/deprecated 5 | **Use button head screws when mounting the PCB spacer** 6 | 7 | ## Files to choose 8 | 9 | When printing the stealthburner files, the following should be chosen when there are multiple choice options 10 | 11 | * chain_anchor_3hole.stl 12 | * x_frame_V2TR_MGN12_left.stl 13 | * x_frame_V2TR_MGN12_right.stl 14 | 15 | The hotend is an E3D V6 clone, therefore the revo_six_and_v6 printhead parts should be used. -------------------------------------------------------------------------------- /Config/menu/scripts/unload.g: -------------------------------------------------------------------------------- 1 | ; Duet 12864 Menu Files 2 | ; 3 | ; This is a set of menu files for running a 12864 display with a duet3D control board. 4 | ; 5 | ; Written by Jadon Miller - 2/27/2019 6 | ; Partially adapted from the work of tinkerlifeprojects on Github. 7 | ; 8 | ; File "unload.g" 9 | ; 10 | ; This script is run from the menu system and unloads the filament. 11 | ; The default script is written for a direct drive Bondtech BMG extruder, 12 | ; but feel free to modify it for your own needs. 13 | 14 | 15 | 16 | M83 ; relative extruder coordinates 17 | G1 E15 F300 ; feed filament 18 | G1 E-100 F1200 ; unload filament -------------------------------------------------------------------------------- /Config/menu/scripts/load.g: -------------------------------------------------------------------------------- 1 | ; Duet 12864 Menu Files 2 | ; 3 | ; This is a set of menu files for running a 12864 display with a duet3D control board. 4 | ; 5 | ; Written by Jadon Miller - 2/27/2019 6 | ; Partially adapted from the work of tinkerlifeprojects on Github. 7 | ; 8 | ; File "load.g" 9 | ; 10 | ; This script is run from the menu system and loads the filament. 11 | ; The default script is written for a direct drive Bondtech BMG extruder, 12 | ; but feel free to modify it for your own needs. 13 | 14 | 15 | 16 | M83 ; relative extruder coordinates 17 | G1 E75 F1200 ; load filament fast 18 | G1 E50 F300 ; load filament slow -------------------------------------------------------------------------------- /Config/menu/scripts/goToLevelPoint1.g: -------------------------------------------------------------------------------- 1 | ; Duet 12864 Menu Files 2 | ; 3 | ; This is a set of menu files for running a 12864 display with a duet3D control board. 4 | ; 5 | ; Written by Jadon Miller - 2/27/2019 6 | ; Partially adapted from the work of tinkerlifeprojects on Github. 7 | ; 8 | ; File "goToLevelPoint1.g" 9 | ; 10 | ; This script moves the head to the first location of a three-point 11 | ; manual leveling routine. It'll need the coordinates changed based 12 | ; on your printer configuration. 13 | 14 | 15 | 16 | M562 ; clear any bed transform from mesh leveling 17 | G90 ; absolute positioning 18 | G1 Z5 F6000 ; lower Z 19 | G1 X71 Y135 F6000 ; move to point 1 20 | G1 Z0.1 F6000 ; lift Z -------------------------------------------------------------------------------- /Config/menu/scripts/goToLevelPoint2.g: -------------------------------------------------------------------------------- 1 | ; Duet 12864 Menu Files 2 | ; 3 | ; This is a set of menu files for running a 12864 display with a duet3D control board. 4 | ; 5 | ; Written by Jadon Miller - 2/27/2019 6 | ; Partially adapted from the work of tinkerlifeprojects on Github. 7 | ; 8 | ; File "goToLevelPoint2.g" 9 | ; 10 | ; This script moves the head to the second location of a three-point 11 | ; manual leveling routine. It'll need the coordinates changed based 12 | ; on your printer configuration. 13 | 14 | 15 | 16 | M562 ; clear any bed transform from mesh leveling 17 | G90 ; absolute positioning 18 | G1 Z5 F6000 ; lower Z 19 | G1 X156 Y135 F6000 ; move to point 2 20 | G1 Z0.1 F6000 ; lift Z -------------------------------------------------------------------------------- /Config/menu/scripts/goToLevelPoint3.g: -------------------------------------------------------------------------------- 1 | ; Duet 12864 Menu Files 2 | ; 3 | ; This is a set of menu files for running a 12864 display with a duet3D control board. 4 | ; 5 | ; Written by Jadon Miller - 2/27/2019 6 | ; Partially adapted from the work of tinkerlifeprojects on Github. 7 | ; 8 | ; File "goToLevelPoint3.g" 9 | ; 10 | ; This script moves the head to the third location of a three-point 11 | ; manual leveling routine. It'll need the coordinates changed based 12 | ; on your printer configuration. 13 | 14 | 15 | 16 | M562 ; clear any bed transform from mesh leveling 17 | G90 ; absolute positioning 18 | G1 Z5 F6000 ; lower Z 19 | G1 X113 Y0 F6000 ; move to point 3 20 | G1 Z0.1 F6000 ; lift Z -------------------------------------------------------------------------------- /Slicer_Profiles/Cura/README.md: -------------------------------------------------------------------------------- 1 | # Cura Start and End code 2 | 3 | This is the start and end gcode to be used in conjunction with Cura 4 | 5 | ## Start Code 6 | 7 | ``` 8 | M104 S0 9 | M190 S0 10 | M98 P"start_print.g" A{material_bed_temperature_layer_0} B"{material_type}" C{material_print_temperature_layer_0} D{machine_nozzle_size} E%MINX% F%MAXX% H%MINY% J%MAXY% 11 | ``` 12 | 13 | # End Code 14 | 15 | ``` 16 | M0 17 | ``` 18 | 19 | To make PAM work with Cura you need to install a post processing plugin 20 | 21 | 1. in cura open menu ```Help -> Show configuration folder``` 22 | 2. copy [MeshPrintSize.py](/MeshPrintSize.py) into the ```scripts``` folder 23 | 3. restart cura 24 | 4. in cura open menu ```Extensions -> Post processing -> Modify G-Code``` and select ```Mesh Print Size``` -------------------------------------------------------------------------------- /Config/menu/listFilesSD0: -------------------------------------------------------------------------------- 1 | ; Duet 12864 Menu Files 2 | ; 3 | ; This is a set of menu files for running a 12864 display with a duet3D control board. 4 | ; 5 | ; Written by Jadon Miller - 2/27/2019 6 | ; Partially adapted from the work of tinkerlifeprojects on Github. 7 | ; 8 | ; File "listFilesSD0" 9 | ; 10 | ; This lets the user select and print a file from SD 0. It consists 11 | ; of a header and file list command. 12 | ; 13 | ; 14 | ; Note: This should be kept identical to "listFilesSD1" except for the SD number. 15 | 16 | 17 | 18 | ; --------------- Header --------------- 19 | text R0 C0 W63 F0 H1 T"Print File" 20 | image L"imgs/vline.img" 21 | button W64 F0 T"Back" A"return" 22 | image R11 C0 L"imgs/hline.img" 23 | 24 | 25 | ; --------------- Show Files --------------- 26 | files R15 N4 I"0:gcodes" A"M32 #0|return|return" -------------------------------------------------------------------------------- /Config/menu/listFilesSD1: -------------------------------------------------------------------------------- 1 | ; Duet 12864 Menu Files 2 | ; 3 | ; This is a set of menu files for running a 12864 display with a duet3D control board. 4 | ; 5 | ; Written by Jadon Miller - 2/27/2019 6 | ; Partially adapted from the work of tinkerlifeprojects on Github. 7 | ; 8 | ; File "listFilesSD1" 9 | ; 10 | ; This lets the user select and print a file from SD 1. It consists 11 | ; of a header and file list command. 12 | ; 13 | ; 14 | ; Note: This should be kept identical to "listFilesSD0" except for the SD number. 15 | 16 | 17 | 18 | ; --------------- Header --------------- 19 | text R0 C0 W63 F0 H1 T"Print File" 20 | image L"imgs/vline.img" 21 | button W64 F0 T"Back" A"return" 22 | image R11 C0 L"imgs/hline.img" 23 | 24 | 25 | ; --------------- Show Files --------------- 26 | files R15 N4 I"1:" A"M32 #0|return|return" 27 | -------------------------------------------------------------------------------- /Config/sys/homez.g: -------------------------------------------------------------------------------- 1 | if !move.axes[0].homed || !move.axes[1].homed ; If the printer hasn't been homed, home it 2 | G28 XY ; home y and x 3 | G91 ; relative positioning 4 | G1 H2 Z10 F6000 ; lift Z relative to current position 5 | G90 ; absolute positioning 6 | G1 X{(move.axes[0].min + move.axes[0].max)/2 - sensors.probes[0].offsets[0]} Y{(move.axes[1].min + move.axes[1].max)/2 - sensors.probes[0].offsets[1]} F3600 ; Move to the centre of the bed taking the zprobe offsets into account 7 | M558 K0 H10 ; Set the dive height for the probe to 10mm 8 | G30 ; probe the bed -------------------------------------------------------------------------------- /Config/menu/about: -------------------------------------------------------------------------------- 1 | ; Duet 12864 Menu Files 2 | ; 3 | ; This is a set of menu files for running a 12864 display with a duet3D control board. 4 | ; 5 | ; Written by Jadon Miller - 2/27/2019 6 | ; Partially adapted from the work of tinkerlifeprojects on Github. 7 | ; 8 | ; File "about" 9 | ; 10 | ; This menu shows some details about the menu system, as well as the printer's IP address. 11 | 12 | 13 | 14 | ; --------------- Header --------------- 15 | text R0 C0 W63 F0 H1 T"About" 16 | image L"imgs/vline.img" 17 | button W64 F0 T"Back" A"return" 18 | image R11 C0 L"imgs/hline.img" 19 | 20 | 21 | ; --------------- IP Address --------------- 22 | text R14 C38 H1 F0 T"IP Address: " 23 | value R24 C0 W128 H1 N534 24 | 25 | 26 | ; --------------- Info --------------- 27 | text R39 C0 W128 H1 F0 T"Ultimate Duet Menu System" 28 | text R49 C0 W128 H1 F0 T"V1.10 (5/20/2021)" 29 | -------------------------------------------------------------------------------- /Config/macros/save_babystep.g: -------------------------------------------------------------------------------- 1 | ;save_babystep.g 2 | ; Add babystep to Z offset and make "persistant" 3 | 4 | if move.axes[2].babystep !=0 5 | echo {"Z trigger height altered by " ^ move.axes[2].babystep ^ "mm"} 6 | echo {"Probe - OLD: " ^ sensors.probes[0].triggerHeight ^ " new: " ^ sensors.probes[0].triggerHeight - move.axes[2].babystep} 7 | echo {"AutoZ - OLD: " ^ sensors.probes[1].triggerHeight ^ " new: " ^ sensors.probes[1].triggerHeight - move.axes[2].babystep} 8 | G31 Z{sensors.probes[0].triggerHeight - move.axes[2].babystep} 9 | G31 K1 Z{sensors.probes[1].triggerHeight - move.axes[2].babystep} 10 | M500 P10:31 ; save settings to config-overide.g - Must have M501 in config.g 11 | if state.status != "processing" 12 | M290 R0 S0 ; clear babystepping 13 | else 14 | echo "No babystepping set. Nothing to save" -------------------------------------------------------------------------------- /Config/menu/Air filtrationMenu: -------------------------------------------------------------------------------- 1 | ; Duet 12864 Menu Files 2 | ; 3 | ; This is a set of menu files for running a 12864 display with a duet3D control board. 4 | ; 5 | ; Written by Jadon Miller - 2/27/2019 6 | ; Partially adapted from the work of tinkerlifeprojects on Github. 7 | ; 8 | ; File "powerMenu" 9 | ; 10 | ; This simple menu allows the user to manipulate the ATX power supply system. 11 | ; "Automatic Power Off" turns off the printer after all thermistatic fans have 12 | ; stopped using M81 with a S1 parameter. 13 | 14 | 15 | 16 | ; --------------- Header --------------- 17 | text R0 C2 W63 H1 F0 T"Power" 18 | image L"imgs/vline.img 19 | button W64 F0 T"Back" A"return" 20 | image R11 C0 L"imgs/hline.img" 21 | 22 | 23 | ; --------------- Menu Buttons --------------- 24 | button R13 C1 F0 H0 T"- Air filtration ON" A"M106 P2 S255" 25 | button R25 C1 F0 H0 T"- Air filtration OFF" A"M106 P2 S0" 26 | -------------------------------------------------------------------------------- /Config/menu/imgs/Unused Images/temperature.img: -------------------------------------------------------------------------------- 1 | 2 | 3 | 3--! -------------------------------------------------------------------------------- /Config/menu/selectSD: -------------------------------------------------------------------------------- 1 | ; Duet 12864 Menu Files 2 | ; 3 | ; This is a set of menu files for running a 12864 display with a duet3D control board. 4 | ; 5 | ; Written by Jadon Miller - 2/27/2019 6 | ; Partially adapted from the work of tinkerlifeprojects on Github. 7 | ; 8 | ; File "selectSD" 9 | ; 10 | ; This allows the user to select an SD card then leads them to the print page. 11 | ; There's a simple header with a back button on top and the middle gives the 12 | ; two SD card options, leading to the appropriate "listFilesSD" menu. 13 | 14 | 15 | 16 | ; --------------- Header --------------- 17 | text R0 C0 W80 F0 T"Select SD Card" 18 | image L"imgs/vline.img" 19 | button W47 F0 T"Back" A"return" 20 | image R11 C0 L"imgs/hline.img" 21 | 22 | 23 | ; --------------- Show SD Cards --------------- 24 | button R27 C1 F0 H0 T"- Internal (SD 0)" A"menu listFilesSD0" 25 | button R39 C1 F0 H0 T"- External (SD 1)" A"menu listFilesSD1" -------------------------------------------------------------------------------- /Config/sys/board.txt: -------------------------------------------------------------------------------- 1 | // This board.txt file has come from the teamgloomy wiki 2 | // version: 1.1 3 | board = troodon_v2 4 | 5 | //LED blinks to indicate Platform is spinning or other diagnostic 6 | leds.diagnostic = LED 7 | 8 | heat.tempSensePins = {PA_0, PF_3} 9 | 10 | //ESP Settings 11 | 8266wifi.espDataReadyPin = PD_0 12 | 8266wifi.TfrReadyPin = PD_3 13 | 8266wifi.espResetPin = PG_14 14 | 8266wifi.csPin = PA_15 15 | //ESP RX/TX Settings 16 | 8266wifi.serialRxTxPins = { PD_6, PD_5 } 17 | 8266wifi.spiChannel = 2 18 | 19 | // External Display settings 20 | serial.aux.rxTxPins = {NoPin, NoPin}; 21 | 22 | //MINI 12864 23 | lcd.encoderPinA = BTNEN1 24 | lcd.encoderPinB = BTNEN2 25 | lcd.encoderPinSw = BTNENC 26 | lcd.lcdCSPin = LCDEN 27 | lcd.lcdDCPin = LCDRS 28 | lcd.spiChannel = 1 29 | lcd.lcdBeepPin = BEEP 30 | sdCard.external.spiChannel = 1 31 | sdCard.external.csPin = LCDSS 32 | sdCard.external.cardDetectPin = LCDCD 33 | led.neopixelPin = LCDD5 -------------------------------------------------------------------------------- /Config/sys/homex.g: -------------------------------------------------------------------------------- 1 | G91 ; relative positioning 2 | G1 H2 Z10 F6000 ; lift Z relative to current position 3 | if sensors.endstops[0].triggered = true ; if we're hard against the endstop we need to move away 4 | M564 H0 S0 5 | G1 X-20 F1200 6 | M564 H1 S1 7 | M400 8 | if sensors.endstops[0].triggered = true 9 | abort "X Endstop appears to be faulty. Still in triggered state." 10 | G1 H1 X355 F6000 ; move quickly to X axis endstop and stop there (first pass) 11 | if result != 0 12 | abort "Print cancelled due error during fast homing" 13 | G1 X-5 F6000 ; go back a few mm 14 | G1 H1 X355 F360 ; move slowly to X axis endstop once more (second pass) 15 | if result != 0 16 | abort "Print cancelled due to error during slow homing" 17 | G1 X-5 F6000 ; go back a few mm 18 | G1 H2 Z-10 F6000 ; lower Z again 19 | G90 ; absolute positioning -------------------------------------------------------------------------------- /Config/sys/homey.g: -------------------------------------------------------------------------------- 1 | G91 ; relative positioning 2 | G1 H2 Z10 F6000 ; lift Z relative to current position 3 | if sensors.endstops[1].triggered = true ; if we're hard against the endstop we need to move away 4 | M564 H0 S0 5 | G1 Y-20 F1200 6 | M564 H1 S1 7 | M400 8 | if sensors.endstops[1].triggered = true 9 | abort "Y Endstop appears to be faulty. Still in triggered state." 10 | G1 H1 Y355 F6000 ; move quickly to Y axis endstop and stop there (first pass) 11 | if result != 0 12 | abort "Print cancelled due error during fast homing" 13 | G1 Y-5 F6000 ; go back a few mm 14 | G1 H1 Y355 F360 ; move slowly to Y axis endstop once more (second pass) 15 | if result != 0 16 | abort "Print cancelled due to error during slow homing" 17 | G1 Y-5 F6000 ; go back a few mm 18 | G1 H2 Z-10 F6000 ; lower Z again 19 | G90 ; absolute positioning -------------------------------------------------------------------------------- /Config/menu/printInfo: -------------------------------------------------------------------------------- 1 | ; Duet 12864 Menu Files 2 | ; 3 | ; This is a set of menu files for running a 12864 display with a duet3D control board. 4 | ; 5 | ; Written by Jadon Miller - 2/27/2019 6 | ; Partially adapted from the work of tinkerlifeprojects on Github. 7 | ; 8 | ; File "printInfo" 9 | ; 10 | ; This menu shows details about the progress of the print in progress. 11 | ; It shows the percentage of printing progress, and time estimations. 12 | ; Unfortunatly, we can't show the elapsed print time as of firmware 13 | ; version 3.01-RC2. 14 | 15 | 16 | 17 | ; --------------- Header --------------- 18 | text R0 C0 W90 F0 H1 T"Printing" 19 | image R1 L"imgs/vline.img" 20 | button W37 F0 T"Back" A"return" 21 | image R12 C0 L"imgs/hline.img" 22 | 23 | 24 | ; --------------- Progress --------------- 25 | 26 | ; Print Percentage 27 | text R15 C5 H0 T"Percent Complete:" 28 | value R15 C95 W28 H2 N535 D1 29 | 30 | text R29 C0 W128 H1 T"Estimated Time Left:" 31 | 32 | ; File Progress 33 | text R41 C5 H0 T"File:" 34 | value R41 C59 W64 H2 N536 35 | 36 | ;Filament Progress 37 | text R53 C5 H0 T"Filament:" 38 | value R53 C59 W64 H2 N537 -------------------------------------------------------------------------------- /STL_Files/README.md: -------------------------------------------------------------------------------- 1 | # Mods 2 | 3 | Printer mods/stock parts for the Troodon V2 4 | Remember to update this README when uploading new mod! 5 | 6 | ## Table structure 7 | 8 | Update the following table with the information about your mod: 9 | - Your name 10 | - A link to your sub-folder 11 | - A short description of your mod 12 | 13 | like so: 14 | ` 15 | | Creator | [Mod title](link) | Description |` 16 | 17 | --- 18 | 19 | | Creator | Mod title | Description | 20 | | --- | --- | --- | 21 | |Fisheye_3D|[Klicky Mount Adapter](./Fisheye_3D/Klicky)| Adapter for mounting Klicky to the rear gantry M3 holes | 22 | |Formbot|[Corner Piece](./Formbot/Corner_Piece)| Corner Piece so the red parts can be replaced with a different colour | 23 | |Formbot|[Stock PCB Cover](./Formbot/PCB_Cover)| Stock PCB Cover so the red part can be replaced with a different colour | 24 | |jay_s_uk|[Voron TAP Centre Optical](./TAP)| Modified Centre for using with the Troodon V2 | 25 | |LDO|[Stealthburner Clockwork2 Specific](./Stealthburner/Clockwork2)| Parts for Clockwork2 to allow PCB to be used | 26 | |ygk3d|[Adafruit LIS3DH Mount](./ygk3d/LIS3DH_Mount) | Mount for the Adafruit black LIS3DH accelerometer for the stock AB toolhead. Original CAD files included | 27 | -------------------------------------------------------------------------------- /Config/menu/LICENSE: -------------------------------------------------------------------------------- 1 | This is free and unencumbered software released into the public domain. 2 | 3 | Anyone is free to copy, modify, publish, use, compile, sell, or 4 | distribute this software, either in source code form or as a compiled 5 | binary, for any purpose, commercial or non-commercial, and by any 6 | means. 7 | 8 | In jurisdictions that recognize copyright laws, the author or authors 9 | of this software dedicate any and all copyright interest in the 10 | software to the public domain. We make this dedication for the benefit 11 | of the public at large and to the detriment of our heirs and 12 | successors. We intend this dedication to be an overt act of 13 | relinquishment in perpetuity of all present and future rights to this 14 | software under copyright law. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 19 | IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR 20 | OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 21 | ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 22 | OTHER DEALINGS IN THE SOFTWARE. 23 | 24 | For more information, please refer to 25 | -------------------------------------------------------------------------------- /Config/menu/moveExtruder: -------------------------------------------------------------------------------- 1 | ; Duet 12864 Menu Files 2 | ; 3 | ; This is a set of menu files for running a 12864 display with a duet3D control board. 4 | ; 5 | ; Written by Jadon Miller - 2/27/2019 6 | ; Partially adapted from the work of tinkerlifeprojects on Github. 7 | ; 8 | ; File "moveExtruder" 9 | ; 10 | ; This page controls the extruder to allow loading or unloading filament. 11 | ; It holds a temperature control and group of extruder jog commands, with 12 | ; a link to the "changeFilament" menu underneath. 13 | 14 | 15 | 16 | ; --------------- Header --------------- 17 | text R0 C0 W63 F0 H1 T"Extruder" 18 | image L"imgs/vline.img" 19 | button W64 F0 T"Back" A"return" 20 | image R11 C0 L"imgs/hline.img" 21 | 22 | 23 | ; --------------- Temperature --------------- 24 | ; Note: You may need to change this section to fit your heater configuration. 25 | image R16 C28 L"imgs/temp.img" 26 | alter C40 N100 W20 H2 27 | text T" / " 28 | value N0 W20 29 | text T"°C" 30 | 31 | 32 | ; --------------- Move Buttons --------------- 33 | button R30 C6 T"-20 " A"T0 G91 G1 E-20 F400" 34 | button C27 T"-5 " A"T0 G91 G1 E-5 F400" 35 | button C45 T"-1 " A"T0 G91 G1 E-1 F400" 36 | button C64 T"+1 " A"T0 G91 G1 E+1 F400" 37 | button C82 T"+5 " A"T0 G91 G1 E+5 F400" 38 | button C103 T"+20 " A"T0 G91 G1 E+20 F400" 39 | 40 | 41 | ; --------------- Change Filament Button --------------- 42 | button R44 C0 W128 F0 T"Change Filament" A"menu changeFilament" -------------------------------------------------------------------------------- /Config/menu/changeFilament: -------------------------------------------------------------------------------- 1 | ; Duet 12864 Menu Files 2 | ; 3 | ; This is a set of menu files for running a 12864 display with a duet3D control board. 4 | ; 5 | ; Written by Jadon Miller - 2/27/2019 6 | ; Partially adapted from the work of tinkerlifeprojects on Github. 7 | ; 8 | ; File "changeFilament" 9 | ; 10 | ; This is a simple extrusion control menu dedicated to changing filament. 11 | ; It contains temperature controls, some manual extruder control, and 12 | ; buttons to run the "load.g" and "unload.g" files. 13 | 14 | 15 | 16 | ; --------------- Header --------------- 17 | text R0 C0 W90 F0 H1 T"Change Filament" 18 | image L"imgs/vline.img" 19 | button W37 F0 T"Back" A"return" 20 | image R11 C0 L"imgs/hline.img" 21 | 22 | 23 | ; --------------- Temperature --------------- 24 | ; Note: you may need to change this section depending on your default heater number. 25 | image R16 C28 L"imgs/temp.img" 26 | alter C40 N100 W20 H2 27 | text T" / " 28 | value N0 W20 29 | text T"°C" 30 | 31 | 32 | ; --------------- Buttons --------------- 33 | button R32 C0 W45 H1 T"Unload" A"M98 P0:/menu/scripts/unload.g" 34 | button C48 T"-5 " A"T0 G91 G1 E-5 F400" 35 | button C65 T"+5 " A"T0 G91 G1 E+5 F400" 36 | button C83 W45 T"Load" A"M98 P0:/menu/scripts/load.g" 37 | 38 | 39 | ; --------------- Print Button--------------- 40 | ; The "print" button is shown when not printing and "resume" when paused. 41 | button R48 C0 W128 V5 T"Print" A"menu selectSD" 42 | button R48 C0 W128 V6 T"Resume" A"M24|menu main" -------------------------------------------------------------------------------- /Config/sys/AutoZ.g: -------------------------------------------------------------------------------- 1 | var thisMacroHeatOn = false ; initialise a local variable ready for use 2 | 3 | if !move.axes[0].homed || !move.axes[1].homed ; If the printer hasn't been homed, home it 4 | G28 XY ; home y and x 5 | G91 ; relative positioning 6 | G1 H2 Z10 F6000 ; lift Z relative to current position 7 | G90 ; absolute positioning 8 | G1 X235 Y355.6 F10000 ; move above the autoZ probe 9 | if tools[0].active[0] < {global.nozzleProbeTemperature} ; check if the heater is powered and up to temp 10 | M568 P0 S{global.nozzleProbeTemperature} A2 ; if cold set the nozzle temperature to 175 degrees 11 | M116 P0 ; wait for the nozzle to reach temperature 12 | set var.thisMacroHeatOn = true ; set variable to show this macro set the temp 13 | G30 K1 Z-99999 ; home Z by probing the autoZ 14 | G1 Z4 F100 ; lift Z 15 | if var.thisMacroHeatOn = true ; check if the heater temperature was set by this macro 16 | M568 P0 S0 A0 ; turn the hotend off 17 | G1 X{(move.axes[0].min + move.axes[0].max)/2} Y{(move.axes[1].min + move.axes[1].max)/2} F3600 ; Move to the centre of the bed -------------------------------------------------------------------------------- /Config/sys/Nozzle-clean.g: -------------------------------------------------------------------------------- 1 | var thisMacroHeatOn = false 2 | 3 | if tools[0].active[0] < {global.nozzleProbeTemperature} ; check if the heater is powered and up to temp 4 | M568 P0 S{global.nozzleProbeTemperature} A2 ; if cold set the nozzle temperature to 175 degrees 5 | M116 P0 ; wait for the nozzle to reach temperature 6 | set var.thisMacroHeatOn = true ; set variable to show this macro set the temp 7 | if heat.heaters[1].current < tools[0].active[0] 8 | M116 P0 9 | G90 ; make sure the printer is set to absolute 10 | G1 X270 Y356 F6000 ; move into position 11 | G1 Z0.5 F3000 ; lower z 12 | G1 X320 F10000 ; clean the nozzle 13 | G1 X270 F10000 ; clean the nozzle 14 | G1 X320 F10000 ; clean the nozzle 15 | G1 X270 F10000 ; clean the nozzle 16 | G1 X320 F10000 ; clean the nozzle 17 | G1 X270 F10000 ; clean the nozzle 18 | G1 Z10 F6000 ; lift the nozzle 19 | if var.thisMacroHeatOn = true ; check if the heater temperature was set by this macro 20 | M568 P0 S0 A0 ; turn the hotend off -------------------------------------------------------------------------------- /Config/menu/mainMenu: -------------------------------------------------------------------------------- 1 | ; Duet 12864 Menu Files 2 | ; 3 | ; This is a set of menu files for running a 12864 display with a duet3D control board. 4 | ; 5 | ; Written by Jadon Miller - 2/27/2019 6 | ; Partially adapted from the work of tinkerlifeprojects on Github. 7 | ; 8 | ; File "mainMenu" 9 | ; 10 | ; This shows the menu of additional commands in list style, with 11 | ; a simple header. There are two menus, one while the printer is 12 | ; paused, and one when it's idle. 13 | 14 | 15 | 16 | ; --------------- Header --------------- 17 | text R0 C2 W63 H1 F0 T"Menu" 18 | image L"imgs/vline.img 19 | button W64 F0 T"Back" A"return" 20 | image R11 C0 L"imgs/hline.img" 21 | 22 | 23 | ; --------------- "Not Printing" Buttons --------------- 24 | 25 | ; Left Column 26 | button R13 C1 F0 H0 V5 T"- Preheat" A"menu preheat" 27 | button R25 C1 F0 H0 V5 T"- Run Macro" A"menu macros" 28 | button R37 C1 F0 H0 V5 T"- Extruder" A"menu moveExtruder" 29 | button R49 C1 F0 H0 V5 T"- Level Bed" A"menu bedLevel" 30 | 31 | ; Right Column 32 | button R37 C65 F0 H0 V5 T"- About" A"menu about" 33 | button R25 C65 F0 H0 V5 T"- LED" A"menu LEDMenu" 34 | button R13 C65 F0 H0 V5 T"- Air filtration" A"menu Air filtrationMenu" 35 | 36 | ; --------------- "Paused Buttons --------------- 37 | 38 | ; Left Column 39 | button R13 C1 F0 H0 V6 T"- Move" A"menu moveAxis" 40 | button R25 C1 F0 H0 V6 T"- Extruder" A"menu moveExtruder" 41 | button R37 C1 F0 H0 V6 T"- Run Macro" A"menu macros" 42 | button R49 C1 F0 H0 V6 T"- Preheat" A"menu preheat" 43 | 44 | ; Right Column 45 | button R25 C65 F0 H0 V6 T"- LED" A"menu LEDMenu" 46 | button R37 C65 F0 H0 V6 T"- Print Info" A"menu printInfo" 47 | button R49 C65 F0 H0 V6 T"- About" A"menu about" 48 | button R13 C65 F0 H0 V6 T"- Air filtration" A"menu Air filtrationMenu" -------------------------------------------------------------------------------- /Config/sys/screen.g: -------------------------------------------------------------------------------- 1 | M950 E0 C"LCD_D5" T1 ; configure the neopixel pin L300:900:1250:250 Q2500000 2 | M150 K0 R0 U0 B0 S3 F0 ; turn off the backlight 3 | M950 P1 C"LCD_D4" ; configure reset pin 4 | M42 P1 S0 ; hardware reset of LCD 5 | G4 P500 ; wait 500ms 6 | M42 P1 S1 ; turn display on 7 | M918 P2 C30 F1000000 E-4 ; setup display type 8 | while iterations < 256 ; fade in backlight 9 | M150 R255 U255 B255 P{iterations} S1 F0 10 | G4 P20 11 | while iterations < 3 ; flash button 3 times 12 | M150 K0 R0 U255 B0 P255 S2 F1 13 | M150 K0 R255 U255 B255 P255 S1 F0 14 | G4 P250 15 | M150 K0 R0 U255 B0 P0 S2 F1 16 | M150 K0 R255 U255 B255 P255 S1 F0 17 | G4 P250 18 | ; Red colour scheme for LCD and knob 19 | M150 K0 R0 U255 B0 P255 S2 F1 ; set Knob colour to red 20 | ;M150 K0 R0 U255 B0 P255 S2 F0 ; set LCD colour to red 21 | 22 | ; Blue colour scheme for LCD and knob 23 | ;M150 K0 R0 U0 B255 P255 S2 F1 ; set Knob colour to blue 24 | ;M150 K0 R0 U0 B255 P255 S2 F0 ; set LCD colour to blue 25 | 26 | ; Green colour scheme for LCD and knob 27 | ;M150 K0 R255 U0 B0 P255 S2 F1 ; set Knob colour to green 28 | ;M150 K0 R255 U0 B0 P255 S2 F0 ; set LCD colour to green 29 | 30 | ; White colour scheme for LCD and knob 31 | ;M150 K0 R255 U255 B255 P255 S2 F1 ; set Knob colour to white 32 | M150 K0 R255 U255 B255 P255 S2 F0 ; set LCD colour to white -------------------------------------------------------------------------------- /Config/sys/stop.g: -------------------------------------------------------------------------------- 1 | ; stop.g 2 | ; called when M0 (Stop) is run (e.g. when a print from SD card is cancelled) 3 | ; 4 | M106 P0 S0 ; turn off the print cooling fan 5 | M220 S100 ; reset speed factor override percentage to 100% 6 | M221 D0 S100 ; reset extrude factor override percentage to 100% 7 | if heat.heaters[1].current > heat.coldRetractTemperature ; check extruder is hot enough to retract 8 | G1 E-2 F300 ; retract the filament a bit before lifting the nozzle to release some of the pressure 9 | G90 ; absolute positioning 10 | if {(move.axes[2].machinePosition) < (move.axes[2].max - 10)} ; check if there's sufficient space to raise head 11 | M291 P{"Raising head to... " ^ move.axes[2].machinePosition+5} R"Raising head" S0 T5 ; message box to announce movement 12 | G1 Z{move.axes[2].machinePosition+5} F9000 ; move Z up a bit 13 | G1 X175 Y355 ; move print head to the back centre 14 | M400 ; wait for current moves to finish 15 | if !global.overrideHotendOff ; check if hotend should be turned off 16 | M568 P0 R0 S0 A0 ; set T0 and temps off 17 | if !global.overrideBedOff ; check if bed should be turned off 18 | M140 S-273.1 ; set heated bed heater off 19 | G92 E0 ; reset extrusion position 20 | M98 P"0:/macros/LED/LED OFF" ; turn off LED 21 | M98 P"0:/macros/Air filtration/Air filtration OFF" ; turn off Chamber Fan if on 22 | M84 ; steppers off 23 | set global.slicerHotendTempOverride = 0 ; reset extruder temp override 24 | set global.slicerBedTempOverride = 0 ; reset bed temp override 25 | -------------------------------------------------------------------------------- /Config/menu/bedLevel: -------------------------------------------------------------------------------- 1 | ; Duet 12864 Menu Files 2 | ; 3 | ; This is a set of menu files for running a 12864 display with a duet3D control board. 4 | ; 5 | ; Written by Jadon Miller - 2/27/2019 6 | ; Partially adapted from the work of tinkerlifeprojects on Github. 7 | ; 8 | ; File "bedLevel" 9 | ; 10 | ; This menu controls the various aspects of bed leveling. The goal is to 11 | ; be able to do everything leveling related from right here. After the 12 | ; simple header with the auto level button, (which runs the "bedLevel.g" file) 13 | ; we have homing commands, a Z height adjustment, a button to disable all 14 | ; motors, and a row of buttons at the bottom to go to three manual leveling 15 | ; points. (likely over the leveling screws) These run the files "goToLevelPoint1.g" 16 | ; "goToLevelPoint2.g" and "goToLevelPoint3.g" files, respectively. 17 | 18 | 19 | 20 | ; --------------- Header --------------- 21 | button R0 C0 W63 F0 H1 T"Auto Level" A"M98 P0:/menu/scripts/autoLevel.g" 22 | image L"imgs/vline.img" 23 | button W64 F0 T"Back" A"return" 24 | image R11 C0 L"imgs/hline.img" 25 | 26 | 27 | ; --------------- Homing Commands --------------- 28 | image R14 C3 L"imgs/home.img" 29 | button C13 W20 H2 T"All" A"G28" 30 | image C50 L"imgs/home.img" 31 | button C60 W20 H2 T"XY" A"G28 X Y" 32 | image C95 L"imgs/home.img" 33 | button C105 W20 H2 T" Z " A"G28 Z" 34 | 35 | 36 | ; --------------- Z Adjustment --------------- 37 | image R27 C8 L"imgs/zstep.img" 38 | alter N512 D2 W30 H2 39 | text T"mm" 40 | 41 | 42 | ; --------------- Disable Motors Button --------------- 43 | image R27 C70 L"imgs/motor.img" 44 | button C80 T"Off" A"M18" 45 | 46 | 47 | ; --------------- Move Buttons --------------- 48 | text C42 W40 H1 R39 T"Move to:" 49 | button R51 C5 W36 H2 T"AutoLevel" A"M98 P0:/menu/scripts/autoLevel.g" 50 | ;button C46 W36 H2 T"Point 2" A"M98 P0:/menu/scripts/goToLevelPoint2.g" 51 | ;button C90 W36 H2 T"Point 3" A"M98 P0:/menu/scripts/goToLevelPoint3.g" -------------------------------------------------------------------------------- /Config/menu/moveAxis: -------------------------------------------------------------------------------- 1 | ; Duet 12864 Menu Files 2 | ; 3 | ; This is a set of menu files for running a 12864 display with a duet3D control board. 4 | ; 5 | ; Written by Jadon Miller - 2/27/2019 6 | ; Partially adapted from the work of tinkerlifeprojects on Github. 7 | ; 8 | ; File "moveAxis" 9 | ; 10 | ; This file shows the menu that lets the user move the motors and home axis. 11 | ; The header contains a back button, along with buttons to home all and disable 12 | ; the motors. In the main section we have rows of buttons to home, jog, and 13 | ; adjust the position of each axis. The extruder is controlled on the "moveExtruder" 14 | ; menu. We then show the current axis positions on the bottom of the screen. The 15 | ; disable motors button is only shown when not printing. 16 | 17 | 18 | 19 | ; --------------- Header --------------- 20 | image R1 C1 L"imgs/home.img" 21 | button R0 C11 W20 T"All" A"G28" 22 | image C41 V5 L"imgs/motor.img" 23 | button C51 W35 V5 T"Off" A"M18" 24 | image C86 L"imgs/vline.img 25 | button R0 W42 F0 T"Back" A"return" 26 | image R11 C0 L"imgs/hline.img" 27 | 28 | 29 | ; --------------- X Axis --------------- 30 | image R14 C6 L"imgs/home.img" 31 | button C16 T" X " A"G28 X" 32 | button C30 T"-25" A"G91 G1 X-25 F6000" 33 | button C50 T"-5" A"G91 G1 X-5 F6000" 34 | alter C64 N510 D0 W22 H1 35 | button C88 T"+5" A"G91 G1 X+5 F6000" 36 | button C103 T"+25" A"G91 G1 X+25 F6000" 37 | 38 | 39 | ; --------------- Y Axis --------------- 40 | image R27 C6 L"imgs/home.img" 41 | button C16 T" Y " A"G28 Y" 42 | button C30 T"-25" A"G91 G1 Y-25 F6000" 43 | button C50 T"-5" A"G91 G1 Y-5 F6000" 44 | alter C64 N511 D0 W22 H1 45 | button C88 T"+5" A"G91 G1 Y+5 F6000" 46 | button C103 T"+25" A"G91 G1 Y+25 F6000" 47 | 48 | 49 | ; --------------- Z Axis --------------- 50 | image R40 C6 L"imgs/home.img" 51 | button C16 T" Z " A"G28 Z" 52 | button C30 T"-25" A"G91 G1 Z-25 F6000" 53 | button C52 T"-1" A"G91 G1 Z-1 F6000" 54 | alter C64 N512 D0 W22 H1 55 | button C90 T"+1" A"G91 G1 Z+1 F6000" 56 | button C103 T"+25" A"G91 G1 Z+25 F6000" 57 | 58 | 59 | ; --------------- Axis Positions --------------- 60 | image R53 C0 L"imgs/hline.img" 61 | text R54 C15 F0 T"X " 62 | value N510 W25 63 | text T" Y " 64 | value N511 W25 65 | text T" Z " 66 | value N512 D2 W30 -------------------------------------------------------------------------------- /Config/menu/altMain: -------------------------------------------------------------------------------- 1 | ; Duet 12864 Menu Files 2 | ; 3 | ; This is a set of menu files for running a 12864 display with a duet3D control board. 4 | ; 5 | ; Written by Jadon Miller - 2/27/2019 6 | ; Partially adapted from the work of tinkerlifeprojects on Github. 7 | ; 8 | ; File "altMain" 9 | ; 10 | ; This is the menu when clicking the scroll right button from the main overview. (the "main" file) 11 | ; It provides additional print settings, including the speed and extrusion multipliers, 12 | ; as well as babystepping. The general layout is the same as the main screen. 13 | ; 14 | ; 15 | ; Note: The top menu and bottom sections should always be exactly the same as the "main" file. 16 | 17 | 18 | 19 | ; --------------- "Not Printing" Menu Buttons --------------- 20 | button R0 C0 F0 V5 W42 T"Print" A"menu selectSD" 21 | image V5 L"imgs/vline.img" 22 | button V5 W42 T"Move" A"menu moveAxis" 23 | image V5 L"imgs/vline.img" 24 | button V5 W42 T"Menu" A"menu mainMenu" 25 | 26 | 27 | ; --------------- "Printing" Menu Buttons --------------- 28 | button R0 C0 F0 W64 V2 T"Pause" A"M25" 29 | image V2 L"imgs/vline.img" 30 | button W64 V2 T"Info" A"menu printInfo" 31 | 32 | 33 | ; --------------- "Paused" Menu Buttons --------------- 34 | button R0 C0 F0 W42 V6 T"Resume" A"M24" 35 | image V6 L"imgs/vline.img" 36 | button W42 V6 T"Menu" A"menu mainMenu" 37 | image V6 L"imgs/vline.img" 38 | button W42 V6 T"Abort" A"menu confirmAbort" 39 | 40 | 41 | ; --------------- Main Overview --------------- 42 | image R11 C0 L"imgs/hline.img" 43 | 44 | ; Flowrate (Extrusion Multiplier) 45 | image R14 C40 L"imgs/flowrate.img" 46 | alter C65 F0 N400 W25 H2 47 | 48 | ; Feedrate (Print Speed) 49 | image R26 C40 L"imgs/feedrate.img" 50 | alter C65 N500 W25 H2 51 | 52 | ; Babystepping 53 | image R38 C40 L"imgs/zstep.img" 54 | alter C65 D2 N521 W25 H2 55 | text T" mm" 56 | 57 | 58 | ; --------------- Scroll Button --------------- 59 | button R25 C6 F1 T" « " A"return" 60 | 61 | 62 | ; --------------- Axis Positions --------------- 63 | image R53 C0 L"imgs/hline.img" 64 | 65 | ;"Not Actively Printing" Commands 66 | text V5 R54 C15 F0 T"X " 67 | value V5 N510 W25 68 | text V5 T" Y " 69 | value V5 N511 W25 70 | text V5 T" Z " 71 | value V5 N512 D2 W30 72 | 73 | ;"Actively Printing" 74 | value V4 R54 C4 W34 H0 N535 D0 75 | text V4 C46 T"Z " 76 | value V4 N512 D2 77 | value V4 C85 W40 H2 N536 -------------------------------------------------------------------------------- /Config/menu/preheat: -------------------------------------------------------------------------------- 1 | ; Duet 12864 Menu Files 2 | ; 3 | ; This is a set of menu files for running a 12864 display with a duet3D control board. 4 | ; 5 | ; Written by Jadon Miller - 2/27/2019 6 | ; Partially adapted from the work of tinkerlifeprojects on Github. 7 | ; 8 | ; File "preheat" 9 | ; 10 | ; The goal of this menu is to make it easy to preheat the printer. It 11 | ; has a group of buttons to set the temperature and the current temperatures 12 | ; at the bottom with a shortcut to print/resume. 13 | ; 14 | ; Note: To modify the preset temperatures, there are two places to change for 15 | ; each temperature. The "T" parameter determines what is shown on the button 16 | ; and the number after the "S" is the temperature sent to the firmware. For example, 17 | ; if I wanted to change the second bed heater button to 45C, I would change this line: 18 | ; 19 | ; button C46 W19 T"40" A"M140 S40" 20 | ; 21 | ; To this line: 22 | ; 23 | ; button C46 W19 T"45" A"M140 S45" 24 | ; 25 | ; The hotend buttons work the same way. 26 | ; 27 | ; Note: you may need to change the gcode commands for each button if you don't use the 28 | ; default heater configuration. 29 | 30 | 31 | 32 | ; --------------- Header --------------- 33 | text R0 C0 W63 F0 H1 T"Preheat" 34 | image L"imgs/vline.img" 35 | button W64 F0 T"Back" A"return" 36 | image R11 C0 L"imgs/hline.img" 37 | 38 | 39 | ; --------------- Preheat Bed --------------- 40 | image R14 C6 L"imgs/bed.img" 41 | button C23 W22 T"Off" A"M140 S0" 42 | button C46 W19 T"60" A"M140 S60" 43 | button C66 W19 T"80" A"M140 S80" 44 | button C86 W19 T"110" A"M140 S110" 45 | button C106 W19 T"125" V3 A"M140 S125" 46 | 47 | 48 | ; --------------- Preheat Hotend --------------- 49 | image R27 C6 L"imgs/temp.img" 50 | button C23 W22 T"Off" A"M104 S0 T0" 51 | button C46 W19 T"200" A"M104 S200 T0" 52 | button C66 W19 T"250" A"M104 S250 T0" 53 | button C86 W19 T"300" A"M104 S300 T0" 54 | button C106 W19 T"450" A"M104 S450 T0" 55 | 56 | 57 | ; --------------- Print Button--------------- 58 | ; The "print" button is shown when not printing and "resume" when paused. 59 | button R40 C0 W128 V5 T"Print" A"menu selectSD" 60 | button R40 C0 W128 V6 T"Resume" A"M24|menu main" 61 | 62 | 63 | ; --------------- Temperatures --------------- 64 | image R52 C0 L"imgs/hline.img" 65 | 66 | ; Bed Temperature 67 | image R53 C5 L"imgs/bed.img" 68 | value H2 N180 69 | text T"/" 70 | value N80 71 | 72 | ; Hotend Temperature 73 | image R53 L"imgs/temp.img" 74 | value H2 N100 75 | text T"/" 76 | value N0 -------------------------------------------------------------------------------- /Config/menu/main: -------------------------------------------------------------------------------- 1 | ; Duet 12864 Menu Files 2 | ; 3 | ; This is a set of menu files for running a 12864 display with a duet3D control board. 4 | ; 5 | ; Written by Jadon Miller - 2/27/2019 6 | ; Partially adapted from the work of tinkerlifeprojects on Github. 7 | ; 8 | ; File "main" 9 | ; 10 | ; This is the file for the overview screen of the menu system. 11 | ; On the top of the screen we have a menu that updates based 12 | ; on the print status. In the middle we show the temperatures and fan 13 | ; speeds, and the bottom shows the percentage complete and time left according 14 | ; to filament usage, or the axis positions if you're not in a print. There 15 | ; is a scroll button on the right to go to the "altMain" menu. 16 | 17 | 18 | 19 | ; --------------- "Not Printing" Menu Buttons --------------- 20 | button R0 C0 F0 V5 W42 T"Print" A"menu selectSD" 21 | image V5 L"imgs/vline.img" 22 | button V5 W42 T"Move" A"menu moveAxis" 23 | image V5 L"imgs/vline.img" 24 | button V5 W42 T"Menu" A"menu mainMenu" 25 | 26 | 27 | ; --------------- "Printing" Menu Buttons --------------- 28 | button R0 C0 F0 W64 V2 T"Pause" A"M25" 29 | image V2 L"imgs/vline.img" 30 | button W64 V2 T"Info" A"menu printInfo" 31 | 32 | 33 | ; --------------- "Paused" Menu Buttons --------------- 34 | button R0 C0 F0 W42 V6 T"Resume" A"M24" 35 | image V6 L"imgs/vline.img" 36 | button W42 V6 T"Menu" A"menu mainMenu" 37 | image V6 L"imgs/vline.img" 38 | button W42 V6 T"Abort" A"menu confirmAbort" 39 | 40 | 41 | ; --------------- Main Overview --------------- 42 | ; Note: this section may need modified if you use different heater and fan numbers. 43 | image R11 C0 L"imgs/hline.img" 44 | 45 | ; Bed Temp 46 | image R14 C25 L"imgs/bed.img" 47 | alter R14 C40 N180 W20 H2 48 | text T" / " 49 | value N80 W20 50 | text T"°C" 51 | 52 | ; Hotend Temp 53 | image R26 C25 L"imgs/temp.img" 54 | alter C40 N100 W20 H2 55 | text T" / " 56 | value N0 W20 57 | text T"°C" 58 | 59 | ; Fan Speed 60 | image R38 C25 L"imgs/fan.img" 61 | alter C52 N300 W25 H1 62 | button C80 F0 T"OFF" A"M106 P0 S0" 63 | 64 | 65 | ; --------------- Scroll Button --------------- 66 | button R25 C104 F1 T" » " A"menu altMain" 67 | 68 | 69 | ; --------------- Axis Positions --------------- 70 | image R53 C0 L"imgs/hline.img" 71 | 72 | ;"Not Actively Printing" Commands 73 | text V5 R54 C15 F0 T"X " 74 | value V5 N510 W25 75 | text V5 T" Y " 76 | value V5 N511 W25 77 | text V5 T" Z " 78 | value V5 N512 D2 W30 79 | 80 | ;"Actively Printing" 81 | value V4 R54 C4 W34 H0 N535 D0 82 | text V4 C46 T"Z " 83 | value V4 N512 D2 84 | value V4 C85 W40 H2 N536 85 | -------------------------------------------------------------------------------- /Config/sys/bed.g: -------------------------------------------------------------------------------- 1 | ; bed.g taken from the teamgloomy wiki 2 | if !move.axes[0].homed || !move.axes[1].homed ; If the printer hasn't been homed, home it 3 | G28 XY ; home y and x 4 | G29 S2 ; turn off bed mesh levelling 5 | M561 ; clear any bed transform 6 | M290 R0 S0 ; clear babystepping 7 | G28 Z ; home z 8 | M558 K0 H10 ; set toolhead probe dive height to 10mm 9 | G30 P0 X30 Y50 Z-99999 ; probe front left 10 | G30 P1 X30 Y320 Z-99999 ; prove back left 11 | G30 P2 X320 Y320 Z-99999 ; probe back right 12 | G30 P3 X320 Y50 Z-99999 S4 ; probe front right and level 13 | M558 K0 H3 ; set toolhead probe dive height to 3mm to speed up levelling 14 | echo "BTC: 1 - Difference was " ^ move.calibration.initial.deviation ^ "mm" ; echo deviation 15 | while move.calibration.initial.deviation >= 0.01 ; perform additional tramming if previous deviation was over 0.01mm 16 | if iterations = 5 ; check that not more than 5 levelling attempts have been made 17 | abort "Too many auto tramming attempts" ; abort if = to 5 18 | G30 P0 X30 Y50 Z-99999 ; probe front left 19 | G30 P1 X30 Y320 Z-99999 ; prove back left 20 | G30 P2 X320 Y320 Z-99999 ; probe back right 21 | G30 P3 X320 Y50 Z-99999 S4 ; probe front right and level 22 | echo "BTC: " ^ iterations + 2 ^ " - Difference was " ^ move.calibration.initial.deviation ^ "mm" ; echo deviation 23 | continue 24 | G28 Z ; home z again incase levelling has affected z height -------------------------------------------------------------------------------- /Config/sys/globals.g: -------------------------------------------------------------------------------- 1 | if !exists(global.slicerBedTemp) ; checks for the existence of global.slicerBedTemp 2 | global slicerBedTemp = 0 ; if it doesn't exist, set the value to 0 3 | if !exists(global.slicerBedTempOverride) ; checks for the existence of global.slicerBedTempOverride 4 | global slicerBedTempOverride = 0 ; if it doesn't exist, set the value to 0 5 | if !exists(global.slicerHotendTemp) ; checks for the existence of global.slicerHotendTemp 6 | global slicerHotendTemp = 0 ; if it doesn't exist, set the value to 0 7 | if !exists(global.slicerHotendTempOverride) ; checks for the existence of global.slicerHotendTempOverride 8 | global slicerHotendTempOverride = 0 ; if it doesn't exist, set the value to 0 9 | if !exists(global.soakTime) ; checks for the existence of global.soakTime 10 | global soakTime = 15 ; if it doesn't exist, set the value in seconds. Value is in minutes 11 | if !exists(global.soakTimeOverride) ; checks for the existence of global.soakTimeOverride 12 | global soakTimeOverride = false ; if it doesn't exist, set the value to false 13 | if !exists(global.chamberCheckOverride) ; checks for the existence of global.chamberCheckOverride 14 | global chamberCheckOverride = false ; if it doesn't exist, set the value to false 15 | if !exists(global.overrideBedOff) ; checks for the existence of global.overrideBedOff 16 | global overrideBedOff = false ; if it doesn't exist, set the value to false 17 | if !exists(global.overrideHotendOff) ; checks for the existence of global.overrideHotendOff 18 | global overrideHotendOff = false ; if it doesn't exist, set the value to false 19 | if !exists(global.nozzleDiameterInstalled) ; checks for the existence of global.nozzleDiameterInstalled 20 | global nozzleDiameterInstalled = 0.4 ; if it doesn't exist, set the value to 0.4mm, which is the default for the Troodon V2 21 | if !exists(global.nozzleProbeTemperature) ; checks for the existence of global.nozzleProbeTemperature 22 | global nozzleProbeTemperature = 175 ; if it doesn't exist, set the value to 175 degrees 23 | if !exists(global.Cancelled) ; checks for the existence of global.Cancelled 24 | global Cancelled = false ; if it doesn't exist, set the value to false 25 | if !exists(global.useAutoZ) ; checks for the existence of global.useAutoZ 26 | global useAutoZ = false ; if it doesn't exist, set the value to false 27 | if !exists(global.generateMesh) ; checks for the existence of global.generateMesh 28 | global generateMesh = false ; if it doesn't exist, set the value to false 29 | if !exists(global.generatePrintOnlyMesh) ; checks for the existence of global.generatePrintOnlyMesh 30 | global generatePrintOnlyMesh = false ; if it doesn't exist, set the value to false -------------------------------------------------------------------------------- /BtnCmd/README.md: -------------------------------------------------------------------------------- 1 | # BtnCmd 2 | 3 | As part of version 1.3, a custom BtnCmd screen has been created to allow some aspects of a print to be adjusted. 4 | ![Print Control Screen](./Images/Screenshot.png) 5 | This screen allows for the following items to be changed or overriden. 6 | 7 | ## Installing BtnCmd 8 | 9 | More information about the plugin, as well as a manual, can be found [here](https://github.com/MintyTrebor/BtnCmd) 10 | Instructions for installing a plugin can be found [here](https://github.com/MintyTrebor/BtnCmd/wiki/Installation) 11 | 12 | ## Importing the page 13 | 14 | Download the BtnCmdforTroodonV2.json file from this folder. 15 | Click on the show settings button. 16 | ![Show Settings](./Images/Show_Settings.png) 17 | Click on the backup/restore button. 18 | ![Backup/Restore Settings](./Images/Restore_Settings.png) 19 | Click on the import button. 20 | ![Import](./Images/Import.png) 21 | Follow the popup instructions, uploading the BtnCmdforTroodonV2.json file you downloaded 22 | 23 | ## Create a backup that auto restores 24 | 25 | Click on the backup/restore button. 26 | ![Backup/Restore Settings](./Images/Restore_Settings.png) 27 | Click on the backup button. 28 | ![Backup](./Images/Backup.png) 29 | Navigate to the system folder using the left hand bar in DWC. 30 | Rename "BtnCmdSettings.json" to "BtnCmdAutoRestore.json" 31 | 32 | # Screen Breakdown 33 | 34 | ## Soak Time 35 | 36 | This sets the time (in seconds) for the printer to soak for before a print is started. The default is 900 and is set in /sys/globals.g 37 | 38 | ## Cancel Print During Soak Time 39 | 40 | Allows you to cancel a print during the soak time. 41 | 42 | ## Soak Time Override 43 | 44 | This overrides whether the soak time is applied during a print. False = it is not overriden, True = it is overriden and the print is started without being soaked. It also allows you to cancel the soak time whilst the printer is soaking. 45 | 46 | ## Slicer Bed Temperature Override 47 | 48 | This allows you to override the bed temperature set by the slicer. 49 | If the value is set to 0, then the slicer temperature is used. If any other value is used, that is used instead. This allows for the sliced file temperature to be changed without editing or reslicing the file. 50 | 51 | ## Slicer Hotend Temperature Override 52 | 53 | This allows you to override the hotend temperature set by the slicer. 54 | If the value is set to 0, then the slicer temperature is used. If any other value is used, that is used instead. This allows for the sliced file temperature to be changed without editing or reslicing the file. 55 | 56 | ## Nozzle Diameter 57 | 58 | At the start of a print, the firmware checks whether the nozzle diameter in the gcode matches the nozzle diameter in the gcode. 59 | 60 | ## Nozzle Probe Temperature 61 | 62 | This is the temperature that is used for activities such as the probe offset and autoz offset. 63 | 64 | ## Override Turning Bed Off 65 | 66 | This is useful if you are carrying out multiple concurrent prints as it keeps the bed on at the end of a print. This is works well in conjunction with soak time override for follow on prints. 67 | 68 | ## Override Turning Hotend Off 69 | 70 | This is useful if you are carrying out multiple concurrent prints and want the hotend to remain on after the print. 71 | 72 | -------------------------------------------------------------------------------- /Config/sys/start_print.g: -------------------------------------------------------------------------------- 1 | ; When using a macro as custom gcode, do not use G, M, N or T as parameters in a custom 'G' gcode file 2 | ; param.A is the first layer bed temperature 3 | ; param.B is filament type 4 | ; param.c is first layer temperature 5 | ; param.D is the nozzle diameter the model was sliced for 6 | ; param.E is the first layer min X 7 | ; param.F is the first layer max X 8 | ; param.H is the first layer min Y 9 | ; param.J is the first layer max Y 10 | 11 | set global.Cancelled = false ; reset the cancelled global value to false 12 | 13 | set global.slicerBedTemp = param.A ; this updates the global variable slicerBedTemp to be equal to param.A 14 | set global.slicerHotendTemp = param.C ; this updates the global variable slicerHotendTemp to be equal to param.C 15 | 16 | if global.nozzleDiameterInstalled != param.D ; this checks the gcode to ensure it matches the nozzle size installed in the printer 17 | abort "This gcode is for a different nozzle diameter" ; abort the gcode as the nozzle size doesn't match 18 | 19 | M98 P"0:/macros/LED/LED 100%" ; turn on the LED 20 | 21 | if global.slicerBedTempOverride == 0 ; check whether the bed temperature should be overriden 22 | M190 S{param.A} ; set Bed Temperature to whatever is set in slicer 23 | else 24 | M190 S{global.slicerBedTempOverride} ; set bed temperature to the override temperature set in btncmd instead 25 | 26 | M98 P"0:/macros/Air filtration/Air filtration 25%" ; turn on air filtration fan to 25% 27 | 28 | if param.B = "ABS" || param.B = "ASA" 29 | if !global.soakTimeOverride & global.soakTime != 0 ; check whether the chamber temperature soak time should be overriden 30 | M98 P"start_after_delay.g" S{global.soakTime} ; chamber Soak 31 | 32 | if global.Cancelled = true ; allows print to be cancelled at this point 33 | M291 P"Print has been cancelled" S0 T3 34 | G4 S3 35 | abort "Print cancelled." 36 | else 37 | G28 ; home the printer 38 | 39 | if global.Cancelled = true ; allows print to be cancelled at this point 40 | M291 P"Print has been cancelled" S0 T3 41 | G4 S3 42 | abort "Print cancelled." 43 | else 44 | G32 ; level the gantry 45 | M98 P"Nozzle-clean.g" ; clean nozzle 46 | if global.useAutoZ = true ; check for use AutoZ 47 | M98 P"AutoZ.g" ; use AutoZ to set Z height 48 | 49 | if global.generateMesh = true ; check whether new mesh height map should be generated 50 | if global.generatePrintOnlyMesh = true 51 | M98 P"print_area_mesh.g" A{param.E} B{param.F} C{param.H} D{param.J} 52 | else 53 | G29 ; generate mesh height map 54 | else 55 | G29 S1 ; load the height map 56 | 57 | if global.slicerHotendTempOverride == 0 ; check whether the hotend temperature should be overriden 58 | M568 P0 S{param.C} A2 ; set hotend Temperature to whatever is set in slicer 59 | else 60 | M568 P0 S{global.slicerHotendTempOverride} A2 ; set hotend temperature to the override temperature set in btncmd instead 61 | M116 P0 ; wait for this temperature to be reached 62 | M98 P"Nozzle-clean.g" ; clean nozzle -------------------------------------------------------------------------------- /Config/sys/print_area_mesh.g: -------------------------------------------------------------------------------- 1 | ; This command will only create a mesh of the print area 2 | ; This will reduce the printing time considerably by only probing what is needed 3 | 4 | var deviationFromOriginal = 20 5 | 6 | var probeGridMinX = move.compensation.probeGrid.mins[0] 7 | var probeGridMaxX = move.compensation.probeGrid.maxs[0] 8 | var probeGridMinY = move.compensation.probeGrid.mins[1] 9 | var probeGridMaxY = move.compensation.probeGrid.maxs[1] 10 | 11 | var pamMinX = {var.probeGridMinX} ; Default the pamMinX value to the min x that is set for the mesh in M557. Originally coming from sys/printer_size_config.g 12 | var pamMaxX = {var.probeGridMaxX} ; Default the pamMaxX value to the min x that is set for the mesh in M557. Originally coming from sys/printer_size_config.g 13 | var pamMinY = {var.probeGridMinY} ; Default the pamMinY value to the min x that is set for the mesh in M557. Originally coming from sys/printer_size_config.g 14 | var pamMaxY = {var.probeGridMaxY} ; Default the pamMaxY value to the min x that is set for the mesh in M557. Originally coming from sys/printer_size_config.g 15 | var meshSpacing = {move.compensation.probeGrid.spacings[0]} ; Grabbing the spacing of the current M557 settings 16 | var minMeshPoints = 3 ; The minimal amount of probing points for both X & Y. 17 | var maxMeshPoints = 10 ; The max amount of probing points for both X & Y 18 | 19 | if exists(param.A) 20 | set var.pamMinX = {param.A} ; The min X position of the print job 21 | 22 | if exists(param.B) 23 | set var.pamMaxX = {param.B} ; The max X position of the print job 24 | 25 | if exists(param.C) 26 | set var.pamMinY = {param.C} ; The min Y position of the print job 27 | 28 | if exists(param.D) 29 | set var.pamMaxY = {param.D} ; The max Y position of the print job 30 | 31 | if (var.probeGridMinX + var.deviationFromOriginal) >= var.pamMinX ; Check if the difference between the min X and the print job min X is smaller than the set deviation 32 | set var.pamMinX = {var.probeGridMinX} ; The difference is smaller than the set deviation so set minX to the minimal of the printer's X 33 | 34 | if (var.probeGridMaxX - var.deviationFromOriginal) <= var.pamMaxX ; Check if the difference between the max X and the print job max X is smaller than the set devation 35 | set var.pamMaxX = {var.probeGridMaxX} ; The difference is smaller than the set devation so set maxX to the max of the printer's X 36 | 37 | if (var.probeGridMinY + var.deviationFromOriginal) >= var.pamMinY ; Check if the difference between the min Y and the print job min Y is smaller than the set devation 38 | set var.pamMinY = {var.probeGridMinY} ; the difference is smaller than the set devation so set minY to the minimal of the printer's Y 39 | 40 | if (var.probeGridMaxY - var.deviationFromOriginal) <= var.pamMaxY ; Check if the difference between the max X and the print job max X is smaller than the set devation 41 | set var.pamMaxY = {var.probeGridMaxY} ; The difference is smaller than the set devation so set maxY to the max of the printer's Y 42 | 43 | var meshX = floor(min(var.maxMeshPoints - 1, (max(var.minMeshPoints - 1, (var.pamMaxX - var.pamMinX) / var.meshSpacing) + 1))) ; Get the number of probes for X taking minMeshPoints and maxMeshPoints into account 44 | var meshY = floor(min(var.maxMeshPoints - 1, (max(var.minMeshPoints - 1, (var.pamMaxY - var.pamMinY) / var.meshSpacing) + 1))) ; Get the number of probes for Y taking minMeshPoints and maxMeshPoints into account 45 | 46 | var consoleMessage = "Set probe grid to use X-min: " ^ var.pamMinX ^ "; X-max: " ^ var.pamMaxX ^ "; Y-min: " ^ var.pamMinY ^ "; Y-max: " ^ var.pamMaxY "; Probing points: " ^ var.meshX ^ ";" ^ var.meshY ; Set the console message 47 | M118 P2 S{var.consoleMessage} ; send used probe grid to paneldue 48 | M118 P3 S{var.consoleMessage} ; send average to DWC console 49 | 50 | M557 X{var.pamMinX, var.pamMaxX} Y{var.pamMinY, var.pamMaxY} P{var.meshX, var.meshY} ; Set the probing mesh 51 | 52 | G0 X{var.pamMinX + ((var.pamMaxX - var.pamMinX)/2) - sensors.probes[0].offsets[0]} Y{var.pamMinY + ((var.pamMaxY - var.pamMinY)/2) - sensors.probes[0].offsets[1]} ; Move to the center of the print area 53 | G30 ; Set the z height for the center of the print area 54 | G29 ; Probe the print area 55 | 56 | ; Restore the probing mesh to the original settings 57 | set var.meshX = floor((var.probeGridMaxX - var.probeGridMinX) / var.meshSpacing + 1) 58 | set var.meshY = floor((var.probeGridMaxY - var.probeGridMinY) / var.meshSpacing + 1) 59 | M557 X{var.probeGridMinX, var.probeGridMaxX} Y{var.probeGridMinY, var.probeGridMaxY} P{var.meshX, var.meshY} 60 | 61 | -------------------------------------------------------------------------------- /Config/macros/2 - Autoz trigger height.g: -------------------------------------------------------------------------------- 1 | var ProbeSpeedHigh = sensors.probes[1].speeds[0] ; save currently configured speed for fast probe 2 | var ProbeSpeedLow = sensors.probes[1].speeds[1] ; save currently configured speed for slow probe 3 | 4 | M558 K1 F60 ; reduce probe speed to 60mm/min for accuracy - adjust F parameter as required 5 | 6 | ;define some variables to store readings 7 | 8 | var NumTests=10 ; modify this value to define number of tests 9 | 10 | ; Do not change below this line 11 | var RunningTotal=0 12 | var Average=0 13 | var Lowest=0 14 | var Highest=0 15 | 16 | ; If the printer hasn't been homed, home it 17 | if !move.axes[0].homed || !move.axes[1].homed || !move.axes[2].homed 18 | G28 19 | else 20 | G1 X{(move.axes[0].min + move.axes[0].max)/2} Y{(move.axes[1].min + move.axes[1].max)/2} F3600 ; move nozzle to centre of bed 21 | G1 Z{sensors.probes[1].diveHeights[0]} F360 ; if axes homed move to dive height 22 | 23 | M561 ; clear any bed transform 24 | 25 | M290 R0 S0 ; clear babystepping 26 | 27 | M564 S0 H0 ; Allow movement beyond limits 28 | 29 | ;ensure you have room for the probe 30 | if move.axes[2].machinePosition < sensors.probes[1].diveHeights[0] 31 | G1 Z{sensors.probes[1].diveHeights[0]} 32 | 33 | M568 P0 S{global.nozzleProbeTemperature} A2 ; Set the nozzle temperature to 175 degrees 34 | M116 P0 ; Wait for the nozzle to reach temperature 35 | 36 | ; Jog head to position 37 | M291 P"Jog nozzle to touch bed" R"Set nozzle to zero" S3 Z1 38 | 39 | G92 Z0 ; set Z position to zero 40 | M291 P"Press OK to begin" R"Ready?" S3; 41 | 42 | ; Move probe over top of same point that nozzle was when zero was set 43 | G1 Z{sensors.probes[1].diveHeights[0]}; lift head 44 | G1 X235 Y355.6 F1800 45 | 46 | echo "Current probe offset = " ^ sensors.probes[1].triggerHeight ^ "mm" 47 | 48 | ; carry out 10 probes (or what is set in NumTests variable) 49 | 50 | while iterations < var.NumTests 51 | G1 Z{sensors.probes[1].diveHeights[0]} ; move to dive height 52 | G30 K1 S-1 53 | M118 P2 S{"Test # " ^ (iterations+1) ^ " Triggered @ " ^ move.axes[2].machinePosition ^ "mm"} ; send trigger height to Paneldue console 54 | M118 P3 S{"Test # " ^ (iterations+1) ^ " Triggered @ " ^ move.axes[2].machinePosition ^ "mm"} ; send trigger height to DWC console 55 | 56 | if iterations == 0 57 | set var.Lowest={move.axes[2].machinePosition} ; set the new lowest reading to first probe height 58 | set var.Highest={move.axes[2].machinePosition} ; set the new highest reading to first probe height 59 | 60 | if move.axes[2].machinePosition < var.Lowest 61 | set var.Lowest={move.axes[2].machinePosition} ; set the new lowest reading 62 | ;M118 P3 S{"new low reading = " ^ move.axes[2].machinePosition} ; send trigger height to DWC console 63 | G4 S0.3 64 | if move.axes[2].machinePosition > var.Highest 65 | set var.Highest={move.axes[2].machinePosition} ; set the new highest reading 66 | 67 | ;M118 P3 S{"new high reading = " ^ move.axes[2].machinePosition} ; send trigger height to DWC console 68 | G4 S0.3 69 | set var.RunningTotal={var.RunningTotal + move.axes[2].machinePosition} ; set new running total 70 | ;M118 P3 S{"running total = " ^ var.RunningTotal} ; send running total to DWC console 71 | G4 S0.5 72 | set var.Average = {(var.RunningTotal - var.Highest - var.Lowest) / (var.NumTests - 2)} ; calculate the average after discarding th ehigh & low reading 73 | 74 | ;M118 P3 S{"running total = " ^ var.RunningTotal} ; send running total to DWC console 75 | ;M118 P3 S{"low reading = " ^ var.Lowest} ; send low reading to DWC console 76 | ;M118 P3 S{"high reading = " ^ var.Highest} ; send high reading to DWC console 77 | M118 P2 S{"Average excluding high and low reading = " ^ var.Average} ; send average to PanelDue console 78 | M118 P3 S{"Average excluding high and low reading = " ^ var.Average} ; send average to DWC console 79 | 80 | ;suggest new G31 values 81 | echo "suggested edit for G31 K1 in config.g if not saved to config-overide.g" 82 | echo "change G1 Z parameter from Z" ^ sensors.probes[1].triggerHeight 83 | echo "to Z" ^ var.Average 84 | 85 | G31 K1 P500 Z{var.Average} ; set Z probe offset to the average reading 86 | M564 S1 H1 ; Reset limits 87 | M558 K1 F{var.ProbeSpeedHigh}:{var.ProbeSpeedLow} ; reset probe speed to original 88 | G1 Z{sensors.probes[1].diveHeights[0]} F360 ; move head back to dive height 89 | 90 | M291 P{"Trigger height set to : " ^ sensors.probes[1].triggerHeight ^ " OK to save to config-overide.g, cancel to use until next restart"} R"Finished" S3 91 | M500 P31 ; optionally save result to config-overide.g 92 | 93 | M568 P0 S0 A0 ; Turn the hotend off -------------------------------------------------------------------------------- /Config/macros/1 - Probe trigger height.g: -------------------------------------------------------------------------------- 1 | var ProbeSpeedHigh = sensors.probes[0].speeds[0] ; save currently configured speed for fast probe 2 | var ProbeSpeedLow = sensors.probes[0].speeds[1] ; save currently configured speed for slow probe 3 | G32 4 | 5 | M558 F60 ; reduce probe speed to 60mm/min for accuracy - adjust F parameter as required 6 | 7 | ;define some variables to store readings 8 | 9 | var NumTests=10 ; modify this value to define number of tests 10 | 11 | ; Do not change below this line 12 | var RunningTotal=0 13 | var Average=0 14 | var Lowest=0 15 | var Highest=0 16 | 17 | if !move.axes[0].homed || !move.axes[1].homed || !move.axes[2].homed ; if the printer hasn't been homed, home it 18 | G28 19 | else 20 | G1 Z{sensors.probes[0].diveHeights[0]} F360 ; if axes homed move to dive height 21 | 22 | G32 ; carry out gantry levelling 23 | 24 | M561 ; clear any bed transform 25 | 26 | M290 R0 S0 ; clear babystepping 27 | 28 | G1 X{(move.axes[0].min + move.axes[0].max)/2} Y{(move.axes[1].min + move.axes[1].max)/2} F3600 ; move nozzle to centre of bed 29 | 30 | M564 S0 H0 ; Allow movement beyond limits 31 | 32 | M568 P0 S{global.nozzleProbeTemperature} A2 ; Set the nozzle temperature to 175 degrees 33 | M116 P0 ; Wait for the nozzle to reach temperature 34 | 35 | ;ensure you have room for the probe 36 | if move.axes[2].machinePosition < sensors.probes[0].diveHeights[0] 37 | G1 Z{sensors.probes[0].diveHeights[0]} 38 | 39 | ; Jog head to position 40 | M291 P"Jog nozzle to touch bed" R"Set nozzle to zero" S3 Z1 41 | 42 | G92 Z0 ; set Z position to zero 43 | 44 | M568 P0 S0 A0 ; Turn the hotend off 45 | 46 | M291 P"Press OK to begin" R"Ready?" S3; 47 | 48 | ; Move probe over top of same point that nozzle was when zero was set 49 | G1 Z{sensors.probes[0].diveHeights[0]}; lift head 50 | G1 X{move.axes[0].machinePosition - sensors.probes[0].offsets[0]} Y{move.axes[1].machinePosition - sensors.probes[0].offsets[1]} F1800 51 | 52 | echo "Current probe offset = " ^ sensors.probes[0].triggerHeight ^ "mm" 53 | 54 | ; carry out 10 probes (or what is set in NumTests variable) 55 | 56 | while iterations < var.NumTests 57 | G1 Z{sensors.probes[0].diveHeights[0]} ; move to dive height 58 | G30 S-1 59 | M118 P2 S{"Test # " ^ (iterations+1) ^ " Triggered @ " ^ move.axes[2].machinePosition ^ "mm"} ; send trigger height to Paneldue console 60 | M118 P3 S{"Test # " ^ (iterations+1) ^ " Triggered @ " ^ move.axes[2].machinePosition ^ "mm"} ; send trigger height to DWC console 61 | 62 | if iterations == 0 63 | set var.Lowest={move.axes[2].machinePosition} ; set the new lowest reading to first probe height 64 | set var.Highest={move.axes[2].machinePosition} ; set the new highest reading to first probe height 65 | 66 | if move.axes[2].machinePosition < var.Lowest 67 | set var.Lowest={move.axes[2].machinePosition} ; set the new lowest reading 68 | ;M118 P3 S{"new low reading = " ^ move.axes[2].machinePosition} ; send trigger height to DWC console 69 | G4 S0.3 70 | if move.axes[2].machinePosition > var.Highest 71 | set var.Highest={move.axes[2].machinePosition} ; set the new highest reading 72 | 73 | ;M118 P3 S{"new high reading = " ^ move.axes[2].machinePosition} ; send trigger height to DWC console 74 | G4 S0.3 75 | set var.RunningTotal={var.RunningTotal + move.axes[2].machinePosition} ; set new running total 76 | ;M118 P3 S{"running total = " ^ var.RunningTotal} ; send running total to DWC console 77 | G4 S0.5 78 | set var.Average = {(var.RunningTotal - var.Highest - var.Lowest) / (var.NumTests - 2)} ; calculate the average after discarding th ehigh & low reading 79 | 80 | ;M118 P3 S{"running total = " ^ var.RunningTotal} ; send running total to DWC console 81 | ;M118 P3 S{"low reading = " ^ var.Lowest} ; send low reading to DWC console 82 | ;M118 P3 S{"high reading = " ^ var.Highest} ; send high reading to DWC console 83 | M118 P2 S{"Average excluding high and low reading = " ^ var.Average} ; send average to PanelDue console 84 | M118 P3 S{"Average excluding high and low reading = " ^ var.Average} ; send average to DWC console 85 | 86 | ;suggest new G31 values 87 | echo "suggested edit for G31 in config.g if not saved to config-overide.g" 88 | echo "change G1 Z parameter from Z" ^ sensors.probes[0].triggerHeight 89 | echo "to Z" ^ var.Average 90 | 91 | G31 P500 Z{var.Average} ; set Z probe offset to the average reading 92 | M564 S1 H1 ; Reset limits 93 | M558 F{var.ProbeSpeedHigh}:{var.ProbeSpeedLow} ; reset probe speed to original 94 | G1 Z{sensors.probes[0].diveHeights[0]} F360 ; move head back to dive height 95 | 96 | M291 P{"Trigger height set to : " ^ sensors.probes[0].triggerHeight ^ " OK to save to config-overide.g, cancel to use until next restart"} R"Finished" S3 97 | M500 P31 ; optionally save result to config-overide.g -------------------------------------------------------------------------------- /Config/macros/MaxSpeedAndAcceleration.g: -------------------------------------------------------------------------------- 1 | ; parameters 2 | ; A = maximum speed in mm/s 3 | ; B = maximum acceleration in mm/s2 4 | ; C = iterations 5 | ; D = Bound Size in mm 6 | ; E = smallPatternSize in mm 7 | 8 | ; Set up local variables 9 | var speedXCurrent = move.axes[0].speed 10 | var speedYCurrent = move.axes[1].speed 11 | var accelerationXCurrent = move.axes[0].acceleration 12 | var accelerationYCurrent = move.axes[1].acceleration 13 | var speedX = 0 14 | var speedY = 0 15 | var accelerationX = 0 16 | var accelerationY = 0 17 | var macroIterations = 0 18 | var bound = 0 19 | var smallPatternSize = 0 20 | var xPositionStart = 0 21 | var yPositionStart = 0 22 | var xPositionEnd = 0 23 | var yPositionEnd = 0 24 | var xEndstopHigh = sensors.endstops[0].highEnd 25 | var yEndstopHigh = sensors.endstops[1].highEnd 26 | var xPositionDifference = 0 27 | var yPositionDifference = 0 28 | var xMMPerFullStep = 0 29 | var yMMPerFullStep = 0 30 | 31 | if !exists(param.A) 32 | set var.speedX = move.axes[0].speed / 60 33 | set var.speedY = move.axes[1].speed / 60 34 | else 35 | set var.speedX = param.A 36 | set var.speedY = param.A 37 | 38 | if !exists(param.B) 39 | set var.accelerationX = move.axes[0].acceleration 40 | set var.accelerationY = move.axes[1].acceleration 41 | else 42 | set var.accelerationX = param.B 43 | set var.accelerationY = param.B 44 | 45 | if !exists(param.C) 46 | set var.macroIterations = 5 47 | else 48 | set var.macroIterations = param.C 49 | 50 | if !exists(param.D) 51 | set var.bound = 20 52 | else 53 | set var.bound = param.D 54 | 55 | if !exists(param.E) 56 | set var.smallPatternSize = 20 57 | else 58 | set var.smallPatternSize = param.E 59 | 60 | ; Large Pattern 61 | var x_min = move.axes[0].min + var.bound 62 | var x_max = move.axes[0].max - var.bound 63 | var y_min = move.axes[1].min + var.bound 64 | var y_max = move.axes[1].max - var.bound 65 | 66 | ; Small Pattern at Centre 67 | var x_centre = ( move.axes[0].max - move.axes[0].min ) / 2 68 | var y_centre = ( move.axes[1].max - move.axes[1].min ) / 2 69 | 70 | ; Set Small Pattern Box Around Centre Point 71 | var x_centre_min = var.x_centre - (var.smallPatternSize/2) 72 | var x_centre_max = var.x_centre + (var.smallPatternSize/2) 73 | var y_centre_min = var.y_centre - (var.smallPatternSize/2) 74 | var y_centre_max = var.y_centre + (var.smallPatternSize/2) 75 | 76 | M118 P0 S"Starting Speed Test" 77 | 78 | ; Home and get position for comparison later 79 | G28 80 | G32 81 | G90 82 | if var.xEndstopHigh 83 | G0 X{move.axes[0].max - 1} F1800 84 | else 85 | G0 X{move.axes[0].min + 1} F1800 86 | if var.yEndstopHigh 87 | G0 Y{move.axes[1].max - 1} F1800 88 | else 89 | G0 Y{move.axes[1].min + 1} F1800 90 | M400 91 | G4 S1 92 | set var.xPositionStart = move.axes[0].machinePosition 93 | set var.yPositionStart = move.axes[1].machinePosition 94 | 95 | echo "Start X Position is " ^ var.xPositionStart 96 | echo "Start Y Position is " ^ var.yPositionStart 97 | 98 | ; Set New Limits 99 | ; Speeds 100 | M203 X{var.speedX*60} Y{var.speedY*60} 101 | ; Accelerations 102 | M201 X{var.accelerationX} Y{var.accelerationY} 103 | 104 | ; Go to Start Position 105 | G0 X{var.x_min} Y{var.y_min} Z{var.bound + 10} F{var.speedX*60} 106 | 107 | ; Movement 108 | while iterations < var.macroIterations 109 | 110 | ; Large Pattern 111 | ; Diagonals 112 | G0 X{var.x_min} Y{var.y_min} F{var.speedX*60} 113 | G0 X{var.x_max} Y{var.y_max} F{var.speedX*60} 114 | G0 X{var.x_min} Y{var.y_min} F{var.speedX*60} 115 | G0 X{var.x_max} Y{var.y_min} F{var.speedX*60} 116 | G0 X{var.x_min} Y{var.y_max} F{var.speedX*60} 117 | G0 X{var.x_max} Y{var.y_min} F{var.speedX*60} 118 | 119 | ; Box 120 | G0 X{var.x_min} Y{var.y_min} F{var.speedX*60} 121 | G0 X{var.x_min} Y{var.y_max} F{var.speedX*60} 122 | G0 X{var.x_max} Y{var.y_max} F{var.speedX*60} 123 | G0 X{var.x_max} Y{var.y_min} F{var.speedX*60} 124 | 125 | ; Small Pattern 126 | ; Diagonals 127 | G0 X{var.x_centre_min} Y{var.y_centre_min} F{var.speedX*60} 128 | G0 X{var.x_centre_max} Y{var.y_centre_max} F{var.speedX*60} 129 | G0 X{var.x_centre_min} Y{var.y_centre_min} F{var.speedX*60} 130 | G0 X{var.x_centre_max} Y{var.y_centre_min} F{var.speedX*60} 131 | G0 X{var.x_centre_min} Y{var.y_centre_max} F{var.speedX*60} 132 | G0 X{var.x_centre_max} Y{var.y_centre_min} F{var.speedX*60} 133 | 134 | ; Box 135 | G0 X{var.x_centre_min} Y{var.y_centre_min} F{var.speedX*60} 136 | G0 X{var.x_centre_min} Y{var.y_centre_max} F{var.speedX*60} 137 | G0 X{var.x_centre_max} Y{var.y_centre_max} F{var.speedX*60} 138 | G0 X{var.x_centre_max} Y{var.y_centre_min} F{var.speedX*60} 139 | 140 | ; Restore Limits 141 | ; Speeds 142 | M203 X{var.speedXCurrent} Y{var.speedYCurrent} 143 | ; Accelerations 144 | M201 X{var.accelerationXCurrent} Y{var.accelerationYCurrent} 145 | 146 | ; Go back to 1mm from endstops and measure distance to endstop for Comparison 147 | G90 148 | if var.xEndstopHigh 149 | G0 X{move.axes[0].max - 1} F1800 150 | M400 151 | G4 S1 152 | G91 153 | G1 H4 X{move.axes[0].max} F60 154 | G90 155 | M400 156 | G4 S1 157 | set var.xPositionEnd = move.axes[0].machinePosition - 1 158 | else 159 | G0 X{move.axes[0].min + 1} F1800 160 | M400 161 | G4 S1 162 | G91 163 | G1 H4 X{-move.axes[0].max} F60 164 | G90 165 | M400 166 | G4 S1 167 | set var.xPositionEnd = move.axes[0].machinePosition + 1 168 | if var.yEndstopHigh 169 | G0 Y{move.axes[1].max - 1} F1800 170 | M400 171 | G4 S1 172 | G91 173 | G1 H4 Y{move.axes[1].max} F60 174 | M400 175 | G4 S1 176 | set var.yPositionEnd = move.axes[1].machinePosition - 1 177 | else 178 | G0 Y{move.axes[1].min + 1} F1800 179 | M400 180 | G4 S1 181 | G91 182 | G1 H4 Y{-move.axes[1].max} F60 183 | M400 184 | G4 S1 185 | set var.yPositionEnd = move.axes[1].machinePosition + 1 186 | 187 | echo "End X Position is " ^ var.xPositionEnd 188 | echo "End Y Position is " ^ var.yPositionEnd 189 | set var.xPositionDifference = abs(var.xPositionStart - var.xPositionEnd) 190 | set var.yPositionDifference = abs(var.yPositionStart - var.yPositionEnd) 191 | 192 | echo "X difference is " ^ var.xPositionDifference 193 | echo "Y difference is " ^ var.yPositionDifference 194 | 195 | set var.xMMPerFullStep = (1 / move.axes[0].stepsPerMm) + (1 / move.axes[0].stepsPerMm / move.axes[0].microstepping.value) 196 | set var.yMMPerFullStep = (1 / move.axes[1].stepsPerMm) + (1 / move.axes[1].stepsPerMm / move.axes[1].microstepping.value) 197 | 198 | if var.xPositionDifference >= var.xMMPerFullStep 199 | M118 P0 S"There has been some skipping detected on the X axis. Please lower your acceleration or speed and test again" 200 | else 201 | M118 P0 S"There has been no skipping detected on the X axis" 202 | 203 | if var.yPositionDifference >= var.yMMPerFullStep 204 | M118 P0 S"There has been some skipping detected on the Y axis. Please lower your acceleration or speed and test again" 205 | else 206 | M118 P0 S"There has been no skipping detected on the Y axis" -------------------------------------------------------------------------------- /Config/sys/start_after_delay.g: -------------------------------------------------------------------------------- 1 | ; start_after_delay.g 2 | ; should be called from slicer start gcode or start.g BEFORE any heating actions 3 | ; Accepts four parameters 4 | 5 | ; X = a testing parameter to allow early exit after X loops 6 | ; S = number of minutes to delay 7 | ; H = number of hours to delay 8 | ; H & S times are added to achieve total delay 9 | ; R = start time. Must have the format R"yyyy-mm-ddThh:mm:ss" e.g R"2022-01-04T13:30:00" 10 | ; NOTE: the use of curly braces surrounding time works in DWC but fails in SuperSlicer 11 | ; R{"2022-01-04T16:47:00"} will fail if used in SuperSlicer 12 | ; if R parameter (start time) is passed, H & S are ignored 13 | ; at least one time parameter must be passed 14 | ; e.g 15 | ; M98 P"start_after_delay.g" H4 S20 ; (delay the start of the print for 4 hours 20 minutes) from now 16 | ; M98 P"start_after_delay.g" H1 ; (delay the start of the print for 1 hour) from now 17 | ; M98 P"start_after_delay.g" S10 ; (delay the start of the print for 10 minutes) from now 18 | ; M98 P"start_after_delay.g" R"2022-04-01T06:00:00" ; start the print on 1st April 2022 at 06:00AM 19 | 20 | var LongDelay = 60 ; Delay between message updates if time left is greater than 1 hour 21 | var MediumDelay = 20 ; Delay between message updates if time left is less than 1 hour but greater than 10 minutes 22 | var ShortDelay = 10 ; Delay between message updates if time left less than 10 minutes 23 | ; at less than one minute updates will happen every 5 seconds 24 | ; at less than 10 seconds, updates will happen every second 25 | var BeepFrequencyLow = 1000 ; frequency (low pitch) of beep play every var.ShortDelay when one minute left 26 | var BeepFrequencyHigh = 3000 ; frequency (high pitch) of beep play every var.ShortDelay when ten seconds left 27 | var BeepDuration = 200 ; duration of beep in milliseconds (must be less than one second) - note 1 second will cause constant beep for last 10 seconds 28 | 29 | 30 | ; ************** Don't change below this line ***************** 31 | 32 | ; Create a global variable to allow the process to be cancelled. 33 | 34 | if !exists(global.Cancelled) 35 | global Cancelled = false 36 | 37 | ; NOTE: There will be a delay between setting this global to true and the macro/print cancelling 38 | ; as it may be called during a G4 wait commmand and can't be activated on until that finishes. 39 | ; To use, either send "set global.Cancelled = true" from the command line or a macro, or set up a button with an associated trigger. 40 | ; A separate macro may be hard to execute when the loop timer gets down to 5 or 1 seconds. 41 | 42 | var FileName = "No file selected" 43 | 44 | if !exists(param.X) 45 | if (job.file.fileName = "") || (job.file.fileName=null) 46 | abort "No print in progress" 47 | else 48 | set var.FileName=job.file.fileName 49 | else 50 | if (job.file.fileName!=null) 51 | set var.FileName=job.file.fileName 52 | ;sanity check beep 53 | if var.BeepDuration > 1000 54 | echo "Invalid beep duration - reset to 1/2 second) 55 | set var.BeepDuration = 1000 56 | 57 | ; sanity check default delay times 58 | if (var.ShortDelay < 5) 59 | set var.ShortDelay = 5 60 | if (var.MediumDelay < var.ShortDelay) 61 | set var.MediumDelay = var.ShortDelay 62 | if (var.LongDelay < var.MediumDelay) 63 | set var.LongDelay = var.MediumDelay 64 | 65 | if !exists(param.R) 66 | if !exists(param.H) 67 | if !exists(param.S) 68 | echo "No parameters passed - exiting macro" 69 | M99 70 | var Hours = 0 ; variable for number of whole hours from start time until run time 71 | var Minutes = 0 ; variable for number of whole minutes from start time until run time 72 | var Delay = 10 ; variable for delay between displaying messages 73 | var HoursLeft= 0 ; variable for number of whole hours from current time until run time 74 | var MinutesLeft = 0 ; variable for number of whole minutes from current time until run time 75 | var SecondsLeft = 0 ; variable for number of whole seconds from current time until run time 76 | var StartTime = datetime(state.time) ; variable to hold time when macro first called 77 | var RunTime = datetime(state.time) ; variable to hold time when macro will end and print will run 78 | 79 | 80 | if exists(param.R) 81 | set var.StartTime = datetime(param.R) 82 | set var.StartTime = var.StartTime - state.time 83 | set var.RunTime = state.time + var.StartTime 84 | set var.Hours = floor(var.StartTime / 3600) ; calculate number of whole hours till start time 85 | set var.Minutes = floor(var.StartTime/60)-(var.Hours*60) ; calculate number of whole minutes till start time 86 | else 87 | if exists(param.H) 88 | set var.Hours = param.H 89 | if exists(param.S) 90 | set var.Minutes = param.S 91 | set var.StartTime = state.time + var.Hours*60*60 + var.Minutes*60 92 | set var.RunTime = var.StartTime 93 | 94 | 95 | var Loops = 0 ; used if a testing parameter X is passed in order to exit after number of loops has expired 96 | 97 | echo "Print start time is " ^ var.RunTime 98 | 99 | while state.time < var.RunTime 100 | if exists(global.Cancelled) 101 | if global.Cancelled = true 102 | M291 P"Operation has been cancelled" S0 T3 103 | G4 S3 104 | abort "Deferred print cancelled." 105 | 106 | if exists(global.soakTimeOverride) 107 | if global.soakTimeOverride = true 108 | M291 P"Soak Time Overriden" S0 T3 109 | break 110 | 111 | 112 | if exists(param.X) 113 | set var.Loops = var.Loops + 1 114 | set var.HoursLeft = floor((var.RunTime - state.time )/60/60) 115 | set var.MinutesLeft = floor((var.RunTime - state.time)/60)-(var.HoursLeft*60) 116 | set var.SecondsLeft = mod((var.RunTime - state.time),3600)-(var.MinutesLeft*60) 117 | if var.RunTime - state.time > 3600 118 | set var.Delay = var.LongDelay 119 | else 120 | set var.Delay = var.MediumDelay 121 | 122 | if (var.RunTime - state.time) > 600 123 | M291 R"Soak Time" T{var.Delay} S1 P{var.HoursLeft ^ " hrs : " ^ var.MinutesLeft ^ " mins"} 124 | G4 S{var.Delay} 125 | elif (var.RunTime - state.time) > 60 126 | set var.Delay = var.ShortDelay 127 | M291 R"Soak Time" T{var.Delay} S1 P{var.HoursLeft ^ " hrs : " ^ var.MinutesLeft ^ " mins : " ^ var.SecondsLeft ^ " secs"} 128 | G4 S{var.Delay} 129 | elif (var.RunTime - state.time) > 10 130 | set var.Delay = 5 131 | M291 R"Print Starting in..." T{var.Delay} S1 P{floor(var.RunTime - state.time) ^ " seconds"} 132 | M300 S{var.BeepFrequencyLow} P{var.BeepDuration} 133 | G4 S{var.Delay} 134 | else 135 | set var.Delay = 1 136 | M291 R"Print Starting in..." T{var.Delay} S0 P{floor(var.RunTime - state.time) ^ " seconds"} 137 | M300 S{var.BeepFrequencyHigh} P{var.BeepDuration} 138 | G4 S{var.Delay} 139 | if exists(param.X) && (var.Loops = param.X) 140 | break 141 | M118 S"Starting Print after Soak Time" 142 | M300 S{floor(var.BeepFrequencyHigh * 1.2)} P1000 143 | G4 S2 -------------------------------------------------------------------------------- /Config/menu/README.md: -------------------------------------------------------------------------------- 1 | # Ultimate Duet Menu System 2 | 3 | ![Menu While Printing](https://user-images.githubusercontent.com/61329420/76150822-5ff00c80-607c-11ea-942c-f297da326593.jpg) 4 | 5 | [Here's a video giving a tour of the menu.](https://youtu.be/9U0oqMW-FwY) I'm warning you - after watching this it will be obvious why I'm 6 | a programmer and not a Youtuber! :smile: 7 | 8 | 9 | ## An attempt to make the best set of menu files for a 12864 display. 10 | There are a few menu sets available for a Duet with a connected 12864 display, but many of them 11 | suffer from depreciated commands, bad coding practices, or simply a lack of functionality! 12 | 13 | Therefore, I attempted to make an "ultimate" menu system that can be used to completely control the printer 14 | in an event of a network outage or similar problem. As a print farm owner, my printers can't quit 15 | when the wifi has a glitch! 16 | 17 | I'm quite satisfied with the result, and while not perfect, I think it makes good use of the available 18 | menu functionality. I decided to share it with the 3D printing community in hopes that someone else can benefit 19 | from it as well. 20 | 21 | These files are written for a single extruder, cartesian 3D printer with a heated bed. This means there's 22 | one heater and extruder for the nozzle and one heater for the bed. It's also designed for a cooling fan blowing on the 23 | printed part, which is standard on most printers. 24 |
25 |
26 | 27 | ## What are these files and how do I use them? 28 | One of the Duet Maestro's greatest advantages is something called the DWC, or Duet Web Control. 29 | This network interface offers full control of the printer from a remote location, making it incredibly 30 | handy when you have your printers in another room like I do. However, all networks have glitches every 31 | once in a while, and it's really helpful to have a screen mounted on the printer for quick adjustments. 32 | 33 | The solution to this is to buy a "Reprap Discount 12864 Display." They're quite cheap at about $15 USD, 34 | and very easy to set up if you buy the genuine version. 35 | 36 | The two cables from the display plug into the Maestro, simply match up the names beside the plugs. (Note that 37 | the Maestro is currently the only Duet board capable of running these displays. Check into a "PanelDue" if 38 | you need a display on a different board.) 39 | 40 | To configure the board with this new display, just add `M918 P1 E-4 F2000000` to your configuration file. 41 | Your printer now knows it has a connected display, so the next step is to tell it what to display! That's 42 | where these files come in - they tell the printer what to put where. Compress them into a ZIP folder, or 43 | download it from the [Github Releases Page](https://github.com/jadonmmiller/UltimateDuetMenuSystem/releases) 44 | page, and upload it to your printer via the blue "Upload" button on the display tab of the web interface. 45 | That should be all that's needed for a basic setup--enjoy your new display! 46 |
47 |
48 | 49 | ## Key Features 50 | - Print files from the external SD card (Not supported in any other known menu system) 51 | **Note:** There was a bug in firmware versions prior to 3.01-RC2, so you must use that version or newer to use the external SD card. 52 | - Control Speed, Extrusion, Babystepping, Fans, and Heaters all from the homepage 53 | - Supports running custom macros from the /macros folder on the main SD card 54 | - Easy manual and automatic bed leveling 55 | - Deploy and Retract a Z Probe using the native commands. 56 | - Allows control of the power supply using `M80` and `M81` commands 57 | - Easily Customizable 58 |
59 |
60 | 61 | ## Menu Structure 62 | The main overview screen shows the most-used settings, with an option to scroll right for more print settings. 63 | (speed, extrusion, and baby-stepping) The menu offers options to move axis, disable motors, control the printer, 64 | run macros, and many other features! 65 |
66 |
67 | 68 | ## What you might want to change 69 | While these menu files are a good starting point, some things will need changed. Namely, the fan and 70 | heater numbers, as well as a few gcode scripts for things such as loading and unloading filament. 71 | Here's a list: 72 | 73 | - File main - Heater and fan numbers may need to be changed. By default, the bed is heater 0, the extruder 74 | is heater 1, and the print cooling fan is fan 0. 75 | 76 | - File preheat - Heater numbers may need to be changed here as well. You can also change the preset 77 | temperatures. The instructions are in the file. 78 | 79 | - File moveExtruder - Once again, the temperature display will need to be changed to fit your heater 80 | configuration. 81 | 82 | - File changeFilament - This page shows the hotend temperature as well, and will therefore need updated. 83 | 84 | - Script unload.g - Found in the /scripts folder, this gcode file unloads the filament from your printer. 85 | by default it's set up for a direct-driven E3D V6 hotend with a Bondtech BMG extruder. 86 | 87 | - Script load.g - The same story as the unload file, but to load filament. :) 88 | 89 | - Script autoLevel.g - The menu runs this script to auto-level the bed. Currently it homes all the axis, 90 | then calls G32. 91 | 92 | - Scripts goToLevelPoint1.g, etc. - These scripts are used in the manual leveling procedure and should 93 | move the head over one leveling point (likely a leveling screw) per file. 94 |
95 |
96 | 97 | ## Features waiting on firmware compatability 98 | These are features I'd like to add to the display system but aren't yet available in the firmware. The 99 | creator of the Duet (David Crocker) told me that he plans on adding support for displaying anything in 100 | the object model soon, so these should be possible in the near future! 101 | 102 | - Only show SD cards when they're mounted (Supported for the internal card, but not the external yet.) 103 | 104 | - Show print estimations based on the slicer 105 | 106 | - Show the elapsed print time 107 |
108 |
109 | 110 | ## Inspiration 111 | I owe a big thank you to Github user @tinkerlifeprojects. I really liked his menu system and used the 112 | basic framework to write mine. I also want to thank @mudcruzr, as I used some ideas from his menus as 113 | well. 114 | 115 | I had trouble finding menu systems contributed by other users, so here's a list of some of the other 116 | currently available files: 117 | 118 | [Tinkerlifeproject's TinkerLCD](https://github.com/tinkerlifeprojects/DUET3D_12864LCD_MenuFiles) 119 | 120 | [Mudcruzr's LCD files](https://github.com/mudcruzr/Duet-Maestro-12864-Menu-Files) 121 | 122 | [Sidic101's improvements on Mudcruzr's menu](https://github.com/Sidic101/Duet-Maestro-12864-Menu-Files) 123 |
124 |
125 | 126 | ## Contributing 127 | I tried to make these files the best out there, but they're by no means perfect! Please feel free to suggest 128 | any changes or features that you think would be helpful. Thanks! 129 | -------------------------------------------------------------------------------- /Config/sys/config.g: -------------------------------------------------------------------------------- 1 | ;#################### Version ########################### 2 | ;The overall version of this "improved" version is 1.6.4 3 | 4 | ;#################### General preferences ############### 5 | G90 ; send absolute coordinates... 6 | M83 ; ...but relative extruder moves 7 | M550 P"Troodon 2" ; set printer name 8 | M669 K1 ; select CoreXY mode 9 | 10 | ;#################### Network ########################### 11 | M552 S1 ; enable network 12 | M586 P0 S1 ; enable HTTP 13 | M586 P1 S0 ; disable FTP 14 | M586 P2 S0 ; disable Telnet 15 | 16 | ;#################### Axis Mapping ###################### 17 | ; --- drive map --- 18 | ; _______ 19 | ; | 3 | 6 | 20 | ; | ----- | 21 | ; | 4 | 5 | 22 | ; ------- 23 | ; front 24 | M584 X0 Y1 Z4:3:6:5 E2 ; set drive mapping 25 | 26 | ;#################### Drives ############################ 27 | M569 P0 S1 ; physical drive 0 goes forwards using default driver timings 28 | M569 P1 S1 ; physical drive 1 goes forwards using default driver timings 29 | M569 P2 S1 ; physical drive 2 goes forwards using default driver timings 30 | M569 P3 S0 ; physical drive 3 goes forwards using default driver timings 31 | M569 P4 S1 ; physical drive 4 goes forwards using default driver timings 32 | M569 P5 S0 ; physical drive 5 goes forwards using default driver timings 33 | M569 P6 S1 ; physical drive 6 goes forwards using default driver timings 34 | M350 X16 Y16 Z16 E16 I1 ; configure microstepping with interpolation 35 | M92 X80.00 Y80.00 Z400.00 ; set steps per mm 36 | M92 E417.00 ; Stock steps per mm 37 | ;M92 E710.00 ; SB steps per mm. Uncomment if using Formbot SB kit and comment out line above 38 | M566 X600 Y600 Z600 E600 ; maximum instantaneous speed changes (mm/min) (jerk) 39 | M203 X30000 Y30000 Z4000 E5000 ; maximum speeds (mm/min) 40 | M201 X2000 Y2000 Z650 E3200 ; accelerations 41 | M906 X1600 Y1600 Z1600 I30 ; set motor currents (mA) and motor idle factor in per cent 42 | M906 E640 ; Stock motor current 43 | ;M906 E800 ; SB Motor Current. Uncomment if using Formbot SB kit and comment out line above 44 | M84 S30 ; Set idle timeout 45 | 46 | ;#################### Axis Limits ####################### 47 | M208 X0 Y2 Z0 S1 ; set axis minima 48 | M208 X355 Y357 Z320 S0 ; set axis maxima 49 | M671 X-50:-50:405:405 Y-75:355:355:-75 S20 ; set gantry pivot points 50 | 51 | ;#################### Endstops ########################## 52 | M574 X2 S1 P"xstop" ; configure switch-type (e.g. microswitch) endstop for low end on X via pin xstop 53 | M574 Y2 S1 P"ystop" ; configure switch-type (e.g. microswitch) endstop for low end on Y via pin ystop 54 | 55 | ;#################### Print Head Probe ################## 56 | M558 K0 P5 C"probe" T12000 F300:120 H10 A10 S0.01 ; configure the probe on the print head 57 | G31 K0 P500 X0 Y25 Z3 ; set Z probe X, Y and Z offsets 58 | M557 X35:310 Y35:310 S55 ; define mesh grid 59 | 60 | ;#################### Nozzle Probe ###################### 61 | M558 K1 P8 C"zstop" T18000 F180 H5 A10 S0.0025 R0 ; configure the probe used by autoz 62 | G31 K1 P500 X0 Y0 Z3 ; set autoZ probe X, Y and Z offsets 63 | 64 | ;#################### Heaters ########################### 65 | M308 S0 P"bedtemp" Y"thermistor" T100000 B3950 ; configure sensor 0 as thermistor on pin bedtemp 66 | M950 H0 C"bed" T0 Q10 ; create bed heater output on bed and map it to sensor 0 67 | M140 H0 ; map heated bed to heater 0 68 | M143 H0 S130 ; set temperature limit for heater 0 to 125C 69 | 70 | M308 S1 P"e0temp" Y"pt1000" ; configure sensor 1 as thermistor on pin e0temp 71 | M950 H1 C"e0heat" T1 ; create nozzle heater output on e0heat and map it to sensor 1 72 | M307 H1 A517.3 C213.3 D11.1 V24 B0 ; disable bang-bang mode for heater and set PWM limit 73 | M143 H1 S460 ; set temperature limit for heater 1 to 460C 74 | 75 | M308 S10 Y"mcu-temp" A"MCU" ; defines sensor 10 as MCU temperature sensor 76 | 77 | ;#################### Fans ############################## 78 | M950 F0 C"fan1" Q500 ; create fan 0 on pin fan0 and set its frequency 79 | M106 P0 S0 H-1 C"Part Cooling" ; set fan 0 value. Thermostatic control is turned ON 80 | M950 F1 C"fan0" Q500 ; create fan 1 on pin out8 and set its frequency 81 | M106 P1 S1 H1 T50 C"Hotend Fan" ; set fan 1 value. Thermostatic control is turned off 82 | M950 F2 C"fan2" Q40 ; create fan 2 on pin out8 and set its frequency 83 | M106 P2 S0 H-1 C"Chamber Fan" ; set fan 2 value. Thermostatic control is turned off 84 | M950 F3 C"fan3" Q500 ; create fan 3 on pin fan0 and set its frequency 85 | M106 P3 S0 H-1 C"Electronics Fan" ; set fan 3 value. Thermostatic control is turned ON 86 | M950 F4 C"fan4" Q500 ; create fan 4 on pin out8 and set its frequency 87 | M106 P4 S0 H-1 C"LED" ; set fan 4 value. Thermostatic control is turned off 88 | 89 | ;#################### Tools ############################# 90 | M563 P0 D0 H1 F0 ; define tool 0 91 | G10 P0 X0 Y0 Z0 ; set tool 0 axis offsets 92 | G10 P0 R0 S0 ; set initial tool 0 active and standby temperatures to 0C 93 | 94 | ;#################### Filament Sensor ################### 95 | M591 D0 P1 C"e0stop" S1 ; define the filament sensor for D0 96 | 97 | ;#################### Firmware Retraction ############### 98 | M207 S0.5 F1800 Z0.2 ; 0.5mm retraction, 0.2mm Z hop 99 | 100 | ;#################### Pressure Advance ################## 101 | M572 D0 S0.045 ; define pressure advance for D0 102 | 103 | ;#################### 12864 Screen ###################### 104 | M98 P"screen.g" ; run screen.g 105 | 106 | ;#################### Load Settings from Config-override 107 | M501 ; load overrides from config-override.g 108 | 109 | ;#################### Globals ########################### 110 | M98 P"globals.g" ; initialize global variables 111 | 112 | T0 ; select tool 0 -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Troodon-V2 Updated Config 2 | 3 | This set of config files assumes that the firmware has been updated to at least 3.4.5. 4 | 5 | **WARNING** When using this config, please delete the 2 G31 lines out of your config-override.g and reboot. Then recalibrate your AutoZ and Toolhead Probes 6 | 7 | # Changelog 8 | 9 | # Verion 1.6.4 10 | * change sensors.probes[#].diveHeight to sensors.probes[#].diveHeights[0] 11 | 12 | # Version 1.6.3-1 13 | * config.g add version number 14 | 15 | # Version 1.6.3 16 | * 1 - Probe trigger height.g add G32 after G28 17 | 18 | # Version 1.6.2 19 | *config.g reduce stock motor current as its currently at max rather than 80% of max (thanks ygk3d) 20 | 21 | # Version 1.6.1 22 | * config.g update mesh spacing from mesh.g 23 | * removed mesh.g as interacting with print_area_mesh.g 24 | 25 | # Version 1.6 26 | * save_babystep.g added AutoZ offset and added check to only reset the babystepping value if not printing 27 | * start_print.g added the ability to generate the mesh on print start (thanks ygk3d) 28 | * start_print.g fixed indent warning (thanks ygk3d) 29 | * globals.g added global.generateMesh (thanks ygk3d) and global generatePrintOnlyMesh 30 | * print_area_mesh.g added the capability to probe only the print area (credit to https://github.com/MaikoHermans/RRF-PAM). Make sure both Mesh Globals are enabled 31 | * MaxSpeedAndAcceleration.g added this macro. See [this forum](https://forum.duet3d.com/topic/32433/determining-max-speed-and-acceleration?_=1683805101817) post for usage. 32 | * Updated prusasclicer and cura readme's 33 | * screen.g added colour options (thanks ygk3d) 34 | * Updated BtnCmd layouts with new globals 35 | 36 | # Version 1.5.6 37 | * bed.g adjust probe points as a couple of users had issues with gantry levelling not working 38 | * config.g increase minimum Y by 2mm 39 | * config.g increase jerk 40 | 41 | # Version 1.5.5 42 | * start_print.g fix error with line 24 43 | 44 | # Version 1.5.4 45 | * start_print.g - add check for filament type and only soak if ABS or ASA - If you have more materials where the printer needs to be soaked, upload the print from your slicer and look in the gcode to see what name the filment has been given (the B parameter of the M98 P"start_print.g" line). Add this to the check on line 24 e.g. ("ABS" || "ASA") for ABS+ would become ("ABS" || "ABS+" || "ASA"). 46 | * start_print.g - add check for whether global.soakTime is equal to 0 47 | 48 | # Version 1.5.3 49 | * stop.g fix error with temp check 50 | * Nozzle-Clean.g change Y position by 4mm 51 | 52 | # Version 1.5.2 53 | 54 | * start_print.g make AutoZ controllable by a global 55 | * globals.g added global.useAutoZ 56 | * updated btncmd layout to add useAutoZ 57 | 58 | # Version 1.5.1 59 | 60 | * Nozzle-clean.g add a bit more wait code for temperature 61 | * start_print.g added Nozzle-clean.g and AutoZ.g 62 | * AutoZ.g updated to use global.nozzleProbeTemperature 63 | * cura profile added readme for start and end codes 64 | * Added zip to make it easy to initially upload the new config 65 | * rename "(1)Probe trigger height.g" to "1 - Probe trigger height.g" 66 | * rename "(2)Autoz trigger height.g" to "2 - Autoz trigger height.g" 67 | 68 | # Version 1.5 69 | 70 | * config.g added firmware retraction, increased PA from 0.02 to 0.045, reduced default steps/per mm for extruder to 417 71 | * Renamed some folders to remove spaces 72 | * Added Cura Slicer Profile 73 | * Added some STL files 74 | 75 | # Version 1.4 76 | 77 | * AutoZ.g updated to use global.nozzleProbeTemperature and to allow the macro to be called if heating of the nozzle has already happened 78 | * Globals.g added global.nozzleProbeTemperature and global.Cancelled. Changed soakTime from 900 to 15 as its now in minutes 79 | * Nozzle-clean.g updated to use global.nozzleProbeTemperature and to allow the macro to be called if heating of the nozzle has already happened 80 | * BtnCmd Import file updated to fix colours in dark mode and add global.nozzleProbeTemperature 81 | * screen.g remove redundant X2 82 | * start_print.g changed method of soak delay (Thanks @OwenD from forum.duet3d.com), added way of cancelling print. 83 | * added start_after_delay.g 84 | * stop.g add temp check before retract 85 | * daemon.g fix homing check 86 | * bed.g add turn off mesh levelling and clear babystepping 87 | * homex.g and homey.g updated to check endstop status etc before movement 88 | * added start.g with filament check 89 | * (1)Probe trigger height.g macro - updated to use global.nozzleProbeTemperature 90 | * (2)Autoz trigger height.g macro - updated to use global.nozzleProbeTemperature 91 | * save_babystep.g macro added 92 | 93 | # Version 1.3.1 94 | 95 | * fix variable in stop.g 96 | 97 | ## Version 1.3 98 | 99 | * All firmware files moved into a folder called Config 100 | * config.g Chamber Fan frequency changed from 500 to 40 101 | * config.g Added call to globals.g 102 | * Added globals.g 103 | * Added start_print.g this is used by the slicer profiles to pass parameters through to the firmware. 104 | * Added stop.g which is called at the end of the print. 105 | * Use of BtnCmd to control print parameters. Please see the readme in the BtnCmd folder for instructions. 106 | * Added Prusa Slicer Profile 107 | * removed DWC files 108 | * added 25% and 75% air filtration macros 109 | 110 | ## Version 1.2 111 | 112 | * Add filaments folder 113 | * change screen.g to use bitbanged neopixels and swap the flashing to the button rather than the screen 114 | 115 | ## Version 1.1.2 116 | 117 | * Typo in screen.g 118 | 119 | ## Version 1.1.1 120 | 121 | * Fix typo in pause.g 122 | 123 | ## Version 1.1 124 | 125 | * Add daemon.g file to control electronics bay fan depending on whether X/Y/Z are energised 126 | 127 | ## Version 1 128 | 129 | * The coordinate system has been flipped so 0,0 is now in the front left rather than the back right. All files that use coordinates have been updated accordingly 130 | * AutoZ.g has been updated to set the nozzle temperature to 175 degrees before probing in case of plastic on the nozzle 131 | * Bed.g uses different dive height settings to speed up probing after first pass 132 | * board.txt updated to use the built in pin definitions for the troodon v2 133 | * config.g updated to use pin names rather than pin numbers 134 | * config.g M572 moved to after the extruder is created 135 | * config.g jerk speed and motor currents lowered 136 | * config.g dual probing speeds set for toolhead probe 137 | * config.g Q10 added for bed SSR 138 | * config.g MCU temp added as a sensor 139 | * config.g lights and electronics fan not set to start on boot 140 | * config.g 12864 settings moved to screen.g 141 | * config.g T0 added to end of config 142 | * homeall.g set to use individual homing files 143 | * homex.g and homey.g second pass homing speed reduced 144 | * homez.g now moves to centre of bed to home 145 | * nozzle-clean.g heats up hotend before cleaning 146 | * pause.g retraction increased from 0.5 to 2mm and tool moves to front centre of the machine 147 | * resume.g priming of nozzle increased from 0.5 to 2mm 148 | 149 | # Initial Upgrade Instructions 150 | 151 | Upload the latest stable version of reprapfirmware from [here](https://github.com/gloomyandy/RepRapFirmware/releases/latest/) selecting the asset with firmware-stm32f4-wifi in the name. 152 | Click on the System tab and then the Upload System Files button. 153 | ![Show Settings](./Images/upload.png) 154 | Find the firmware file you downloaded, select it and then click open. 155 | When asked, apply the update. 156 | Upload the latest stable version of DuetWebControl from [here](https://github.com/Duet3D/DuetWebControl/releases/latest/) selecting the asset called DuetWebControl-SD.zip. Make sure that the version number is the same as the firmware file you downloaded above. If it isn't, click on releases and find the correct version. 157 | ![Show Settings](./Images/releases.png) 158 | Like above, click on the System tab and then the Upload System Files button, find the DuetWebControl-SD.zip file and click open. DWC (DuetWebControl) will automatically unzip the files and refresh the page when complete. 159 | Download the config zip file from [here](https://github.com/TeamGloomy/Troodon-V2/releases/latest/). 160 | Like above, click on the System tab and then the Upload System Files button, find the downloaded config zip file and click open. DWC (DuetWebControl) will automatically unzip the files. When asked, restart the machine. 161 | Delete the G31 lines out of config-override.g and rerun the probe and autoz offset macros. 162 | 163 | # Updating an already converted machine 164 | 165 | Either upload the latest release zip file (be aware that this will overwrite any of the files included in the base config) or manually make the adjustments as detailed in each commit. 166 | -------------------------------------------------------------------------------- /Slicer_Profiles/PrusaSlicer/PrusaSlicer_config_bundle.ini: -------------------------------------------------------------------------------- 1 | # generated by PrusaSlicer 2.6.0-alpha4+win64 on 2023-02-25 at 10:50:23 UTC 2 | 3 | [print:0.2mm 0.4nozzle V2 - RRF] 4 | avoid_crossing_curled_overhangs = 0 5 | avoid_crossing_perimeters = 0 6 | avoid_crossing_perimeters_max_detour = 0 7 | bottom_fill_pattern = monotonic 8 | bottom_solid_layers = 5 9 | bottom_solid_min_thickness = 0 10 | bridge_acceleration = 5000 11 | bridge_angle = 0 12 | bridge_flow_ratio = 0.85 13 | bridge_speed = 140 14 | brim_separation = 0 15 | brim_type = outer_only 16 | brim_width = 0 17 | compatible_printers = 18 | compatible_printers_condition = printer_model=~/.*Voron_v2.*/ and nozzle_diameter[0]==0.4 19 | complete_objects = 0 20 | default_acceleration = 4000 21 | dont_support_bridges = 1 22 | draft_shield = disabled 23 | dynamic_overhang_speeds = 25,20,15,15 24 | elefant_foot_compensation = 0.1 25 | enable_dynamic_overhang_speeds = 0 26 | ensure_vertical_shell_thickness = 1 27 | external_perimeter_acceleration = 1000 28 | external_perimeter_extrusion_width = 0.42 29 | external_perimeter_speed = 80 30 | external_perimeters_first = 0 31 | extra_perimeters = 0 32 | extra_perimeters_on_overhangs = 1 33 | extruder_clearance_height = 20 34 | extruder_clearance_radius = 70 35 | extrusion_width = 125% 36 | fill_angle = 45 37 | fill_density = 40% 38 | fill_pattern = grid 39 | first_layer_acceleration = 2000 40 | first_layer_acceleration_over_raft = 0 41 | first_layer_extrusion_width = 140% 42 | first_layer_height = 0.25 43 | first_layer_speed = 30 44 | first_layer_speed_over_raft = 30 45 | fuzzy_skin = none 46 | fuzzy_skin_point_dist = 0.8 47 | fuzzy_skin_thickness = 0.3 48 | gap_fill_enabled = 1 49 | gap_fill_speed = 30 50 | gcode_comments = 0 51 | gcode_label_objects = 0 52 | gcode_resolution = 0.0125 53 | gcode_substitutions = 54 | infill_acceleration = 7000 55 | infill_anchor = 0 56 | infill_anchor_max = 50 57 | infill_every_layers = 1 58 | infill_extruder = 1 59 | infill_extrusion_width = 180% 60 | infill_first = 0 61 | infill_only_where_needed = 0 62 | infill_overlap = 100% 63 | infill_speed = 300 64 | inherits = 0.2mm 0.4nozzle V2 65 | interface_shells = 0 66 | ironing = 0 67 | ironing_flowrate = 15% 68 | ironing_spacing = 0.1 69 | ironing_speed = 15 70 | ironing_type = top 71 | layer_height = 0.2 72 | max_print_speed = 300 73 | max_volumetric_extrusion_rate_slope_negative = 0 74 | max_volumetric_extrusion_rate_slope_positive = 0 75 | max_volumetric_speed = 11 76 | min_bead_width = 85% 77 | min_feature_size = 25% 78 | min_skirt_length = 20 79 | mmu_segmented_region_max_width = 0 80 | notes = TODO: check the size of the extruder and the y-bar clearance. Optimize & test supports. 81 | only_retract_when_crossing_perimeters = 1 82 | ooze_prevention = 0 83 | output_filename_format = [input_filename_base].gcode 84 | overhang_overlap_levels = 60%,40%,20%,0% 85 | overhangs = 1 86 | perimeter_acceleration = 2000 87 | perimeter_extruder = 1 88 | perimeter_extrusion_width = 0.44 89 | perimeter_generator = arachne 90 | perimeter_speed = 150 91 | perimeters = 4 92 | post_process = 93 | print_settings_id = 94 | raft_contact_distance = 0.1 95 | raft_expansion = 1.5 96 | raft_first_layer_density = 90% 97 | raft_first_layer_expansion = 3 98 | raft_layers = 0 99 | resolution = 0 100 | seam_position = rear 101 | single_extruder_multi_material_priming = 1 102 | skirt_distance = 3 103 | skirt_height = 1 104 | skirts = 3 105 | slice_closing_radius = 0.049 106 | slicing_mode = regular 107 | small_perimeter_speed = 80 108 | solid_infill_acceleration = 5000 109 | solid_infill_below_area = 0 110 | solid_infill_every_layers = 0 111 | solid_infill_extruder = 1 112 | solid_infill_extrusion_width = 140% 113 | solid_infill_speed = 200 114 | spiral_vase = 0 115 | staggered_inner_seams = 0 116 | standby_temperature_delta = -5 117 | support_material = 0 118 | support_material_angle = 45 119 | support_material_auto = 1 120 | support_material_bottom_contact_distance = 0 121 | support_material_bottom_interface_layers = -1 122 | support_material_buildplate_only = 0 123 | support_material_closing_radius = 2 124 | support_material_contact_distance = 0.15 125 | support_material_enforce_layers = 0 126 | support_material_extruder = 0 127 | support_material_extrusion_width = 0 128 | support_material_interface_contact_loops = 0 129 | support_material_interface_extruder = 0 130 | support_material_interface_layers = 1 131 | support_material_interface_pattern = rectilinear 132 | support_material_interface_spacing = 0.2 133 | support_material_interface_speed = 100 134 | support_material_pattern = rectilinear 135 | support_material_spacing = 3 136 | support_material_speed = 150 137 | support_material_style = grid 138 | support_material_synchronize_layers = 0 139 | support_material_threshold = 30 140 | support_material_with_sheath = 0 141 | support_material_xy_spacing = 75% 142 | support_tree_angle = 40 143 | support_tree_angle_slow = 25 144 | support_tree_branch_diameter = 2 145 | support_tree_branch_diameter_angle = 5 146 | support_tree_tip_diameter = 0.8 147 | support_tree_top_rate = 30% 148 | thick_bridges = 1 149 | thin_walls = 0 150 | threads = 12 151 | top_fill_pattern = monotonic 152 | top_infill_extrusion_width = 0.44 153 | top_solid_infill_acceleration = 0 154 | top_solid_infill_speed = 100 155 | top_solid_layers = 6 156 | top_solid_min_thickness = 0 157 | travel_speed = 450 158 | travel_speed_z = 0 159 | wall_distribution_count = 1 160 | wall_transition_angle = 10 161 | wall_transition_filter_deviation = 25% 162 | wall_transition_length = 100% 163 | wipe_tower = 0 164 | wipe_tower_bridging = 10 165 | wipe_tower_brim_width = 2 166 | wipe_tower_no_sparse_layers = 0 167 | wipe_tower_rotation_angle = 0 168 | wipe_tower_width = 60 169 | wipe_tower_x = 180 170 | wipe_tower_y = 140 171 | xy_size_compensation = 0 172 | 173 | [filament:Basic ABS @VORON - Copy] 174 | bed_temperature = 110 175 | bridge_fan_speed = 30 176 | compatible_printers = 177 | compatible_printers_condition = printer_model=~/.*Voron.*/ and printer_notes=~/.*E3DV6.*/ 178 | compatible_prints = 179 | compatible_prints_condition = 180 | cooling = 0 181 | disable_fan_first_layers = 3 182 | end_filament_gcode = "" 183 | extrusion_multiplier = 0.924 184 | fan_always_on = 1 185 | fan_below_layer_time = 20 186 | filament_colour = #3A80CA 187 | filament_cooling_final_speed = 3.4 188 | filament_cooling_initial_speed = 2.2 189 | filament_cooling_moves = 4 190 | filament_cost = 20 191 | filament_density = 1.03 192 | filament_deretract_speed = nil 193 | filament_diameter = 1.75 194 | filament_load_time = 0 195 | filament_loading_speed = 28 196 | filament_loading_speed_start = 3 197 | filament_max_volumetric_speed = 11 198 | filament_minimal_purge_on_wipe_tower = 15 199 | filament_notes = "" 200 | filament_ramming_parameters = "120 100 5.70968 6.03226 7 8.25806 9 9.19355 9.3871 9.77419 10.129 10.3226 10.4516 10.5161| 0.05 5.69677 0.45 6.15484 0.95 8.76774 1.45 9.20323 1.95 9.95806 2.45 10.3871 2.95 10.5677 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6" 201 | filament_retract_before_travel = nil 202 | filament_retract_before_wipe = nil 203 | filament_retract_layer_change = nil 204 | filament_retract_length = nil 205 | filament_retract_lift = nil 206 | filament_retract_lift_above = nil 207 | filament_retract_lift_below = nil 208 | filament_retract_restart_extra = nil 209 | filament_retract_speed = nil 210 | filament_settings_id = "" 211 | filament_soluble = 0 212 | filament_spool_weight = 0 213 | filament_toolchange_delay = 0 214 | filament_type = ABS 215 | filament_unload_time = 0 216 | filament_unloading_speed = 90 217 | filament_unloading_speed_start = 100 218 | filament_vendor = Generic 219 | filament_wipe = nil 220 | first_layer_bed_temperature = 110 221 | first_layer_temperature = 245 222 | full_fan_speed_layer = 0 223 | idle_temperature = nil 224 | inherits = Basic ABS @VORON 225 | max_fan_speed = 0 226 | min_fan_speed = 50 227 | min_print_speed = 15 228 | slowdown_below_layer_time = 15 229 | start_filament_gcode = "" 230 | temperature = 245 231 | 232 | [printer:Voron_v2_350_afterburner 0.4 nozzle - RRF] 233 | bed_custom_model = 234 | bed_custom_texture = 235 | bed_shape = 0x0,350x0,350x350,0x350 236 | before_layer_gcode = ;BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\n 237 | between_objects_gcode = 238 | color_change_gcode = M600 239 | cooling_tube_length = 5 240 | cooling_tube_retraction = 91.5 241 | default_filament_profile = "Basic PLA @VORON" 242 | default_print_profile = 0.15mm 0.4nozzle 243 | deretract_speed = 30 244 | end_gcode = M0 245 | extra_loading_move = -2 246 | extruder_colour = #FFE3CA 247 | extruder_offset = 0x0 248 | gcode_flavor = reprapfirmware 249 | high_current_on_filament_swap = 0 250 | host_type = prusalink 251 | inherits = Voron_v2_350_afterburner 0.4 nozzle 252 | layer_gcode = ;AFTER_LAYER_CHANGE\n;[layer_z] 253 | machine_limits_usage = time_estimate_only 254 | machine_max_acceleration_e = 10000 255 | machine_max_acceleration_extruding = 1500 256 | machine_max_acceleration_retracting = 1500 257 | machine_max_acceleration_travel = 1500,1250 258 | machine_max_acceleration_x = 9000 259 | machine_max_acceleration_y = 9000 260 | machine_max_acceleration_z = 500 261 | machine_max_feedrate_e = 120 262 | machine_max_feedrate_x = 500 263 | machine_max_feedrate_y = 500 264 | machine_max_feedrate_z = 12 265 | machine_max_jerk_e = 2.5 266 | machine_max_jerk_x = 10 267 | machine_max_jerk_y = 10 268 | machine_max_jerk_z = 0.2 269 | machine_min_extruding_rate = 0 270 | machine_min_travel_rate = 0 271 | max_layer_height = 0.3 272 | max_print_height = 330 273 | min_layer_height = 0.0375 274 | nozzle_diameter = 0.4 275 | parking_pos_retraction = 92 276 | pause_print_gcode = M601 277 | print_host = 278 | printer_model = Voron_v2_350_afterburner 279 | printer_notes = Unoffical profile.\nE3DV6 280 | printer_settings_id = 281 | printer_technology = FFF 282 | printer_variant = 0.4 283 | printer_vendor = 284 | printhost_apikey = 285 | printhost_cafile = 286 | remaining_times = 1 287 | retract_before_travel = 3 288 | retract_before_wipe = 0% 289 | retract_layer_change = 0 290 | retract_length = 0.75 291 | retract_length_toolchange = 10 292 | retract_lift = 0.4 293 | retract_lift_above = 0.2 294 | retract_lift_below = 500 295 | retract_restart_extra = 0 296 | retract_restart_extra_toolchange = 0 297 | retract_speed = 50 298 | silent_mode = 0 299 | single_extruder_multi_material = 0 300 | start_gcode = M104 S0\nM190 S0\nM98 P"start_print.g" A[first_layer_bed_temperature] B"[filament_type]" C[first_layer_temperature] D[nozzle_diameter] 301 | template_custom_gcode = 302 | thumbnails = 64x64,400x300 303 | thumbnails_format = QOI 304 | toolchange_gcode = 305 | use_firmware_retraction = 0 306 | use_relative_e_distances = 1 307 | use_volumetric_e = 0 308 | variable_layer_height = 1 309 | wipe = 0 310 | z_offset = 0 311 | 312 | [physical_printer:Troodon V2] 313 | host_type = duet 314 | preset_name = Voron_v2_350_afterburner 0.4 nozzle - RRF 315 | preset_names = "Voron_v2_350_afterburner 0.4 nozzle - RRF" 316 | print_host = 317 | printer_technology = FFF 318 | printhost_apikey = 319 | printhost_authorization_type = key 320 | printhost_cafile = 321 | printhost_password = 322 | printhost_port = 323 | printhost_ssl_ignore_revoke = 0 324 | printhost_user = 325 | 326 | [physical_printer:v2.4] 327 | host_type = duet 328 | preset_name = Voron_v2_350_afterburner 0.4 nozzle - Copy 329 | preset_names = "Voron_v2_350_afterburner 0.4 nozzle - Copy" 330 | print_host = 192.168.1.31 331 | printer_technology = FFF 332 | printhost_apikey = 333 | printhost_authorization_type = key 334 | printhost_cafile = 335 | printhost_password = 336 | printhost_port = 337 | printhost_ssl_ignore_revoke = 0 338 | printhost_user = 339 | 340 | [presets] 341 | print = 0.2mm 0.4nozzle V2 - RRF 342 | sla_print = 343 | sla_material = 344 | printer = Voron_v2_350_afterburner 0.4 nozzle - RRF 345 | filament = Basic ABS @VORON - Copy 346 | physical_printer = Troodon V2 347 | -------------------------------------------------------------------------------- /BtnCmd/BtnCmdforTroodonV2 - for 0.10.15+.json: -------------------------------------------------------------------------------- 1 | {"btns":[],"tabs":[{"tabID":"c872e9dc-c72f-TABc8c-a310-db179808401a","embedTab":false,"icon":"mdi-view-module","translated":false,"caption":"Print Control","numberOfColumns":12,"showWebCam":false,"showAltWebCam":false,"tabEnableSnap":true,"tabGridSize":[20,20],"lastZIndex":74}],"panels":[{"panelID":"60ea3fa9-f6c7-PANELca5-9f95-2e2ada249bc4","tabID":"c872e9dc-c72f-TABc8c-a310-db179808401a","panelType":"txtLabel","panelYpos":80,"panelXpos":20,"panelHSize":20,"panelWSize":300,"panelZIndex":38,"panelMMPrefix":"Soak Time","panelMMPath":"","panelMMOrientation":"H","panelMMPrefixColor":"","panelMMValueColor":"","panelMMTextSize":"body-2","panelColor":"","panelBGColor":"","panelUseDWCThemeBGColor":true,"panelHoverText":"This is hover text","borderless":false,"customPanelID":null,"altWebCamParams":{"altWebCamURL":"http://","altWebCamRotation":0,"altWebCamFlip":"none","altWebCamUpdateTimer":5000,"altWebCamiFrame":false,"altWebCamAppndHTTP":false,"altWebCamClickURL":"","altWebCamConfigURL":"","altWebCamConfigNewWin":false},"MMParams":{},"inputClass":"variable","inputType":"text","inputPrefixText":"","inputSuffixText":"","inputEnableClear":false,"inputLastVal":"","inputVarName":"","inputDispType":"","inputControlVals":[],"inputControlRange":[],"inputControlSteps":1,"bPanelActivated":false,"panelMMEvalMathStr":"","chartLabel":"Custom Chart","chartOMDataArr":[],"chartYaxisLabel":"Y Axis","chartXaxisLabel":"X Axis","chartYaxisMin":30,"chartYaxisMax":50,"chartYaxisStep":10,"chartYaxisMode":"time","chartTickValue":5,"chartXaxisOMData":null,"chartXaxisMaxSample":600,"chartUpdateKey":0,"chartRetainData":false,"inputLinkToOM":false,"inputAfterChangeGCodeCMD":"","inputLinkedOMKey":""},{"panelID":"0d87b184-a3c2-PANEL825-9e89-eed0d7a5dbe9","tabID":"c872e9dc-c72f-TABc8c-a310-db179808401a","panelType":"vInput","panelYpos":360,"panelXpos":20,"panelHSize":60,"panelWSize":300,"panelZIndex":44,"panelMMPrefix":"","panelMMPath":"","panelMMOrientation":"H","panelMMPrefixColor":"","panelMMValueColor":"","panelMMTextSize":"body-2","panelColor":"","panelBGColor":"","panelUseDWCThemeBGColor":true,"panelHoverText":"Soak Time Override","borderless":false,"customPanelID":null,"altWebCamParams":{"altWebCamURL":"http://","altWebCamRotation":0,"altWebCamFlip":"none","altWebCamUpdateTimer":5000,"altWebCamiFrame":false,"altWebCamAppndHTTP":false,"altWebCamClickURL":"","altWebCamConfigURL":"","altWebCamConfigNewWin":false},"MMParams":{},"inputClass":"variable","inputType":"boolean","inputPrefixText":"False","inputSuffixText":"True","inputEnableClear":false,"inputLastVal":false,"inputVarName":"soakTimeOverride","inputDispType":"switch","inputControlVals":[],"inputControlRange":[0,100],"inputControlSteps":1,"bPanelActivated":false,"panelMMEvalMathStr":"","chartLabel":"Custom Chart","chartOMDataArr":[],"chartYaxisLabel":"Y Axis","chartXaxisLabel":"X Axis","chartYaxisMin":30,"chartYaxisMax":50,"chartYaxisStep":10,"chartYaxisMode":"time","chartTickValue":5,"chartXaxisOMData":null,"chartXaxisMaxSample":600,"chartUpdateKey":0,"chartRetainData":false,"inputLinkToOM":false,"inputAfterChangeGCodeCMD":"","inputLinkedOMKey":""},{"panelID":"83f4cdd4-014c-PANEL337-867e-485757db3c45","tabID":"c872e9dc-c72f-TABc8c-a310-db179808401a","panelType":"vInput","panelYpos":160,"panelXpos":380,"panelHSize":60,"panelWSize":300,"panelZIndex":50,"panelMMPrefix":"","panelMMPath":"","panelMMOrientation":"H","panelMMPrefixColor":"","panelMMValueColor":"","panelMMTextSize":"body-2","panelColor":"","panelBGColor":"","panelUseDWCThemeBGColor":true,"panelHoverText":"Allows you to override the print hotend temperature","borderless":false,"customPanelID":null,"altWebCamParams":{"altWebCamURL":"http://","altWebCamRotation":0,"altWebCamFlip":"none","altWebCamUpdateTimer":5000,"altWebCamiFrame":false,"altWebCamAppndHTTP":false,"altWebCamClickURL":"","altWebCamConfigURL":"","altWebCamConfigNewWin":false},"MMParams":{},"inputClass":"variable","inputType":"number","inputPrefixText":"Slicer Hotend Temperature Override ","inputSuffixText":"","inputEnableClear":false,"inputLastVal":0,"inputVarName":"slicerHotendTempOverride","inputDispType":"input","inputControlVals":[],"inputControlRange":[0,100],"inputControlSteps":1,"bPanelActivated":false,"panelMMEvalMathStr":"","chartLabel":"Custom Chart","chartOMDataArr":[],"chartYaxisLabel":"Y Axis","chartXaxisLabel":"X Axis","chartYaxisMin":30,"chartYaxisMax":50,"chartYaxisStep":10,"chartYaxisMode":"time","chartTickValue":5,"chartXaxisOMData":null,"chartXaxisMaxSample":600,"chartUpdateKey":0,"chartRetainData":false,"inputLinkToOM":false,"inputAfterChangeGCodeCMD":"","inputLinkedOMKey":""},{"panelID":"2ea1dc2a-d3fb-PANEL3da-9ae5-ec4e149d8d88","tabID":"c872e9dc-c72f-TABc8c-a310-db179808401a","panelType":"vInput","panelYpos":80,"panelXpos":380,"panelHSize":60,"panelWSize":300,"panelZIndex":51,"panelMMPrefix":"","panelMMPath":"","panelMMOrientation":"H","panelMMPrefixColor":"","panelMMValueColor":"","panelMMTextSize":"body-2","panelColor":"","panelBGColor":"","panelUseDWCThemeBGColor":true,"panelHoverText":"Allows you to override the print bed temperature","borderless":false,"customPanelID":null,"altWebCamParams":{"altWebCamURL":"http://","altWebCamRotation":0,"altWebCamFlip":"none","altWebCamUpdateTimer":5000,"altWebCamiFrame":false,"altWebCamAppndHTTP":false,"altWebCamClickURL":"","altWebCamConfigURL":"","altWebCamConfigNewWin":false},"MMParams":{},"inputClass":"variable","inputType":"text","inputPrefixText":"Slicer Bed Temperature Override","inputSuffixText":"","inputEnableClear":false,"inputLastVal":0,"inputVarName":"slicerBedTempOverride","inputDispType":"input","inputControlVals":[],"inputControlRange":[0,100],"inputControlSteps":1,"bPanelActivated":false,"panelMMEvalMathStr":"","chartLabel":"Custom Chart","chartOMDataArr":[],"chartYaxisLabel":"Y Axis","chartXaxisLabel":"X Axis","chartYaxisMin":30,"chartYaxisMax":50,"chartYaxisStep":10,"chartYaxisMode":"time","chartTickValue":5,"chartXaxisOMData":null,"chartXaxisMaxSample":600,"chartUpdateKey":0,"chartRetainData":false,"inputLinkToOM":false,"inputAfterChangeGCodeCMD":"","inputLinkedOMKey":""},{"panelID":"7cc09421-f362-PANELf53-a024-baac6220d01f","tabID":"c872e9dc-c72f-TABc8c-a310-db179808401a","panelType":"txtLabel","panelYpos":200,"panelXpos":1100,"panelHSize":27,"panelWSize":300,"panelZIndex":57,"panelMMPrefix":"Override Turning Bed Off","panelMMPath":"","panelMMOrientation":"H","panelMMPrefixColor":"","panelMMValueColor":"","panelMMTextSize":"body-2","panelColor":"","panelBGColor":"","panelUseDWCThemeBGColor":true,"panelHoverText":"This is hover text","borderless":false,"customPanelID":null,"altWebCamParams":{"altWebCamURL":"http://","altWebCamRotation":0,"altWebCamFlip":"none","altWebCamUpdateTimer":5000,"altWebCamiFrame":false,"altWebCamAppndHTTP":false,"altWebCamClickURL":"","altWebCamConfigURL":"","altWebCamConfigNewWin":false},"MMParams":{},"inputClass":"variable","inputType":"text","inputPrefixText":"","inputSuffixText":"","inputEnableClear":false,"inputLastVal":"","inputVarName":"","inputDispType":"","inputControlVals":[],"inputControlRange":[],"inputControlSteps":1,"bPanelActivated":false,"panelMMEvalMathStr":"","chartLabel":"Custom Chart","chartOMDataArr":[],"chartYaxisLabel":"Y Axis","chartXaxisLabel":"X Axis","chartYaxisMin":30,"chartYaxisMax":50,"chartYaxisStep":10,"chartYaxisMode":"time","chartTickValue":5,"chartXaxisOMData":null,"chartXaxisMaxSample":600,"chartUpdateKey":0,"chartRetainData":false,"inputLinkToOM":false,"inputAfterChangeGCodeCMD":"","inputLinkedOMKey":""},{"panelID":"a9be7dc7-569b-PANEL257-8724-5152c71270e1","tabID":"c872e9dc-c72f-TABc8c-a310-db179808401a","panelType":"vInput","panelYpos":240,"panelXpos":1100,"panelHSize":60,"panelWSize":300,"panelZIndex":58,"panelMMPrefix":"","panelMMPath":"","panelMMOrientation":"H","panelMMPrefixColor":"","panelMMValueColor":"","panelMMTextSize":"body-2","panelColor":"","panelBGColor":"","panelUseDWCThemeBGColor":true,"panelHoverText":"Override whether bed is turned off at end of print","borderless":false,"customPanelID":null,"altWebCamParams":{"altWebCamURL":"http://","altWebCamRotation":0,"altWebCamFlip":"none","altWebCamUpdateTimer":5000,"altWebCamiFrame":false,"altWebCamAppndHTTP":false,"altWebCamClickURL":"","altWebCamConfigURL":"","altWebCamConfigNewWin":false},"MMParams":{},"inputClass":"variable","inputType":"boolean","inputPrefixText":"False","inputSuffixText":"True","inputEnableClear":false,"inputLastVal":false,"inputVarName":"overrideBedOff","inputDispType":"switch","inputControlVals":[],"inputControlRange":[0,100],"inputControlSteps":1,"bPanelActivated":false,"panelMMEvalMathStr":"","chartLabel":"Custom Chart","chartOMDataArr":[],"chartYaxisLabel":"Y Axis","chartXaxisLabel":"X Axis","chartYaxisMin":30,"chartYaxisMax":50,"chartYaxisStep":10,"chartYaxisMode":"time","chartTickValue":5,"chartXaxisOMData":null,"chartXaxisMaxSample":600,"chartUpdateKey":0,"chartRetainData":false,"inputLinkToOM":false,"inputAfterChangeGCodeCMD":"","inputLinkedOMKey":""},{"panelID":"76868582-143b-PANEL582-9464-525d95db024f","tabID":"c872e9dc-c72f-TABc8c-a310-db179808401a","panelType":"txtLabel","panelYpos":80,"panelXpos":1100,"panelHSize":27,"panelWSize":300,"panelZIndex":55,"panelMMPrefix":"Override Turning Hotend Off","panelMMPath":"","panelMMOrientation":"H","panelMMPrefixColor":"","panelMMValueColor":"","panelMMTextSize":"body-2","panelColor":"","panelBGColor":"","panelUseDWCThemeBGColor":true,"panelHoverText":"This is hover text","borderless":false,"customPanelID":null,"altWebCamParams":{"altWebCamURL":"http://","altWebCamRotation":0,"altWebCamFlip":"none","altWebCamUpdateTimer":5000,"altWebCamiFrame":false,"altWebCamAppndHTTP":false,"altWebCamClickURL":"","altWebCamConfigURL":"","altWebCamConfigNewWin":false},"MMParams":{},"inputClass":"variable","inputType":"text","inputPrefixText":"","inputSuffixText":"","inputEnableClear":false,"inputLastVal":"","inputVarName":"","inputDispType":"","inputControlVals":[],"inputControlRange":[],"inputControlSteps":1,"bPanelActivated":false,"panelMMEvalMathStr":"","chartLabel":"Custom Chart","chartOMDataArr":[],"chartYaxisLabel":"Y Axis","chartXaxisLabel":"X Axis","chartYaxisMin":30,"chartYaxisMax":50,"chartYaxisStep":10,"chartYaxisMode":"time","chartTickValue":5,"chartXaxisOMData":null,"chartXaxisMaxSample":600,"chartUpdateKey":0,"chartRetainData":false,"inputLinkToOM":false,"inputAfterChangeGCodeCMD":"","inputLinkedOMKey":""},{"panelID":"7c84953f-f433-PANELb06-8dd9-d2adbb9627d6","tabID":"c872e9dc-c72f-TABc8c-a310-db179808401a","panelType":"vInput","panelYpos":120,"panelXpos":1100,"panelHSize":60,"panelWSize":300,"panelZIndex":56,"panelMMPrefix":"","panelMMPath":"","panelMMOrientation":"H","panelMMPrefixColor":"","panelMMValueColor":"","panelMMTextSize":"body-2","panelColor":"","panelBGColor":"","panelUseDWCThemeBGColor":true,"panelHoverText":"Override whether hotend is turned off at end of print","borderless":false,"customPanelID":null,"altWebCamParams":{"altWebCamURL":"http://","altWebCamRotation":0,"altWebCamFlip":"none","altWebCamUpdateTimer":5000,"altWebCamiFrame":false,"altWebCamAppndHTTP":false,"altWebCamClickURL":"","altWebCamConfigURL":"","altWebCamConfigNewWin":false},"MMParams":{},"inputClass":"variable","inputType":"boolean","inputPrefixText":"False","inputSuffixText":"True","inputEnableClear":false,"inputLastVal":false,"inputVarName":"overrideHotendOff","inputDispType":"switch","inputControlVals":[],"inputControlRange":[0,100],"inputControlSteps":1,"bPanelActivated":false,"panelMMEvalMathStr":"","chartLabel":"Custom Chart","chartOMDataArr":[],"chartYaxisLabel":"Y Axis","chartXaxisLabel":"X Axis","chartYaxisMin":30,"chartYaxisMax":50,"chartYaxisStep":10,"chartYaxisMode":"time","chartTickValue":5,"chartXaxisOMData":null,"chartXaxisMaxSample":600,"chartUpdateKey":0,"chartRetainData":false,"inputLinkToOM":false,"inputAfterChangeGCodeCMD":"","inputLinkedOMKey":""},{"panelID":"242e07e5-6f17-PANELc00-bb16-f5c32082463c","tabID":"c872e9dc-c72f-TABc8c-a310-db179808401a","panelType":"vInput","panelYpos":80,"panelXpos":740,"panelHSize":60,"panelWSize":300,"panelZIndex":62,"panelMMPrefix":"","panelMMPath":"","panelMMOrientation":"H","panelMMPrefixColor":"","panelMMValueColor":"","panelMMTextSize":"body-2","panelColor":"","panelBGColor":"","panelUseDWCThemeBGColor":true,"panelHoverText":"Set the size of nozzle installed to the printer","borderless":false,"customPanelID":null,"altWebCamParams":{"altWebCamURL":"http://","altWebCamRotation":0,"altWebCamFlip":"none","altWebCamUpdateTimer":5000,"altWebCamiFrame":false,"altWebCamAppndHTTP":false,"altWebCamClickURL":"","altWebCamConfigURL":"","altWebCamConfigNewWin":false},"MMParams":{},"inputClass":"variable","inputType":"number","inputPrefixText":"Nozzle Diameter Fitted","inputSuffixText":"","inputEnableClear":false,"inputLastVal":0.4,"inputVarName":"nozzleDiameterInstalled","inputDispType":"input","inputControlVals":[],"inputControlRange":[0,100],"inputControlSteps":1,"bPanelActivated":false,"panelMMEvalMathStr":"","chartLabel":"Custom Chart","chartOMDataArr":[],"chartYaxisLabel":"Y Axis","chartXaxisLabel":"X Axis","chartYaxisMin":30,"chartYaxisMax":50,"chartYaxisStep":10,"chartYaxisMode":"time","chartTickValue":5,"chartXaxisOMData":null,"chartXaxisMaxSample":600,"chartUpdateKey":0,"chartRetainData":false,"inputLinkToOM":false,"inputAfterChangeGCodeCMD":"","inputLinkedOMKey":""},{"panelID":"74be457b-a68b-PANEL030-a37f-c06153ddbf07","tabID":"c872e9dc-c72f-TABc8c-a310-db179808401a","panelType":"txtLabel","panelYpos":320,"panelXpos":20,"panelHSize":27,"panelWSize":300,"panelZIndex":43,"panelMMPrefix":"Soak Time Override","panelMMPath":"","panelMMOrientation":"H","panelMMPrefixColor":"","panelMMValueColor":"","panelMMTextSize":"body-2","panelColor":"","panelBGColor":"","panelUseDWCThemeBGColor":true,"panelHoverText":"This is hover text","borderless":false,"customPanelID":null,"altWebCamParams":{"altWebCamURL":"http://","altWebCamRotation":0,"altWebCamFlip":"none","altWebCamUpdateTimer":5000,"altWebCamiFrame":false,"altWebCamAppndHTTP":false,"altWebCamClickURL":"","altWebCamConfigURL":"","altWebCamConfigNewWin":false},"MMParams":{},"inputClass":"variable","inputType":"text","inputPrefixText":"","inputSuffixText":"","inputEnableClear":false,"inputLastVal":"","inputVarName":"","inputDispType":"","inputControlVals":[],"inputControlRange":[],"inputControlSteps":1,"bPanelActivated":false,"panelMMEvalMathStr":"","chartLabel":"Custom Chart","chartOMDataArr":[],"chartYaxisLabel":"Y Axis","chartXaxisLabel":"X Axis","chartYaxisMin":30,"chartYaxisMax":50,"chartYaxisStep":10,"chartYaxisMode":"time","chartTickValue":5,"chartXaxisOMData":null,"chartXaxisMaxSample":600,"chartUpdateKey":0,"chartRetainData":false,"inputLinkToOM":false,"inputAfterChangeGCodeCMD":"","inputLinkedOMKey":""},{"panelID":"c8807aaf-5f6c-PANEL3cc-aead-2f79791a8389","tabID":"c872e9dc-c72f-TABc8c-a310-db179808401a","panelType":"vInput","panelYpos":160,"panelXpos":740,"panelHSize":60,"panelWSize":300,"panelZIndex":61,"panelMMPrefix":"","panelMMPath":"","panelMMOrientation":"H","panelMMPrefixColor":"","panelMMValueColor":"","panelMMTextSize":"body-2","panelColor":"","panelBGColor":"","panelUseDWCThemeBGColor":true,"panelHoverText":"Set the nozzle probe temperature","borderless":false,"customPanelID":null,"altWebCamParams":{"altWebCamURL":"http://","altWebCamRotation":0,"altWebCamFlip":"none","altWebCamUpdateTimer":5000,"altWebCamiFrame":false,"altWebCamAppndHTTP":false,"altWebCamClickURL":"","altWebCamConfigURL":"","altWebCamConfigNewWin":false},"MMParams":{},"inputClass":"variable","inputType":"number","inputPrefixText":"Nozzle Probe Temperature","inputSuffixText":"","inputEnableClear":false,"inputLastVal":175,"inputVarName":"nozzleProbeTemperature","inputDispType":"input","inputControlVals":[],"inputControlRange":[0,100],"inputControlSteps":1,"bPanelActivated":false,"panelMMEvalMathStr":"","chartLabel":"Custom Chart","chartOMDataArr":[],"chartYaxisLabel":"Y Axis","chartXaxisLabel":"X Axis","chartYaxisMin":30,"chartYaxisMax":50,"chartYaxisStep":10,"chartYaxisMode":"time","chartTickValue":5,"chartXaxisOMData":null,"chartXaxisMaxSample":600,"chartUpdateKey":0,"chartRetainData":false,"inputLinkToOM":false,"inputAfterChangeGCodeCMD":"","inputLinkedOMKey":""},{"panelID":"26478452-50ec-PANELa5e-95ed-0971949b7f3a","tabID":"c872e9dc-c72f-TABc8c-a310-db179808401a","panelType":"txtLabel","panelYpos":200,"panelXpos":20,"panelHSize":27,"panelWSize":300,"panelZIndex":41,"panelMMPrefix":"Cancel Print During Soak Time","panelMMPath":"","panelMMOrientation":"H","panelMMPrefixColor":"","panelMMValueColor":"","panelMMTextSize":"body-2","panelColor":"","panelBGColor":"","panelUseDWCThemeBGColor":true,"panelHoverText":"This is hover text","borderless":false,"customPanelID":null,"altWebCamParams":{"altWebCamURL":"http://","altWebCamRotation":0,"altWebCamFlip":"none","altWebCamUpdateTimer":5000,"altWebCamiFrame":false,"altWebCamAppndHTTP":false,"altWebCamClickURL":"","altWebCamConfigURL":"","altWebCamConfigNewWin":false},"MMParams":{},"inputClass":"variable","inputType":"text","inputPrefixText":"","inputSuffixText":"","inputEnableClear":false,"inputLastVal":"","inputVarName":"","inputDispType":"","inputControlVals":[],"inputControlRange":[],"inputControlSteps":1,"bPanelActivated":false,"panelMMEvalMathStr":"","chartLabel":"Custom Chart","chartOMDataArr":[],"chartYaxisLabel":"Y Axis","chartXaxisLabel":"X Axis","chartYaxisMin":30,"chartYaxisMax":50,"chartYaxisStep":10,"chartYaxisMode":"time","chartTickValue":5,"chartXaxisOMData":null,"chartXaxisMaxSample":600,"chartUpdateKey":0,"chartRetainData":false,"inputLinkToOM":false,"inputAfterChangeGCodeCMD":"","inputLinkedOMKey":""},{"panelID":"9f2bcab9-b9f5-PANELa3e-9486-28d8fb4def7f","tabID":"c872e9dc-c72f-TABc8c-a310-db179808401a","panelType":"vInput","panelYpos":240,"panelXpos":20,"panelHSize":60,"panelWSize":300,"panelZIndex":42,"panelMMPrefix":"","panelMMPath":"","panelMMOrientation":"H","panelMMPrefixColor":"","panelMMValueColor":"","panelMMTextSize":"body-2","panelColor":"","panelBGColor":"","panelUseDWCThemeBGColor":true,"panelHoverText":"Soak Time Override","borderless":false,"customPanelID":null,"altWebCamParams":{"altWebCamURL":"http://","altWebCamRotation":0,"altWebCamFlip":"none","altWebCamUpdateTimer":5000,"altWebCamiFrame":false,"altWebCamAppndHTTP":false,"altWebCamClickURL":"","altWebCamConfigURL":"","altWebCamConfigNewWin":false},"MMParams":{},"inputClass":"variable","inputType":"boolean","inputPrefixText":"False","inputSuffixText":"True","inputEnableClear":false,"inputLastVal":false,"inputVarName":"Cancelled","inputDispType":"switch","inputControlVals":[],"inputControlRange":[0,100],"inputControlSteps":1,"bPanelActivated":false,"panelMMEvalMathStr":"","chartLabel":"Custom Chart","chartOMDataArr":[],"chartYaxisLabel":"Y Axis","chartXaxisLabel":"X Axis","chartYaxisMin":30,"chartYaxisMax":50,"chartYaxisStep":10,"chartYaxisMode":"time","chartTickValue":5,"chartXaxisOMData":null,"chartXaxisMaxSample":600,"chartUpdateKey":0,"chartRetainData":false,"inputLinkToOM":false,"inputAfterChangeGCodeCMD":"","inputLinkedOMKey":""},{"panelID":"f0ba6b15-9c4a-PANELa77-8ba6-47cb86e8a92f","tabID":"c872e9dc-c72f-TABc8c-a310-db179808401a","panelType":"txtLabel","panelYpos":20,"panelXpos":0,"panelHSize":420,"panelWSize":340,"panelZIndex":36,"panelMMPrefix":" ","panelMMPath":"","panelMMOrientation":"H","panelMMPrefixColor":"","panelMMValueColor":"","panelMMTextSize":"body-2","panelColor":"#FF6A6AFF","panelBGColor":"","panelUseDWCThemeBGColor":true,"panelHoverText":"This is hover text","borderless":false,"customPanelID":null,"altWebCamParams":{"altWebCamURL":"http://","altWebCamRotation":0,"altWebCamFlip":"none","altWebCamUpdateTimer":5000,"altWebCamiFrame":false,"altWebCamAppndHTTP":false,"altWebCamClickURL":"","altWebCamConfigURL":"","altWebCamConfigNewWin":false},"MMParams":{},"inputClass":"variable","inputType":"text","inputPrefixText":"","inputSuffixText":"","inputEnableClear":false,"inputLastVal":"","inputVarName":"","inputDispType":"","inputControlVals":[],"inputControlRange":[],"inputControlSteps":1,"bPanelActivated":false,"panelMMEvalMathStr":"","chartLabel":"Custom Chart","chartOMDataArr":[],"chartYaxisLabel":"Y Axis","chartXaxisLabel":"X Axis","chartYaxisMin":30,"chartYaxisMax":50,"chartYaxisStep":10,"chartYaxisMode":"time","chartTickValue":5,"chartXaxisOMData":null,"chartXaxisMaxSample":600,"chartUpdateKey":0,"chartRetainData":false,"inputLinkToOM":false,"inputAfterChangeGCodeCMD":"","inputLinkedOMKey":""},{"panelID":"e8f9f609-d95c-PANEL4a1-a269-7efee55e6f55","tabID":"c872e9dc-c72f-TABc8c-a310-db179808401a","panelType":"txtLabel","panelYpos":40,"panelXpos":20,"panelHSize":27,"panelWSize":300,"panelZIndex":37,"panelMMPrefix":"Soak Time Control","panelMMPath":"","panelMMOrientation":"H","panelMMPrefixColor":"","panelMMValueColor":"","panelMMTextSize":"body-2","panelColor":"#FF6A6ACB","panelBGColor":"","panelUseDWCThemeBGColor":true,"panelHoverText":"This is hover text","borderless":false,"customPanelID":null,"altWebCamParams":{"altWebCamURL":"http://","altWebCamRotation":0,"altWebCamFlip":"none","altWebCamUpdateTimer":5000,"altWebCamiFrame":false,"altWebCamAppndHTTP":false,"altWebCamClickURL":"","altWebCamConfigURL":"","altWebCamConfigNewWin":false},"MMParams":{},"inputClass":"variable","inputType":"text","inputPrefixText":"","inputSuffixText":"","inputEnableClear":false,"inputLastVal":"","inputVarName":"","inputDispType":"","inputControlVals":[],"inputControlRange":[],"inputControlSteps":1,"bPanelActivated":false,"panelMMEvalMathStr":"","chartLabel":"Custom Chart","chartOMDataArr":[],"chartYaxisLabel":"Y Axis","chartXaxisLabel":"X Axis","chartYaxisMin":30,"chartYaxisMax":50,"chartYaxisStep":10,"chartYaxisMode":"time","chartTickValue":5,"chartXaxisOMData":null,"chartXaxisMaxSample":600,"chartUpdateKey":0,"chartRetainData":false,"inputLinkToOM":false,"inputAfterChangeGCodeCMD":"","inputLinkedOMKey":""},{"panelID":"7d96a0e4-d098-PANEL16a-adec-2a5a6ea32d22","tabID":"c872e9dc-c72f-TABc8c-a310-db179808401a","panelType":"vInput","panelYpos":120,"panelXpos":20,"panelHSize":60,"panelWSize":300,"panelZIndex":40,"panelMMPrefix":"","panelMMPath":"","panelMMOrientation":"H","panelMMPrefixColor":"","panelMMValueColor":"","panelMMTextSize":"body-2","panelColor":"","panelBGColor":"","panelUseDWCThemeBGColor":true,"panelHoverText":"Allows you to set the soak time for the printer in minutes","borderless":false,"customPanelID":null,"altWebCamParams":{"altWebCamURL":"http://","altWebCamRotation":0,"altWebCamFlip":"none","altWebCamUpdateTimer":5000,"altWebCamiFrame":false,"altWebCamAppndHTTP":false,"altWebCamClickURL":"","altWebCamConfigURL":"","altWebCamConfigNewWin":false},"MMParams":{},"inputClass":"variable","inputType":"number","inputPrefixText":"Soak Time","inputSuffixText":"minutes","inputEnableClear":false,"inputLastVal":15,"inputVarName":"soakTime","inputDispType":"input","inputControlVals":[],"inputControlRange":[0,100],"inputControlSteps":1,"bPanelActivated":false,"panelMMEvalMathStr":"","chartLabel":"Custom Chart","chartOMDataArr":[],"chartYaxisLabel":"Y Axis","chartXaxisLabel":"X Axis","chartYaxisMin":30,"chartYaxisMax":50,"chartYaxisStep":10,"chartYaxisMode":"time","chartTickValue":5,"chartXaxisOMData":null,"chartXaxisMaxSample":600,"chartUpdateKey":0,"chartRetainData":false,"inputLinkToOM":false,"inputAfterChangeGCodeCMD":"","inputLinkedOMKey":""},{"panelID":"4ad5ca3c-c3c2-PANEL9fe-a5fe-5b95443aedd1","tabID":"c872e9dc-c72f-TABc8c-a310-db179808401a","panelType":"txtLabel","panelYpos":20,"panelXpos":360,"panelHSize":220,"panelWSize":340,"panelZIndex":49,"panelMMPrefix":" ","panelMMPath":"","panelMMOrientation":"H","panelMMPrefixColor":"","panelMMValueColor":"","panelMMTextSize":"body-2","panelColor":"#ADFCBFFF","panelBGColor":"","panelUseDWCThemeBGColor":true,"panelHoverText":"This is hover text","borderless":false,"customPanelID":null,"altWebCamParams":{"altWebCamURL":"http://","altWebCamRotation":0,"altWebCamFlip":"none","altWebCamUpdateTimer":5000,"altWebCamiFrame":false,"altWebCamAppndHTTP":false,"altWebCamClickURL":"","altWebCamConfigURL":"","altWebCamConfigNewWin":false},"MMParams":{},"inputClass":"variable","inputType":"text","inputPrefixText":"","inputSuffixText":"","inputEnableClear":false,"inputLastVal":"","inputVarName":"","inputDispType":"","inputControlVals":[],"inputControlRange":[],"inputControlSteps":1,"bPanelActivated":false,"panelMMEvalMathStr":"","chartLabel":"Custom Chart","chartOMDataArr":[],"chartYaxisLabel":"Y Axis","chartXaxisLabel":"X Axis","chartYaxisMin":30,"chartYaxisMax":50,"chartYaxisStep":10,"chartYaxisMode":"time","chartTickValue":5,"chartXaxisOMData":null,"chartXaxisMaxSample":600,"chartUpdateKey":0,"chartRetainData":false,"inputLinkToOM":false,"inputAfterChangeGCodeCMD":"","inputLinkedOMKey":""},{"panelID":"0a22af2c-a4fe-PANELda3-8560-d399be535d8b","tabID":"c872e9dc-c72f-TABc8c-a310-db179808401a","panelType":"txtLabel","panelYpos":40,"panelXpos":380,"panelHSize":27,"panelWSize":300,"panelZIndex":52,"panelMMPrefix":"Print File Parameters","panelMMPath":"","panelMMOrientation":"H","panelMMPrefixColor":"","panelMMValueColor":"","panelMMTextSize":"body-2","panelColor":"#ADFCBFC0","panelBGColor":"","panelUseDWCThemeBGColor":true,"panelHoverText":"This is hover text","borderless":false,"customPanelID":null,"altWebCamParams":{"altWebCamURL":"http://","altWebCamRotation":0,"altWebCamFlip":"none","altWebCamUpdateTimer":5000,"altWebCamiFrame":false,"altWebCamAppndHTTP":false,"altWebCamClickURL":"","altWebCamConfigURL":"","altWebCamConfigNewWin":false},"MMParams":{},"inputClass":"variable","inputType":"text","inputPrefixText":"","inputSuffixText":"","inputEnableClear":false,"inputLastVal":"","inputVarName":"","inputDispType":"","inputControlVals":[],"inputControlRange":[],"inputControlSteps":1,"bPanelActivated":false,"panelMMEvalMathStr":"","chartLabel":"Custom Chart","chartOMDataArr":[],"chartYaxisLabel":"Y Axis","chartXaxisLabel":"X Axis","chartYaxisMin":30,"chartYaxisMax":50,"chartYaxisStep":10,"chartYaxisMode":"time","chartTickValue":5,"chartXaxisOMData":null,"chartXaxisMaxSample":600,"chartUpdateKey":0,"chartRetainData":false,"inputLinkToOM":false,"inputAfterChangeGCodeCMD":"","inputLinkedOMKey":""},{"panelID":"4d5eab7c-fd7f-PANELf67-a36e-dda8cf9bfe3f","tabID":"c872e9dc-c72f-TABc8c-a310-db179808401a","panelType":"txtLabel","panelYpos":20,"panelXpos":1080,"panelHSize":300,"panelWSize":340,"panelZIndex":53,"panelMMPrefix":" ","panelMMPath":"","panelMMOrientation":"H","panelMMPrefixColor":"","panelMMValueColor":"","panelMMTextSize":"body-2","panelColor":"#FFD37DFF","panelBGColor":"","panelUseDWCThemeBGColor":true,"panelHoverText":"This is hover text","borderless":false,"customPanelID":null,"altWebCamParams":{"altWebCamURL":"http://","altWebCamRotation":0,"altWebCamFlip":"none","altWebCamUpdateTimer":5000,"altWebCamiFrame":false,"altWebCamAppndHTTP":false,"altWebCamClickURL":"","altWebCamConfigURL":"","altWebCamConfigNewWin":false},"MMParams":{},"inputClass":"variable","inputType":"text","inputPrefixText":"","inputSuffixText":"","inputEnableClear":false,"inputLastVal":"","inputVarName":"","inputDispType":"","inputControlVals":[],"inputControlRange":[],"inputControlSteps":1,"bPanelActivated":false,"panelMMEvalMathStr":"","chartLabel":"Custom Chart","chartOMDataArr":[],"chartYaxisLabel":"Y Axis","chartXaxisLabel":"X Axis","chartYaxisMin":30,"chartYaxisMax":50,"chartYaxisStep":10,"chartYaxisMode":"time","chartTickValue":5,"chartXaxisOMData":null,"chartXaxisMaxSample":600,"chartUpdateKey":0,"chartRetainData":false,"inputLinkToOM":false,"inputAfterChangeGCodeCMD":"","inputLinkedOMKey":""},{"panelID":"0c5ecfeb-4eb1-PANEL1f2-940b-1ca27035a695","tabID":"c872e9dc-c72f-TABc8c-a310-db179808401a","panelType":"txtLabel","panelYpos":40,"panelXpos":1100,"panelHSize":27,"panelWSize":300,"panelZIndex":54,"panelMMPrefix":"Post Print Settings","panelMMPath":"","panelMMOrientation":"H","panelMMPrefixColor":"","panelMMValueColor":"","panelMMTextSize":"body-2","panelColor":"#FFD37DFF","panelBGColor":"","panelUseDWCThemeBGColor":true,"panelHoverText":"This is hover text","borderless":false,"customPanelID":null,"altWebCamParams":{"altWebCamURL":"http://","altWebCamRotation":0,"altWebCamFlip":"none","altWebCamUpdateTimer":5000,"altWebCamiFrame":false,"altWebCamAppndHTTP":false,"altWebCamClickURL":"","altWebCamConfigURL":"","altWebCamConfigNewWin":false},"MMParams":{},"inputClass":"variable","inputType":"text","inputPrefixText":"","inputSuffixText":"","inputEnableClear":false,"inputLastVal":"","inputVarName":"","inputDispType":"","inputControlVals":[],"inputControlRange":[],"inputControlSteps":1,"bPanelActivated":false,"panelMMEvalMathStr":"","chartLabel":"Custom Chart","chartOMDataArr":[],"chartYaxisLabel":"Y Axis","chartXaxisLabel":"X Axis","chartYaxisMin":30,"chartYaxisMax":50,"chartYaxisStep":10,"chartYaxisMode":"time","chartTickValue":5,"chartXaxisOMData":null,"chartXaxisMaxSample":600,"chartUpdateKey":0,"chartRetainData":false,"inputLinkToOM":false,"inputAfterChangeGCodeCMD":"","inputLinkedOMKey":""},{"panelID":"7fca9940-4275-PANELc92-a382-d7d4f2a2987e","tabID":"c872e9dc-c72f-TABc8c-a310-db179808401a","panelType":"txtLabel","panelYpos":20,"panelXpos":720,"panelHSize":220,"panelWSize":340,"panelZIndex":59,"panelMMPrefix":" ","panelMMPath":"","panelMMOrientation":"H","panelMMPrefixColor":"","panelMMValueColor":"","panelMMTextSize":"body-2","panelColor":"#ADE3FCFF","panelBGColor":"","panelUseDWCThemeBGColor":true,"panelHoverText":"This is hover text","borderless":false,"customPanelID":null,"altWebCamParams":{"altWebCamURL":"http://","altWebCamRotation":0,"altWebCamFlip":"none","altWebCamUpdateTimer":5000,"altWebCamiFrame":false,"altWebCamAppndHTTP":false,"altWebCamClickURL":"","altWebCamConfigURL":"","altWebCamConfigNewWin":false},"MMParams":{},"inputClass":"variable","inputType":"text","inputPrefixText":"","inputSuffixText":"","inputEnableClear":false,"inputLastVal":"","inputVarName":"","inputDispType":"","inputControlVals":[],"inputControlRange":[],"inputControlSteps":1,"bPanelActivated":false,"panelMMEvalMathStr":"","chartLabel":"Custom Chart","chartOMDataArr":[],"chartYaxisLabel":"Y Axis","chartXaxisLabel":"X Axis","chartYaxisMin":30,"chartYaxisMax":50,"chartYaxisStep":10,"chartYaxisMode":"time","chartTickValue":5,"chartXaxisOMData":null,"chartXaxisMaxSample":600,"chartUpdateKey":0,"chartRetainData":false,"inputLinkToOM":false,"inputAfterChangeGCodeCMD":"","inputLinkedOMKey":""},{"panelID":"a23a0093-7f20-PANELba6-bae9-40f721333c89","tabID":"c872e9dc-c72f-TABc8c-a310-db179808401a","panelType":"txtLabel","panelYpos":40,"panelXpos":740,"panelHSize":27,"panelWSize":300,"panelZIndex":60,"panelMMPrefix":"Printer Parameters","panelMMPath":"","panelMMOrientation":"H","panelMMPrefixColor":"","panelMMValueColor":"","panelMMTextSize":"body-2","panelColor":"#ADE3FCFF","panelBGColor":"","panelUseDWCThemeBGColor":true,"panelHoverText":"This is hover text","borderless":false,"customPanelID":null,"altWebCamParams":{"altWebCamURL":"http://","altWebCamRotation":0,"altWebCamFlip":"none","altWebCamUpdateTimer":5000,"altWebCamiFrame":false,"altWebCamAppndHTTP":false,"altWebCamClickURL":"","altWebCamConfigURL":"","altWebCamConfigNewWin":false},"MMParams":{},"inputClass":"variable","inputType":"text","inputPrefixText":"","inputSuffixText":"","inputEnableClear":false,"inputLastVal":"","inputVarName":"","inputDispType":"","inputControlVals":[],"inputControlRange":[],"inputControlSteps":1,"bPanelActivated":false,"panelMMEvalMathStr":"","chartLabel":"Custom Chart","chartOMDataArr":[],"chartYaxisLabel":"Y Axis","chartXaxisLabel":"X Axis","chartYaxisMin":30,"chartYaxisMax":50,"chartYaxisStep":10,"chartYaxisMode":"time","chartTickValue":5,"chartXaxisOMData":null,"chartXaxisMaxSample":600,"chartUpdateKey":0,"chartRetainData":false,"inputLinkToOM":false,"inputAfterChangeGCodeCMD":"","inputLinkedOMKey":""},{"panelID":"5ab02064-34d9-PANELa94-ab71-81207371aff9","tabID":"c872e9dc-c72f-TABc8c-a310-db179808401a","panelType":"txtLabel","panelYpos":260,"panelXpos":360,"panelHSize":140,"panelWSize":340,"panelZIndex":63,"panelMMPrefix":" ","panelMMPath":"","panelMMOrientation":"H","panelMMPrefixColor":"","panelMMValueColor":"","panelMMTextSize":"body-2","panelColor":"#FCFCADFF","panelBGColor":"","panelUseDWCThemeBGColor":true,"panelHoverText":"This is hover text","borderless":false,"customPanelID":null,"altWebCamParams":{"altWebCamURL":"http://","altWebCamRotation":0,"altWebCamFlip":"none","altWebCamUpdateTimer":5000,"altWebCamiFrame":false,"altWebCamAppndHTTP":false,"altWebCamClickURL":"","altWebCamConfigURL":"","altWebCamConfigNewWin":false},"MMParams":{},"inputClass":"variable","inputType":"text","inputPrefixText":"","inputSuffixText":"","inputEnableClear":false,"inputLastVal":"","inputVarName":"","inputDispType":"","inputControlVals":[],"inputControlRange":[],"inputControlSteps":1,"bPanelActivated":false,"panelMMEvalMathStr":"","chartLabel":"Custom Chart","chartOMDataArr":[],"chartYaxisLabel":"Y Axis","chartXaxisLabel":"X Axis","chartYaxisMin":30,"chartYaxisMax":50,"chartYaxisStep":10,"chartYaxisMode":"time","chartTickValue":5,"chartXaxisOMData":null,"chartXaxisMaxSample":600,"chartUpdateKey":0,"chartRetainData":false,"inputLinkToOM":false,"inputAfterChangeGCodeCMD":"","inputLinkedOMKey":""},{"panelID":"ba7bb6d6-89f4-PANEL8e5-a677-80a56d21a4a9","tabID":"c872e9dc-c72f-TABc8c-a310-db179808401a","panelType":"txtLabel","panelYpos":280,"panelXpos":380,"panelHSize":27,"panelWSize":300,"panelZIndex":64,"panelMMPrefix":"Use AutoZ","panelMMPath":"","panelMMOrientation":"H","panelMMPrefixColor":"","panelMMValueColor":"","panelMMTextSize":"body-2","panelColor":"#FCFCADFF","panelBGColor":"","panelUseDWCThemeBGColor":true,"panelHoverText":"This is hover text","borderless":false,"customPanelID":null,"altWebCamParams":{"altWebCamURL":"http://","altWebCamRotation":0,"altWebCamFlip":"none","altWebCamUpdateTimer":5000,"altWebCamiFrame":false,"altWebCamAppndHTTP":false,"altWebCamClickURL":"","altWebCamConfigURL":"","altWebCamConfigNewWin":false},"MMParams":{},"inputClass":"variable","inputType":"text","inputPrefixText":"","inputSuffixText":"","inputEnableClear":false,"inputLastVal":"","inputVarName":"","inputDispType":"","inputControlVals":[],"inputControlRange":[],"inputControlSteps":1,"bPanelActivated":false,"panelMMEvalMathStr":"","chartLabel":"Custom Chart","chartOMDataArr":[],"chartYaxisLabel":"Y Axis","chartXaxisLabel":"X Axis","chartYaxisMin":30,"chartYaxisMax":50,"chartYaxisStep":10,"chartYaxisMode":"time","chartTickValue":5,"chartXaxisOMData":null,"chartXaxisMaxSample":600,"chartUpdateKey":0,"chartRetainData":false,"inputLinkToOM":false,"inputAfterChangeGCodeCMD":"","inputLinkedOMKey":""},{"panelID":"866b93f7-896a-PANEL8a0-ad8f-21071c0a59cf","tabID":"c872e9dc-c72f-TABc8c-a310-db179808401a","panelType":"vInput","panelYpos":320,"panelXpos":380,"panelHSize":60,"panelWSize":300,"panelZIndex":65,"panelMMPrefix":"","panelMMPath":"","panelMMOrientation":"H","panelMMPrefixColor":"","panelMMValueColor":"","panelMMTextSize":"body-2","panelColor":"","panelBGColor":"","panelUseDWCThemeBGColor":true,"panelHoverText":"Use AutoZ when starting a print","borderless":false,"customPanelID":null,"altWebCamParams":{"altWebCamURL":"http://","altWebCamRotation":0,"altWebCamFlip":"none","altWebCamUpdateTimer":5000,"altWebCamiFrame":false,"altWebCamAppndHTTP":false,"altWebCamClickURL":"","altWebCamConfigURL":"","altWebCamConfigNewWin":false},"MMParams":{},"inputClass":"variable","inputType":"boolean","inputPrefixText":"False","inputSuffixText":"True","inputEnableClear":false,"inputLastVal":"###","inputVarName":"useAutoZ","inputDispType":"switch","inputControlVals":[],"inputControlRange":[0,100],"inputControlSteps":1,"bPanelActivated":false,"panelMMEvalMathStr":"","chartLabel":"Custom Chart","chartOMDataArr":[],"chartYaxisLabel":"Y Axis","chartXaxisLabel":"X Axis","chartYaxisMin":30,"chartYaxisMax":50,"chartYaxisStep":10,"chartYaxisMode":"time","chartTickValue":5,"chartXaxisOMData":null,"chartXaxisMaxSample":600,"chartUpdateKey":0,"chartRetainData":false,"inputLinkToOM":false,"inputAfterChangeGCodeCMD":"","inputLinkedOMKey":""},{"panelID":"0ddbf6db-898b-PANEL3c4-b65c-4335de78ec95","tabID":"c872e9dc-c72f-TABc8c-a310-db179808401a","panelType":"vInput","panelYpos":360,"panelXpos":740,"panelHSize":60,"panelWSize":300,"panelZIndex":70,"panelMMPrefix":"","panelMMPath":"","panelMMOrientation":"H","panelMMPrefixColor":"","panelMMValueColor":"","panelMMTextSize":"body-2","panelColor":"","panelBGColor":"","panelUseDWCThemeBGColor":true,"panelHoverText":"Generate bed mesh when starting a print","borderless":false,"customPanelID":null,"altWebCamParams":{"altWebCamURL":"http://","altWebCamRotation":0,"altWebCamFlip":"none","altWebCamUpdateTimer":5000,"altWebCamiFrame":false,"altWebCamAppndHTTP":false,"altWebCamClickURL":"","altWebCamConfigURL":"","altWebCamConfigNewWin":false},"MMParams":{},"inputClass":"variable","inputType":"boolean","inputPrefixText":"False","inputSuffixText":"True","inputEnableClear":false,"inputLastVal":false,"inputVarName":"generateMesh","inputDispType":"switch","inputControlVals":[],"inputControlRange":[0,100],"inputControlSteps":1,"bPanelActivated":false,"panelMMEvalMathStr":"","chartLabel":"Custom Chart","chartOMDataArr":[],"chartYaxisLabel":"Y Axis","chartXaxisLabel":"X Axis","chartYaxisMin":30,"chartYaxisMax":50,"chartYaxisStep":10,"chartYaxisMode":"time","chartTickValue":5,"chartXaxisOMData":null,"chartXaxisMaxSample":600,"chartUpdateKey":0,"chartRetainData":false,"inputLinkToOM":false,"inputAfterChangeGCodeCMD":"","inputLinkedOMKey":""},{"panelID":"dbcdfceb-d0fd-PANELbc0-a67a-338dcc8d362e","tabID":"c872e9dc-c72f-TABc8c-a310-db179808401a","panelType":"txtLabel","panelYpos":280,"panelXpos":740,"panelHSize":27,"panelWSize":300,"panelZIndex":71,"panelMMPrefix":"Mesh Control","panelMMPath":"","panelMMOrientation":"H","panelMMPrefixColor":"","panelMMValueColor":"","panelMMTextSize":"body-2","panelColor":"#A286F4FF","panelBGColor":"","panelUseDWCThemeBGColor":true,"panelHoverText":"This is hover text","borderless":false,"customPanelID":null,"altWebCamParams":{"altWebCamURL":"http://","altWebCamRotation":0,"altWebCamFlip":"none","altWebCamUpdateTimer":5000,"altWebCamiFrame":false,"altWebCamAppndHTTP":false,"altWebCamClickURL":"","altWebCamConfigURL":"","altWebCamConfigNewWin":false},"MMParams":{},"inputClass":"variable","inputType":"text","inputPrefixText":"","inputSuffixText":"","inputEnableClear":false,"inputLastVal":"","inputVarName":"","inputDispType":"","inputControlVals":[],"inputControlRange":[],"inputControlSteps":1,"bPanelActivated":false,"panelMMEvalMathStr":"","chartLabel":"Custom Chart","chartOMDataArr":[],"chartYaxisLabel":"Y Axis","chartXaxisLabel":"X Axis","chartYaxisMin":30,"chartYaxisMax":50,"chartYaxisStep":10,"chartYaxisMode":"time","chartTickValue":5,"chartXaxisOMData":null,"chartXaxisMaxSample":600,"chartUpdateKey":0,"chartRetainData":false,"inputLinkToOM":false,"inputAfterChangeGCodeCMD":"","inputLinkedOMKey":""},{"panelID":"830da56f-a49e-PANELed5-8971-ece360e90fad","tabID":"c872e9dc-c72f-TABc8c-a310-db179808401a","panelType":"txtLabel","panelYpos":260,"panelXpos":720,"panelHSize":300,"panelWSize":340,"panelZIndex":69,"panelMMPrefix":" ","panelMMPath":"","panelMMOrientation":"H","panelMMPrefixColor":"","panelMMValueColor":"","panelMMTextSize":"body-2","panelColor":"#A286F4FF","panelBGColor":"","panelUseDWCThemeBGColor":true,"panelHoverText":"This is hover text","borderless":false,"customPanelID":null,"altWebCamParams":{"altWebCamURL":"http://","altWebCamRotation":0,"altWebCamFlip":"none","altWebCamUpdateTimer":5000,"altWebCamiFrame":false,"altWebCamAppndHTTP":false,"altWebCamClickURL":"","altWebCamConfigURL":"","altWebCamConfigNewWin":false},"MMParams":{},"inputClass":"variable","inputType":"text","inputPrefixText":"","inputSuffixText":"","inputEnableClear":false,"inputLastVal":"","inputVarName":"","inputDispType":"","inputControlVals":[],"inputControlRange":[],"inputControlSteps":1,"bPanelActivated":false,"panelMMEvalMathStr":"","chartLabel":"Custom Chart","chartOMDataArr":[],"chartYaxisLabel":"Y Axis","chartXaxisLabel":"X Axis","chartYaxisMin":30,"chartYaxisMax":50,"chartYaxisStep":10,"chartYaxisMode":"time","chartTickValue":5,"chartXaxisOMData":null,"chartXaxisMaxSample":600,"chartUpdateKey":0,"chartRetainData":false,"inputLinkToOM":false,"inputAfterChangeGCodeCMD":"","inputLinkedOMKey":""},{"panelID":"1e3f78a9-bc18-PANEL92a-b6d5-629316d7a810","tabID":"c872e9dc-c72f-TABc8c-a310-db179808401a","panelType":"txtLabel","panelYpos":320,"panelXpos":740,"panelHSize":27,"panelWSize":300,"panelZIndex":72,"panelMMPrefix":"Generate Mesh before Print","panelMMPath":"","panelMMOrientation":"H","panelMMPrefixColor":"","panelMMValueColor":"","panelMMTextSize":"body-2","panelColor":"","panelBGColor":"","panelUseDWCThemeBGColor":true,"panelHoverText":"This is hover text","borderless":false,"customPanelID":null,"altWebCamParams":{"altWebCamURL":"http://","altWebCamRotation":0,"altWebCamFlip":"none","altWebCamUpdateTimer":5000,"altWebCamiFrame":false,"altWebCamAppndHTTP":false,"altWebCamClickURL":"","altWebCamConfigURL":"","altWebCamConfigNewWin":false},"MMParams":{},"inputClass":"variable","inputType":"text","inputPrefixText":"","inputSuffixText":"","inputEnableClear":false,"inputLastVal":"","inputVarName":"","inputDispType":"","inputControlVals":[],"inputControlRange":[],"inputControlSteps":1,"bPanelActivated":false,"panelMMEvalMathStr":"","chartLabel":"Custom Chart","chartOMDataArr":[],"chartYaxisLabel":"Y Axis","chartXaxisLabel":"X Axis","chartYaxisMin":30,"chartYaxisMax":50,"chartYaxisStep":10,"chartYaxisMode":"time","chartTickValue":5,"chartXaxisOMData":null,"chartXaxisMaxSample":600,"chartUpdateKey":0,"chartRetainData":false,"inputLinkToOM":false,"inputAfterChangeGCodeCMD":"","inputLinkedOMKey":""},{"panelID":"6d212b32-5ae2-PANEL0af-9999-2f61418c923c","tabID":"c872e9dc-c72f-TABc8c-a310-db179808401a","panelType":"txtLabel","panelYpos":440,"panelXpos":740,"panelHSize":27,"panelWSize":300,"panelZIndex":73,"panelMMPrefix":"Generate Print Only Mesh before Print","panelMMPath":"","panelMMOrientation":"H","panelMMPrefixColor":"","panelMMValueColor":"","panelMMTextSize":"body-2","panelColor":"","panelBGColor":"","panelUseDWCThemeBGColor":true,"panelHoverText":"This is hover text","borderless":false,"customPanelID":null,"altWebCamParams":{"altWebCamURL":"http://","altWebCamRotation":0,"altWebCamFlip":"none","altWebCamUpdateTimer":5000,"altWebCamiFrame":false,"altWebCamAppndHTTP":false,"altWebCamClickURL":"","altWebCamConfigURL":"","altWebCamConfigNewWin":false},"MMParams":{},"inputClass":"variable","inputType":"text","inputPrefixText":"","inputSuffixText":"","inputEnableClear":false,"inputLastVal":"","inputVarName":"","inputDispType":"","inputControlVals":[],"inputControlRange":[],"inputControlSteps":1,"bPanelActivated":false,"panelMMEvalMathStr":"","chartLabel":"Custom Chart","chartOMDataArr":[],"chartYaxisLabel":"Y Axis","chartXaxisLabel":"X Axis","chartYaxisMin":30,"chartYaxisMax":50,"chartYaxisStep":10,"chartYaxisMode":"time","chartTickValue":5,"chartXaxisOMData":null,"chartXaxisMaxSample":600,"chartUpdateKey":0,"chartRetainData":false,"inputLinkToOM":false,"inputAfterChangeGCodeCMD":"","inputLinkedOMKey":""},{"panelID":"0196dcc8-d223-PANEL64b-905b-a0781bee958b","tabID":"c872e9dc-c72f-TABc8c-a310-db179808401a","panelType":"vInput","panelYpos":480,"panelXpos":740,"panelHSize":60,"panelWSize":300,"panelZIndex":74,"panelMMPrefix":"","panelMMPath":"","panelMMOrientation":"H","panelMMPrefixColor":"","panelMMValueColor":"","panelMMTextSize":"body-2","panelColor":"","panelBGColor":"","panelUseDWCThemeBGColor":true,"panelHoverText":"Generate bed mesh when starting a print","borderless":false,"customPanelID":null,"altWebCamParams":{"altWebCamURL":"http://","altWebCamRotation":0,"altWebCamFlip":"none","altWebCamUpdateTimer":5000,"altWebCamiFrame":false,"altWebCamAppndHTTP":false,"altWebCamClickURL":"","altWebCamConfigURL":"","altWebCamConfigNewWin":false},"MMParams":{},"inputClass":"variable","inputType":"boolean","inputPrefixText":"False","inputSuffixText":"True","inputEnableClear":false,"inputLastVal":false,"inputVarName":"generatePrintOnlyMesh","inputDispType":"switch","inputControlVals":[],"inputControlRange":[0,100],"inputControlSteps":1,"bPanelActivated":false,"panelMMEvalMathStr":"","chartLabel":"Custom Chart","chartOMDataArr":[],"chartYaxisLabel":"Y Axis","chartXaxisLabel":"X Axis","chartYaxisMin":30,"chartYaxisMax":50,"chartYaxisStep":10,"chartYaxisMode":"time","chartTickValue":5,"chartXaxisOMData":null,"chartXaxisMaxSample":600,"chartUpdateKey":0,"chartRetainData":false,"inputLinkToOM":false,"inputAfterChangeGCodeCMD":"","inputLinkedOMKey":""}],"exportDate":"2023/05/19","btnCmdVer":"0.10.16","exportComment":null,"exportResW":1920,"exportResH":1080} -------------------------------------------------------------------------------- /BtnCmd/BtnCmdforTroodonV2 - for 01.02.02+.json: -------------------------------------------------------------------------------- 1 | {"btns":[],"tabs":[{"tabID":"c872e9dc-c72f-TABc8c-a310-db179808401a","embedTab":false,"icon":"mdi-view-module","translated":false,"caption":"Print Control","numberOfColumns":12,"showWebCam":false,"showAltWebCam":false,"tabEnableSnap":true,"tabGridSize":[20,20],"lastZIndex":74}],"panels":[{"panelID":"60ea3fa9-f6c7-PANELca5-9f95-2e2ada249bc4","tabID":"c872e9dc-c72f-TABc8c-a310-db179808401a","panelType":"txtLabel","panelYpos":80,"panelXpos":20,"panelHSize":20,"panelWSize":300,"panelZIndex":38,"panelMMPrefix":"Soak Time","panelMMPath":"","panelMMOrientation":"H","panelMMPrefixColor":"","panelMMValueColor":"","panelMMTextSize":"body-2","panelColor":"","panelBGColor":"","panelUseDWCThemeBGColor":true,"panelHoverText":"This is hover text","borderless":false,"customPanelID":null,"altWebCamParams":{"altWebCamURL":"http://","altWebCamRotation":0,"altWebCamFlip":"none","altWebCamUpdateTimer":5000,"altWebCamiFrame":false,"altWebCamAppndHTTP":false,"altWebCamClickURL":"","altWebCamConfigURL":"","altWebCamConfigNewWin":false},"MMParams":{},"inputClass":"variable","inputType":"text","inputPrefixText":"","inputSuffixText":"","inputEnableClear":false,"inputLastVal":"","inputVarName":"","inputDispType":"","inputControlVals":[],"inputControlRange":[],"inputControlSteps":1,"bPanelActivated":false,"panelMMEvalMathStr":"","chartLabel":"Custom Chart","chartOMDataArr":[],"chartYaxisLabel":"Y Axis","chartXaxisLabel":"X Axis","chartYaxisMin":30,"chartYaxisMax":50,"chartYaxisStep":10,"chartYaxisMode":"time","chartTickValue":5,"chartXaxisOMData":null,"chartXaxisMaxSample":600,"chartUpdateKey":0,"chartRetainData":false,"inputLinkToOM":false,"inputAfterChangeGCodeCMD":"","inputLinkedOMKey":""},{"panelID":"0d87b184-a3c2-PANEL825-9e89-eed0d7a5dbe9","tabID":"c872e9dc-c72f-TABc8c-a310-db179808401a","panelType":"vInput","panelYpos":360,"panelXpos":20,"panelHSize":60,"panelWSize":300,"panelZIndex":44,"panelMMPrefix":"","panelMMPath":"","panelMMOrientation":"H","panelMMPrefixColor":"","panelMMValueColor":"","panelMMTextSize":"body-2","panelColor":"","panelBGColor":"","panelUseDWCThemeBGColor":true,"panelHoverText":"Soak Time Override","borderless":false,"customPanelID":null,"altWebCamParams":{"altWebCamURL":"http://","altWebCamRotation":0,"altWebCamFlip":"none","altWebCamUpdateTimer":5000,"altWebCamiFrame":false,"altWebCamAppndHTTP":false,"altWebCamClickURL":"","altWebCamConfigURL":"","altWebCamConfigNewWin":false},"MMParams":{},"inputClass":"variable","inputType":"boolean","inputPrefixText":"False","inputSuffixText":"True","inputEnableClear":false,"inputLastVal":false,"inputVarName":"soakTimeOverride","inputDispType":"switch","inputControlVals":[],"inputControlRange":[0,100],"inputControlSteps":1,"bPanelActivated":false,"panelMMEvalMathStr":"","chartLabel":"Custom Chart","chartOMDataArr":[],"chartYaxisLabel":"Y Axis","chartXaxisLabel":"X Axis","chartYaxisMin":30,"chartYaxisMax":50,"chartYaxisStep":10,"chartYaxisMode":"time","chartTickValue":5,"chartXaxisOMData":null,"chartXaxisMaxSample":600,"chartUpdateKey":0,"chartRetainData":false,"inputLinkToOM":false,"inputAfterChangeGCodeCMD":"","inputLinkedOMKey":""},{"panelID":"83f4cdd4-014c-PANEL337-867e-485757db3c45","tabID":"c872e9dc-c72f-TABc8c-a310-db179808401a","panelType":"vInput","panelYpos":160,"panelXpos":380,"panelHSize":60,"panelWSize":300,"panelZIndex":50,"panelMMPrefix":"","panelMMPath":"","panelMMOrientation":"H","panelMMPrefixColor":"","panelMMValueColor":"","panelMMTextSize":"body-2","panelColor":"","panelBGColor":"","panelUseDWCThemeBGColor":true,"panelHoverText":"Allows you to override the print hotend temperature","borderless":false,"customPanelID":null,"altWebCamParams":{"altWebCamURL":"http://","altWebCamRotation":0,"altWebCamFlip":"none","altWebCamUpdateTimer":5000,"altWebCamiFrame":false,"altWebCamAppndHTTP":false,"altWebCamClickURL":"","altWebCamConfigURL":"","altWebCamConfigNewWin":false},"MMParams":{},"inputClass":"variable","inputType":"number","inputPrefixText":"Slicer Hotend Temperature Override ","inputSuffixText":"","inputEnableClear":false,"inputLastVal":0,"inputVarName":"slicerHotendTempOverride","inputDispType":"input","inputControlVals":[],"inputControlRange":[0,100],"inputControlSteps":1,"bPanelActivated":false,"panelMMEvalMathStr":"","chartLabel":"Custom Chart","chartOMDataArr":[],"chartYaxisLabel":"Y Axis","chartXaxisLabel":"X Axis","chartYaxisMin":30,"chartYaxisMax":50,"chartYaxisStep":10,"chartYaxisMode":"time","chartTickValue":5,"chartXaxisOMData":null,"chartXaxisMaxSample":600,"chartUpdateKey":0,"chartRetainData":false,"inputLinkToOM":false,"inputAfterChangeGCodeCMD":"","inputLinkedOMKey":""},{"panelID":"2ea1dc2a-d3fb-PANEL3da-9ae5-ec4e149d8d88","tabID":"c872e9dc-c72f-TABc8c-a310-db179808401a","panelType":"vInput","panelYpos":80,"panelXpos":380,"panelHSize":60,"panelWSize":300,"panelZIndex":51,"panelMMPrefix":"","panelMMPath":"","panelMMOrientation":"H","panelMMPrefixColor":"","panelMMValueColor":"","panelMMTextSize":"body-2","panelColor":"","panelBGColor":"","panelUseDWCThemeBGColor":true,"panelHoverText":"Allows you to override the print bed temperature","borderless":false,"customPanelID":null,"altWebCamParams":{"altWebCamURL":"http://","altWebCamRotation":0,"altWebCamFlip":"none","altWebCamUpdateTimer":5000,"altWebCamiFrame":false,"altWebCamAppndHTTP":false,"altWebCamClickURL":"","altWebCamConfigURL":"","altWebCamConfigNewWin":false},"MMParams":{},"inputClass":"variable","inputType":"text","inputPrefixText":"Slicer Bed Temperature Override","inputSuffixText":"","inputEnableClear":false,"inputLastVal":0,"inputVarName":"slicerBedTempOverride","inputDispType":"input","inputControlVals":[],"inputControlRange":[0,100],"inputControlSteps":1,"bPanelActivated":false,"panelMMEvalMathStr":"","chartLabel":"Custom Chart","chartOMDataArr":[],"chartYaxisLabel":"Y Axis","chartXaxisLabel":"X Axis","chartYaxisMin":30,"chartYaxisMax":50,"chartYaxisStep":10,"chartYaxisMode":"time","chartTickValue":5,"chartXaxisOMData":null,"chartXaxisMaxSample":600,"chartUpdateKey":0,"chartRetainData":false,"inputLinkToOM":false,"inputAfterChangeGCodeCMD":"","inputLinkedOMKey":""},{"panelID":"7cc09421-f362-PANELf53-a024-baac6220d01f","tabID":"c872e9dc-c72f-TABc8c-a310-db179808401a","panelType":"txtLabel","panelYpos":200,"panelXpos":1100,"panelHSize":27,"panelWSize":300,"panelZIndex":57,"panelMMPrefix":"Override Turning Bed Off","panelMMPath":"","panelMMOrientation":"H","panelMMPrefixColor":"","panelMMValueColor":"","panelMMTextSize":"body-2","panelColor":"","panelBGColor":"","panelUseDWCThemeBGColor":true,"panelHoverText":"This is hover text","borderless":false,"customPanelID":null,"altWebCamParams":{"altWebCamURL":"http://","altWebCamRotation":0,"altWebCamFlip":"none","altWebCamUpdateTimer":5000,"altWebCamiFrame":false,"altWebCamAppndHTTP":false,"altWebCamClickURL":"","altWebCamConfigURL":"","altWebCamConfigNewWin":false},"MMParams":{},"inputClass":"variable","inputType":"text","inputPrefixText":"","inputSuffixText":"","inputEnableClear":false,"inputLastVal":"","inputVarName":"","inputDispType":"","inputControlVals":[],"inputControlRange":[],"inputControlSteps":1,"bPanelActivated":false,"panelMMEvalMathStr":"","chartLabel":"Custom Chart","chartOMDataArr":[],"chartYaxisLabel":"Y Axis","chartXaxisLabel":"X Axis","chartYaxisMin":30,"chartYaxisMax":50,"chartYaxisStep":10,"chartYaxisMode":"time","chartTickValue":5,"chartXaxisOMData":null,"chartXaxisMaxSample":600,"chartUpdateKey":0,"chartRetainData":false,"inputLinkToOM":false,"inputAfterChangeGCodeCMD":"","inputLinkedOMKey":""},{"panelID":"a9be7dc7-569b-PANEL257-8724-5152c71270e1","tabID":"c872e9dc-c72f-TABc8c-a310-db179808401a","panelType":"vInput","panelYpos":240,"panelXpos":1100,"panelHSize":60,"panelWSize":300,"panelZIndex":58,"panelMMPrefix":"","panelMMPath":"","panelMMOrientation":"H","panelMMPrefixColor":"","panelMMValueColor":"","panelMMTextSize":"body-2","panelColor":"","panelBGColor":"","panelUseDWCThemeBGColor":true,"panelHoverText":"Override whether bed is turned off at end of print","borderless":false,"customPanelID":null,"altWebCamParams":{"altWebCamURL":"http://","altWebCamRotation":0,"altWebCamFlip":"none","altWebCamUpdateTimer":5000,"altWebCamiFrame":false,"altWebCamAppndHTTP":false,"altWebCamClickURL":"","altWebCamConfigURL":"","altWebCamConfigNewWin":false},"MMParams":{},"inputClass":"variable","inputType":"boolean","inputPrefixText":"False","inputSuffixText":"True","inputEnableClear":false,"inputLastVal":false,"inputVarName":"overrideBedOff","inputDispType":"switch","inputControlVals":[],"inputControlRange":[0,100],"inputControlSteps":1,"bPanelActivated":false,"panelMMEvalMathStr":"","chartLabel":"Custom Chart","chartOMDataArr":[],"chartYaxisLabel":"Y Axis","chartXaxisLabel":"X Axis","chartYaxisMin":30,"chartYaxisMax":50,"chartYaxisStep":10,"chartYaxisMode":"time","chartTickValue":5,"chartXaxisOMData":null,"chartXaxisMaxSample":600,"chartUpdateKey":0,"chartRetainData":false,"inputLinkToOM":false,"inputAfterChangeGCodeCMD":"","inputLinkedOMKey":""},{"panelID":"76868582-143b-PANEL582-9464-525d95db024f","tabID":"c872e9dc-c72f-TABc8c-a310-db179808401a","panelType":"txtLabel","panelYpos":80,"panelXpos":1100,"panelHSize":27,"panelWSize":300,"panelZIndex":55,"panelMMPrefix":"Override Turning Hotend Off","panelMMPath":"","panelMMOrientation":"H","panelMMPrefixColor":"","panelMMValueColor":"","panelMMTextSize":"body-2","panelColor":"","panelBGColor":"","panelUseDWCThemeBGColor":true,"panelHoverText":"This is hover text","borderless":false,"customPanelID":null,"altWebCamParams":{"altWebCamURL":"http://","altWebCamRotation":0,"altWebCamFlip":"none","altWebCamUpdateTimer":5000,"altWebCamiFrame":false,"altWebCamAppndHTTP":false,"altWebCamClickURL":"","altWebCamConfigURL":"","altWebCamConfigNewWin":false},"MMParams":{},"inputClass":"variable","inputType":"text","inputPrefixText":"","inputSuffixText":"","inputEnableClear":false,"inputLastVal":"","inputVarName":"","inputDispType":"","inputControlVals":[],"inputControlRange":[],"inputControlSteps":1,"bPanelActivated":false,"panelMMEvalMathStr":"","chartLabel":"Custom Chart","chartOMDataArr":[],"chartYaxisLabel":"Y Axis","chartXaxisLabel":"X Axis","chartYaxisMin":30,"chartYaxisMax":50,"chartYaxisStep":10,"chartYaxisMode":"time","chartTickValue":5,"chartXaxisOMData":null,"chartXaxisMaxSample":600,"chartUpdateKey":0,"chartRetainData":false,"inputLinkToOM":false,"inputAfterChangeGCodeCMD":"","inputLinkedOMKey":""},{"panelID":"7c84953f-f433-PANELb06-8dd9-d2adbb9627d6","tabID":"c872e9dc-c72f-TABc8c-a310-db179808401a","panelType":"vInput","panelYpos":120,"panelXpos":1100,"panelHSize":60,"panelWSize":300,"panelZIndex":56,"panelMMPrefix":"","panelMMPath":"","panelMMOrientation":"H","panelMMPrefixColor":"","panelMMValueColor":"","panelMMTextSize":"body-2","panelColor":"","panelBGColor":"","panelUseDWCThemeBGColor":true,"panelHoverText":"Override whether hotend is turned off at end of print","borderless":false,"customPanelID":null,"altWebCamParams":{"altWebCamURL":"http://","altWebCamRotation":0,"altWebCamFlip":"none","altWebCamUpdateTimer":5000,"altWebCamiFrame":false,"altWebCamAppndHTTP":false,"altWebCamClickURL":"","altWebCamConfigURL":"","altWebCamConfigNewWin":false},"MMParams":{},"inputClass":"variable","inputType":"boolean","inputPrefixText":"False","inputSuffixText":"True","inputEnableClear":false,"inputLastVal":false,"inputVarName":"overrideHotendOff","inputDispType":"switch","inputControlVals":[],"inputControlRange":[0,100],"inputControlSteps":1,"bPanelActivated":false,"panelMMEvalMathStr":"","chartLabel":"Custom Chart","chartOMDataArr":[],"chartYaxisLabel":"Y Axis","chartXaxisLabel":"X Axis","chartYaxisMin":30,"chartYaxisMax":50,"chartYaxisStep":10,"chartYaxisMode":"time","chartTickValue":5,"chartXaxisOMData":null,"chartXaxisMaxSample":600,"chartUpdateKey":0,"chartRetainData":false,"inputLinkToOM":false,"inputAfterChangeGCodeCMD":"","inputLinkedOMKey":""},{"panelID":"242e07e5-6f17-PANELc00-bb16-f5c32082463c","tabID":"c872e9dc-c72f-TABc8c-a310-db179808401a","panelType":"vInput","panelYpos":80,"panelXpos":740,"panelHSize":60,"panelWSize":300,"panelZIndex":62,"panelMMPrefix":"","panelMMPath":"","panelMMOrientation":"H","panelMMPrefixColor":"","panelMMValueColor":"","panelMMTextSize":"body-2","panelColor":"","panelBGColor":"","panelUseDWCThemeBGColor":true,"panelHoverText":"Set the size of nozzle installed to the printer","borderless":false,"customPanelID":null,"altWebCamParams":{"altWebCamURL":"http://","altWebCamRotation":0,"altWebCamFlip":"none","altWebCamUpdateTimer":5000,"altWebCamiFrame":false,"altWebCamAppndHTTP":false,"altWebCamClickURL":"","altWebCamConfigURL":"","altWebCamConfigNewWin":false},"MMParams":{},"inputClass":"variable","inputType":"number","inputPrefixText":"Nozzle Diameter Fitted","inputSuffixText":"","inputEnableClear":false,"inputLastVal":0.4,"inputVarName":"nozzleDiameterInstalled","inputDispType":"input","inputControlVals":[],"inputControlRange":[0,100],"inputControlSteps":1,"bPanelActivated":false,"panelMMEvalMathStr":"","chartLabel":"Custom Chart","chartOMDataArr":[],"chartYaxisLabel":"Y Axis","chartXaxisLabel":"X Axis","chartYaxisMin":30,"chartYaxisMax":50,"chartYaxisStep":10,"chartYaxisMode":"time","chartTickValue":5,"chartXaxisOMData":null,"chartXaxisMaxSample":600,"chartUpdateKey":0,"chartRetainData":false,"inputLinkToOM":false,"inputAfterChangeGCodeCMD":"","inputLinkedOMKey":""},{"panelID":"74be457b-a68b-PANEL030-a37f-c06153ddbf07","tabID":"c872e9dc-c72f-TABc8c-a310-db179808401a","panelType":"txtLabel","panelYpos":320,"panelXpos":20,"panelHSize":27,"panelWSize":300,"panelZIndex":43,"panelMMPrefix":"Soak Time Override","panelMMPath":"","panelMMOrientation":"H","panelMMPrefixColor":"","panelMMValueColor":"","panelMMTextSize":"body-2","panelColor":"","panelBGColor":"","panelUseDWCThemeBGColor":true,"panelHoverText":"This is hover text","borderless":false,"customPanelID":null,"altWebCamParams":{"altWebCamURL":"http://","altWebCamRotation":0,"altWebCamFlip":"none","altWebCamUpdateTimer":5000,"altWebCamiFrame":false,"altWebCamAppndHTTP":false,"altWebCamClickURL":"","altWebCamConfigURL":"","altWebCamConfigNewWin":false},"MMParams":{},"inputClass":"variable","inputType":"text","inputPrefixText":"","inputSuffixText":"","inputEnableClear":false,"inputLastVal":"","inputVarName":"","inputDispType":"","inputControlVals":[],"inputControlRange":[],"inputControlSteps":1,"bPanelActivated":false,"panelMMEvalMathStr":"","chartLabel":"Custom Chart","chartOMDataArr":[],"chartYaxisLabel":"Y Axis","chartXaxisLabel":"X Axis","chartYaxisMin":30,"chartYaxisMax":50,"chartYaxisStep":10,"chartYaxisMode":"time","chartTickValue":5,"chartXaxisOMData":null,"chartXaxisMaxSample":600,"chartUpdateKey":0,"chartRetainData":false,"inputLinkToOM":false,"inputAfterChangeGCodeCMD":"","inputLinkedOMKey":""},{"panelID":"c8807aaf-5f6c-PANEL3cc-aead-2f79791a8389","tabID":"c872e9dc-c72f-TABc8c-a310-db179808401a","panelType":"vInput","panelYpos":160,"panelXpos":740,"panelHSize":60,"panelWSize":300,"panelZIndex":61,"panelMMPrefix":"","panelMMPath":"","panelMMOrientation":"H","panelMMPrefixColor":"","panelMMValueColor":"","panelMMTextSize":"body-2","panelColor":"","panelBGColor":"","panelUseDWCThemeBGColor":true,"panelHoverText":"Set the nozzle probe temperature","borderless":false,"customPanelID":null,"altWebCamParams":{"altWebCamURL":"http://","altWebCamRotation":0,"altWebCamFlip":"none","altWebCamUpdateTimer":5000,"altWebCamiFrame":false,"altWebCamAppndHTTP":false,"altWebCamClickURL":"","altWebCamConfigURL":"","altWebCamConfigNewWin":false},"MMParams":{},"inputClass":"variable","inputType":"number","inputPrefixText":"Nozzle Probe Temperature","inputSuffixText":"","inputEnableClear":false,"inputLastVal":175,"inputVarName":"nozzleProbeTemperature","inputDispType":"input","inputControlVals":[],"inputControlRange":[0,100],"inputControlSteps":1,"bPanelActivated":false,"panelMMEvalMathStr":"","chartLabel":"Custom Chart","chartOMDataArr":[],"chartYaxisLabel":"Y Axis","chartXaxisLabel":"X Axis","chartYaxisMin":30,"chartYaxisMax":50,"chartYaxisStep":10,"chartYaxisMode":"time","chartTickValue":5,"chartXaxisOMData":null,"chartXaxisMaxSample":600,"chartUpdateKey":0,"chartRetainData":false,"inputLinkToOM":false,"inputAfterChangeGCodeCMD":"","inputLinkedOMKey":""},{"panelID":"26478452-50ec-PANELa5e-95ed-0971949b7f3a","tabID":"c872e9dc-c72f-TABc8c-a310-db179808401a","panelType":"txtLabel","panelYpos":200,"panelXpos":20,"panelHSize":27,"panelWSize":300,"panelZIndex":41,"panelMMPrefix":"Cancel Print During Soak Time","panelMMPath":"","panelMMOrientation":"H","panelMMPrefixColor":"","panelMMValueColor":"","panelMMTextSize":"body-2","panelColor":"","panelBGColor":"","panelUseDWCThemeBGColor":true,"panelHoverText":"This is hover text","borderless":false,"customPanelID":null,"altWebCamParams":{"altWebCamURL":"http://","altWebCamRotation":0,"altWebCamFlip":"none","altWebCamUpdateTimer":5000,"altWebCamiFrame":false,"altWebCamAppndHTTP":false,"altWebCamClickURL":"","altWebCamConfigURL":"","altWebCamConfigNewWin":false},"MMParams":{},"inputClass":"variable","inputType":"text","inputPrefixText":"","inputSuffixText":"","inputEnableClear":false,"inputLastVal":"","inputVarName":"","inputDispType":"","inputControlVals":[],"inputControlRange":[],"inputControlSteps":1,"bPanelActivated":false,"panelMMEvalMathStr":"","chartLabel":"Custom Chart","chartOMDataArr":[],"chartYaxisLabel":"Y Axis","chartXaxisLabel":"X Axis","chartYaxisMin":30,"chartYaxisMax":50,"chartYaxisStep":10,"chartYaxisMode":"time","chartTickValue":5,"chartXaxisOMData":null,"chartXaxisMaxSample":600,"chartUpdateKey":0,"chartRetainData":false,"inputLinkToOM":false,"inputAfterChangeGCodeCMD":"","inputLinkedOMKey":""},{"panelID":"9f2bcab9-b9f5-PANELa3e-9486-28d8fb4def7f","tabID":"c872e9dc-c72f-TABc8c-a310-db179808401a","panelType":"vInput","panelYpos":240,"panelXpos":20,"panelHSize":60,"panelWSize":300,"panelZIndex":42,"panelMMPrefix":"","panelMMPath":"","panelMMOrientation":"H","panelMMPrefixColor":"","panelMMValueColor":"","panelMMTextSize":"body-2","panelColor":"","panelBGColor":"","panelUseDWCThemeBGColor":true,"panelHoverText":"Soak Time Override","borderless":false,"customPanelID":null,"altWebCamParams":{"altWebCamURL":"http://","altWebCamRotation":0,"altWebCamFlip":"none","altWebCamUpdateTimer":5000,"altWebCamiFrame":false,"altWebCamAppndHTTP":false,"altWebCamClickURL":"","altWebCamConfigURL":"","altWebCamConfigNewWin":false},"MMParams":{},"inputClass":"variable","inputType":"boolean","inputPrefixText":"False","inputSuffixText":"True","inputEnableClear":false,"inputLastVal":false,"inputVarName":"Cancelled","inputDispType":"switch","inputControlVals":[],"inputControlRange":[0,100],"inputControlSteps":1,"bPanelActivated":false,"panelMMEvalMathStr":"","chartLabel":"Custom Chart","chartOMDataArr":[],"chartYaxisLabel":"Y Axis","chartXaxisLabel":"X Axis","chartYaxisMin":30,"chartYaxisMax":50,"chartYaxisStep":10,"chartYaxisMode":"time","chartTickValue":5,"chartXaxisOMData":null,"chartXaxisMaxSample":600,"chartUpdateKey":0,"chartRetainData":false,"inputLinkToOM":false,"inputAfterChangeGCodeCMD":"","inputLinkedOMKey":""},{"panelID":"f0ba6b15-9c4a-PANELa77-8ba6-47cb86e8a92f","tabID":"c872e9dc-c72f-TABc8c-a310-db179808401a","panelType":"txtLabel","panelYpos":20,"panelXpos":0,"panelHSize":420,"panelWSize":340,"panelZIndex":36,"panelMMPrefix":" ","panelMMPath":"","panelMMOrientation":"H","panelMMPrefixColor":"","panelMMValueColor":"","panelMMTextSize":"body-2","panelColor":"#FF6A6AFF","panelBGColor":"","panelUseDWCThemeBGColor":true,"panelHoverText":"This is hover text","borderless":false,"customPanelID":null,"altWebCamParams":{"altWebCamURL":"http://","altWebCamRotation":0,"altWebCamFlip":"none","altWebCamUpdateTimer":5000,"altWebCamiFrame":false,"altWebCamAppndHTTP":false,"altWebCamClickURL":"","altWebCamConfigURL":"","altWebCamConfigNewWin":false},"MMParams":{},"inputClass":"variable","inputType":"text","inputPrefixText":"","inputSuffixText":"","inputEnableClear":false,"inputLastVal":"","inputVarName":"","inputDispType":"","inputControlVals":[],"inputControlRange":[],"inputControlSteps":1,"bPanelActivated":false,"panelMMEvalMathStr":"","chartLabel":"Custom Chart","chartOMDataArr":[],"chartYaxisLabel":"Y Axis","chartXaxisLabel":"X Axis","chartYaxisMin":30,"chartYaxisMax":50,"chartYaxisStep":10,"chartYaxisMode":"time","chartTickValue":5,"chartXaxisOMData":null,"chartXaxisMaxSample":600,"chartUpdateKey":0,"chartRetainData":false,"inputLinkToOM":false,"inputAfterChangeGCodeCMD":"","inputLinkedOMKey":""},{"panelID":"e8f9f609-d95c-PANEL4a1-a269-7efee55e6f55","tabID":"c872e9dc-c72f-TABc8c-a310-db179808401a","panelType":"txtLabel","panelYpos":40,"panelXpos":20,"panelHSize":27,"panelWSize":300,"panelZIndex":37,"panelMMPrefix":"Soak Time Control","panelMMPath":"","panelMMOrientation":"H","panelMMPrefixColor":"","panelMMValueColor":"","panelMMTextSize":"body-2","panelColor":"#FF6A6ACB","panelBGColor":"","panelUseDWCThemeBGColor":true,"panelHoverText":"This is hover text","borderless":false,"customPanelID":null,"altWebCamParams":{"altWebCamURL":"http://","altWebCamRotation":0,"altWebCamFlip":"none","altWebCamUpdateTimer":5000,"altWebCamiFrame":false,"altWebCamAppndHTTP":false,"altWebCamClickURL":"","altWebCamConfigURL":"","altWebCamConfigNewWin":false},"MMParams":{},"inputClass":"variable","inputType":"text","inputPrefixText":"","inputSuffixText":"","inputEnableClear":false,"inputLastVal":"","inputVarName":"","inputDispType":"","inputControlVals":[],"inputControlRange":[],"inputControlSteps":1,"bPanelActivated":false,"panelMMEvalMathStr":"","chartLabel":"Custom Chart","chartOMDataArr":[],"chartYaxisLabel":"Y Axis","chartXaxisLabel":"X Axis","chartYaxisMin":30,"chartYaxisMax":50,"chartYaxisStep":10,"chartYaxisMode":"time","chartTickValue":5,"chartXaxisOMData":null,"chartXaxisMaxSample":600,"chartUpdateKey":0,"chartRetainData":false,"inputLinkToOM":false,"inputAfterChangeGCodeCMD":"","inputLinkedOMKey":""},{"panelID":"7d96a0e4-d098-PANEL16a-adec-2a5a6ea32d22","tabID":"c872e9dc-c72f-TABc8c-a310-db179808401a","panelType":"vInput","panelYpos":120,"panelXpos":20,"panelHSize":60,"panelWSize":300,"panelZIndex":40,"panelMMPrefix":"","panelMMPath":"","panelMMOrientation":"H","panelMMPrefixColor":"","panelMMValueColor":"","panelMMTextSize":"body-2","panelColor":"","panelBGColor":"","panelUseDWCThemeBGColor":true,"panelHoverText":"Allows you to set the soak time for the printer in minutes","borderless":false,"customPanelID":null,"altWebCamParams":{"altWebCamURL":"http://","altWebCamRotation":0,"altWebCamFlip":"none","altWebCamUpdateTimer":5000,"altWebCamiFrame":false,"altWebCamAppndHTTP":false,"altWebCamClickURL":"","altWebCamConfigURL":"","altWebCamConfigNewWin":false},"MMParams":{},"inputClass":"variable","inputType":"number","inputPrefixText":"Soak Time","inputSuffixText":"minutes","inputEnableClear":false,"inputLastVal":15,"inputVarName":"soakTime","inputDispType":"input","inputControlVals":[],"inputControlRange":[0,100],"inputControlSteps":1,"bPanelActivated":false,"panelMMEvalMathStr":"","chartLabel":"Custom Chart","chartOMDataArr":[],"chartYaxisLabel":"Y Axis","chartXaxisLabel":"X Axis","chartYaxisMin":30,"chartYaxisMax":50,"chartYaxisStep":10,"chartYaxisMode":"time","chartTickValue":5,"chartXaxisOMData":null,"chartXaxisMaxSample":600,"chartUpdateKey":0,"chartRetainData":false,"inputLinkToOM":false,"inputAfterChangeGCodeCMD":"","inputLinkedOMKey":""},{"panelID":"4ad5ca3c-c3c2-PANEL9fe-a5fe-5b95443aedd1","tabID":"c872e9dc-c72f-TABc8c-a310-db179808401a","panelType":"txtLabel","panelYpos":20,"panelXpos":360,"panelHSize":220,"panelWSize":340,"panelZIndex":49,"panelMMPrefix":" ","panelMMPath":"","panelMMOrientation":"H","panelMMPrefixColor":"","panelMMValueColor":"","panelMMTextSize":"body-2","panelColor":"#ADFCBFFF","panelBGColor":"","panelUseDWCThemeBGColor":true,"panelHoverText":"This is hover text","borderless":false,"customPanelID":null,"altWebCamParams":{"altWebCamURL":"http://","altWebCamRotation":0,"altWebCamFlip":"none","altWebCamUpdateTimer":5000,"altWebCamiFrame":false,"altWebCamAppndHTTP":false,"altWebCamClickURL":"","altWebCamConfigURL":"","altWebCamConfigNewWin":false},"MMParams":{},"inputClass":"variable","inputType":"text","inputPrefixText":"","inputSuffixText":"","inputEnableClear":false,"inputLastVal":"","inputVarName":"","inputDispType":"","inputControlVals":[],"inputControlRange":[],"inputControlSteps":1,"bPanelActivated":false,"panelMMEvalMathStr":"","chartLabel":"Custom Chart","chartOMDataArr":[],"chartYaxisLabel":"Y Axis","chartXaxisLabel":"X Axis","chartYaxisMin":30,"chartYaxisMax":50,"chartYaxisStep":10,"chartYaxisMode":"time","chartTickValue":5,"chartXaxisOMData":null,"chartXaxisMaxSample":600,"chartUpdateKey":0,"chartRetainData":false,"inputLinkToOM":false,"inputAfterChangeGCodeCMD":"","inputLinkedOMKey":""},{"panelID":"0a22af2c-a4fe-PANELda3-8560-d399be535d8b","tabID":"c872e9dc-c72f-TABc8c-a310-db179808401a","panelType":"txtLabel","panelYpos":40,"panelXpos":380,"panelHSize":27,"panelWSize":300,"panelZIndex":52,"panelMMPrefix":"Print File Parameters","panelMMPath":"","panelMMOrientation":"H","panelMMPrefixColor":"","panelMMValueColor":"","panelMMTextSize":"body-2","panelColor":"#ADFCBFC0","panelBGColor":"","panelUseDWCThemeBGColor":true,"panelHoverText":"This is hover text","borderless":false,"customPanelID":null,"altWebCamParams":{"altWebCamURL":"http://","altWebCamRotation":0,"altWebCamFlip":"none","altWebCamUpdateTimer":5000,"altWebCamiFrame":false,"altWebCamAppndHTTP":false,"altWebCamClickURL":"","altWebCamConfigURL":"","altWebCamConfigNewWin":false},"MMParams":{},"inputClass":"variable","inputType":"text","inputPrefixText":"","inputSuffixText":"","inputEnableClear":false,"inputLastVal":"","inputVarName":"","inputDispType":"","inputControlVals":[],"inputControlRange":[],"inputControlSteps":1,"bPanelActivated":false,"panelMMEvalMathStr":"","chartLabel":"Custom Chart","chartOMDataArr":[],"chartYaxisLabel":"Y Axis","chartXaxisLabel":"X Axis","chartYaxisMin":30,"chartYaxisMax":50,"chartYaxisStep":10,"chartYaxisMode":"time","chartTickValue":5,"chartXaxisOMData":null,"chartXaxisMaxSample":600,"chartUpdateKey":0,"chartRetainData":false,"inputLinkToOM":false,"inputAfterChangeGCodeCMD":"","inputLinkedOMKey":""},{"panelID":"4d5eab7c-fd7f-PANELf67-a36e-dda8cf9bfe3f","tabID":"c872e9dc-c72f-TABc8c-a310-db179808401a","panelType":"txtLabel","panelYpos":20,"panelXpos":1080,"panelHSize":300,"panelWSize":340,"panelZIndex":53,"panelMMPrefix":" ","panelMMPath":"","panelMMOrientation":"H","panelMMPrefixColor":"","panelMMValueColor":"","panelMMTextSize":"body-2","panelColor":"#FFD37DFF","panelBGColor":"","panelUseDWCThemeBGColor":true,"panelHoverText":"This is hover text","borderless":false,"customPanelID":null,"altWebCamParams":{"altWebCamURL":"http://","altWebCamRotation":0,"altWebCamFlip":"none","altWebCamUpdateTimer":5000,"altWebCamiFrame":false,"altWebCamAppndHTTP":false,"altWebCamClickURL":"","altWebCamConfigURL":"","altWebCamConfigNewWin":false},"MMParams":{},"inputClass":"variable","inputType":"text","inputPrefixText":"","inputSuffixText":"","inputEnableClear":false,"inputLastVal":"","inputVarName":"","inputDispType":"","inputControlVals":[],"inputControlRange":[],"inputControlSteps":1,"bPanelActivated":false,"panelMMEvalMathStr":"","chartLabel":"Custom Chart","chartOMDataArr":[],"chartYaxisLabel":"Y Axis","chartXaxisLabel":"X Axis","chartYaxisMin":30,"chartYaxisMax":50,"chartYaxisStep":10,"chartYaxisMode":"time","chartTickValue":5,"chartXaxisOMData":null,"chartXaxisMaxSample":600,"chartUpdateKey":0,"chartRetainData":false,"inputLinkToOM":false,"inputAfterChangeGCodeCMD":"","inputLinkedOMKey":""},{"panelID":"0c5ecfeb-4eb1-PANEL1f2-940b-1ca27035a695","tabID":"c872e9dc-c72f-TABc8c-a310-db179808401a","panelType":"txtLabel","panelYpos":40,"panelXpos":1100,"panelHSize":27,"panelWSize":300,"panelZIndex":54,"panelMMPrefix":"Post Print Settings","panelMMPath":"","panelMMOrientation":"H","panelMMPrefixColor":"","panelMMValueColor":"","panelMMTextSize":"body-2","panelColor":"#FFD37DFF","panelBGColor":"","panelUseDWCThemeBGColor":true,"panelHoverText":"This is hover text","borderless":false,"customPanelID":null,"altWebCamParams":{"altWebCamURL":"http://","altWebCamRotation":0,"altWebCamFlip":"none","altWebCamUpdateTimer":5000,"altWebCamiFrame":false,"altWebCamAppndHTTP":false,"altWebCamClickURL":"","altWebCamConfigURL":"","altWebCamConfigNewWin":false},"MMParams":{},"inputClass":"variable","inputType":"text","inputPrefixText":"","inputSuffixText":"","inputEnableClear":false,"inputLastVal":"","inputVarName":"","inputDispType":"","inputControlVals":[],"inputControlRange":[],"inputControlSteps":1,"bPanelActivated":false,"panelMMEvalMathStr":"","chartLabel":"Custom Chart","chartOMDataArr":[],"chartYaxisLabel":"Y Axis","chartXaxisLabel":"X Axis","chartYaxisMin":30,"chartYaxisMax":50,"chartYaxisStep":10,"chartYaxisMode":"time","chartTickValue":5,"chartXaxisOMData":null,"chartXaxisMaxSample":600,"chartUpdateKey":0,"chartRetainData":false,"inputLinkToOM":false,"inputAfterChangeGCodeCMD":"","inputLinkedOMKey":""},{"panelID":"7fca9940-4275-PANELc92-a382-d7d4f2a2987e","tabID":"c872e9dc-c72f-TABc8c-a310-db179808401a","panelType":"txtLabel","panelYpos":20,"panelXpos":720,"panelHSize":220,"panelWSize":340,"panelZIndex":59,"panelMMPrefix":" ","panelMMPath":"","panelMMOrientation":"H","panelMMPrefixColor":"","panelMMValueColor":"","panelMMTextSize":"body-2","panelColor":"#ADE3FCFF","panelBGColor":"","panelUseDWCThemeBGColor":true,"panelHoverText":"This is hover text","borderless":false,"customPanelID":null,"altWebCamParams":{"altWebCamURL":"http://","altWebCamRotation":0,"altWebCamFlip":"none","altWebCamUpdateTimer":5000,"altWebCamiFrame":false,"altWebCamAppndHTTP":false,"altWebCamClickURL":"","altWebCamConfigURL":"","altWebCamConfigNewWin":false},"MMParams":{},"inputClass":"variable","inputType":"text","inputPrefixText":"","inputSuffixText":"","inputEnableClear":false,"inputLastVal":"","inputVarName":"","inputDispType":"","inputControlVals":[],"inputControlRange":[],"inputControlSteps":1,"bPanelActivated":false,"panelMMEvalMathStr":"","chartLabel":"Custom Chart","chartOMDataArr":[],"chartYaxisLabel":"Y Axis","chartXaxisLabel":"X Axis","chartYaxisMin":30,"chartYaxisMax":50,"chartYaxisStep":10,"chartYaxisMode":"time","chartTickValue":5,"chartXaxisOMData":null,"chartXaxisMaxSample":600,"chartUpdateKey":0,"chartRetainData":false,"inputLinkToOM":false,"inputAfterChangeGCodeCMD":"","inputLinkedOMKey":""},{"panelID":"a23a0093-7f20-PANELba6-bae9-40f721333c89","tabID":"c872e9dc-c72f-TABc8c-a310-db179808401a","panelType":"txtLabel","panelYpos":40,"panelXpos":740,"panelHSize":27,"panelWSize":300,"panelZIndex":60,"panelMMPrefix":"Printer Parameters","panelMMPath":"","panelMMOrientation":"H","panelMMPrefixColor":"","panelMMValueColor":"","panelMMTextSize":"body-2","panelColor":"#ADE3FCFF","panelBGColor":"","panelUseDWCThemeBGColor":true,"panelHoverText":"This is hover text","borderless":false,"customPanelID":null,"altWebCamParams":{"altWebCamURL":"http://","altWebCamRotation":0,"altWebCamFlip":"none","altWebCamUpdateTimer":5000,"altWebCamiFrame":false,"altWebCamAppndHTTP":false,"altWebCamClickURL":"","altWebCamConfigURL":"","altWebCamConfigNewWin":false},"MMParams":{},"inputClass":"variable","inputType":"text","inputPrefixText":"","inputSuffixText":"","inputEnableClear":false,"inputLastVal":"","inputVarName":"","inputDispType":"","inputControlVals":[],"inputControlRange":[],"inputControlSteps":1,"bPanelActivated":false,"panelMMEvalMathStr":"","chartLabel":"Custom Chart","chartOMDataArr":[],"chartYaxisLabel":"Y Axis","chartXaxisLabel":"X Axis","chartYaxisMin":30,"chartYaxisMax":50,"chartYaxisStep":10,"chartYaxisMode":"time","chartTickValue":5,"chartXaxisOMData":null,"chartXaxisMaxSample":600,"chartUpdateKey":0,"chartRetainData":false,"inputLinkToOM":false,"inputAfterChangeGCodeCMD":"","inputLinkedOMKey":""},{"panelID":"5ab02064-34d9-PANELa94-ab71-81207371aff9","tabID":"c872e9dc-c72f-TABc8c-a310-db179808401a","panelType":"txtLabel","panelYpos":260,"panelXpos":360,"panelHSize":140,"panelWSize":340,"panelZIndex":63,"panelMMPrefix":" ","panelMMPath":"","panelMMOrientation":"H","panelMMPrefixColor":"","panelMMValueColor":"","panelMMTextSize":"body-2","panelColor":"#FCFCADFF","panelBGColor":"","panelUseDWCThemeBGColor":true,"panelHoverText":"This is hover text","borderless":false,"customPanelID":null,"altWebCamParams":{"altWebCamURL":"http://","altWebCamRotation":0,"altWebCamFlip":"none","altWebCamUpdateTimer":5000,"altWebCamiFrame":false,"altWebCamAppndHTTP":false,"altWebCamClickURL":"","altWebCamConfigURL":"","altWebCamConfigNewWin":false},"MMParams":{},"inputClass":"variable","inputType":"text","inputPrefixText":"","inputSuffixText":"","inputEnableClear":false,"inputLastVal":"","inputVarName":"","inputDispType":"","inputControlVals":[],"inputControlRange":[],"inputControlSteps":1,"bPanelActivated":false,"panelMMEvalMathStr":"","chartLabel":"Custom Chart","chartOMDataArr":[],"chartYaxisLabel":"Y Axis","chartXaxisLabel":"X Axis","chartYaxisMin":30,"chartYaxisMax":50,"chartYaxisStep":10,"chartYaxisMode":"time","chartTickValue":5,"chartXaxisOMData":null,"chartXaxisMaxSample":600,"chartUpdateKey":0,"chartRetainData":false,"inputLinkToOM":false,"inputAfterChangeGCodeCMD":"","inputLinkedOMKey":""},{"panelID":"ba7bb6d6-89f4-PANEL8e5-a677-80a56d21a4a9","tabID":"c872e9dc-c72f-TABc8c-a310-db179808401a","panelType":"txtLabel","panelYpos":280,"panelXpos":380,"panelHSize":27,"panelWSize":300,"panelZIndex":64,"panelMMPrefix":"Use AutoZ","panelMMPath":"","panelMMOrientation":"H","panelMMPrefixColor":"","panelMMValueColor":"","panelMMTextSize":"body-2","panelColor":"#FCFCADFF","panelBGColor":"","panelUseDWCThemeBGColor":true,"panelHoverText":"This is hover text","borderless":false,"customPanelID":null,"altWebCamParams":{"altWebCamURL":"http://","altWebCamRotation":0,"altWebCamFlip":"none","altWebCamUpdateTimer":5000,"altWebCamiFrame":false,"altWebCamAppndHTTP":false,"altWebCamClickURL":"","altWebCamConfigURL":"","altWebCamConfigNewWin":false},"MMParams":{},"inputClass":"variable","inputType":"text","inputPrefixText":"","inputSuffixText":"","inputEnableClear":false,"inputLastVal":"","inputVarName":"","inputDispType":"","inputControlVals":[],"inputControlRange":[],"inputControlSteps":1,"bPanelActivated":false,"panelMMEvalMathStr":"","chartLabel":"Custom Chart","chartOMDataArr":[],"chartYaxisLabel":"Y Axis","chartXaxisLabel":"X Axis","chartYaxisMin":30,"chartYaxisMax":50,"chartYaxisStep":10,"chartYaxisMode":"time","chartTickValue":5,"chartXaxisOMData":null,"chartXaxisMaxSample":600,"chartUpdateKey":0,"chartRetainData":false,"inputLinkToOM":false,"inputAfterChangeGCodeCMD":"","inputLinkedOMKey":""},{"panelID":"866b93f7-896a-PANEL8a0-ad8f-21071c0a59cf","tabID":"c872e9dc-c72f-TABc8c-a310-db179808401a","panelType":"vInput","panelYpos":320,"panelXpos":380,"panelHSize":60,"panelWSize":300,"panelZIndex":65,"panelMMPrefix":"","panelMMPath":"","panelMMOrientation":"H","panelMMPrefixColor":"","panelMMValueColor":"","panelMMTextSize":"body-2","panelColor":"","panelBGColor":"","panelUseDWCThemeBGColor":true,"panelHoverText":"Use AutoZ when starting a print","borderless":false,"customPanelID":null,"altWebCamParams":{"altWebCamURL":"http://","altWebCamRotation":0,"altWebCamFlip":"none","altWebCamUpdateTimer":5000,"altWebCamiFrame":false,"altWebCamAppndHTTP":false,"altWebCamClickURL":"","altWebCamConfigURL":"","altWebCamConfigNewWin":false},"MMParams":{},"inputClass":"variable","inputType":"boolean","inputPrefixText":"False","inputSuffixText":"True","inputEnableClear":false,"inputLastVal":"###","inputVarName":"useAutoZ","inputDispType":"switch","inputControlVals":[],"inputControlRange":[0,100],"inputControlSteps":1,"bPanelActivated":false,"panelMMEvalMathStr":"","chartLabel":"Custom Chart","chartOMDataArr":[],"chartYaxisLabel":"Y Axis","chartXaxisLabel":"X Axis","chartYaxisMin":30,"chartYaxisMax":50,"chartYaxisStep":10,"chartYaxisMode":"time","chartTickValue":5,"chartXaxisOMData":null,"chartXaxisMaxSample":600,"chartUpdateKey":0,"chartRetainData":false,"inputLinkToOM":false,"inputAfterChangeGCodeCMD":"","inputLinkedOMKey":""},{"panelID":"0ddbf6db-898b-PANEL3c4-b65c-4335de78ec95","tabID":"c872e9dc-c72f-TABc8c-a310-db179808401a","panelType":"vInput","panelYpos":360,"panelXpos":740,"panelHSize":60,"panelWSize":300,"panelZIndex":70,"panelMMPrefix":"","panelMMPath":"","panelMMOrientation":"H","panelMMPrefixColor":"","panelMMValueColor":"","panelMMTextSize":"body-2","panelColor":"","panelBGColor":"","panelUseDWCThemeBGColor":true,"panelHoverText":"Generate bed mesh when starting a print","borderless":false,"customPanelID":null,"altWebCamParams":{"altWebCamURL":"http://","altWebCamRotation":0,"altWebCamFlip":"none","altWebCamUpdateTimer":5000,"altWebCamiFrame":false,"altWebCamAppndHTTP":false,"altWebCamClickURL":"","altWebCamConfigURL":"","altWebCamConfigNewWin":false},"MMParams":{},"inputClass":"variable","inputType":"boolean","inputPrefixText":"False","inputSuffixText":"True","inputEnableClear":false,"inputLastVal":false,"inputVarName":"generateMesh","inputDispType":"switch","inputControlVals":[],"inputControlRange":[0,100],"inputControlSteps":1,"bPanelActivated":false,"panelMMEvalMathStr":"","chartLabel":"Custom Chart","chartOMDataArr":[],"chartYaxisLabel":"Y Axis","chartXaxisLabel":"X Axis","chartYaxisMin":30,"chartYaxisMax":50,"chartYaxisStep":10,"chartYaxisMode":"time","chartTickValue":5,"chartXaxisOMData":null,"chartXaxisMaxSample":600,"chartUpdateKey":0,"chartRetainData":false,"inputLinkToOM":false,"inputAfterChangeGCodeCMD":"","inputLinkedOMKey":""},{"panelID":"dbcdfceb-d0fd-PANELbc0-a67a-338dcc8d362e","tabID":"c872e9dc-c72f-TABc8c-a310-db179808401a","panelType":"txtLabel","panelYpos":280,"panelXpos":740,"panelHSize":27,"panelWSize":300,"panelZIndex":71,"panelMMPrefix":"Mesh Control","panelMMPath":"","panelMMOrientation":"H","panelMMPrefixColor":"","panelMMValueColor":"","panelMMTextSize":"body-2","panelColor":"#A286F4FF","panelBGColor":"","panelUseDWCThemeBGColor":true,"panelHoverText":"This is hover text","borderless":false,"customPanelID":null,"altWebCamParams":{"altWebCamURL":"http://","altWebCamRotation":0,"altWebCamFlip":"none","altWebCamUpdateTimer":5000,"altWebCamiFrame":false,"altWebCamAppndHTTP":false,"altWebCamClickURL":"","altWebCamConfigURL":"","altWebCamConfigNewWin":false},"MMParams":{},"inputClass":"variable","inputType":"text","inputPrefixText":"","inputSuffixText":"","inputEnableClear":false,"inputLastVal":"","inputVarName":"","inputDispType":"","inputControlVals":[],"inputControlRange":[],"inputControlSteps":1,"bPanelActivated":false,"panelMMEvalMathStr":"","chartLabel":"Custom Chart","chartOMDataArr":[],"chartYaxisLabel":"Y Axis","chartXaxisLabel":"X Axis","chartYaxisMin":30,"chartYaxisMax":50,"chartYaxisStep":10,"chartYaxisMode":"time","chartTickValue":5,"chartXaxisOMData":null,"chartXaxisMaxSample":600,"chartUpdateKey":0,"chartRetainData":false,"inputLinkToOM":false,"inputAfterChangeGCodeCMD":"","inputLinkedOMKey":""},{"panelID":"830da56f-a49e-PANELed5-8971-ece360e90fad","tabID":"c872e9dc-c72f-TABc8c-a310-db179808401a","panelType":"txtLabel","panelYpos":260,"panelXpos":720,"panelHSize":300,"panelWSize":340,"panelZIndex":69,"panelMMPrefix":" ","panelMMPath":"","panelMMOrientation":"H","panelMMPrefixColor":"","panelMMValueColor":"","panelMMTextSize":"body-2","panelColor":"#A286F4FF","panelBGColor":"","panelUseDWCThemeBGColor":true,"panelHoverText":"This is hover text","borderless":false,"customPanelID":null,"altWebCamParams":{"altWebCamURL":"http://","altWebCamRotation":0,"altWebCamFlip":"none","altWebCamUpdateTimer":5000,"altWebCamiFrame":false,"altWebCamAppndHTTP":false,"altWebCamClickURL":"","altWebCamConfigURL":"","altWebCamConfigNewWin":false},"MMParams":{},"inputClass":"variable","inputType":"text","inputPrefixText":"","inputSuffixText":"","inputEnableClear":false,"inputLastVal":"","inputVarName":"","inputDispType":"","inputControlVals":[],"inputControlRange":[],"inputControlSteps":1,"bPanelActivated":false,"panelMMEvalMathStr":"","chartLabel":"Custom Chart","chartOMDataArr":[],"chartYaxisLabel":"Y Axis","chartXaxisLabel":"X Axis","chartYaxisMin":30,"chartYaxisMax":50,"chartYaxisStep":10,"chartYaxisMode":"time","chartTickValue":5,"chartXaxisOMData":null,"chartXaxisMaxSample":600,"chartUpdateKey":0,"chartRetainData":false,"inputLinkToOM":false,"inputAfterChangeGCodeCMD":"","inputLinkedOMKey":""},{"panelID":"1e3f78a9-bc18-PANEL92a-b6d5-629316d7a810","tabID":"c872e9dc-c72f-TABc8c-a310-db179808401a","panelType":"txtLabel","panelYpos":320,"panelXpos":740,"panelHSize":27,"panelWSize":300,"panelZIndex":72,"panelMMPrefix":"Generate Mesh before Print","panelMMPath":"","panelMMOrientation":"H","panelMMPrefixColor":"","panelMMValueColor":"","panelMMTextSize":"body-2","panelMMEvalMathStr":"","panelColor":"","panelBGColor":"","panelUseDWCThemeBGColor":true,"panelHoverText":"This is hover text","borderless":false,"customPanelID":null,"altWebCamParams":{"altWebCamURL":"http://","altWebCamRotation":0,"altWebCamFlip":"none","altWebCamUpdateTimer":5000,"altWebCamiFrame":false,"altWebCamAppndHTTP":false,"altWebCamClickURL":"","altWebCamConfigURL":"","altWebCamConfigNewWin":false},"MMParams":{},"inputClass":"variable","inputType":"text","inputPrefixText":"","inputSuffixText":"","inputEnableClear":false,"inputLastVal":"","inputVarName":"","inputDispType":"","inputControlVals":[],"inputControlRange":[],"inputControlSteps":1,"bPanelActivated":false,"chartLabel":"Custom Chart","chartOMDataArr":[],"chartYaxisLabel":"Y Axis","chartXaxisLabel":"X Axis","chartYaxisMin":30,"chartYaxisMax":50,"chartYaxisStep":10,"chartYaxisMode":"time","chartTickValue":5,"chartXaxisOMData":null,"chartXaxisMaxSample":600,"chartUpdateKey":0,"chartRetainData":false,"inputLinkToOM":false,"inputAfterChangeGCodeCMD":"","inputLinkedOMKey":""},{"panelID":"6d212b32-5ae2-PANEL0af-9999-2f61418c923c","tabID":"c872e9dc-c72f-TABc8c-a310-db179808401a","panelType":"txtLabel","panelYpos":440,"panelXpos":740,"panelHSize":27,"panelWSize":300,"panelZIndex":73,"panelMMPrefix":"Generate Print Only Mesh before Print","panelMMPath":"","panelMMOrientation":"H","panelMMPrefixColor":"","panelMMValueColor":"","panelMMTextSize":"body-2","panelMMEvalMathStr":"","panelColor":"","panelBGColor":"","panelUseDWCThemeBGColor":true,"panelHoverText":"This is hover text","borderless":false,"customPanelID":null,"altWebCamParams":{"altWebCamURL":"http://","altWebCamRotation":0,"altWebCamFlip":"none","altWebCamUpdateTimer":5000,"altWebCamiFrame":false,"altWebCamAppndHTTP":false,"altWebCamClickURL":"","altWebCamConfigURL":"","altWebCamConfigNewWin":false},"MMParams":{},"inputClass":"variable","inputType":"text","inputPrefixText":"","inputSuffixText":"","inputEnableClear":false,"inputLastVal":"","inputVarName":"","inputDispType":"","inputControlVals":[],"inputControlRange":[],"inputControlSteps":1,"bPanelActivated":false,"chartLabel":"Custom Chart","chartOMDataArr":[],"chartYaxisLabel":"Y Axis","chartXaxisLabel":"X Axis","chartYaxisMin":30,"chartYaxisMax":50,"chartYaxisStep":10,"chartYaxisMode":"time","chartTickValue":5,"chartXaxisOMData":null,"chartXaxisMaxSample":600,"chartUpdateKey":0,"chartRetainData":false,"inputLinkToOM":false,"inputAfterChangeGCodeCMD":"","inputLinkedOMKey":""},{"panelID":"0196dcc8-d223-PANEL64b-905b-a0781bee958b","tabID":"c872e9dc-c72f-TABc8c-a310-db179808401a","panelType":"vInput","panelYpos":480,"panelXpos":740,"panelHSize":60,"panelWSize":300,"panelZIndex":74,"panelMMPrefix":"","panelMMPath":"","panelMMOrientation":"H","panelMMPrefixColor":"","panelMMValueColor":"","panelMMTextSize":"body-2","panelMMEvalMathStr":"","panelColor":"","panelBGColor":"","panelUseDWCThemeBGColor":true,"panelHoverText":"Generate bed mesh when starting a print","borderless":false,"customPanelID":null,"altWebCamParams":{"altWebCamURL":"http://","altWebCamRotation":0,"altWebCamFlip":"none","altWebCamUpdateTimer":5000,"altWebCamiFrame":false,"altWebCamAppndHTTP":false,"altWebCamClickURL":"","altWebCamConfigURL":"","altWebCamConfigNewWin":false},"MMParams":{},"inputClass":"variable","inputType":"boolean","inputPrefixText":"False","inputSuffixText":"True","inputEnableClear":false,"inputLastVal":false,"inputVarName":"generatePrintOnlyMesh","inputDispType":"switch","inputControlVals":[],"inputControlRange":[0,100],"inputControlSteps":1,"bPanelActivated":false,"chartLabel":"Custom Chart","chartOMDataArr":[],"chartYaxisLabel":"Y Axis","chartXaxisLabel":"X Axis","chartYaxisMin":30,"chartYaxisMax":50,"chartYaxisStep":10,"chartYaxisMode":"time","chartTickValue":5,"chartXaxisOMData":null,"chartXaxisMaxSample":600,"chartUpdateKey":0,"chartRetainData":false,"inputLinkToOM":false,"inputAfterChangeGCodeCMD":"","inputLinkedOMKey":""}],"exportDate":"2023/05/19","btnCmdVer":"01.02.02","exportComment":null,"exportResW":1920,"exportResH":1080} --------------------------------------------------------------------------------