Ender 3 with bltouch and runout sensor 3d model
3dmdb logo
Thingiverse
Ender 3 with bltouch and runout sensor

Ender 3 with bltouch and runout sensor

by Thingiverse
Last crawled date: 5 years, 4 months ago
Hi,
I manage to compile latest Marlin Bugfix 1.1.9 with support for:
BLtouch probe
Bilinear bed leveling - 5x5 grid
Filament run-out sensor
Advanced pause feature
S-curve acceleration
Junction deviation
Linear advance
SD card support
Power fail recovery
Thermal Runaway protection
These files are edited by me in original project:
Configuration.h
Configuration_adv.h
pins_MELZI_CREALITY.h
It was not easy to get all these features into firmware at the same time, because flash size is so small on Ender 3. It is nessesairly to add compiler optimalization parameters to file "Arduino\hardware\arduino\avr\platform.txt":
compiler.c.extra_flags=-fno-tree-scev-cprop -fno-split-wide-types -Wl,--relax -mcall-prologues
compiler.c.elf.extra_flags=-Wl,--relax
compiler.cpp.extra_flags=-fno-tree-scev-cprop -fno-split-wide-types -Wl,--relax -mcall-prologues
I have disabled some features of firmware that are not important for me:
STRING_CONFIG_H_AUTHOR
SHOW_BOOTSCREEN
CUSTOM_STATUS_SCREEN_IMAGE
PID_AUTOTUNE_MENU
DISABLE_M503
EEPROM_CHITCHAT
SPEAKER
BEEPER_PIN
LCD_INFO_MENU
STATUS_MESSAGE_SCROLLING
SCROLL_LONG_FILENAMES
ARC_SUPPORT
NO_VOLUMETRICS
EXTENDED_CAPABILITIES_REPORT
All acceleration settings are increased from 500 to 1250.
Extruder steps/mm setting is increased from 93 to 98.
K-factor of linear advance feature is configured to 0 in firmware. It is necessarily to configure it before every print in start G-code. I am using value "0.7".
I am using this start G-code in cura:
M140 S[first_layer_bed_temperature] ; set bed temp
M190 S[first_layer_bed_temperature] ; wait for bed temp
M104 S[first_layer_temperature] ; set extruder temp
M109 S[first_layer_temperature] ; wait for extruder temp
M900 K0.7 ;Set linear advance K-factor
G28 ;Home all axes
M420 S1 ;Enable bed leveling
M220 S100 ;Reset Feedrate
M221 S100 ;Reset Flowrate
G92 E0 ;Reset Extruder
G1 Z2.0 F3000 ;Move Z Axis up
G1 X10.1 Y20 Z0.28 F5000.0 ;Move to start position
G1 X10.1 Y200.0 Z0.28 F1500.0 E15 ;Draw the first line
G1 X10.4 Y200.0 Z0.28 F5000.0 ;Move to side a little
G1 X10.4 Y20 Z0.28 F1500.0 E30 ;Draw the second line
G92 E0 ;Reset Extruder
G1 Z2.0 F3000 ;Move Z Axis up
BLTouch mount offsets are configured for this mount (X= -42, Y= -9):https://www.thingiverse.com/thing:3885541:
BLTouch servo signal (orange wire) is connected to pin 27. It is pin 1 (brown/buzzer) on LCD ribbon cable.
BLTouch end-stop signal (white wire) is connected to pin 29. It is hidden expansion pin close to electrolytic capacitor. I have removed original capacitor. Then I soldered 1-pin connector. And then I soldered new capacitor with longer legs.
Black wire of BLTouch (end-stop GND) is connected together with brown wire (power GND).
No need for remove C7 capacitor from Z endstop input.
Filament run-out sensor is connected into unused Z end-stop plug. If filament is presented inside the sensor then contact is closed.
I recommend to change connection of PCB cooling fan from 2-pin plug connector to direct 24V on screw terminals. On stock connection, PCB cooling fan is connected together with hot end cooling fan. Because hot end cooling fan is not always turned ON on the first layer, then PCB board is not cooled and can be overheated.

Tags