MarlinFirmware / Marlin

Marlin is an optimized firmware for RepRap 3D printers based on the Arduino platform. Many commercial 3D printers come with Marlin installed. Check with your vendor if you need source code for your specific machine.
https://marlinfw.org
GNU General Public License v3.0
16.23k stars 19.22k forks source link

Ender 3 v1 with 4.2.7 board #19029

Closed youssefelhirech closed 4 years ago

youssefelhirech commented 4 years ago

I received a creality 4.2.7 motherboard instead of a 1.1.5, but I cannot update marlin 2.0.6. When I use the Ender 3 Pro 1.5 / Ender 3 v2 configs files, the axes do not work. And it is impossible to make a home, I have the error "Homing failed" ... I tried several times to build new firmware, but still not working...

Board Creality v4.2.7

image

image

I have no problem with this firmware: https://mega.nz/file/rNdh2ADZ#DTeOwwJ9YI7EPeQVcyvRzh_EUBuP3T8qa7RcXB8yxqc

image

GijsvanDulmen commented 4 years ago

I also received the 4.2.7 after ordering a 1.1.5 silent motherboard. The firmware which was on the device when it got delivered had the same "homing failed" error. I did hear a sound when it started but no moving stepper motors. I installed the same firmware as mentioned by @badouuuuuu above and got it to work (showed 0.0.6 version marlin as well).

I'm not flashing it with marlin just yet until I know what configuration I exactly need :-)

youssefelhirech commented 4 years ago

Go to for the issue : https://github.com/MarlinFirmware/Marlin/issues/19015

ellensp commented 4 years ago

Try this config. its a standard Ender 3 V1 modified for BOARD_CREALITY_V4 and TMC2208_STANDALONE drivers. Config.zip

Make sure default_envs = STM32F103RET6_creality in platformio.ini

NB config is for bugfix

Deimos85 commented 4 years ago

Hi, i got also the new board for my Ender 3 Pro an get the same error. Can you please describe how to bring the firmware and the config on my printer? Is there a tutorial for this?

This would be greate! Thank you!

youssefelhirech commented 4 years ago

Try this config. its a standard Ender 3 V1 modified for BOARD_CREALITY_V4 and TMC2208_STANDALONE drivers. Config.zip

Make sure default_envs = STM32F103RET6_creality in platformio.ini

NB config is for bugfix

@ellensp It's the same, still got "Homing failed" & no axes moves. Built with Marlin-bugfix-2.0.x

Hi, i got also the new board for my Ender 3 Pro an get the same error. Can you please describe how to bring the firmware and the config on my printer? Is there a tutorial for this?

This would be greate! Thank you!

@Deimos85 Put this files in the the root of your sdcard, and boot on your printer.

ellensp commented 4 years ago

