display menu module for klipper
Signed-off-by: Janar Sööt <janar.soot@gmail.com>
This commit is contained in:
parent
3387cccdcf
commit
65f0fd6238
|
@ -650,6 +650,33 @@
|
||||||
#a0_pin
|
#a0_pin
|
||||||
# The pins connected to an uc1701 type lcd. These parameters must be
|
# The pins connected to an uc1701 type lcd. These parameters must be
|
||||||
# provided when using an uc1701 display.
|
# provided when using an uc1701 display.
|
||||||
|
#menu_root:
|
||||||
|
# Entry point for menu, root menu container name. If this parameter
|
||||||
|
# is not provided then default menu root is used. When provided
|
||||||
|
# menu entry is 'deck' type then it'll be initiated immediately at startup.
|
||||||
|
# Description of menu items is located in example-menu.cfg file.
|
||||||
|
#menu_timeout:
|
||||||
|
# Timeout for menu. Being inactive this amount of seconds will trigger
|
||||||
|
# menu exit or return to root menu when having autorun enabled.
|
||||||
|
# The default is 0 seconds (disabled)
|
||||||
|
#encoder_pins:
|
||||||
|
# The pins connected to encoder. 2 pins must be provided when
|
||||||
|
# using encoder. This parameter must be provided when using menu.
|
||||||
|
#click_pin:
|
||||||
|
# The pin connected to 'enter' button or encoder 'click'. This parameter
|
||||||
|
# must be provided when using menu.
|
||||||
|
#back_pin:
|
||||||
|
# The pin connected to 'back' button. This parameter is optional, menu
|
||||||
|
# can be used without it.
|
||||||
|
#up_pin:
|
||||||
|
# The pin connected to 'up' button. This parameter must be provided
|
||||||
|
# when using menu without encoder.
|
||||||
|
#down_pin:
|
||||||
|
# The pin connected to 'down' button. This parameter must be provided
|
||||||
|
# when using menu without encoder.
|
||||||
|
#kill_pin:
|
||||||
|
# The pin connected to 'kill' button. This button will call
|
||||||
|
# emergency stop.
|
||||||
|
|
||||||
# Custom thermistors (one may define any number of sections with a
|
# Custom thermistors (one may define any number of sections with a
|
||||||
# "thermistor" prefix). A custom thermistor may be used in the
|
# "thermistor" prefix). A custom thermistor may be used in the
|
||||||
|
|
|
@ -0,0 +1,181 @@
|
||||||
|
# This file serves as documentation for config parameters. One may
|
||||||
|
# copy and edit this file to configure a new menu layout.
|
||||||
|
# The snippets in this file may be copied into the main printer.cfg file.
|
||||||
|
# See the "example.cfg" file for description of common config parameters.
|
||||||
|
|
||||||
|
# Available menu elements:
|
||||||
|
# item - purely visual element
|
||||||
|
# command - same like 'item' but with gcode trigger
|
||||||
|
# input - same like 'command' but has value changing capabilities
|
||||||
|
# list - menu element container, with entry and exit gcode triggers
|
||||||
|
# vsdcard - same as 'list' but will append files from virtual sdcard
|
||||||
|
# deck - special container for custom screens (cards) has entry and exit gcode triggers.
|
||||||
|
# card - special content card for custom screens. Can only be used in 'deck'!
|
||||||
|
|
||||||
|
#[menu item1]
|
||||||
|
#type: item
|
||||||
|
# Type will determine menu item properties and behaviours:
|
||||||
|
#name:
|
||||||
|
# This is mandatory attribute for every menu element.
|
||||||
|
# You can use Python output formatting for parameter and transform values.
|
||||||
|
# Quotes can be used in the beginning and end of name.
|
||||||
|
#cursor:
|
||||||
|
# It allows to change cursor character for selected menu element.
|
||||||
|
# The default is >
|
||||||
|
# This parameter is optional.
|
||||||
|
#width:
|
||||||
|
# This attribute accepts integer value. Element name is cut to this width.
|
||||||
|
# This parameter is optional.
|
||||||
|
#scroll:
|
||||||
|
# This attribute accepts static boolean value. You can use it together with 'width'.
|
||||||
|
# When this is enabled then names longer than width are scrolled back and forth.
|
||||||
|
# The default is disabled. This parameter is optional.
|
||||||
|
#enable:
|
||||||
|
# This attribute accepts static boolean values and parameters (converted to boolean).
|
||||||
|
# It accepts multiple logical expressions. Values separated by comma will return True if all elements are true.
|
||||||
|
# Values on different lines will return True if any element is true.
|
||||||
|
# You can use logical negation by using character ! as parameter prefix.
|
||||||
|
#parameter:
|
||||||
|
# This attribute accepts float values or special variables. Multiple values are delimited by comma.
|
||||||
|
# All available parameter variables can be listed by 'MENU DO=dump' gcode, menu itself must be running.
|
||||||
|
# This value is available for output formatting as {0}..{n} Where n is count of parameters.
|
||||||
|
#transform:
|
||||||
|
# This attribute allows to transform parameters value to something else.
|
||||||
|
# More than one transformation can be added. Each transformation must be on separate line.
|
||||||
|
# These transformed values are available for output formatting as {n+1}..{x}
|
||||||
|
# Where n is count of parameters and x is count of transformations.
|
||||||
|
# In order to transform the value of a particular parameter, you must add
|
||||||
|
# an parameter index as prefix. Like this "transform: 1.choose('OFF','ON')"
|
||||||
|
# If the index is not set then the default index 0 is used.
|
||||||
|
#
|
||||||
|
# map(fromLow,fromHigh,toLow,toHigh) - interpolate re-maps a parameter value from one range to another.
|
||||||
|
# Output value type is taken from toHigh. It can be int or float.
|
||||||
|
#
|
||||||
|
# choose(e1,e2) - boolean chooser, converts the value of the parameter to the boolean type (0 and 1),
|
||||||
|
# and selects the corresponding value by the index from the list.
|
||||||
|
#
|
||||||
|
# choose(e1,e2,...) - int chooser, converts the value of the parameter to the int type
|
||||||
|
# and selects the corresponding value by the index from the list.
|
||||||
|
#
|
||||||
|
# choose({key:value,..}) - special dictionary chooser, parameter value cast type by first key type.
|
||||||
|
# Selects the corresponding value by the key from the dictionary.
|
||||||
|
#
|
||||||
|
# int(), float(), bool(), str(), abs(), bin(), hex(), oct(), days(), hours(), minutes(), seconds()
|
||||||
|
# These will convert parameter value to the special form.
|
||||||
|
# int,float,bool,str,abs,bin,hex and oct are python functions.
|
||||||
|
# days,hours,minutes,seconds will convert parameter value (it's taken as seconds) to time specific value
|
||||||
|
#
|
||||||
|
# scale(xx) - Multiplies parameter value by this xx. Pure interger or float value is excpected.
|
||||||
|
|
||||||
|
|
||||||
|
#[menu command1]
|
||||||
|
#type:command
|
||||||
|
#name:
|
||||||
|
#cursor:
|
||||||
|
#width:
|
||||||
|
#scroll:
|
||||||
|
#enable:
|
||||||
|
#parameter:
|
||||||
|
#transform:
|
||||||
|
#gcode:
|
||||||
|
# When menu element is clicked then gcodes on this attribute will be executed.
|
||||||
|
# Can have multiline gcode script and supports output formatting for parameter and transform values.
|
||||||
|
#action:
|
||||||
|
# Special action can be executed. Supports [back, exit] menu commands
|
||||||
|
# and [respond response_info] command. Respond command will send '// response_info' to host.
|
||||||
|
|
||||||
|
#[menu input1]
|
||||||
|
#name:
|
||||||
|
#cursor:
|
||||||
|
#width:
|
||||||
|
#enable:
|
||||||
|
#transform:
|
||||||
|
#parameter:
|
||||||
|
# Value from parameter (always index 0) is taken as input value when in edit mode.
|
||||||
|
#gcode:
|
||||||
|
# This will be triggered in realtime or on exit from edit mode.
|
||||||
|
#reverse:
|
||||||
|
# This attribute accepts static boolean value.
|
||||||
|
# When enabled it will reverse increment and decrement directions for input.
|
||||||
|
# The default is False. This parameter is optional.
|
||||||
|
#readonly:
|
||||||
|
# This attribute accepts same logical expression as 'enable'.
|
||||||
|
# When true then input element is readonly like 'item' and cannot enter to edit mode.
|
||||||
|
# The default is False. This parameter is optional.
|
||||||
|
#realtime:
|
||||||
|
# This attribute accepts static boolean value.
|
||||||
|
# When enabled it will execute gcode after each value change.
|
||||||
|
# The default is False. This parameter is optional.
|
||||||
|
#input_min:
|
||||||
|
# It accepts integer or float value. Will set minimal bound for edit value.
|
||||||
|
# The default is 2.2250738585072014e-308. This parameter is optional.
|
||||||
|
#input_max:
|
||||||
|
# It accepts integer or float value. Will set maximal bound for edit value.
|
||||||
|
# The default is 1.7976931348623157e+308. This parameter is optional.
|
||||||
|
#input_step:
|
||||||
|
# This is mandatory attribute for input.
|
||||||
|
# It accepts positive integer or float value. Will determine increment
|
||||||
|
# and decrement steps for edit value.
|
||||||
|
|
||||||
|
#[menu list1]
|
||||||
|
#type:list or vsdcard
|
||||||
|
#name:
|
||||||
|
#cursor:
|
||||||
|
#width:
|
||||||
|
#scroll:
|
||||||
|
#enable:
|
||||||
|
#enter_gcode:
|
||||||
|
# Will trigger gcode script when entering to this menu container.
|
||||||
|
# This parameter is optional.
|
||||||
|
#leave_gcode:
|
||||||
|
# Will trigger gcode script when leaving from this menu container.
|
||||||
|
# This parameter is optional.
|
||||||
|
#show_back:
|
||||||
|
# This attribute accepts static boolean value.
|
||||||
|
# Show back [..] as first element.
|
||||||
|
# The default is True. This parameter is optional.
|
||||||
|
#show_title:
|
||||||
|
# This attribute accepts static boolean value.
|
||||||
|
# Show container name next to back [..] element.
|
||||||
|
# The default is True. This parameter is optional.
|
||||||
|
#items:
|
||||||
|
# Menu elements listed in this container.
|
||||||
|
# Each element must be on separate line.
|
||||||
|
# Elements can be grouped on same line by separating them with comma
|
||||||
|
#
|
||||||
|
# When element name stars with . then menu system will add parent
|
||||||
|
# container config name as prefix to element name (delimited by space)
|
||||||
|
|
||||||
|
#[menu infodeck]
|
||||||
|
#type: deck
|
||||||
|
#name:
|
||||||
|
#cursor:
|
||||||
|
#width:
|
||||||
|
#scroll:
|
||||||
|
#enable:
|
||||||
|
#enter_gcode
|
||||||
|
#leave_gcode
|
||||||
|
#longpress_menu:
|
||||||
|
# Entry point to menu container. When this attribute is set then
|
||||||
|
# long press > 1s will initiate this menu container if not in edit mode.
|
||||||
|
# The default is disabled. This parameter is optional.
|
||||||
|
#items:
|
||||||
|
# It accepts only 'card' elements. You are able to switch between different card screens
|
||||||
|
# by using encoder or up/down buttons.
|
||||||
|
|
||||||
|
#[menu card1]
|
||||||
|
#type: card
|
||||||
|
#name:
|
||||||
|
#content:
|
||||||
|
# Card screen content. Each line represents display line.
|
||||||
|
# Quotes can be used in the beginning and end of line.
|
||||||
|
# Rendered elements are available for output formatting as {0}..{x}. It's always string type.
|
||||||
|
#items:
|
||||||
|
# List of elements in card. Each line represents a single index for content formatting.
|
||||||
|
# It's possible to show multiple elements in one place by separating them with comma on single line.
|
||||||
|
# If first element is integer then timed cycle is used (integer value is cycle time in seconds)
|
||||||
|
# If no integer element then first enabled element is shown.
|
||||||
|
# In cycler multiple elements can be grouped into one postition by separating them with |
|
||||||
|
# This way only simple menu items can be grouped.
|
||||||
|
# Example: 5,prt_time, prt_progress - elements prt_time and prt_progress are switched after 5s
|
||||||
|
# Example: msg,xpos|ypos - elements xpos and ypos are grouped and showed together when msg is disabled.
|
|
@ -7,6 +7,7 @@
|
||||||
# This file may be distributed under the terms of the GNU GPLv3 license.
|
# This file may be distributed under the terms of the GNU GPLv3 license.
|
||||||
import logging
|
import logging
|
||||||
import hd44780, st7920, uc1701, icons
|
import hd44780, st7920, uc1701, icons
|
||||||
|
import menu
|
||||||
|
|
||||||
LCD_chips = { 'st7920': st7920.ST7920, 'hd44780': hd44780.HD44780, 'uc1701' : uc1701.UC1701 }
|
LCD_chips = { 'st7920': st7920.ST7920, 'hd44780': hd44780.HD44780, 'uc1701' : uc1701.UC1701 }
|
||||||
M73_TIMEOUT = 5.
|
M73_TIMEOUT = 5.
|
||||||
|
@ -17,6 +18,8 @@ class PrinterLCD:
|
||||||
self.reactor = self.printer.get_reactor()
|
self.reactor = self.printer.get_reactor()
|
||||||
self.lcd_chip = config.getchoice('lcd_type', LCD_chips)(config)
|
self.lcd_chip = config.getchoice('lcd_type', LCD_chips)(config)
|
||||||
self.lcd_type = config.get('lcd_type')
|
self.lcd_type = config.get('lcd_type')
|
||||||
|
# menu
|
||||||
|
self.menu = menu.MenuManager(config, self.lcd_chip)
|
||||||
# printer objects
|
# printer objects
|
||||||
self.gcode = self.toolhead = self.sdcard = None
|
self.gcode = self.toolhead = self.sdcard = None
|
||||||
self.fan = self.extruder0 = self.extruder1 = self.heater_bed = None
|
self.fan = self.extruder0 = self.extruder1 = self.heater_bed = None
|
||||||
|
@ -89,6 +92,11 @@ class PrinterLCD:
|
||||||
self.lcd_chip.write_graphics(x, y, 15, [0xff]*width)
|
self.lcd_chip.write_graphics(x, y, 15, [0xff]*width)
|
||||||
# Screen updating
|
# Screen updating
|
||||||
def screen_update_event(self, eventtime):
|
def screen_update_event(self, eventtime):
|
||||||
|
# update menu component
|
||||||
|
ret = self.menu.screen_update_event(eventtime)
|
||||||
|
if ret:
|
||||||
|
return ret
|
||||||
|
# update all else
|
||||||
self.lcd_chip.clear()
|
self.lcd_chip.clear()
|
||||||
if self.lcd_type == 'hd44780':
|
if self.lcd_type == 'hd44780':
|
||||||
self.screen_update_hd44780(eventtime)
|
self.screen_update_hd44780(eventtime)
|
||||||
|
|
|
@ -0,0 +1,933 @@
|
||||||
|
# This file serves as default menu structure.
|
||||||
|
# See the "example-menu.cfg" file for description of common config parameters.
|
||||||
|
|
||||||
|
### DEFAULT MENU ###
|
||||||
|
|
||||||
|
### menu main ###
|
||||||
|
[menu __main]
|
||||||
|
type: list
|
||||||
|
name: Main Menu
|
||||||
|
items:
|
||||||
|
__octoprint
|
||||||
|
__sdcard
|
||||||
|
__control
|
||||||
|
__temp
|
||||||
|
__filament
|
||||||
|
__prepare
|
||||||
|
__test
|
||||||
|
|
||||||
|
### menu octoprint ###
|
||||||
|
[menu __octoprint]
|
||||||
|
type: list
|
||||||
|
name: OctoPrint
|
||||||
|
items:
|
||||||
|
.__pause
|
||||||
|
.__resume
|
||||||
|
.__abort
|
||||||
|
|
||||||
|
[menu __octoprint __pause]
|
||||||
|
type: command
|
||||||
|
enable: toolhead.is_printing
|
||||||
|
name: Pause printing
|
||||||
|
action: respond action:pause
|
||||||
|
gcode:
|
||||||
|
|
||||||
|
[menu __octoprint __resume]
|
||||||
|
type: command
|
||||||
|
enable: toolhead.is_printing
|
||||||
|
name: Resume printing
|
||||||
|
action: respond action:resume
|
||||||
|
gcode:
|
||||||
|
|
||||||
|
[menu __octoprint __abort]
|
||||||
|
type: command
|
||||||
|
enable: toolhead.is_printing
|
||||||
|
name: Abort printing
|
||||||
|
action: respond action:cancel
|
||||||
|
gcode:
|
||||||
|
|
||||||
|
### menu virtual sdcard ###
|
||||||
|
[menu __sdcard]
|
||||||
|
type: vsdcard
|
||||||
|
name: SD Card
|
||||||
|
items:
|
||||||
|
.__start
|
||||||
|
.__resume
|
||||||
|
.__pause
|
||||||
|
|
||||||
|
[menu __sdcard __start]
|
||||||
|
type: command
|
||||||
|
enable: !toolhead.is_printing
|
||||||
|
name: Start printing
|
||||||
|
gcode: M24
|
||||||
|
|
||||||
|
[menu __sdcard __resume]
|
||||||
|
type: command
|
||||||
|
enable: toolhead.is_printing
|
||||||
|
name: Resume printing
|
||||||
|
gcode: M24
|
||||||
|
|
||||||
|
[menu __sdcard __pause]
|
||||||
|
type: command
|
||||||
|
enable: toolhead.is_printing
|
||||||
|
name: Pause printing
|
||||||
|
gcode: M25
|
||||||
|
|
||||||
|
### menu control ###
|
||||||
|
[menu __control]
|
||||||
|
type: list
|
||||||
|
name: Control
|
||||||
|
items:
|
||||||
|
.__home
|
||||||
|
.__homez
|
||||||
|
.__homexy
|
||||||
|
.__move_10mm
|
||||||
|
.__move_1mm
|
||||||
|
.__move_01mm
|
||||||
|
.__disable
|
||||||
|
.__fanonoff
|
||||||
|
.__fanspeed
|
||||||
|
.__caselightonoff
|
||||||
|
.__caselightpwm
|
||||||
|
|
||||||
|
[menu __control __home]
|
||||||
|
type: command
|
||||||
|
name: Home All
|
||||||
|
gcode: G28
|
||||||
|
enable: !toolhead.is_printing
|
||||||
|
|
||||||
|
[menu __control __homez]
|
||||||
|
type: command
|
||||||
|
enable: !toolhead.is_printing
|
||||||
|
name: Home Z
|
||||||
|
gcode: G28 Z
|
||||||
|
|
||||||
|
[menu __control __homexy]
|
||||||
|
type: command
|
||||||
|
enable: !toolhead.is_printing
|
||||||
|
name: Home X/Y
|
||||||
|
gcode: G28 X Y
|
||||||
|
|
||||||
|
[menu __control __disable]
|
||||||
|
type: command
|
||||||
|
name: Disable steppers
|
||||||
|
gcode:
|
||||||
|
M84
|
||||||
|
M18
|
||||||
|
|
||||||
|
[menu __control __fanonoff]
|
||||||
|
type: input
|
||||||
|
enable: fan.is_enabled
|
||||||
|
name: Fan {1:3s}
|
||||||
|
parameter: fan.speed
|
||||||
|
transform:
|
||||||
|
choose('OFF','ON')
|
||||||
|
choose(0,255)
|
||||||
|
input_min: 0
|
||||||
|
input_max: 1
|
||||||
|
input_step: 1
|
||||||
|
gcode: M106 S{2:d}
|
||||||
|
|
||||||
|
[menu __control __fanspeed]
|
||||||
|
type: input
|
||||||
|
enable: fan.is_enabled
|
||||||
|
name: Fan speed: {1:3d}%
|
||||||
|
parameter: fan.speed
|
||||||
|
transform:
|
||||||
|
map(0,1,0,100)
|
||||||
|
map(0,1,0,255)
|
||||||
|
input_min: 0
|
||||||
|
input_max: 1
|
||||||
|
input_step: 0.01
|
||||||
|
gcode: M106 S{2:d}
|
||||||
|
|
||||||
|
[menu __control __caselightonoff]
|
||||||
|
type: input
|
||||||
|
enable: output_pin.caselight.is_enabled
|
||||||
|
name: Case light: {1:3s}
|
||||||
|
parameter: output_pin.caselight.value
|
||||||
|
transform:
|
||||||
|
choose('OFF','ON')
|
||||||
|
choose(0,1)
|
||||||
|
input_min: 0
|
||||||
|
input_max: 1
|
||||||
|
input_step: 1
|
||||||
|
gcode: SET_PIN PIN=caselight VALUE={2}
|
||||||
|
|
||||||
|
[menu __control __caselightpwm]
|
||||||
|
type: input
|
||||||
|
enable: output_pin.caselight.is_enabled
|
||||||
|
name: Case light: {0:4.0%}
|
||||||
|
parameter: output_pin.caselight.value
|
||||||
|
input_min: 0.0
|
||||||
|
input_max: 1.0
|
||||||
|
input_step: 0.01
|
||||||
|
gcode: SET_PIN PIN=caselight VALUE={0:.2f}
|
||||||
|
|
||||||
|
### menu move 10mm ###
|
||||||
|
[menu __control __move_10mm]
|
||||||
|
type: list
|
||||||
|
enable: !toolhead.is_printing
|
||||||
|
name: Move 10mm
|
||||||
|
items:
|
||||||
|
.__axis_z
|
||||||
|
.__axis_x, .__axis_y
|
||||||
|
.__axis_e
|
||||||
|
|
||||||
|
[menu __control __move_10mm __axis_x]
|
||||||
|
type: input
|
||||||
|
name: "X:{0:05.1f} "
|
||||||
|
parameter: toolhead.xpos
|
||||||
|
input_min: 0
|
||||||
|
input_max: 200.0
|
||||||
|
input_step: 10.0
|
||||||
|
gcode: G1 X{0:.1f}
|
||||||
|
|
||||||
|
[menu __control __move_10mm __axis_y]
|
||||||
|
type: input
|
||||||
|
name: "Y:{0:05.1f} "
|
||||||
|
parameter: toolhead.ypos
|
||||||
|
input_min: 0
|
||||||
|
input_max: 200.0
|
||||||
|
input_step: 10.0
|
||||||
|
gcode: G1 Y{0:.1f}
|
||||||
|
|
||||||
|
[menu __control __move_10mm __axis_z]
|
||||||
|
type: input
|
||||||
|
enable: !toolhead.is_printing
|
||||||
|
name: "Move Z:{0:05.1f}"
|
||||||
|
parameter: toolhead.zpos
|
||||||
|
input_min: 0
|
||||||
|
input_max: 200.0
|
||||||
|
input_step: 10.0
|
||||||
|
gcode: G1 Z{0:.1f}
|
||||||
|
|
||||||
|
[menu __control __move_10mm __axis_e]
|
||||||
|
type: input
|
||||||
|
enable: !toolhead.is_printing
|
||||||
|
name: "Move E:{0:+06.1f}"
|
||||||
|
parameter: 0
|
||||||
|
input_min: -250.0
|
||||||
|
input_max: 250.0
|
||||||
|
input_step: 10.0
|
||||||
|
gcode: G1 E{0:.1f} F240
|
||||||
|
|
||||||
|
### menu move 1mm ###
|
||||||
|
[menu __control __move_1mm]
|
||||||
|
type: list
|
||||||
|
enable: !toolhead.is_printing
|
||||||
|
name: Move 1mm
|
||||||
|
items:
|
||||||
|
.__axis_z
|
||||||
|
.__axis_x, .__axis_y
|
||||||
|
.__axis_e
|
||||||
|
|
||||||
|
[menu __control __move_1mm __axis_x]
|
||||||
|
type: input
|
||||||
|
name: "X:{0:05.1f} "
|
||||||
|
parameter: toolhead.xpos
|
||||||
|
input_min: 0
|
||||||
|
input_max: 100.0
|
||||||
|
input_step: 1.0
|
||||||
|
gcode: G1 X{0:.1f}
|
||||||
|
|
||||||
|
[menu __control __move_1mm __axis_y]
|
||||||
|
type: input
|
||||||
|
name: "Y:{0:05.1f} "
|
||||||
|
parameter: toolhead.ypos
|
||||||
|
input_min: 0
|
||||||
|
input_max: 100.0
|
||||||
|
input_step: 1.0
|
||||||
|
gcode: G1 Y{0:.1f}
|
||||||
|
|
||||||
|
[menu __control __move_1mm __axis_z]
|
||||||
|
type: input
|
||||||
|
enable: !toolhead.is_printing
|
||||||
|
name: "Move Z:{0:05.1f}"
|
||||||
|
parameter: toolhead.zpos
|
||||||
|
input_min: 0
|
||||||
|
input_max: 100.0
|
||||||
|
input_step: 1.0
|
||||||
|
gcode: G1 Z{0:.1f}
|
||||||
|
|
||||||
|
[menu __control __move_1mm __axis_e]
|
||||||
|
type: input
|
||||||
|
enable: !toolhead.is_printing
|
||||||
|
name: "Move E:{0:+06.1f}"
|
||||||
|
parameter: 0
|
||||||
|
input_min: -100.0
|
||||||
|
input_max: 100.0
|
||||||
|
input_step: 1.0
|
||||||
|
gcode: G1 E{0:.1f} F240
|
||||||
|
|
||||||
|
### menu move 0.1mm ###
|
||||||
|
[menu __control __move_01mm]
|
||||||
|
type: list
|
||||||
|
enable: !toolhead.is_printing
|
||||||
|
name: Move 0.1mm
|
||||||
|
items:
|
||||||
|
.__axis_z
|
||||||
|
.__axis_x, .__axis_y
|
||||||
|
.__axis_e
|
||||||
|
|
||||||
|
[menu __control __move_01mm __axis_x]
|
||||||
|
type: input
|
||||||
|
name: "X:{0:05.1f} "
|
||||||
|
parameter: toolhead.xpos
|
||||||
|
input_min: 0
|
||||||
|
input_max: 50.0
|
||||||
|
input_step: 0.1
|
||||||
|
gcode: G1 X{0:.1f}
|
||||||
|
|
||||||
|
[menu __control __move_01mm __axis_y]
|
||||||
|
type: input
|
||||||
|
name: "Y:{0:05.1f} "
|
||||||
|
parameter: toolhead.ypos
|
||||||
|
input_min: 0
|
||||||
|
input_max: 50.0
|
||||||
|
input_step: 0.1
|
||||||
|
gcode: G1 Y{0:.1f}
|
||||||
|
|
||||||
|
[menu __control __move_01mm __axis_z]
|
||||||
|
type: input
|
||||||
|
enable: !toolhead.is_printing
|
||||||
|
name: "Move Z:{0:05.1f}"
|
||||||
|
parameter: toolhead.zpos
|
||||||
|
input_min: 0
|
||||||
|
input_max: 50.0
|
||||||
|
input_step: 0.1
|
||||||
|
gcode: G1 Z{0:.1f}
|
||||||
|
|
||||||
|
[menu __control __move_01mm __axis_e]
|
||||||
|
type: input
|
||||||
|
enable: !toolhead.is_printing
|
||||||
|
name: "Move E:{0:+06.1f}"
|
||||||
|
parameter: 0
|
||||||
|
input_min: -50.0
|
||||||
|
input_max: 50.0
|
||||||
|
input_step: 0.1
|
||||||
|
gcode: G1 E{0:.1f} F240
|
||||||
|
|
||||||
|
### menu temperature ###
|
||||||
|
[menu __temp]
|
||||||
|
type: list
|
||||||
|
name: Temperature
|
||||||
|
items:
|
||||||
|
.__hotend0_current, .__hotend0_target
|
||||||
|
.__hotend1_current, .__hotend1_target
|
||||||
|
.__hotbed_current, .__hotbed_target
|
||||||
|
.__preheat_pla
|
||||||
|
.__preheat_abs
|
||||||
|
.__cooldown
|
||||||
|
|
||||||
|
[menu __temp __hotend0_current]
|
||||||
|
type: item
|
||||||
|
enable: extruder0.is_enabled
|
||||||
|
name: "Ex0:{0:4.0f} T"
|
||||||
|
parameter: extruder0.temperature
|
||||||
|
|
||||||
|
[menu __temp __hotend0_target]
|
||||||
|
type: input
|
||||||
|
enable: extruder0.is_enabled
|
||||||
|
name: "{0:4.0f}"
|
||||||
|
parameter: extruder0.target
|
||||||
|
input_min: 0
|
||||||
|
input_max: 250
|
||||||
|
input_step: 1
|
||||||
|
gcode: M104 T0 S{0:.0f}
|
||||||
|
|
||||||
|
[menu __temp __hotend1_current]
|
||||||
|
type: item
|
||||||
|
enable: extruder1.is_enabled
|
||||||
|
name: "Ex1:{0:4.0f} T"
|
||||||
|
parameter: extruder1.temperature
|
||||||
|
|
||||||
|
[menu __temp __hotend1_target]
|
||||||
|
type: input
|
||||||
|
enable: extruder1.is_enabled
|
||||||
|
name: "{0:4.0f}"
|
||||||
|
parameter: extruder1.target
|
||||||
|
input_min: 0
|
||||||
|
input_max: 250
|
||||||
|
input_step: 1
|
||||||
|
gcode: M104 T1 S{0:.0f}
|
||||||
|
|
||||||
|
[menu __temp __hotbed_current]
|
||||||
|
type: item
|
||||||
|
enable: heater_bed.is_enabled
|
||||||
|
name: "Bed:{0:4.0f} T"
|
||||||
|
parameter: heater_bed.temperature
|
||||||
|
|
||||||
|
[menu __temp __hotbed_target]
|
||||||
|
type: input
|
||||||
|
enable: heater_bed.is_enabled
|
||||||
|
name: "{0:4.0f}"
|
||||||
|
parameter: heater_bed.target
|
||||||
|
input_min: 0
|
||||||
|
input_max: 130
|
||||||
|
input_step: 1
|
||||||
|
gcode: M140 S{0:.0f}
|
||||||
|
|
||||||
|
[menu __temp __preheat_pla]
|
||||||
|
type: list
|
||||||
|
name: Preheat PLA
|
||||||
|
items:
|
||||||
|
.__all
|
||||||
|
.__hotend
|
||||||
|
.__hotbed
|
||||||
|
|
||||||
|
[menu __temp __preheat_pla __all]
|
||||||
|
type: command
|
||||||
|
enable: extruder0.is_enabled,heater_bed.is_enabled
|
||||||
|
name: Preheat all
|
||||||
|
gcode:
|
||||||
|
M140 S60
|
||||||
|
M104 S200
|
||||||
|
|
||||||
|
[menu __temp __preheat_pla __hotend]
|
||||||
|
type: command
|
||||||
|
enable: extruder0.is_enabled
|
||||||
|
name: Preheat hotend
|
||||||
|
gcode: M104 S200
|
||||||
|
|
||||||
|
[menu __temp __preheat_pla __hotbed]
|
||||||
|
type: command
|
||||||
|
enable: heater_bed.is_enabled
|
||||||
|
name: Preheat hotbed
|
||||||
|
gcode: M140 S60
|
||||||
|
|
||||||
|
[menu __temp __preheat_abs]
|
||||||
|
type: list
|
||||||
|
name: Preheat ABS
|
||||||
|
items:
|
||||||
|
.__all
|
||||||
|
.__hotend
|
||||||
|
.__hotbed
|
||||||
|
|
||||||
|
[menu __temp __preheat_abs __all]
|
||||||
|
type: command
|
||||||
|
enable: extruder0.is_enabled,heater_bed.is_enabled
|
||||||
|
name: Preheat all
|
||||||
|
gcode:
|
||||||
|
M140 S110
|
||||||
|
M104 S245
|
||||||
|
|
||||||
|
[menu __temp __preheat_abs __hotend]
|
||||||
|
type: command
|
||||||
|
enable: extruder0.is_enabled
|
||||||
|
name: Preheat hotend
|
||||||
|
gcode: M104 S245
|
||||||
|
|
||||||
|
[menu __temp __preheat_abs __hotbed]
|
||||||
|
type: command
|
||||||
|
enable: heater_bed.is_enabled
|
||||||
|
name: Preheat hotbed
|
||||||
|
gcode: M140 S110
|
||||||
|
|
||||||
|
[menu __temp __cooldown]
|
||||||
|
type: list
|
||||||
|
name: Cooldown
|
||||||
|
items:
|
||||||
|
.__all
|
||||||
|
.__hotend
|
||||||
|
.__hotbed
|
||||||
|
|
||||||
|
[menu __temp __cooldown __all]
|
||||||
|
type: command
|
||||||
|
enable: extruder0.is_enabled,heater_bed.is_enabled
|
||||||
|
name: Cooldown all
|
||||||
|
gcode:
|
||||||
|
M104 S0
|
||||||
|
M140 S0
|
||||||
|
|
||||||
|
[menu __temp __cooldown __hotend]
|
||||||
|
type: command
|
||||||
|
enable: extruder0.is_enabled
|
||||||
|
name: Cooldown hotend
|
||||||
|
gcode: M104 S0
|
||||||
|
|
||||||
|
[menu __temp __cooldown __hotbed]
|
||||||
|
type: command
|
||||||
|
enable: heater_bed.is_enabled
|
||||||
|
name: Cooldown hotbed
|
||||||
|
gcode: M140 S0
|
||||||
|
|
||||||
|
### menu filament ###
|
||||||
|
|
||||||
|
[menu __filament]
|
||||||
|
type: list
|
||||||
|
name: Filament
|
||||||
|
items:
|
||||||
|
__temp __hotend0_current, __temp __hotend0_target
|
||||||
|
.__unload
|
||||||
|
.__load
|
||||||
|
.__feed
|
||||||
|
|
||||||
|
[menu __filament __load]
|
||||||
|
type: command
|
||||||
|
name: Load Filament
|
||||||
|
gcode:
|
||||||
|
G1 E200 F1000
|
||||||
|
G1 E100 F300
|
||||||
|
|
||||||
|
[menu __filament __unload]
|
||||||
|
type: command
|
||||||
|
name: Unload Filament
|
||||||
|
gcode:
|
||||||
|
G1 E-200 F1000
|
||||||
|
G1 E-200 F1800
|
||||||
|
|
||||||
|
[menu __filament __feed]
|
||||||
|
type: input
|
||||||
|
name: Feed Filament: {0:.1f}
|
||||||
|
parameter: toolhead.epos
|
||||||
|
input_step: 0.1
|
||||||
|
gcode: G1 E{0:.1f} F30
|
||||||
|
|
||||||
|
### menu prepare ###
|
||||||
|
[menu __prepare]
|
||||||
|
type: list
|
||||||
|
enable: !toolhead.is_printing
|
||||||
|
name: Prepare
|
||||||
|
items:
|
||||||
|
.__delta_calib
|
||||||
|
.__bedprobe
|
||||||
|
.__hotend_pid_tuning
|
||||||
|
.__hotbed_pid_tuning
|
||||||
|
.__host_restart
|
||||||
|
.__firmware_restart
|
||||||
|
|
||||||
|
[menu __prepare __host_restart]
|
||||||
|
type: command
|
||||||
|
enable: !toolhead.is_printing
|
||||||
|
name: Restart host
|
||||||
|
gcode: RESTART
|
||||||
|
|
||||||
|
[menu __prepare __firmware_restart]
|
||||||
|
type: command
|
||||||
|
enable: !toolhead.is_printing
|
||||||
|
name: Restart FW
|
||||||
|
gcode: FIRMWARE_RESTART
|
||||||
|
|
||||||
|
[menu __prepare __delta_calib]
|
||||||
|
type: command
|
||||||
|
enable: !toolhead.is_printing
|
||||||
|
name: Delta calibrate
|
||||||
|
gcode: DELTA_CALIBRATE
|
||||||
|
|
||||||
|
[menu __prepare __bedprobe]
|
||||||
|
type: command
|
||||||
|
enable: !toolhead.is_printing
|
||||||
|
name: Bed probe
|
||||||
|
gcode: PROBE
|
||||||
|
|
||||||
|
[menu __prepare __hotend_pid_tuning]
|
||||||
|
type: command
|
||||||
|
enable: !toolhead.is_printing, extruder0.is_enabled
|
||||||
|
name: Tune Hotend PID
|
||||||
|
gcode: PID_CALIBRATE HEATER=extruder TARGET=210 WRITE_FILE=1
|
||||||
|
|
||||||
|
[menu __prepare __hotbed_pid_tuning]
|
||||||
|
type: command
|
||||||
|
enable: !toolhead.is_printing, heater_bed.is_enabled
|
||||||
|
name: Tune Hotbed PID
|
||||||
|
gcode: PID_CALIBRATE HEATER=heater_bed TARGET=60 WRITE_FILE=1
|
||||||
|
|
||||||
|
### test menu ###
|
||||||
|
[menu __test]
|
||||||
|
type: list
|
||||||
|
name: Test menu
|
||||||
|
items:
|
||||||
|
.__scroll
|
||||||
|
.__dump
|
||||||
|
|
||||||
|
[menu __test __scroll]
|
||||||
|
type: item
|
||||||
|
name: This is very long item name
|
||||||
|
width: 18
|
||||||
|
scroll: true
|
||||||
|
|
||||||
|
[menu __test __dump]
|
||||||
|
type: command
|
||||||
|
name: Dump parameters
|
||||||
|
gcode: MENU DO=dump
|
||||||
|
|
||||||
|
### info screens ###
|
||||||
|
[menu __screen2004_static]
|
||||||
|
type: deck
|
||||||
|
name: Deck (static)
|
||||||
|
longpress_menu: __main
|
||||||
|
items: __card2004_static
|
||||||
|
|
||||||
|
[menu __screen2004_input]
|
||||||
|
type: deck
|
||||||
|
name: Deck (input)
|
||||||
|
longpress_menu: __main
|
||||||
|
items: __card2004_input
|
||||||
|
|
||||||
|
[menu __screen1604_static]
|
||||||
|
type: deck
|
||||||
|
name: Deck (static)
|
||||||
|
longpress_menu: __main
|
||||||
|
items: __card1604_static
|
||||||
|
|
||||||
|
[menu __screen1604_input]
|
||||||
|
type: deck
|
||||||
|
name: Deck (input)
|
||||||
|
longpress_menu: __main
|
||||||
|
items: __card1604_input
|
||||||
|
|
||||||
|
[menu __screen_test]
|
||||||
|
type: deck
|
||||||
|
name: Deck (test)
|
||||||
|
longpress_menu: __main
|
||||||
|
items: __card1, __card2, __card3
|
||||||
|
|
||||||
|
### deck cards ###
|
||||||
|
|
||||||
|
### special characters for hd44780
|
||||||
|
# \x00 - thermometer
|
||||||
|
# \x01 - heater_bed
|
||||||
|
# \x02 - speed_factor
|
||||||
|
# \x03 - clock
|
||||||
|
# \x04 - degrees
|
||||||
|
# \x05 - usb
|
||||||
|
# \x06 - sdcard
|
||||||
|
# \x7e - right arrow
|
||||||
|
|
||||||
|
[menu __card2004_static]
|
||||||
|
type: card
|
||||||
|
name: Card 20x04
|
||||||
|
content:
|
||||||
|
"\x00{0:3s}\x04\x7e{1:3s}\x04 {2}"
|
||||||
|
"\x01{3:3s}\x04\x7e{4:3s}\x04 \xa5{8}"
|
||||||
|
"fn{6} \x02{5} {7}"
|
||||||
|
"{9}"
|
||||||
|
items:
|
||||||
|
__card_hotend0_current
|
||||||
|
__card_hotend0_target
|
||||||
|
__card_zpos
|
||||||
|
__card_hotbed_current
|
||||||
|
__card_hotbed_target
|
||||||
|
__card_frpeed
|
||||||
|
__card_fnspeed
|
||||||
|
5,__card_prt_time, __card_usb_progress, __card_sdcard_progress
|
||||||
|
__card_status
|
||||||
|
__card_msg,__card_xpos|__card_ypos|__card_epos
|
||||||
|
|
||||||
|
[menu __card1604_static]
|
||||||
|
type: card
|
||||||
|
name: Card 16x04
|
||||||
|
content:
|
||||||
|
"E{0:3s}/{1:3s} {2}"
|
||||||
|
"B{3:3s}/{4:3s} fr{5}"
|
||||||
|
"fn{6} {7}"
|
||||||
|
"[{8}] {9}"
|
||||||
|
items:
|
||||||
|
__card_hotend0_current
|
||||||
|
__card_hotend0_target
|
||||||
|
__card_zpos
|
||||||
|
__card_hotbed_current
|
||||||
|
__card_hotbed_target
|
||||||
|
__card_frpeed
|
||||||
|
__card_fnspeed
|
||||||
|
5,__card_prt_time_2, __card_usb_progress_2, __card_sdcard_progress_2
|
||||||
|
__card_status_slim
|
||||||
|
__card_msg_slim,__card_xpos|__card_ypos
|
||||||
|
|
||||||
|
[menu __card2004_input]
|
||||||
|
type: card
|
||||||
|
name: Card 20x04
|
||||||
|
content:
|
||||||
|
"\x00{0:3s}\x04\x7e{1:3s}\x04 {2}"
|
||||||
|
"\x01{3:3s}\x04\x7e{4:3s}\x04 \xa5{8}"
|
||||||
|
"fn{6} \x02{5} {7}"
|
||||||
|
"{9}"
|
||||||
|
items:
|
||||||
|
__card_hotend0_current
|
||||||
|
__card_hotend0_target_in
|
||||||
|
__card_zpos
|
||||||
|
__card_hotbed_current
|
||||||
|
__card_hotbed_target_in
|
||||||
|
__card_frpeed_in
|
||||||
|
__card_fnspeed
|
||||||
|
5,__card_prt_time, __card_usb_progress, __card_sdcard_progress
|
||||||
|
__card_status
|
||||||
|
__card_msg,__card_xpos|__card_ypos|__card_epos
|
||||||
|
|
||||||
|
[menu __card1604_input]
|
||||||
|
type: card
|
||||||
|
name: Card 16x04
|
||||||
|
content:
|
||||||
|
"E{0:3s}/{1:3s} {2}"
|
||||||
|
"B{3:3s}/{4:3s} fr{5}"
|
||||||
|
"fn{6} {7}"
|
||||||
|
"[{8}] {9}"
|
||||||
|
items:
|
||||||
|
__card_hotend0_current
|
||||||
|
__card_hotend0_target_in
|
||||||
|
__card_zpos
|
||||||
|
__card_hotbed_current
|
||||||
|
__card_hotbed_target_in
|
||||||
|
__card_frpeed_in
|
||||||
|
__card_fnspeed
|
||||||
|
5,__card_prt_time_2, __card_usb_progress_2, __card_sdcard_progress_2
|
||||||
|
__card_status_slim
|
||||||
|
__card_msg,__card_xpos|__card_ypos
|
||||||
|
|
||||||
|
[menu __card1]
|
||||||
|
type: card
|
||||||
|
name: Card 1
|
||||||
|
content:
|
||||||
|
"E0:{0:3s}/{1:3s} B:{4:3s}/{5:3s}"
|
||||||
|
"E1:{2:3s}/{3:3s} {6}"
|
||||||
|
"Fr{7}Fn{8} {9}"
|
||||||
|
"{10}"
|
||||||
|
|
||||||
|
items:
|
||||||
|
__card_hotend0_current
|
||||||
|
__card_hotend0_target
|
||||||
|
__card_hotend1_current
|
||||||
|
__card_hotend1_target
|
||||||
|
__card_hotbed_current
|
||||||
|
__card_hotbed_target
|
||||||
|
__card_zpos
|
||||||
|
__card_frpeed_in
|
||||||
|
__card_fnspeed_in
|
||||||
|
5,__card_prt_time, __card_usb_progress, __card_sdcard_progress
|
||||||
|
__card_msg
|
||||||
|
|
||||||
|
[menu __card2]
|
||||||
|
type: card
|
||||||
|
name: Card 2
|
||||||
|
content:
|
||||||
|
"E:{0:3s}/{1:3s} B:{2:3s}/{3:3s}"
|
||||||
|
"{4}{5}{6}"
|
||||||
|
"Fr{7} {8} T{9}"
|
||||||
|
"{10}"
|
||||||
|
items:
|
||||||
|
__card_hotend0_current
|
||||||
|
__card_hotend0_target
|
||||||
|
__card_hotbed_current
|
||||||
|
__card_hotbed_target
|
||||||
|
__card_xpos
|
||||||
|
__card_ypos
|
||||||
|
__card_zpos
|
||||||
|
__card_frpeed_in
|
||||||
|
__card_usb_progress_2, __card_sdcard_progress_2
|
||||||
|
__card_prt_time_2
|
||||||
|
__card_msg
|
||||||
|
|
||||||
|
[menu __card3]
|
||||||
|
type: card
|
||||||
|
name: Card 3
|
||||||
|
content:
|
||||||
|
"Example card :)"
|
||||||
|
"Try this menu."
|
||||||
|
"({0})"
|
||||||
|
items:
|
||||||
|
__test
|
||||||
|
|
||||||
|
### card items ###
|
||||||
|
|
||||||
|
[menu __card_hotend0_current]
|
||||||
|
type: item
|
||||||
|
enable: extruder0.is_enabled
|
||||||
|
name: "{1:3.0f}"
|
||||||
|
parameter: extruder0.temperature
|
||||||
|
transform: abs()
|
||||||
|
|
||||||
|
[menu __card_hotend0_target]
|
||||||
|
type: item
|
||||||
|
enable: extruder0.is_enabled
|
||||||
|
name: "{1:3.0f}"
|
||||||
|
parameter: extruder0.target
|
||||||
|
transform: abs()
|
||||||
|
|
||||||
|
[menu __card_hotend0_target_in]
|
||||||
|
type: input
|
||||||
|
enable: extruder0.is_enabled
|
||||||
|
name: "{1:3.0f}"
|
||||||
|
parameter: extruder0.target
|
||||||
|
transform: abs()
|
||||||
|
input_min: 0
|
||||||
|
input_max: 250
|
||||||
|
input_step: 1
|
||||||
|
gcode: M104 T0 S{0:.0f}
|
||||||
|
|
||||||
|
[menu __card_hotend1_current]
|
||||||
|
type: item
|
||||||
|
enable: extruder1.is_enabled
|
||||||
|
name: "{1:3.0f}"
|
||||||
|
parameter: extruder1.temperature
|
||||||
|
transform: abs()
|
||||||
|
|
||||||
|
[menu __card_hotend1_target]
|
||||||
|
type: item
|
||||||
|
enable: extruder1.is_enabled
|
||||||
|
name: "{1:3.0f}"
|
||||||
|
parameter: extruder1.target
|
||||||
|
transform: abs()
|
||||||
|
|
||||||
|
[menu __card_hotend1_target_in]
|
||||||
|
type: input
|
||||||
|
enable: extruder1.is_enabled
|
||||||
|
name: "{1:3.0f}"
|
||||||
|
parameter: extruder1.target
|
||||||
|
transform: abs()
|
||||||
|
input_min: 0
|
||||||
|
input_max: 250
|
||||||
|
input_step: 1
|
||||||
|
gcode: M104 T1 S{0:.0f}
|
||||||
|
|
||||||
|
[menu __card_hotbed_current]
|
||||||
|
type: item
|
||||||
|
enable: heater_bed.is_enabled
|
||||||
|
name: "{1:3.0f}"
|
||||||
|
parameter: heater_bed.temperature
|
||||||
|
transform: abs()
|
||||||
|
|
||||||
|
[menu __card_hotbed_target]
|
||||||
|
type: item
|
||||||
|
enable: heater_bed.is_enabled
|
||||||
|
name: "{1:3.0f}"
|
||||||
|
parameter: heater_bed.target
|
||||||
|
transform: abs()
|
||||||
|
|
||||||
|
[menu __card_hotbed_target_in]
|
||||||
|
type: input
|
||||||
|
enable: heater_bed.is_enabled
|
||||||
|
name: "{1:3.0f}"
|
||||||
|
parameter: heater_bed.target
|
||||||
|
transform: abs()
|
||||||
|
input_min: 0
|
||||||
|
input_max: 250
|
||||||
|
input_step: 1
|
||||||
|
gcode: M140 S{0:.0f}
|
||||||
|
|
||||||
|
[menu __card_zpos]
|
||||||
|
type: item
|
||||||
|
name: "Z{0:06.2f}"
|
||||||
|
parameter: toolhead.zpos
|
||||||
|
|
||||||
|
[menu __card_xpos]
|
||||||
|
type: item
|
||||||
|
name: "X{0:05.1f}{2}"
|
||||||
|
parameter: toolhead.xpos, menu.is20xx
|
||||||
|
transform:
|
||||||
|
1.choose('',' ')
|
||||||
|
|
||||||
|
[menu __card_ypos]
|
||||||
|
type: item
|
||||||
|
name: "Y{0:05.1f}{2}"
|
||||||
|
parameter: toolhead.ypos, menu.is20xx
|
||||||
|
transform:
|
||||||
|
1.choose('',' ')
|
||||||
|
|
||||||
|
[menu __card_epos]
|
||||||
|
type: item
|
||||||
|
name: "E{0:05.1f}{2}"
|
||||||
|
parameter: toolhead.epos, menu.is20xx
|
||||||
|
transform:
|
||||||
|
1.choose('',' ')
|
||||||
|
|
||||||
|
[menu __card_frpeed]
|
||||||
|
type: item
|
||||||
|
name: "{0:4.0%}"
|
||||||
|
parameter: gcode.speed_factor
|
||||||
|
|
||||||
|
[menu __card_fnspeed]
|
||||||
|
type: item
|
||||||
|
name: "{0:4.0%}"
|
||||||
|
parameter: fan.speed
|
||||||
|
|
||||||
|
[menu __card_frpeed_in]
|
||||||
|
type: input
|
||||||
|
name: "{0:4.0%}"
|
||||||
|
parameter: gcode.speed_factor
|
||||||
|
transform:
|
||||||
|
map(0,1,0,255)
|
||||||
|
input_min: 0
|
||||||
|
input_max: 1
|
||||||
|
input_step: 0.01
|
||||||
|
gcode: M220 S{1:d}
|
||||||
|
|
||||||
|
[menu __card_fnspeed_in]
|
||||||
|
type: input
|
||||||
|
enable: fan.is_enabled
|
||||||
|
name: "{0:4.0%}"
|
||||||
|
parameter: fan.speed
|
||||||
|
transform:
|
||||||
|
map(0,1,0,255)
|
||||||
|
input_min: 0
|
||||||
|
input_max: 1
|
||||||
|
input_step: 0.01
|
||||||
|
gcode: M106 S{1:d}
|
||||||
|
|
||||||
|
[menu __card_prt_time]
|
||||||
|
type: item
|
||||||
|
name: "\x03{1:02d}:{2:02d}"
|
||||||
|
transform:
|
||||||
|
minutes()
|
||||||
|
seconds()
|
||||||
|
parameter: toolhead.printing_time
|
||||||
|
|
||||||
|
[menu __card_prt_time_2]
|
||||||
|
type: item
|
||||||
|
name: "T{1:02d}:{2:02d}"
|
||||||
|
transform:
|
||||||
|
minutes()
|
||||||
|
seconds()
|
||||||
|
parameter: toolhead.printing_time
|
||||||
|
|
||||||
|
[menu __card_usb_progress]
|
||||||
|
type: item
|
||||||
|
enable: !virtual_sdcard.progress, display.progress
|
||||||
|
name: "\x05{0:3.0f}%"
|
||||||
|
parameter: display.progress
|
||||||
|
|
||||||
|
[menu __card_sdcard_progress]
|
||||||
|
type: item
|
||||||
|
enable: virtual_sdcard.is_enabled, virtual_sdcard.progress
|
||||||
|
name: "\x06{0:3.0f}%"
|
||||||
|
parameter: virtual_sdcard.progress
|
||||||
|
|
||||||
|
[menu __card_usb_progress_2]
|
||||||
|
type: item
|
||||||
|
#enable: !virtual_sdcard.progress,display.progress
|
||||||
|
name: "pr{0:3.0f}%"
|
||||||
|
parameter: display.progress
|
||||||
|
|
||||||
|
[menu __card_sdcard_progress_2]
|
||||||
|
type: item
|
||||||
|
enable: virtual_sdcard.is_enabled, virtual_sdcard.progress
|
||||||
|
name: "pr{0:3.0f}%"
|
||||||
|
parameter: virtual_sdcard.progress
|
||||||
|
|
||||||
|
[menu __card_msg]
|
||||||
|
enable: display.message
|
||||||
|
type: item
|
||||||
|
scroll: true
|
||||||
|
width: 20
|
||||||
|
name: "{0}"
|
||||||
|
parameter: display.message
|
||||||
|
|
||||||
|
[menu __card_msg_slim]
|
||||||
|
enable: display.message
|
||||||
|
type: item
|
||||||
|
scroll: true
|
||||||
|
width: 12
|
||||||
|
name: "{0}"
|
||||||
|
parameter: display.message
|
||||||
|
|
||||||
|
[menu __card_status]
|
||||||
|
type: item
|
||||||
|
name: "{0}"
|
||||||
|
width: 5
|
||||||
|
parameter: toolhead.status
|
||||||
|
|
||||||
|
[menu __card_status_slim]
|
||||||
|
type: item
|
||||||
|
name: "{0}"
|
||||||
|
width: 1
|
||||||
|
parameter: toolhead.status
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue