I’d love to know the same thing. After my previous post, I emailed Creality, made reference to the GPL3 license and its requirements, and asked for the code. They basically told me to pound sand, and after I said the next step would be to contact Marlin, they told me to go for it. Unfortunately, I never could find a way to contact the marlin folks. I’m guessing Creality knew that when they told me to do it.
Hey @rv7charlie - can you post your correspondence with Creality here?
My experience is I complain, they acknowledge a ticket in their system, then they close the ticket. So far, twice.
Not quite a “pound sand (far cough)”, but same effect.
Watching this thread, as I opened a ticket asking for the same a few months back and got told essentially, sorry it’s not open source at this time.
Dear Customer, We are very sorry, but the firmware for Ender-3 V3 SE is not open source yet. May I ask what problem the printer is experiencing?
We need more information about the printer to be able to help you better.
1:Screenshot of your order and link to your purchase (this is a warranty certificate)
2:The SN of your printer product (it is the barcode or QR code that is attached to the side of the control box).
3:Please take a video about the fault to show the problem (the fault must be included in the video)
Try thinkyhead he’s one of the project leads for Marlin you can also open as an issue on marlins GitHub also
Hi @amberhelios - do you have contact deets for @thinkyhead?
Ta!
Mikey
https://twitter.com/thinkyhead
Github doesnt allow PM anymore
I emailed ‘marlin-firmware@thinkyhead.com’ (found on the marlin website) about the issue on 4-25-24; haven’t seen a reply yet.
I’ve been “head-down-bum-up” in my real life jobs - but I’m not giving up!
Any of you smart people suggest any other leads?
Any kind Creality peeps want to help?
Thanks in advance.
Mike
I have contacted Creality Support as well quoting Marlin’s team on the obligations of GPL-3 and including a link to the official GPL licence terms on the foundation’s website. I’m not expecting much in terms of a tangible answer but I think the more noise we make, the better chances we have of getting something done…
Does anyone have a contact at a tech website or blog who might publish an article highlighting Creality’s failure to comply with the Marlin license? Maybe some bad press that could steer buyers to other manufacturers would make them take notice.
While I understand the trouble to get a updated/enhanced Marlin Firmware for Ender3 V3 SE, I don’t think it’s the main issue here. It’s already possible to get an updated firmware (search google), you’ll have to build yourself. However, flashing this firmware breaks the screen communication, since it’s using a kind of proprietary protocol here. Since the screen’s source code / protocol isn’t released or documented, you can’t adapt it.
IMHO, the most limitation of the SE are:
- No realtime status display on the screen (like the X/Y/Z realtime position)
- No support for a single text line from Marlin (M117) that could be used to send the position or any other information to display
- No support for previewing the gcode/model to print like on older printer
- Almost no integration with octoprint (not possible to stop a print that’s scheduled by octoprint from the screen, the screen is useless in that case)
In the end, I’m pissed off to have bought this printer compared to KE version. I’m not used to klipper, but I didn’t realize at the time that the SE version was incompatible with octoprint, like all my previous Ender3 printers. The new screen has less features than the old Ender3 pro I had. At least, on the Ender3 pro, I was able to monitor the progress of a print and stop it when it was going berserk.
I’m not pissed off - just disappointed with Creality not disclosing settings so we can roll our own Marlin and fix the points you (@xryl) and I have raised …
Having said that, I am using Octoprint with Orca.
I virtually never look at the E3V3SE’s display because it’s in an enclosure.
I stop queued jobs in the Octoprint interface.
And tonight, I’m putting the x-axis on rails!
It’s time to “serve the Marlin union”. One night with multimeter, ST-Link and 3v3SE motherboard, You can get the results here: GDrive
And from pinmap.txt:
PC15 filament sensor
PA1 carriage hotend heater
PC13 carriage crtouch servo deploy ("IN")
PC14 carriage crtouch sense ("OUT")
PA0 carriage FAN1 heatbreak radiator
PC1 carriage FAN2 print cooling
PC5 carriage hotend thermistor
PB2 bed heater
PC4 bed thermistor
PA4 height SCK (HX711)
PC6 height DO
PA15 endstop Z (optional)
PA7 eeprom SDA (sot23-5 24C16F)
PA8 eeprom SCL
PD0 oscillator (8MHz)
PD1 oscillator
PA9 UART TX
PA10 UART RX
PC0 LED
PA2 display TX (IDC 3)
PA3 display RX (IDC 4)
PB0 display buzzer (IDC 6)
PB1 display encoder button (IDC 5)
PA11 display encoder (IDC 7)
PA12 display encoder (IDC 8)
PC3 stepstick enable
PB14 stepstick Z UART
PB13 stepstick Y UART
PB12 stepstick X UART
PB15 stepstick E UART (R89 not populated)
PB6 stepstick Z step
PB5 stepstick Z dir
PB8 stepstick Y step
PB7 stepstick Y dir
PC2 stepstick X step
PB9 stepstick X dir
PB4 stepstick E step
PB3 stepstick E dir
PA5 endstop X; stepstick E (others not tested) standby
PB10 stepstick X diag (stallguard)
PB11 stepstick Y diag (stallguard)
PA6 endstop Y
PD2 sdcard SDIO_CMD
PC12 sdcard SDIO_CK
PC11 sdcard SDIO_D3
PC10 sdcard SDIO_D2
PC9 sdcard SDIO_D1
PC8 sdcard SDIO_D0
PC7 sdcard inserted
Haven’t got enough time and motivation to prepare marlin config. Hopefully, it’ll fall into the right hands and push the thread forward.
Regards,
HorochovPL
Thanks for the valiant effort - you’re a legend!
Mikey
Just noticed that Creality released the Marlin firmware on github!
Wow! I will check out the config files tonight and make sure it’s all kosher.
If they’ve done it, I’ll give them a gold staf & an elephant stamp!
Seems someone has already released a modified version on github. Their changelog states:
- Max nozzle temp from 260°C to 300°C
- Max bed temp from 100°C to 110°C
- Increased Z homing speed
- Increased max speeds and accelerations
- Enabled Host Action Commands (OctoPrint)
Haven’t tested it. Would be nice if more features are added and/or updated to newest Marlin in the immediate future!
Might give that a try tomorrow, putting my V3SE back to being a standalone machine.
So this thread has inspired me to ‘root’ my new KE since it is currently torn down due to nozzle failure. I have found were the current over the air update image lives.
When you root into it your ssh’ing into a linux terminal, the version of linux being a very stripped down version called busy box for embedded systems. Any who’s I found a file 'fault_code_info.json and it includes every fault code that has been triggered by your printer. My printer has fault codes I did not even know occurred and others I am aware of. Interesting when it gives you a fault code and says ‘unknown’ error, that’s BS, it knows exactly what it is. Probably keeping it dumbed down for the average user.
/usr/data/creality/userdata/fault_code
Here is a snippet:
"time":1721529873,
"code":2401,
"error":500,
"msg":"Shutdown due to PR_ERR_CODE_Z_OFFSET_CALIBRATION: Ceramic pressure sensitive mistrigger..",
"value":"\"Shutdown due to PR_ERR_CODE_Z_OFFSET_CALIBRATION: Ceramic pressure sensitive mistrigger..\""
},
{
"time":1721100682,
"code":2095,
"error":800,
"msg":"Must home axis first: 0.000 0.000 -48.000 [5.000]",
"value":"\"Must home axis first: 0.000 0.000 -48.000 [5.000]\""
},
{
"time":1583064019,
"code":2003,
"error":801,
"msg":"Printer is not ready The klippy host software is attempting to connect. Please retry in a few moments.",
"value":""
Hmm, I spy in a file called system_config.json, there is the ‘hostname’ ‘theme’ even a ‘screensaver’ setting. What other good stuff can I find while 'root’ing around in here
I have found the entire print history that gives all the specs of every print you have ran. You can get the total time for each job in seconds and divide by 60 to get print job times. You could probably write a quick script to parse all the pertinent data into a more human readable format. But wait I think this is the same history that is shown in the web view or detail view in the slicer. Interesting…
AH Ha, found the magic file, the actual printer config file!
Ender3V3KE-95B8 /usr/data/printer_data/config [#] vi -R factory_printer.cfg
Here is something interesting as this is the same as the initial information as the GitHub file referenced in this thread and yet this is the factory config file. So Creality just jacked the TomasekJ file and used it as their own, well at first appearances that is what it seems…
# Ender-3V3KE^M
# Printer_size: 220x220x240^M
# Version: v1.2.4^M
# CreateDate: 2023/08/30^M
I believe the upper carrot and capital M are from formatting in a word processor or they are a Chinese character that cannot be properly displayed in a pure text editor such as VI.
Alright this has been most excellent fun, glad I finally got a chance to ‘Root’ around in my printer. I love Linux, Linux is awesome and so are you! Says the guy who loves linux but uses a Mac! I crack myself up
Good Night!
Lets do a quick comparison now that I have everything opened up.
Here is the GitHub TomasekJ file:
# Ender-3V3KE
# Printer_size: 220x220x240
# Version: v1.2.4
# CreateDate: 2023/08/30
# mcu: chip: GD32F303RET6
# version: CR4NS200323C10
[include sensorless.cfg]
[include gcode_macro.cfg]
[include printer_params.cfg]
[mcu]
serial:/dev/ttyS1
baud:230400
restart_method: command
[force_move]
enable_force_move: True
[mcu rpi]
serial: /tmp/klipper_host_mcu
[bl24c16f]
i2c_mcu: rpi
i2c_bus: i2c.2
i2c_speed: 400000
######################################################
[prtouch_v2]
pres_cnt: 1 #探点次数
pres0_clk_pins: PA4 #压力检测时钟引脚配置
pres0_sdo_pins: PC6 #压力检测数据引脚配置
step_swap_pin: PA15
pres_swap_pin: PA15
step_base:2
# show_msg: True
tri_min_hold: 1000
tri_max_hold: 1500 #压力检测信息展示
speed: 1
# tri_wave_ip: 172.22.30.204
#####################################################
[z_compensate]
tri_min_hold: 1400
tri_max_hold: 2000 #压力检测信息展示
tri_expand_mm = 0.13
# tri_min_hold: 3
speed: 5
hot_start_temp: 180#擦喷嘴是最小温度
hot_rub_temp: 200#擦喷嘴是最小温度
hot_end_temp: 140#擦喷嘴是最小温度
bed_add_temp: 60#调平时的热床温度
clr_noz_start_x: -3 #擦喷头区域的起始x坐标(默认在热床后方正中心位置)
clr_noz_start_y: 20 #擦喷头区域的起始y坐标
clr_noz_len_x: 3 #擦喷头区域的x方向的长度
clr_noz_len_y: 50 #擦喷头区域的y方向的长度
pa_clr_dis_mm_x = 0
pa_clr_dis_mm_y =30
# show_msg = True
bl_offset: 0,27
noz_pos_center: 20,25
noz_pos_offset: 3,7
pumpback_mm: 10
vs_start_z_pos: 3
pr_probe_cnt: 3
pr_clear_probe_cnt: 3
type_nozz = 0
[printer]
kinematics: cartesian
max_velocity: 500
max_accel: 8000
max_accel_to_decel: 2500
max_z_velocity: 30
square_corner_velocity: 5.0
max_z_accel: 300
[idle_timeout]
timeout: 99999999
[stepper_x]
step_pin: PC2
dir_pin: !PB9
enable_pin: !PC3
microsteps: 16
rotation_distance: 40
endstop_pin: !PA5
position_endstop: -13
position_min: -13
position_max: 220
homing_speed: 30
homing_retract_dist:0 #10
[tmc2208 stepper_x]
uart_pin:PB12
interpolate: True
run_current:0.75
sense_resistor: 0.150
stealthchop_threshold: 0
[stepper_y]
step_pin: PB8
dir_pin: PB7
enable_pin: !PC3
microsteps: 16
rotation_distance: 60
endstop_pin: !PA6
position_endstop: -20
position_min: -20
position_max: 225
homing_speed: 30
homing_retract_dist:0
[tmc2208 stepper_y]
uart_pin:PB13
interpolate: True
run_current:0.8
sense_resistor: 0.150
stealthchop_threshold: 0
[stepper_z]
step_pin: PB6
dir_pin: !PB5
enable_pin: !PC3
microsteps: 16
rotation_distance:8
endstop_pin:probe:z_virtual_endstop#PA15 #probe:z_virtual_endstop
position_max: 245
position_min: -5
[tmc2208 stepper_z]
uart_pin: PB14
interpolate: True
run_current: 0.8
stealthchop_threshold: 0
sense_resistor: 0.150
[bltouch]
sensor_pin:PC14
control_pin: PC13
x_offset: 0
y_offset: 27
z_offset: 0
probe_with_touch_mode: true
stow_on_each_sample: false
speed:5
lift_speed:20
[filament_switch_sensor filament_sensor]
switch_pin: !PC15
pause_on_runout: true
[output_pin MainBoardFan]
pin: !PB1
[extruder]
max_extrude_only_distance:1000
max_extrude_cross_section:80
pressure_advance = 0.036
step_pin: PB4
dir_pin: PB3
enable_pin: !PC3
microsteps: 16
rotation_distance: 7.53
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PA1
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PC5
control = pid
pid_Kp=20.584
pid_Ki=1.737
pid_Kd=60.981
min_temp: 0
max_temp: 320 # Set to 300 for S1 Pro
[heater_bed]
heater_pin: PB2
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PC4
control = pid
pid_kp = 70.652
pid_ki = 1.798
pid_kd = 694.157
min_temp: 0
max_temp: 120 #
temp_offset_flag = True
[verify_heater extruder]
[verify_heater heater_bed]
check_gain_time: 120
heating_gain: 1.0
hysteresis: 10
[temperature_sensor mcu_temp]
sensor_type: temperature_mcu
min_temp: 0
max_temp: 100
[output_pin fan0]
pin:PA0
pwm: True
cycle_time: 0.0100
hardware_pwm: false
value: 0.00
scale: 255
shutdown_value: 0.0
[heater_fan nozzle_fan]
pin: PC1
max_power: 1.0
shutdown_speed: 0
cycle_time: 0.010
hardware_pwm: False
kick_start_time: 0.100
off_below: 0.0
heater: extruder
fan_speed: 1.0
heater_temp: 60.0
[bed_mesh]
speed: 350
mesh_min: 5,10 #need to handle head distance with bl_touch
mesh_max: 215,215 #max probe range
probe_count: 5,5
fade_start: 1
fade_end: 10
fade_target: 0
horizontal_move_z: 8
[input_shaper]
shaper_type_y = mzv
shaper_freq_y = 32.0
shaper_type_x = mzv
shaper_freq_x = 27.5
[mcu rpi]
serial: /tmp/klipper_host_mcu
[adxl345]
cs_pin: rpi:None
spi_speed: 2000000
spi_bus: spidev2.0
axes_map: z,y,x
[resonance_tester]
accel_chip: adxl345
accel_per_hz: 70
probe_points: 117.5,117.5,100
max_freq: 90
Here is my ‘factory file’ direct from my virgin Ender 3 KE I purchased about a month ago and have the updated V1.1.0.14 firmware image.
# Ender-3V3KE^M
# Printer_size: 220x220x240^M
# Version: v1.2.4^M
# CreateDate: 2023/08/30^M
# mcu: chip: GD32F303RET6^M
# version: CR4NS200323C10^M
[include sensorless.cfg]^M
[include gcode_macro.cfg]^M
[include printer_params.cfg]^M
[mcu]^M
serial:/dev/ttyS1^M
baud:230400^M
restart_method: command^M
^M
[force_move]^M
enable_force_move: True^M
^M
[mcu rpi]^M
serial: /tmp/klipper_host_mcu^M
^M
[bl24c16f]^M
i2c_mcu: rpi^M
i2c_bus: i2c.2^M
i2c_speed: 400000^M
^M
######################################################^M
[prtouch_v2]^M
pres_cnt: 1 #............^M
pres0_clk_pins: PA4 #..............................^M
pres0_sdo_pins: PC6 #..............................^M
step_swap_pin: PA15 ^M
pres_swap_pin: PA15^M
step_base:2^M
# show_msg: True^M
tri_min_hold: 1000 ^M
tri_max_hold: 1500 #........................^M
speed: 1^M
# tri_wave_ip: 172.22.30.204^M
#####################################################
[z_compensate]^M
tri_min_hold: 1400 ^M
tri_max_hold: 2000 #........................^M
tri_expand_mm = 0.13^M
# tri_min_hold: 3^M
speed: 5^M
hot_start_temp: 180#........................^M
hot_rub_temp: 200#........................^M
hot_end_temp: 140#........................^M
bed_add_temp: 60#........................^M
clr_noz_start_x: -3 #........................x................................................^M
clr_noz_start_y: 20 #........................y......^M
clr_noz_len_x: 3 #..................x...............^M
clr_noz_len_y: 50 #..................y...............^M
pa_clr_dis_mm_x = 0^M
pa_clr_dis_mm_y =30^M
# show_msg = True^M
bl_offset: 0,27^M
noz_pos_center: 20,25^M
noz_pos_offset: 3,7^M
pumpback_mm: 10^M
vs_start_z_pos: 3^M
pr_probe_cnt: 3^M
pr_clear_probe_cnt: 3^M
type_nozz = 0^M
^M
^M
[printer]^M
kinematics: cartesian^M
max_velocity: 500^M
max_accel: 8000^M
max_accel_to_decel: 2500^M
max_z_velocity: 30^M
square_corner_velocity: 5.0^M
max_z_accel: 300^M
^M
[idle_timeout]^M
timeout: 99999999^M
^M
[stepper_x]^M
step_pin: PC2^M
dir_pin: !PB9^M
enable_pin: !PC3^M
microsteps: 16^M
rotation_distance: 40^M
endstop_pin: !PA5^M
position_endstop: -13^M
position_min: -13^M
position_max: 220^M
homing_speed: 30^M
homing_retract_dist:0 #10^M
^M
[tmc2208 stepper_x]^M
uart_pin:PB12^M
interpolate: True^M
run_current:0.75^M
sense_resistor: 0.150^M
stealthchop_threshold: 0^M
^M
^M
[stepper_y]^M
step_pin: PB8^M
dir_pin: PB7^M
enable_pin: !PC3^M
microsteps: 16^M
rotation_distance: 60^M
endstop_pin: !PA6^M
position_endstop: -20^M
position_min: -20^M
position_max: 225^M
homing_speed: 30^M
homing_retract_dist:0^M
[tmc2208 stepper_y]^M
uart_pin:PB13^M
interpolate: True^M
run_current:0.8^M
sense_resistor: 0.150^M
stealthchop_threshold: 0^M
^M
[stepper_z]^M
step_pin: PB6^M
dir_pin: !PB5^M
enable_pin: !PC3^M
microsteps: 16^M
rotation_distance:8^M
endstop_pin:probe:z_virtual_endstop#PA15 #probe:z_virtual_endstop^M
position_max: 245^M
position_min: -5^M
^M
[tmc2208 stepper_z]^M
uart_pin: PB14^M
interpolate: True^M
run_current: 0.8^M
stealthchop_threshold: 0^M
sense_resistor: 0.150^M
^M
^M
[bltouch]^M
sensor_pin:PC14^M
control_pin: PC13^M
x_offset: 0^M
y_offset: 27^M
z_offset: 0^M
probe_with_touch_mode: true^M
stow_on_each_sample: false^M
speed:5^M
lift_speed:20^M
^M
^M
[filament_switch_sensor filament_sensor]^M
switch_pin: !PC15^M
pause_on_runout: true^M
^M
[output_pin MainBoardFan]^M
pin: !PB1^M
^M
[extruder]^M
max_extrude_only_distance:1000^M
max_extrude_cross_section:80^M
pressure_advance = 0.036^M
step_pin: PB4^M
dir_pin: PB3^M
enable_pin: !PC3^M
microsteps: 16^M
rotation_distance: 7.53^M
nozzle_diameter: 0.400^M
filament_diameter: 1.750^M
heater_pin: PA1^M
sensor_type: EPCOS 100K B57560G104F^M
sensor_pin: PC5^M
control = pid^M
pid_Kp=20.584 ^M
pid_Ki=1.737 ^M
pid_Kd=60.981^M
min_temp: 0^M
max_temp: 320 # Set to 300 for S1 Pro^M
^M
^M
[heater_bed]^M
heater_pin: PB2^M
sensor_type: EPCOS 100K B57560G104F ^M
sensor_pin: PC4^M
control = pid^M
pid_kp = 70.652^M
pid_ki = 1.798^M
pid_kd = 694.157^M
min_temp: 0^M
max_temp: 120 # ^M
temp_offset_flag = True^M
[verify_heater extruder]^M
[verify_heater heater_bed]^M
check_gain_time: 120^M
heating_gain: 1.0^M
hysteresis: 10^M
^M
[temperature_sensor mcu_temp]^M
sensor_type: temperature_mcu^M
min_temp: 0^M
max_temp: 100^M
^M
[output_pin fan0]^M
pin:PA0^M
pwm: True^M
cycle_time: 0.0100^M
hardware_pwm: false^M
value: 0.00^M
scale: 255^M
shutdown_value: 0.0^M
^M
[heater_fan nozzle_fan]^M
pin: PC1^M
max_power: 1.0^M
shutdown_speed: 0^M
cycle_time: 0.010^M
hardware_pwm: False^M
kick_start_time: 0.100^M
off_below: 0.0^M
heater: extruder^M
fan_speed: 1.0^M
heater_temp: 60.0^M
^M
^M
[bed_mesh]^M
speed: 350^M
mesh_min: 5,10 #need to handle head distance with bl_touch^M
mesh_max: 215,215 #max probe range^M
probe_count: 5,5^M
fade_start: 1^M
fade_end: 10^M
fade_target: 0^M
horizontal_move_z: 8^M
[input_shaper]^M
shaper_type_y = mzv^M
shaper_freq_y = 32.0^M
^M
shaper_type_x = mzv^M
shaper_freq_x = 27.5^M
^M
[mcu rpi]^M
serial: /tmp/klipper_host_mcu^M
^M
[adxl345]^M
cs_pin: rpi:None^M
spi_speed: 2000000^M
spi_bus: spidev2.0^M
axes_map: z,y,x^M
^M
[resonance_tester]^M
accel_chip: adxl345^M
accel_per_hz: 70^M
probe_points: 117.5,117.5,100^M
max_freq: 90^M
Now I am going to bed, hopefully this is relevant and I haven’t wasted anyones time…
Also, the carrot capital M combo is from them editing the file in Windows and uploading to Linux. That is a carriage return symbol that is an artifact from DOS that Linux/Unix does not interpret correctly. It doesn’t affect the functionality of the file at all. I will do some clean up on it tomorrow evening.