Can you connect pronterface? do some testing Output of M119? for eg? what does M115 say? (confirming you actulay updated the firmware) Also try some basic movement tests. Ie try and move each axis 10 positive then 10 mm -ve Do they move at all, do they move in correct direction.?? (you didn't say how you tested moving...)

Can you confirm the main chip number stm32f103 something..

youssefelhirech commented 4 years ago

I tested with LCD Menu Motion > Moves Axis moves When i moves axis in LCD Menu, i hear a micro noise and nothing move at all, tried with 10mm, 1mm, 0.1mm. With pronterface, nothing happens when i moved each one (check video below)

https://youtu.be/AYhkWQw7UpQ

Chip STM32F103

image

M119

Reporting endstop status
x_min: TRIGGERED
y_min: open
z_min: open

M115

FIRMWARE_NAME:Marlin bugfix-2.0.x (Aug 15 2020 15:10:38) SOURCE_CODE_URL:https://github.com/MarlinFirmware/Marlin PROTOCOL_VERSION:1.0 MACHINE_TYPE:Ender-3 EXTRUDER_COUNT:1 UUID:cede2a2f-41a2-4748-9b12-c55c62f367ff
Cap:SERIAL_XON_XOFF:0
Cap:BINARY_FILE_TRANSFER:0
Cap:EEPROM:1
Cap:VOLUMETRIC:1
Cap:AUTOREPORT_TEMP:1
Cap:PROGRESS:0
Cap:PRINT_JOB:1
Cap:AUTOLEVEL:0
Cap:RUNOUT:0
Cap:Z_PROBE:0
Cap:LEVELING_DATA:0
Cap:BUILD_PERCENT:0
Cap:SOFTWARE_POWER:0
Cap:TOGGLE_LIGHTS:0
Cap:CASE_LIGHT_BRIGHTNESS:0
Cap:EMERGENCY_PARSER:0
Cap:PROMPT_SUPPORT:0
Cap:SDCARD:1
Cap:AUTOREPORT_SD_STATUS:0
Cap:LONG_FILENAME:0
Cap:THERMAL_PROTECTION:1
Cap:MOTION_MODES:0
Cap:ARCS:1
Cap:BABYSTEPPING:1
Cap:CHAMBER_TEMPERATURE:0

Homing Failed error :

echo:busy: processing
echo:busy: processing
echo:busy: processing
echo:busy: processing
echo:busy: processing
echo:busy: processing
echo:busy: processing
echo:busy: processing
echo:busy: processing
Error:Printer halted. kill() called!
[ERROR] Error:Printer halted. kill() called!
ellensp commented 4 years ago

Well your definitely installing firmware without issues.
Same MPU as expected.

I was just watching a old 3DMN video of Ender 3 v2 and the motherboard was V4.2.2 https://youtu.be/QFYegSEeGcE?t=1041

I'm wondering if they have change the pins on us

With the working firmware if you do a M43 does it provide an output (I would be very surprised if it did as that would make things easy!)

youssefelhirech commented 4 years ago

@ellensp echo:Unknown command: "M43" What can I do if the pins have been changed? I am curious to learn or want to help, if you know any technical tips to fix board issues

ellensp commented 4 years ago

Before you start

I would look under the board as pins may be labeled on the underside.

Someone need to make a new pin mapping. setup a spreadsheet with 64 rows. these are all the pins. you have You can grab this pins names from table 5 column LQFP64 in https://www.st.com/resource/en/datasheet/stm32f103re.pdf We can ignore any pins that aren't IO pins. I would add a second column that is the pin fuction on a Crealty 4 from https://github.com/MarlinFirmware/Marlin/blob/bugfix-2.0.x/Marlin/src/pins/stm32f1/pins_CREALITY_V4.h and the 3rd would be this board.

we know the screen works and and the encoder. so we can fill in those pins from the Crealty 4 column to your board column.
we know that serial 1 works as you using it to talk to pronterface so thats the same as Crealty 4

So check other basic functionality Does the board show room-ish temperature on lcd? if so then those thermistor pins as same as Crealty 4

Since you can upload and talk to the board that is a plus

You can enable pins_debugging and with that you can use gcode M43 T This lets you set a pin a toggling and watch for the pin to change on a meter or scope.

Just is be careful doing this, if you turn on a hot end, you may not notice till you burn yourself.

jamespowell3 commented 4 years ago

I'm having the same issue. Ender 3 pro with 4.2.7 board. I did notice the INVERT_X_DIR, INVERT_Y_DIR, INVERT_Z_DIR, INVERT_E0_DIR in the ender 3 pro 1.5 config are opposite from the standard ender 3 prod config. I tried inverting them but still no motor movement.

thisiskeithb commented 4 years ago

It'd be nice if Creality actually followed the GPL and released their 32-bit firmware instead of posting pre-compiled bins on their website.

I'm surprised they are still doing this despite all the backlash they received when they pulled this a while ago.

youssefelhirech commented 4 years ago

@thisiskeithb Check here : https://www.creality.com/download/32 They're some new source code for v2 & Bin from 14 august

@ellensp I understand what you say, thank you, but I think I am missing some basic for mapping, so I leave that for an expert

I used the "new" Ender-3 32bit_Marlin2.0.1 - V1.0.1-TMC2208_Latest Firmware0814.rar from the creality.com and still not working, we got the same Home Failed Printer Halted.....

sjasonsmith commented 4 years ago

@badouuuuuu none of those files seem to have source code in them for the 32-bit board. If you found it somewhere please provide a direct link.

ellensp commented 4 years ago

what we know so far... https://docs.google.com/spreadsheets/d/1DYhh9fwLnvZzuNvMoBen9Dl68KN-4TWkbO94lJ4iwe4/edit?usp=sharing

ellensp commented 4 years ago

If someone with this board could make a high res scan of both sides of this board (as high res as you can do) that might be useful. Flat bed scanners are often good for this.

youssefelhirech commented 4 years ago

@sjasonsmith it's only source code from v2 32 bits, so the 4.2.2, my bad

@ellensp https://drive.google.com/drive/folders/1YluaMIV9-2FMR61OT8Ohzdmpn-4rUckn?usp=sharing Someone kindly took these pictures, I don't know if the quality is enough ? A bit blurry, but it didn't seem to work with the flat scanner

chasetb commented 4 years ago

Just found this thread. @ellensp Here are some photos of the board I received last week (though it's labeled as the Ender 3 Pro): https://drive.google.com/drive/folders/17jgYn8ZcDWk9XEm4wCCCQPzByd1ytRZd?usp=sharing

aylahdri commented 4 years ago

20200818_105910 20200818_105832

ellensp commented 4 years ago

I thought it might be just the stepper enable pin (since it is shared on all axis) but images and comparing disassembly from current marlin and the bin that works...seems to imply they are the same pins.. (cant be 100% sure though not all traces are visible and its hard going trough the assembly code... (only 76,000 lines))

Flawioo commented 4 years ago

⁹Just for you know, Creality have posted some instructions that I've executed but no success here: https://www.creality.com/blog-detail/ender-3-motherboard-change-notification. I have sent a email to cs@creality.com to get some info.

ellensp commented 4 years ago

Just been disassembling the code around X-Step and X-Dir pins. They seem to be swapped from the 4.2.2 Can someone test this for me? make sure i'm not chasing ghosts? Use this Config Ender 3 V1 modified for BOARD_CREALITY_V4 and TMC2208_STANDALONE drivers.zip But edit Marlin/src/pins/stm32f1/pins_CREALITY_V4.h Change

define X_STEP_PIN PB9

define X_DIR_PIN PC2

Y step and dir also seem swapped. so change

define Y_STEP_PIN PB7

define Y_DIR_PIN PB8

Compile and upload. Then try some simple X and Y moves.

chasetb commented 4 years ago

FWIW, I complained to Creality and asked for a backup copy of the firmware for this board. What they sent indicates that the stepper drivers are TMC2225. This is in contrast to the TMC2208 stepper drivers listed in their latest firmware on creality.com.

ellensp commented 4 years ago

@chasetb the working firmware I've been disassembling linked by badouuuuuu https://mega.nz/file/rNdh2ADZ#DTeOwwJ9YI7EPeQVcyvRzh_EUBuP3T8qa7RcXB8yxqc is called "Ender-3- Marlin2.0.1 - V0.0.6 - TMC2225.bin" also implying a TMC2225

chasetb commented 4 years ago

@ellensp Perfect. There is likely not much difference then but I updated my previous Google Drive link with the stock firmware I was sent. That link again is: https://drive.google.com/drive/folders/17jgYn8ZcDWk9XEm4wCCCQPzByd1ytRZd?usp=sharing

youssefelhirech commented 4 years ago

@ellensp It's working ! But steppers reversed, so I disabled:

#define INVERT_X_DIR false
#define INVERT_Y_DIR false 

And axies X & Y are ok !

Also work for the Z & E (inversed)

#define Z_STEP_PIN                         PB5
#define Z_DIR_PIN                          PB6

#define E0_STEP_PIN                         PB3
#define E0_DIR_PIN                          PB4

#define INVERT_Z_DIR true

Zip test : Marlin-2.0.x-test-final.zip (Just copy in to marlin folder and overwrite files and build)

Edit : Extruder is ok when you print by changing pins, but inversed, how change ?

youssefelhirech commented 4 years ago

Finally, everything is ok !

For the extruder reversed i've disabled

#define INVERT_E0_DIR false

Working 4.2.7 : Marlin-2.0.x-test-final.zip

ellensp commented 4 years ago

Nice, yes I confirmed all axis had step and direction lines swapped, but didn't get to updating the comment.

ellensp commented 4 years ago

ok ill work on a PR for the new pins.. Are the stepper plugs keyed? ie can only go in one way? as that is what sets the need to invert or not...

youssefelhirech commented 4 years ago

Nice, yes I confirmed all axis had step and direction lines swapped, but didn't get to updating the comment.

youssefelhirech commented 4 years ago

ok ill work on a PR for the new pins.. Are the stepper plugs keyed? ie can only go in one way? as that is what sets the need to invert or not...

I'm starting a calibration cube and check if everything is fine

Sorry for the mistake***

youssefelhirech commented 4 years ago

Are the stepper plugs keyed? ie can only go in one way? as that is what sets the need to invert or not...

For the extruder, i can go in negative, and XYZ are locked

ellensp commented 4 years ago

PR submitted, I've asked @thisiskeithb if he wants to make an official Ender 3 V1 with V4.2.7 controller example config, from the information provided here. (as he seems to like doing that sort of thing)

youssefelhirech commented 4 years ago

@ellensp Thanks a lot for your help !

About the BLTouch is not responding by default, i'm talking with someone, he's trying, i'll back to you

Flawioo commented 4 years ago

Hi! I've tested the configs Marlin-2.0.x-test-final.zip that @badouuuuuu said above and it worked (thanks all). I've enabled BLTouch but it didn't work. It power on, the lights are ok and the inicial self test after power on the printer seems ok but no command responses.

eduardoluism commented 4 years ago

Hi! I've tested the configs Marlin-2.0.x-test-final.zip that @badouuuuuu said above and it worked (thanks all). I've enabled BLTouch but it didn't work. It power on, the lights are ok and the inicial self test after power on the printer seems ok but no command responses.

files @badouuuuuu sent does not have BLTOUCH enabled, check for BLTOUCH in Configuration.h, build and test again.

Flawioo commented 4 years ago

Hi! I've tested the configs Marlin-2.0.x-test-final.zip that @badouuuuuu said above and it worked (thanks all). I've enabled BLTouch but it didn't work. It power on, the lights are ok and the inicial self test after power on the printer seems ok but no command responses.

files @badouuuuuu sent does not have BLTOUCH enabled, check for BLTOUCH in Configuration.h, build and test again.

Sorry my friend, I forgot to inform that I've enabled the configs that BLTOUCH needs though.

fe4162 commented 4 years ago

good friends could someone be so kind to make a little video or explain how to install the marlin for the 4.2.7 board, since I'm new and I don't understand much, thank you very much

ellensp commented 4 years ago

@fe4162, 'we' only got this mostly working yesterday. there are no documents or videos for this. Yet

ellensp commented 4 years ago

Guys with actual boards lets test the servo pin used to control the bltouch. Please do the following. Enable PINS_DEBUGGING in Configuration_adv.h Find In the file pins_CREALITY_V4.h the line "#define SERVO0_PIN PB0 // BLTouch OUT" and change PB0 to -1 disable BLTOUCH (any and bed leveling you have) Compile and upload

Firstly check with M43 that nothing in marlin is using PB0, so it free for us to play with. Stick a multi meter on the PB0 pin on dc volts.

Manually control the PB0 pin with M42 (this should be pin 16)

Eg M42 P16 S0; off (0v) M42 P16 S255; on (3.3v) M42 P16 S128; PWM 50% (1.65v approximately)

If this doesn't work, they may have change this pin also.

Also just to confirm, where are you plugging the 3 pin plug for the bltouch, as it goes into the 5 pin plug BL_T plug

ellensp commented 4 years ago

Also check your bltouch servo plug is wired correctly. needs to be gnd, Vcc, data, some apparently are not wired this way.

Scrubadubalicious commented 4 years ago

Thanks for the work you all have done chasing this down! I just got this same board last night and that is what led me here. I am new to modifying the config files, but I'd like to pitch in. @ellensp are your last comments to be done in the original board config files, or after implementing the rest of the work above? I have a BLTouch, so I can test that out too.

Flawioo commented 4 years ago

Guys with actual boards lets test the servo pin used to control the bltouch. Please do the following. Enable PINS_DEBUGGING in Configuration_adv.h Find In the file pins_CREALITY_V4.h the line "#define SERVO0_PIN PB0 // BLTouch OUT" and change PB0 to -1 disable BLTOUCH (any and bed leveling you have) Compile and upload

Firstly check with M43 that nothing in marlin is using PB0, so it free for us to play with. Stick a multi meter on the PB0 pin on dc volts.

Manually control the PB0 pin with M42 (this should be pin 16)

Eg M42 P16 S0; off (0v) M42 P16 S255; on (3.3v) M42 P16 S128; PWM 50% (1.65v approximately)

If this doesn't work, they may have change this pin also.

Also just to confirm, where are you plugging the 3 pin plug for the bltouch, as it goes into the 5 pin plug BL_T plug

Hi all! Following your tutorial I got as below: When: SENDING:M42 P16 S255 Result: G=GND V=5v IN=3.3v image

When: SENDING:M42 P16 S0 Result: G=GND V=5v IN=0v image

When: SENDING:M42 P16 S128 Result: G=GND V=5v IN=1.6v image

I made a test inverting the wires of the BLTouch connector and it have worked ok using the Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN as enabled and PROBE from BLTouch using the original pins of Z-home (i'm not sure if the name is correct ok? But is those 2 pins commonly used)

Now I'm a little confused about the name (written on the board) and how to get those 2 pins on the right side of BLTouch, pins named as G and OUT.

ellensp commented 4 years ago

@Flawioo Thanks, this shows the servo pin is correct and working. Bltouch has two cables, a 3 pin servo control and 2 pin trigger wire. Both cables must be plugged in the correct way around. The first cable is normally brown, red and yellow, this goes to G,V and IN. This second cable is normally black and white. Black is normally GND and goes on G, white is the signal and goes on OUT (bltouch out) The naming on that plug is from the point of view of the bltouch IN is data into the bltouch (and out of the controller) OUT is data out of the bltouch (and in to the controller)

ellensp commented 4 years ago

The PR has been merged. You can now select #define MOTHERBOARD BOARD_CREALITY_V427 Closing this issue.

mcunanan19 commented 4 years ago

What PIN should I use if I enable BL Touch?

ellensp commented 4 years ago

@mcunanan19 the Z_PROBE_PIN PB1 on the 5 pin bl_touch plug is the default.

mcunanan19 commented 4 years ago

@badouuuuuu

Thank you for the response.

mcunanan19 commented 4 years ago

What pin did you use on the board? I fixed mine by using the 3 pin in the default BL_T the G,V, IN. But I did not use the G, OUT pin. I use the old PIN in where the previous bltouch is connected. Then in the firmware, I still indicate SERVO0_PIN 27. It worked for me.

On Wed, Aug 26, 2020 at 10:52 AM link1107 notifications@github.com wrote:

I've also bought this board and now cant make bltouch 3.1 to work. Tried all possible fixes that i've found across the internet, but still no luck. Selftest - ok, red light - ok, but when autohoming by z axis - just goes down with the sensor being retracted...

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/MarlinFirmware/Marlin/issues/19029#issuecomment-680412561, or unsubscribe https://github.com/notifications/unsubscribe-auth/AK5BRMIBR4YNLUQC7SNVKZDSCRTEPANCNFSM4QACHLQA .

ellensp commented 4 years ago

@mcunanan19 thats PB11 and isn't in V4 or V427 pins file ... Where is this "old pin" you used. (Diagram please)