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.28k stars 19.24k forks source link

[BUG] (Rotary encoders error on ENDER 3 V2 and BTT E3 RRF) #22639

Closed krubbitt closed 3 years ago

krubbitt commented 3 years ago

Did you test the latest bugfix-2.0.x code?

Yes, and the problem still exists.

Bug Description

So i just bought a BTT E3 RRF board and i´m trying to make it work on my ender 3 v2 printer but seems like the software its not correctly made for the DWIN screen that it has. Looks like the option is there but is not working at compiling.

I made a lot of compiles each time i made a change and the change that gives me the error is when i place the #define DWIN_CREALITY_LCD Even in a new and unmodified Marlin code only changing the screen.

Bug Timeline

No response

Expected behavior

Compile without errors

Actual behavior

'ENCODER_PHASE_0' was not declared in this scope 'ENCODER_PHASE_3' was not declared in this scope 'ENCODER_PHASE_1' was not declared in this scope 'ENCODER_PHASE_1' was not declared in this scope 'ENCODER_PHASE_2' was not declared in this scope

Steps to Reproduce

use #define DWIN_CREALITY_LCD

Version of Marlin Firmware

bugfix 2.0.x

Printer model

ENDER 3 v2

Electronics

BigTreeTech

Add-ons

No response

Bed Leveling

UBL Bilinear mesh

Your Slicer

No response

Host Software

No response

Additional information & file uploads

Marlin.zip

ellensp commented 3 years ago

This Issue Queue is for Marlin bug reports and development-related issues, and we prefer not to handle user-support questions here. (As noted on this page.) For best results getting help with configuration and troubleshooting, please use the following resources:

After seeking help from the community, if the consensus points to a bug in Marlin, then you should post a bug report.

ellensp commented 3 years ago

This is not a bug, your trying to add a E3V2 lcd to a non supported controller. At best its a feature request

You need to add BTN_EN1, BTN_EN2 and BTN_ENC pin definitions

ellensp commented 3 years ago
/**
 *        Ender 3 V2 display                         BTT E3 RRF
 *                _____                                     _____
 *            5V | 1 2 | GND                            5V | 1 2 | GND
 *   (BTN_E1) A  | 3 4 | B (BTN_E2)         (BTN_EN1) PE11 | 3 4 | PB1 (BTN_E2)
 *          BEEP | 5 6   ENT (BTN_ENC)       (BEEPER) PE10 | 5 6   PB2 (BTN_ENC) (needs testing, is boot1)
 *      (RX1) TX | 7 8 | RX (TX1)                    RESET | 7 8 | PE7
 *            NC | 9 10| NC                            PE9 | 9 10| PE8 
 *                -----                                     -----
 *                EXP1                                      EXP1
 */

As you can see you cannot just plug this LCD into this controller, it needs a special cable to break out the RX1 and TX1 lines to a serial port. The TFT port would be the obvious choice.

Add

define BTN_ENC PB2

define BTN_EN1 PE11

define BTN_EN2 PB1

define BEEPER_PIN PE10

ellensp commented 3 years ago

You also need to add #define ENCODER_5X_STEPS_PER_SEC 15 to your Configuration_adv.h above #define ENCODER_10X_STEPS_PER_SEC 30 // (steps/s) Encoder rate for 10x speed

github-actions[bot] commented 3 years ago

This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.