BIGTREETECH TFT35E3のファームウェアアップデートの方法
最近、お気に入りですでに5台導入している3Dプリンタ用コントローラーのファームウェアの更新方法を解説します。
BIGTREETECH TFT35E3とは
BIGTREETECHで発売されている3Dプリンタ用コントローラーでTFTタッチパネルとLCD12864の2つのモードを持ったコントローラーです。
3機種発売されていて、最初に2.4インチTFT24V1.1が発売され、次に大型化した3.5inch TFT35V3,そしてEnder3用に開発されたTFT35E3となっている。
ファームウェアのソースコードが公開されており自分で改造したりもできる。ファームウェアが頻繁に改良されているので今回のメーカー提供のファームウェアが随分使いやすくなったのでファームウェアの更新方法について解説していきます。
準備 ファームウェアのダウンロード
https://github.com/bigtreetech/BIGTREETECH-TouchScreenFirmware
ここから、一式ダウンロードすると良い。
ダウンロードし解凍すると、
ここで赤で囲った部分が必要なファイルのフォルダである。表示のアイコンの違いにより2種類あって、ここではUnified Menu Material themeの方を説明する。
書き換えるコントローラーがTFT35E3なのでTFT35フォルダ丸ごととBIGTREE_TFT35_V3.0_E3.26.binをSDカードにコピーする。
次にプリンタを起動しておき、予めTFTモードにする。SDカードスロットにSDカードを差し込み、リセットするだけで、ファームウェアが書き換わる。
ここで12864モードの状態で書き換えるとアイコン、フォントが書き換わらない。くれぐれもTFTモードで書き換えてください。
以上で書き換えは完了です。カスタマイズしたい時は、ソースリストの
TFT>src>Userの中のConfiguration.hを書き換えコンパイルしなければならない。
今回のアップデートでは、
1.プリンタの各パラメーターをTFTから書き換えることが出来る。
2.LCDのバックライトの明るさを変えることが出来る。
3.隠れているノブの下のRGBLEDを点灯したり色を変えたり出来る。
(TFT35E3のみ)
お持ちの方はぜひ、アップデートすると良いですよヽ(`▽´)/
追記
Version26.1から、再コンパイル無しに設定を変更できるようになった。
方法は、設定ファイルconfig.iniとbinファイルをSDカードにコピーしリセットするだけで更新できる。
設定内容は
#### Default Config file for BigTreeTech TFT Controllers
#
# BIGTREE_TFT35_V1_1 / BIGTREE_TFT35_V1_2 / BIGTREE_TFT35_V2_0
# BIGTREE_TFT35_V3_0 / BIGTREE_TFT35_E3_V3_0 / BIGTREE_TFT28_V1_0
# BIGTREE_TFT28_V3_0 / BIGTREE_TFT24_V1_1 / MKS_32_V1_4
#
# Firmware Source: https://github.com/bigtreetech/BIGTREETECH-TouchScreenFirmware
#--------------------------------------------------------------------
# Supported Marlin Firmware Version
#--------------------------------------------------------------------
# Minimum Marlin Firmware Version: Bugfix-2.0.x
# Distribution date: 2020-05-12
# Source: https://github.com/MarlinFirmware/Marlin/tree/bugfix-2.0.x
サポートするマーリンは2020-05-12付のbugfix版である。
#--------------------------------------------------------------------
# General Settings
#--------------------------------------------------------------------
#### UNIFIED MENU / CLASSIC MENU
# Select a UI Menu flavour
# Options: [Unified Menu: 1, Classic Menu: 0]
unified_menu:1
クラッシックメニュー、ユニファイドメニューの切り替え。
ここでは、ユニファイドメニューここを変更しても対応したアイコンも変更しないと大変なことになる(^_^;)
#### Baudrate
# Options: [2400: 0, 9600: 1, 19200: 2, 38400: 3, 57600: 4, 115200: 5, 250000: 6, 500000: 7, 1000000: 8]
baudrate:5
ここではマザーボードに合わせたボーレートを設定する。
#### Default Touch Mode Language
# Select the language to display on the LCD while in Touch Mode.
# Options: [0: ENGLISH, 1: CHINESE, 2: RUSSIAN, 3: JAPANESE, 4: ARMENIAN,
# 5: GERMAN, 6: CZECH, 7: SPAIN, 8: FRENCH, 9: PORTUGUESE,
# 10: ITALIAN, 11: POLISH, 12: SLOVAK, 13: DUTCH, 14: HUNGARIAN, 15: TURKISH]
language:0
言語の設定。
#### Default Touch Mode Color Options
# Options: [0: WHITE, 1: BLACK, 2: RED, 3: GREEN, 4: BLUE:, 5: CYAN, 6: MAGENTA, 7: YELLOW,
# 8: ORANGE, 9: PURPLE, 10: LIME, 11: BROWN, 12: DARKBLUE, 13: DARKGREEN, 14: GRAY, 15: DARKGRAY]
# Or set the color(RGB888 format) hex value directly(start with “0x”).
# Such as: 0xFF0000 : Red, 0x00FF00 : Green, 0x0000FF : Blue
# Title background color
title_back_color:1
#Background color
background_color:1
#Font foreground color
font_color:0
#Reminder font color, such as: "No print attached", "Busy processing", etc.
reminder_color:2
#Volume status/reminder font color, such as: "Card inserted", "Card removed"
volume_status_color:5
#Backgroud color for X Y Z position display in Status Screen.
status_xyz_bg_color:15
#List View Border Color
list_border_color:15
#List View button background color
list_button_bg_color:15
ここまでが画面のカラーに関する設定。
#### Rotate UI 180 degrees
# Options: [enable: 1, disable: 0]
rotate_ui:0
画面を180度回転して使うときの設定。
#### Show or hide Temperature ACK in Gcode Terminal
# Options: [Show: 1, Hide: 0]
terminal_ack:0
#### invert X axis button function in Move menu to match move buttons to actual axis
# Options: [enable: 1, disable: 0]
# Invert Axis format [ X<option> Y<option> Z<option> E<option>]
invert_axis:X0 Y0 Z0
#### Persistent temperature info
# show persistent temperature info on all menu screens
# Options: [enable: 1, disable: 0]
persistent_info:0
#### File List Mode
# show file as list
# Options: [enable: 1, disable: 0]
files_list_mode:1
#--------------------------------------------------------------------
# Marlin Mode Settings (Only for TFT35_V3.0/ TFT24_V1.1/ TFT28V3.0)
#--------------------------------------------------------------------
#### Default Mode
# Options: [0:Touch Mode, 1: Marlin Mode]
default_mode:0
#### Keep Serial Always ON
# Keep UART (Serial communication) alive in Marlin Mode
# Allow seamless OctoPrint UART connection to the TFT's UART/serial expansion port no matter which mode the TFT is in.
# Options: [0: Disabled, 1: Enabled]
serial_always_on:0
#### Default Marlin Mode Background & Font Color Options
# Options: [ WHITE: 0, BLACK: 1, RED: 2, GREEN: 3, BLUE: 4, CYAN: 5, MAGENTA: 6, YELLOW: 7,
# ORANGE: 8, PURPLE: 9, LIME: 10, BROWN: 11, DARKBLUE: 12, DARKGREEN: 13, GRAY: 14, DARKGRAY: 15]
# Or set the color(RGB888 format) hex value directly(start with “0x”).
# Such as: 0xFF0000 : Red, 0x00FF00 : Green, 0x0000FF : Blue
marlin_bg_color:1
marlin_fn_color:8
#### Marlin Mode show title
# Options: [enable: 1, disable: 0]
marlin_show_title:1
# Run Marlin Mode in Fullscreen
# Options: [enable: 1, disable: 0] [Disabled. RECOMMENDED FOR TFT24]
marlin_fullscreen:0
#### Text displayed at the top of the TFT in Marlin Mode.
marlin_title:LCD12864 Simulator
#--------------------------------------------------------------------
# Printer / Machine Settings
#--------------------------------------------------------------------
#### Hotend Count
# Options: [1 to 6]
hotend_count:1
#### Extruder Count
# Options: [1 to 6]
ext_count:1
#### Fan Count
# Options: [1 to 6]
fan_count:1
#### Bed / Extruder Maximum Temperatures
# format [max_temp: BED:<max temp> T0:<max temp> T1:<max temp> T2:<max temp> T3:<max temp> T4:<max temp> T5:<max temp>]
max_temp:BED:150 T0:275 T1:275 T2:275 T3:275 T4:275 T5:275
#### Cold Extrusion Minimum Temperature
min_temp:180
#### Fan Maximum PWM speed (0 to 255)
# format [fan_max: F0:<max temp> F1:<max temp> F2:<max temp> F3:<max temp> F4:<max temp> F5:<max temp>]
fan_max:F0:255 F1:255 F2:255 F3:255 F4:255 F5:255
#### Machine Size / Build Area (mm)
# Options: [X Axis: X, Y Axis: Y, Z Axis: Z]
# minimum possible value: -2000, maximum possible value: 2000
# minimum size limit format [size_min: X<minimum distance> Y<minimum distance> Z<minimum distance>]
# maximum size limit format [size_max: X<maximum distance> Y<maximum distance> Z<maximum distance>]
size_min:X0 Y0 Z0
size_max:X235 Y235 Z250
#### default Move Speeds (mm/min)
# Options: [Slow: S, Normal: N, Fast: F]
# format [move_speed: S<feedrate mm/min> N<feedrate mm/min> F<feedrate mm/min>]
move_speed:S1000 N3000 F5000
#### default Extruder Speeds (mm/min)
# Options: [Slow: S, Normal: N, Fast: F]
# format [ext_speed: S<feedrate mm/min> N<feedrate mm/min> F<feedrate mm/min>]
ext_speed:S60 N600 F1200
#### Auto Save Load Leveling Data
# The TFT will auto-detect if Auto Bed Level is available.
# Enable this will send "M500" after "G29" to store leveling value
# and send "M420 S1" to enable leveling state after startup
# Options: [enable: 1, disable: 0]
auto_load_leveling:1
#### Onboard / Printer SD Card Support
# On Marlin Firmware, The TFT will auto detect Onboard SD Card
# Auto-detect is not available for other firmwares like Smoothieware
#Options : [enable: 1, disable: 0, auto-detect: 2]
onboard_sd_support:2
#### M27 / Printing status refresh time (this will be used if SD_AUTOREPORT is not detected by the TFT)
M27_refresh_time:3
#### M27 always active - keep polling M27 even if not printing
# Options: [enable: 1, disable: 0]
M27_always_active:1
#### Long File Names Support
# On Marlin Firmware, The TFT will autodetect Long File Name supported
# Auto-detect is not available for other firmwares like Smoothieware
#Options : [enable: 1, disable: 0, auto-detect: 2]
long_filename_support:2
#### Show Fan Speed as Percentage
# Options: [enable: 1, disable: 0]
fan_speed_percent:1
#### Pause Settings
# position & Lengths in mm, Feedrates in mm/min
# minimum possible value: 0, maximum possible value: 2000
# Pause retract distance format [pause_retract: R<retract length> P<Resume Purge length>]
# Pause XY position format [pause_pos: X<position in mm> Y<position in mm>]
# Pause Z raise format [pause_z_raise: Z<distance in mm>]
# Pause feed Rate # format [ X<feedrate mm/min> Y<feedrate mm/min> Z<feedrate mm/min> E<feedrate mm/min>]
pause_retract:R15 P16
pause_pos:X10 Y10
pause_z_raise:20
pause_feedrate:X6000 Y6000 Z6000 E600
### Manual Level Points Edge distance (mm)
# distance in mm, Feedrates in mm/min
# Leveling Edge distance format [level_edge_distance: <distance from edge in mm>]
# Leveling Z Position format [level_z_pos: Z<position in mm>]
# Leveling Z raise format [level_z_raise: Z<distance in mm>]
# Leveling feed Rate format [ X<feedrate mm/min> Y<feedrate mm/min> Z<feedrate mm/min>]
level_edge_distance:20
level_z_pos:0.2
level_z_raise:10
level_feedrate:X6000 Y6000 Z6000
#### Preheat Temperature
# Maximum Filament name length 7 characters
# If default names are changed, make sure to change Icons to match the names
#format [T<hotend temp> B<bed temp>]
preheat_name1:PLA
preheat_temp1:T200 B60
preheat_name2:PETG
preheat_temp2:T200 B60
preheat_name3:ABS
preheat_temp3:T230 B90
#--------------------------------------------------------------------
# Power Supply Settings (if connected to TFT Controller)
#--------------------------------------------------------------------
#### Default Power Supply Mode
# Options: [OFF: 0, ON: 1: Auto:2]
ps_on:0
#### Power Supply Active HIGH Settings
# Options: [HIGH: 1, LOW: 0]
ps_on_active_high:1
#### Maximum hot-end temperature of automatic shut down after printing (only if auto power is enabled)
# wait for the hot-end temperature to be lower than this value, then turn off the power automatically
auto_shutdown_temp:50
#--------------------------------------------------------------------
# Filament Runout Settings (if connected to TFT Controller)
#--------------------------------------------------------------------
#### Default FIlament Sensor
# Options: [NONE: 0, Normal: 1, SMART: 2]
fil_runout:0
#### Filament runout inverting - invert the logic of the sensor.
# Options: [true: 1, false: 0]
fil_runout_inverting:1
#### filament noise threshold - Pause print when filament runout is detected for this time period in (ms).
# time duration in ms
fil_noise_threshold:100
#### Smart filament runout detection
# For use with an encoder disc that toggles runout pin as filament moves
fil_runout_distance:7
#--------------------------------------------------------------------
# Power Loss Recovery & BTT UPS Settings (if connected to TFT Controller)
#--------------------------------------------------------------------
#### Home before Power Loss recovery
# Options: [enable: 1, disable: 0]
pl_recovery_home:0
#### Power Loss Z raise (mm)
# Raise Z axis on resume (on power loss with UPS)
pl_z_raise:0
#### Enable BTT UPS
# Options: [enable: 1, disable: 0]
btt_mini_ups:0
#--------------------------------------------------------------------
# Other device-specific settings
#--------------------------------------------------------------------
#### Buzzer / sound
# Options: [enable: 1, disable: 0]
buzzer:1
#### Knob Led Color (only for TFT35 E3.0)
#Options : [LED_OFF: 0, LED_WHITE: 1, LED_RED: 2, LED_ORANGE: 3, LED_YELLOW: 4, LED_GREEN: 5, LED_BLUE: 6, LED_INDIGO: 7, LED_VIOLET: 8]
knob_led_color:0
#### Default LCD Brightness levels (only for TFT35v3.0 & TFT28v3.0)
# Options: [(low) 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (full)]
lcd_brightness:10
lcd_idle_brightness:5
#### Default LCD idle time (only for TFT35v3.0 & TFT28v3.0)
# Options [Off: 0, 5Sec: 1, 10Sec: 2, 30sec: 3, 1min: 4, 2min: 5, 5min: 6, 10min: 7]
lcd_idle_delay:4
#--------------------------------------------------------------------
# Custom G-Code Commands (up to 15 custom G-code)
#--------------------------------------------------------------------
#### To enable a custom Command:
# Remove '#' at the begining custom commands label & gcode.
#### To disable a custom Command:
# Add '#' at the begining custom commands label & gcode.
# if the values are left blank then default name and G-code will be used
# Options: [Label maximum length: 24 characters, G-code Maximum length 70 characters]
custom_label_1:Disable steppers
custom_gcode_1:M84\n
custom_label_2:Init sd card
custom_gcode_2:G28\nG29\nG0\n
custom_label_3:Release sd card
custom_gcode_3:M22\n
custom_label_4:restore leveling
custom_gcode_4:M420 S1\n
custom_label_5:Save to EEPROM
custom_gcode_5:M500\n
custom_label_6:restore from EEPROM
custom_gcode_6:M501\n
custom_label_7:EEPROM defaults
custom_gcode_7:M502\n
#custom_label_8 :custom8
#custom_gcode_8 :M105\n
#custom_label_9 :custom9
#custom_gcode_9 :M105\n
#custom_label_10 :custom10
#custom_gcode_10 :M105\n
#custom_label_11 :custom11
#custom_gcode_11 :M105\n
#custom_label_12 :custom12
#custom_gcode_12 :M105\n
#custom_label_13 :custom13
#custom_gcode_13 :M105\n
#custom_label_14 :custom14
#custom_gcode_14 :M105\n
#custom_label_15 :custom15
#custom_gcode_15 :M105\n
#--------------------------------------------------------------------
# Start, End & Cancel G-codes
#--------------------------------------------------------------------
#### Default Start Gcode Status
# Options: [enable: 1, disable: 0]
start_gcode_enabled:0
#### Default End Gcode Status
# Options: [enable: 1, disable: 0]
end_gcode_enabled:0
#### Default Cancel Gcode Status
# Options: [enable: 1, disable: 0]
cancel_gcode_enabled:0
#### Start G-code - run this G-code before starting print
# maximum length 50 characters
start_gcode:G28 XY R20\n
#### End G-code - run this G-code after finishing print
# maximum length 50 characters
end_gcode:G90\nG1 E-4\nG92 E0\nM18\n
#### Cancel G-code - run this G-code after canceling print
# maximum length 50 characters
cancel_gcode:G28 XY R10\n
と、とても細かく設定出来るようになっている。