diff --git a/V0_Display/Software/Display_config.cfg b/V0_Display/Software/Display_config.cfg new file mode 100644 index 00000000..8539646d --- /dev/null +++ b/V0_Display/Software/Display_config.cfg @@ -0,0 +1,768 @@ +[mcu display] +#serial: **PASTE YOUR SERIAL PORT HERE AND UNCOMMENT** +restart_method: command + +[display] +lcd_type: sh1106 +i2c_mcu: display +i2c_bus: i2c1a +# Set the direction of the encoder wheel +# Standard: Right (clockwise) scrolls down or increases values. Left (counter-clockwise scrolls up or decreases values. +encoder_pins: ^display:PA3, ^display:PA4 +# Reversed: Right (clockwise) scrolls up or decreases values. Left (counter-clockwise scrolls down or increases values. +#encoder_pins: ^display:PA4, ^display:PA3 +click_pin: ^!display:PA1 +kill_pin: ^!display:PA5 +# Steps per detent: +# If you need to move two detents to move one line in the menu: +#encoder_steps_per_detent: 2 +x_offset: 2 +# Use X offset to shift the display towards the right. Value can be 0 to 3 +vcomh: 31 +# Set the Vcomh value on SSD1306/SH1106 displays. This value is +# associated with a "smearing" effect on some OLED displays. The +# value may range from 0 to 63. Default is 0. +# Adjust this value if you get some vertical stripes on your display. (31 seems to be a good value) + +[neopixel displayStatus] +pin: display:PA0 +chain_count: 1 +color_order: GRB +initial_RED: 0.2 +initial_GREEN: 0.05 +initial_BLUE: 0 + + +############################################################# +## ## Custom display layout ## ## +## ## Do not edit below ## ## +############################################################# + +[display_data __voron_screensaver blank] +position: 0,0 +text: +[display_data __voron_bootsplash splash1] +position: 0, 0 +text: + ~voronsplash1~~voronsplash2~~voronsplash3~~voronsplash4~~voronsplash5~~voronsplash6~~voronsplash7~~voronsplash8~ +[display_data __voron_bootsplash splash2] +position: 1, 0 +text: + ~voronsplash9~~voronsplash10~~voronsplash11~~voronsplash12~~voronsplash13~~voronsplash14~~voronsplash15~~voronsplash16~ +[display_data __voron_bootsplash splash3] +position: 2, 0 +text: + ~voronsplash17~~voronsplash18~~voronsplash19~~voronsplash20~~voronsplash21~~voronsplash22~~voronsplash23~~voronsplash24~ +[display_data __voron_bootsplash splash4] +position: 3, 4 +text: + {% set printer_name = printer["gcode_macro _DISPLAY_SETTINGS"].display.printer_name|default("")|upper %} + {% if printer_name != "NONE" %} + {printer_name} + {% endif %} + +[display_template _extruder_temperature] +param_heater_name: "extruder" +text: + {% if param_heater_name in printer %} + {% set heater = printer[param_heater_name] %} + # Show glyph + {% if (heater.target) and (printer.extruder.can_extrude|lower == 'true') %} + {% set frame = (printer.toolhead.estimated_print_time|int % 3) + 1 %} + ~extruder{frame}~ + {% elif (heater.target) and (printer.extruder.can_extrude|lower == 'false') %} + ~extruder2~ + {% else %} + ~extruder~ + {% endif %} + # Show temperature + { "%3.0f" % (heater.temperature,) } + # Optionally show target + {% if heater.target and (heater.temperature - heater.target)|abs > 2 %} + ~right_arrow~ + { "%0.0f" % (heater.target,) } + {% endif %} + ~degrees~ + {% endif %} +[display_template _heater_bed_temperature] +param_heater_name: "heater_bed" +text: + {% if param_heater_name in printer %} + {% set heater = printer[param_heater_name] %} + # Show glyph + {% if param_heater_name == "heater_bed" %} + {% if heater.target %} + {% set frame = (printer.toolhead.estimated_print_time|int % 2) + 1 %} + ~bed_heat{frame}~ + {% else %} + ~bed~ + {% endif %} + {% endif %} + # Show temperature + { "%3.0f" % (heater.temperature,) } + # Optionally show target + {% if heater.target and (heater.temperature - heater.target)|abs > 2 %} + ~right_arrow~ + { "%0.0f" % (heater.target,) } + {% endif %} + ~degrees~ + {% endif %} +[display_data __voron_display extruder] +position: 0, 0 +text: { render("_extruder_temperature", param_heater_name="extruder") } +[display_data __voron_display fan] +position: 0, 10 +text: + {% if 'fan' in printer %} + {% set speed = printer.fan.speed %} + {% if speed %} + {% set frame = (printer.toolhead.estimated_print_time|int % 2) + 1 %} + ~fan{frame}~ + {% else %} + ~fan1~ + {% endif %} + { "{:>4.0%}".format(speed) } + {% endif %} +[display_data __voron_display bed] +position: 1, 0 +text: { render("_heater_bed_temperature", param_heater_name="heater_bed") } +[display_data __voron_display progress_text] +position: 1, 10 +text: + {% set progress = printer.display_status.progress %} + { "{:^6.0%}".format(progress) } +[display_data __voron_display progress_text2] +position: 1, 10 +text: + {% set progress = printer.display_status.progress %} + { draw_progress_bar(1, 10, 6, progress) } +[display_data __voron_display printing_time] +position: 2, 10 +text: + {% set ptime = printer.idle_timeout.printing_time %} + { "%02d:%02d" % (ptime // (60 * 60), (ptime // 60) % 60) } +[display_data __voron_display chamber] +position: 2, 0 +text: + {% if ('temperature_sensor chamber' in printer) %} + {% set chamber = printer['temperature_sensor chamber'] %} + ~chamber~ { "%2.0f" % (chamber.temperature,) }~degrees~ + {% endif %} +[display_data __voron_display print_status] +position: 3, 0 +text: + {% set printer_name = printer["gcode_macro _DISPLAY_SETTINGS"].display.printer_name|default("")|upper %} + {% if printer.display_status.message %} + { printer.display_status.message } + {% elif printer.idle_timeout.printing_time %} + {% set pos = printer.toolhead.position %} + { "X%-4.0fY%-4.0fZ%-5.2f" % (pos.x, pos.y, pos.z) } + {% else %} + {% if printer_name != "NONE" %} + { " %s" % (printer_name) } + {% endif %} + {% endif %} +[display_data __voron_display voron_logo] +position: 3, 12 +text: + {% set display_icon = printer['gcode_macro _DISPLAY_SETTINGS'].display.icon|default('')|lower %} + {% if printer.display_status.message %} + {% elif printer.idle_timeout.printing_time %} + {% else %} + ~{display_icon}~ + {% endif %} + +[display_glyph chamber] +data: + ................ + **************** + *..............* + *.....****.....* + *.***.*..*.***.* + *.....****.....* + *......**......* + *..............* + *..*********...* + *...*******....* + *...*..*..*....* + *...*..*..*....* + *...*..*..*....* + *...*..*..*....* + **************** + ................ +[display_glyph voron_logo] +data: + ......***....... + ....*******..... + ...*********.... + .*************.. + *****..***..***. + ****..***..****. + ***..***..*****. + **..***..******. + ******..***..**. + *****..***..***. + ****..***..****. + ***..***..*****. + .*************.. + ...*********.... + ....*******..... + ......***....... +[display_glyph voron_heart] +data: + ................ + ..****...*****.. + .**************. + ******..**..**** + *****..**..***** + ****..**..****** + *******..******* + .*****..**..***. + .****..**..****. + ..**..**..****.. + ...**********... + ....********.... + .....******..... + ......****...... + .......**....... + ................ +[display_glyph bed] +data: + ................ + ................ + ................ + ................ + ................ + ................ + ................ + ................ + ................ + ................ + ...**********... + ..*..........*.. + .*............*. + *..............* + **************** + ................ +[display_glyph bed_heat1] +data: + ................ + ......*...*..... + ......*...*..... + .....*...*...... + .....*...*...... + ......*...*..... + ......*...*..... + .....*...*...... + .....*...*...... + ................ + ...**********... + ..*..........*.. + .*............*. + *..............* + **************** + ................ +[display_glyph bed_heat2] +data: + ................ + .....*...*...... + .....*...*...... + ......*...*..... + ......*...*..... + .....*...*...... + .....*...*...... + ......*...*..... + ......*...*..... + ................ + ...**********... + ..*..........*.. + .*............*. + *..............* + **************** + ................ +[display_glyph extruder1] +data: + ..************.. + ..************.. + ......****...... + ....********.... + ....********.... + .....******..... + ......****...... + .......**....... + ................ + ..*******....... + .*.............. + .*.............. + ..************.. + ..............*. + ..............*. + .......*******.. +[display_glyph extruder2] +data: + ..************.. + ..************.. + ......****...... + ....********.... + ....********.... + .....******..... + ......****...... + .......**....... + ................ + .......**....... + ................ + ................ + ................ + ................ + ................ + ................ +[display_glyph extruder3] +data: + ..************.. + ..************.. + ......****...... + ....********.... + ....********.... + .....******..... + ......****...... + .......**....... + ................ + ..*******....... + .*.............. + .*.............. + ..******........ + ................ + ................ + ................ +[display_glyph voronsplash1] +data: + ................ + ................ + ................ + ................ + ................ + ................ + ................ + ...............* + ..............** + ............**** + ..........****** + ........******** + .......********* + .....*********.. + ....**********.. + ....*********... +[display_glyph voronsplash2] +data: + ................ + ................ + ................ + ................ + ................ + ...*............ + .****........... + *******......... + *********....... + ***********..... + ************.... + **************.. + **************** + ...****.....**** + ...***......**** + ..****.....***** +[display_glyph voronsplash3] +data: + ................ + ................ + ................ + ................ + ................ + ................ + ................ + ................ + ................ + ................ + ................ + ................ + ................ + *............... + ***...***....... + ***...***....... +[display_glyph voronsplash4] +data: + ................ + ................ + ................ + ................ + ................ + ................ + ................ + ................ + ................ + ................ + ................ + ................ + ................ + ................ + ....**.....***** + ...***...******* +[display_glyph voronsplash5] +data: + ................ + ................ + ................ + ................ + ................ + ................ + ................ + ................ + ................ + ................ + ................ + ................ + ................ + ................ + ****.......***** + *****......***** +[display_glyph voronsplash6] +data: + ................ + ................ + ................ + ................ + ................ + ................ + ................ + ................ + ................ + ................ + ................ + ................ + ................ + ................ + *****.........** + ******......**** +[display_glyph voronsplash7] +data: + ................ + ................ + ................ + ................ + ................ + ................ + ................ + ................ + ................ + ................ + ................ + ................ + ................ + ................ + *******.......** + ********......** +[display_glyph voronsplash8] +data: + ................ + ................ + ................ + ................ + ................ + ................ + ................ + ................ + ................ + ................ + ................ + ................ + ................ + ................ + *.........**.... + **........**.... +[display_glyph voronsplash9] +data: + ....********.... + ....********.... + ....*******..... + ....******...... + ....******.....* + ....*****......* + ....****......** + ....****.....*** + ....************ + ....***********. + ....***********. + ....**********.. + ....*********... + ....*********... + ....********.... + ....*******..... +[display_glyph voronsplash10] +data: + ..***......***** + .****.....****** + ****.....******* + ***......******* + ***.....******** + **.....********* + *......********* + *.....****....** + ......***.....** + .....***......** + ....****.....*** + ...****.....**** + ...***......**** + ..****.....***** + ..***......***** + .***......****** +[display_glyph voronsplash11] +data: + ***....***...... + ***....***...... + ***.....**...... + ***.....***..... + ***.....***..... + ***......**..... + ***......***.... + ***.......**.... + ***.......***... + ***.......***... + ***........**..* + ***........***.* + ***.........**** + ***.........**** + ***.........**** + ***............. +[display_glyph voronsplash12] +data: + ...**....***.... + ...**...***..... + ..***...***..... + ..**....***..... + .***....***..... + .**.....***..... + .**.....***..... + ***.....***..... + **......***..... + **......***..... + *.......***..... + *.......***..... + *........**..... + .........****... + ..........****** + ................ +[display_glyph voronsplash13] +data: + ...***.....**... + ....***....**... + ....***....**... + ....***....**... + ....***....**... + ....***....**... + ....***....***** + ....***....***** + ....***....**... + ....***....**... + ....***....**... + ....***....**... + ....**.....**... + ..****.....**... + *****......**... + ................ +[display_glyph voronsplash14] +data: + ....***.....***. + ....***....***.. + ....***....***.. + ....***....***.. + ....***....***.. + ....**.....***.. + ******.....***.. + ***........***.. + ***........***.. + .***.......***.. + .***.......***.. + ..***......***.. + ...***.....***.. + ...****.....**** + ....***......*** + ................ +[display_glyph voronsplash15] +data: + ......***.....** + .......**.....** + .......***....** + .......***....** + .......***....** + .......***....** + .......***....** + .......***....** + .......***....** + .......***....** + .......***....** + .......***....** + ......***.....** + .....****.....** + *******.......** + ................ +[display_glyph voronsplash16] +data: + **........**.... + ***.......**.... + .***......**.... + ..**......**.... + ..***.....**.... + ...***....**.... + ...***....**.... + ....***...**.... + .....***..**.... + .....***..**.... + ......***.**.... + .......*****.... + .......*****.... + ........****.... + .........***.... + ................ +[display_glyph voronsplash17] +data: + ....*******..... + .....*****...... + ......********** + ........******** + ..........****** + ............**** + .............*** + ...............* + ................ + ................ + ................ + ................ + ................ + ................ + ................ + ................ +[display_glyph voronsplash18] +data: + ****.....******* + ***......******* + **************** + **************.. + *************... + ***********..... + *********....... + ********........ + .*****.......... + ..**............ + ................ + ................ + ................ + ................ + ................ + ................ +[display_glyph voronsplash19] +data: + ***............. + **.............. + .......****..... + .......*...*.... + .......*....*... + .......*....*... + .......*....*... + .......*....*... + .......*...**... + .......*****.... + ................ + ................ + ................ + ................ + ................ + ................ +[display_glyph voronsplash20] +data: + ................ + ................ + .......*****.... + .......*........ + .......*........ + .......*........ + .......**....... + .......*........ + .......*........ + .......*****.... + ................ + ................ + ................ + ................ + ................ + ................ +[display_glyph voronsplash21] +data: + ................ + ................ + ........****.... + .......**....... + .......*........ + .......**....... + ..........**.... + ...........*.... + ...........*.... + .......*****.... + ................ + ................ + ................ + ................ + ................ + ................ +[display_glyph voronsplash22] +data: + ................ + ................ + ................ + .........**..... + .........**..... + .........**..... + .........**..... + .........**..... + .........**..... + .........**..... + ................ + ................ + ................ + ................ + ................ + ................ +[display_glyph voronsplash23] +data: + ................ + ................ + ........***..... + ......**........ + ......*......... + ......*......... + ......*...**.... + ......*....*.... + ......*....*.... + .......*****.... + ................ + ................ + ................ + ................ + ................ + ................ +[display_glyph voronsplash24] +data: + ................ + ................ + ......*....*.... + ......**...*.... + ......***..*.... + ......*.*..*.... + ......*..*.*.... + ......*..***.... + ......*...**.... + ......*....*.... + ................ + ................ + ................ + ................ + ................ + ................ \ No newline at end of file diff --git a/V0_Display/Software/Display_macros.cfg b/V0_Display/Software/Display_macros.cfg new file mode 100644 index 00000000..3b8f15a9 --- /dev/null +++ b/V0_Display/Software/Display_macros.cfg @@ -0,0 +1,269 @@ +[gcode_macro _DISPLAY_SETTINGS] +##### Display info ##### +variable_display: { + "bootsplash": "__voron_bootsplash", # [none|__voron_bootsplash] select which bootsplash to use + "group": "__voron_display", # [none|__voron_display] which display layout to use, none will be default layout + "icon": "voron_heart", # [voron_logo|voron_heart] select which icon to show (Shows after printer_name) + "printer_name": "V0.X XXXX", # printer name shown on the display, replace with your serial. + "printing_message": "Printer goes brrr" # Set a suitable message if you want to spice it up + } +gcode: # Intentionally blank, we're only using this macro to store variables. + +# Edit colors to match what you have in printer.cfg +[gcode_macro _WAKE_UP] +gcode: + {% if "neopixel displaystatus" in printer.configfile.settings %} + SET_LED LED="displayStatus" RED=0.2 GREEN=0.05 BLUE=0 SYNC=0 TRANSMIT=1 + {% endif %} +# If you have case_lights you can uncomment and edit colors. Add WHITE=X if it's rgbw. +# {% if "neopixel displaystatus" in printer.configfile.settings %} +# SET_LED LED="case_lights" RED=0.2 GREEN=0.05 BLUE=0 SYNC=0 TRANSMIT=1 +# {% endif %} + SET_DISPLAY_GROUP GROUP=__voron_display + +############################################################# +## ## Custom display menu ## ## +## ## Do not edit below ## ## +############################################################# + +[delayed_gcode INITIALIZE_DISPLAY] +initial_duration: 0.4 +gcode: + {% set display_group = printer["gcode_macro _DISPLAY_SETTINGS"].display.group|lower %} + {% set display_bootsplash = printer["gcode_macro _DISPLAY_SETTINGS"].display.bootsplash|lower %} + + {% if display_group != "none" and display_bootsplash == "none" %} + SET_DISPLAY_GROUP GROUP={display_group} + {% elif display_group != "none" and display_bootsplash != "none" %} + SET_DISPLAY_GROUP GROUP={display_bootsplash} + G4 P8000 + SET_DISPLAY_GROUP GROUP={display_group} + {% elif display_group == "none" and display_bootsplash != "none" %} + SET_DISPLAY_GROUP GROUP={display_bootsplash} + G4 P8000 + SET_DISPLAY_GROUP GROUP=_default_16x4 + {% endif %} + +############################################################# +## ## Main ## ## +############################################################# +[display] +menu_root: __voron +[menu __voron] +type: list +name: Main +[menu __voron __wakeup] +type: command +name: Wake up +enable: {(printer.idle_timeout.state|lower == "idle")} +gcode: + _WAKE_UP + {menu.exit(update)} +############################################################# +## ## Tune ## ## +############################################################# +[menu __voron __tune] +type: list +name: Tune +enable: {(printer.print_stats.state == "paused") or (printer.idle_timeout.state == "Printing")} +[menu __voron __tune __speed] +type: input +name: Speed: {'%3d' % (menu.input*100)}% +input: {printer.gcode_move.speed_factor} +input_min: 0.01 +input_max: 2 +input_step: 0.01 +realtime: True +gcode: + M220 S{'%d' % (menu.input*100)} +[menu __voron __tune __flow] +type: input +name: Flow: {'%3d' % (menu.input*100)}% +input: {printer.gcode_move.extrude_factor} +input_min: 0.01 +input_max: 2 +input_step: 0.01 +realtime: True +gcode: + M221 S{'%d' % (menu.input*100)} +[menu __voron __tune __offsetz] +type: input +name: Z Offset:{'%05.3f' % menu.input} +input: {printer.gcode_move.homing_origin.z} +input_min: -5 +input_max: 5 +input_step: 0.005 +realtime: True +gcode: + SET_GCODE_OFFSET Z={'%.3f' % menu.input} MOVE=1 +[menu __voron __tune __cancel] +type: command +name: Cancel Print +enable: {printer.idle_timeout.state == "Printing"} +gcode: + CANCEL_PRINT + {menu.exit(update)} +[menu __voron __tune __pause] +type: command +name: Pause Print +enable: {printer.print_stats.state == "printing"} +gcode: + PAUSE + {menu.exit(update)} +[menu __voron __tune __resume] +type: command +name: Resume Print +enable: {printer.print_stats.state == "paused"} +gcode: + RESUME + {menu.exit(update)} +##################################################################### +# Temperature +##################################################################### +[menu __voron __temp] +type: list +name: Temperature +[menu __voron __temp __hotend0_target] +type: input +enable: {('extruder' in printer) and ('extruder' in printer.heaters.available_heaters)} +name: {"Ext:%3.0f (%4.0f)" % (menu.input, printer.extruder.temperature)} +input: {printer.extruder.target} +input_min: 0 +input_max: {printer.configfile.config.extruder.max_temp} +input_step: 5 +gcode: M104 T0 S{'%.0f' % menu.input} +[menu __voron __temp __hotbed_target] +type: input +enable: {('heater_bed' in printer)} +name: {"Bed:%3.0f (%4.0f)" % (menu.input, printer.heater_bed.temperature)} +input: {printer.heater_bed.target} +input_min: 0 +input_max: {printer.configfile.config.heater_bed.max_temp} +input_step: 5 +gcode: M140 S{'%.0f' % menu.input} +[menu __voron __temp __all] +type: command +enable: {('extruder' in printer) and ('heater_bed' in printer)} +name: Turn off all +gcode: + M104 S0 + M140 S0 + {menu.exit(update)} +##################################################################### +# Control +##################################################################### +[menu __voron __control] +type: list +name: Control +[menu __voron __control __disable] +type: command +enable: {not printer.idle_timeout.state == "Printing"} +name: Steppers off +gcode: + M84 + {menu.exit(update)} +[menu __voron __control __home] +type: input +enable: {not printer.idle_timeout.state == "Printing"} +name: Home: {['All','Z','X/Y'][menu.input|int]} +input: 0 +input_min: 0 +input_max: 2 +gcode: + {%- if menu.event != 'long_click' -%} + {menu.exit(True)} + {% if menu.input|int == 0 %} + G28 + {% elif menu.input|int == 1 %} + G28 Z + {% elif menu.input|int == 2 %} + G28 X Y + {% endif %} + {%- elif menu.event == 'long_click' -%} + {menu.back(true)} + {%- endif -%} +[menu __voron __control __fanspeed] +type: input +enable: {'fan' in printer} +name: Fan speed: {'%3d' % (menu.input*100)}% +input: {printer.fan.speed} +input_min: 0 +input_max: 1 +input_step: 0.1 +gcode: + M106 S{'%d' % (menu.input*255)} +############################################################# +## ## SD-Card ## ## +############################################################# +[menu __voron __sdcard] +type: list +name: SD-Card +enable: {(not printer.idle_timeout.state == "Printing") or (not printer.print_stats.state == "paused")} +[menu __voron __sdcard __reprint] +type: command +name: Reprint Last +enable: {(not printer.idle_timeout.state == "Printing") or (not printer.print_stats.state == "paused")} +gcode: + {% set state = printer.print_stats.state %} + {% set file = printer.print_stats.filename %} + {% if state == 'printing' %} + { action_respond_info("Print is still running") } + {% elif not file.endswith("gcode") %} + { action_respond_info("No file to reprint") } + {% else %} + SDCARD_PRINT_FILE FILENAME="{file}" + { action_respond_info("Print job restarted.") } + {% endif %} +##################################################################### +# Filament +##################################################################### +[menu __voron __filament] +type: list +name: Filament +enable: {((('gcode_macro UNLOAD_FILAMENT' in printer) and (printer.print_stats.state == "paused")) or ('gcode_macro UNLOAD_FILAMENT' in printer) and (not printer.idle_timeout.state == "Printing"))} +[menu __voron __filament __load] +type: command +name: Load Filament +enable: {'gcode_macro LOAD_FILAMENT' in printer} +gcode: + LOAD_FILAMENT + {menu.exit(update)} +[menu __voron __filament __unload] +type: command +name: Unload Filament +enable: {'gcode_macro UNLOAD_FILAMENT' in printer} +gcode: + UNLOAD_FILAMENT + {menu.exit(update)} +############################################################# +## ## Calibration ## ## +############################################################# +[menu __voron __calibration] +type: list +enable: {(not printer.idle_timeout.state == "Printing") or (not printer.print_stats.state == "paused")} +name: Calibration +[menu __voron __calibration __bed_screws_adjust] +type: command +name: BedScrewAdjust +gcode: + {% if printer.toolhead.homed_axes != "xyz" %} + G28 + {% endif %} + BED_SCREWS_ADJUST +[menu __voron __calibration __adjusted_accept] +type: input +enable: {('bed_screws' in printer.configfile.settings)} +name: Send: {['Adjusted','Accept'][menu.input|int]} +input: 0 +input_min: 0 +input_max: 1 +gcode: + {%- if menu.event != 'long_click' -%} + {% if menu.input|int == 0 %} + ADJUSTED + {% elif menu.input|int == 1 %} + ACCEPT + {% endif %} + {%- elif menu.event == 'long_click' -%} + {menu.exit(true)} + {%- endif -%} \ No newline at end of file diff --git a/V0_Display/Software/V0Display.cfg b/V0_Display/Software/V0Display.cfg deleted file mode 100644 index 8bf7a419..00000000 --- a/V0_Display/Software/V0Display.cfg +++ /dev/null @@ -1,30 +0,0 @@ -[mcu display] -#serial: **PASTE YOUR SERIAL PORT HERE AND UNCOMMENT** -restart_method: command - -[display] -lcd_type: sh1106 -i2c_mcu: display -i2c_bus: i2c1a -# Set the direction of the encoder wheel -# Standard: Right (clockwise) scrolls down or increases values. Left (counter-clockwise scrolls up or decreases values. -encoder_pins: ^display:PA3, ^display:PA4 -# Reversed: Right (clockwise) scrolls up or decreases values. Left (counter-clockwise scrolls down or increases values. -#encoder_pins: ^display:PA4, ^display:PA3 -click_pin: ^!display:PA1 -kill_pin: ^!display:PA5 -#x_offset: 2 -# Use X offset to shift the display towards the right. Value can be 0 to 3 -#vcomh: 0 -# Set the Vcomh value on SSD1306/SH1106 displays. This value is -# associated with a "smearing" effect on some OLED displays. The -# value may range from 0 to 63. Default is 0. -# Adjust this value if you get some vertical stripes on your display. (31 seems to be a good value) - -[neopixel displayStatus] -pin: display:PA0 -chain_count: 1 -color_order: GRB -initial_RED: 0.2 -initial_GREEN: 0.05 -initial_BLUE: 0