Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUG] LCD Display just blank with backlight on, on Ender 2 Pro #61

Closed
1 task done
jam-berg opened this issue May 9, 2024 · 4 comments
Closed
1 task done

[BUG] LCD Display just blank with backlight on, on Ender 2 Pro #61

jam-berg opened this issue May 9, 2024 · 4 comments

Comments

@jam-berg
Copy link

jam-berg commented May 9, 2024

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

Yes, and the problem still exists.

Bug Description

The Build works fine for the HC32F460 Chip in Upstream with the corresponding board for the Ender 2 Pro. Serial Communication also works as far as I was able to test it.
However after flashing the screen is just blank. Reflashing to the Stock firmware makes it work again.
The Serial communication also prints out the correct build I built from Marlin.

I also noticed that the M100 - Free Memory gcode command is not implemented.
Is the LCD Screen already implemented for the HC32F460?
I tried multiple configurations, including the default config from marlin for my board and the official from creality in their repository for this CPU https://github.com/CrealityOfficial/Ender-2-Pro/tree/MCU_HDSC

Is there anything further I can test or help with?

Bug Timeline

new since HC32F460 support was recently added

Expected behavior

I expect, that after starting the printer, the LCD shows the splash screen and then shows the infoscreen.

Actual behavior

It starts, turns the LCD Backlight on, but no image.

Steps to Reproduce

  1. Change Config of Motherboard to BOARD_CREALITY_ENDER2P_V24S4
  2. Compile
  3. Flash with binary in "Factory" Folder with unique name
  4. Power on printer an wait for several minutes
  5. reboot when SD Card is removed

Version of Marlin Firmware

bugfix-2.1.x

Printer model

Ender 2 Pro

Electronics

BOARD_CREALITY_ENDER2P_V24S4, HC32F460KCTA

LCD/Controller

stock, probably CR-10

Other add-ons

No response

Bed Leveling

None

Your Slicer

None

Host Software

None

Don't forget to include

  • A ZIP file containing your Configuration.h and Configuration_adv.h.

Additional information & file uploads

No response

@jam-berg
Copy link
Author

jam-berg commented May 9, 2024

BoardEnder2Pro
This is an image of the board, if it helps. The rainbow cable is for the LCD.

@jam-berg
Copy link
Author

jam-berg commented May 9, 2024

Managed to solve it. I changed the content of the hc32f4/pins_CREALITY_ENDER2P_V24S4.h file to the following:

/**

  • CREALITY v4.2.7 (STM32F103) board pin assignments
    */
    #define RET6_12864_LCD
    #if defined(CR10_STOCKDISPLAY) && !defined RET6_12864_LCD &&
    !definedVET6_12864_LCD
    #error
    "Define RET6_12864_LCD or VET6_12864_LCD to select pins for CR10_STOCKDISPLAY with the Creality V4 controller."
    #endif

#if HOTENDS > 1 || E_STEPPERS > 1
#error
"Creality V4 only supports one hotend / E-stepper. Comment out this line to continue."
#endif

#define BOARD_INFO_NAME "Creality v2.4.S4"
#define DEFAULT_MACHINE_NAME "Creality3D"

#define BOARD_NO_NATIVE_USB
/* LED0 Port/Pin definition /
#define LED0 PC3 // TEST
/

  • SPI3 Pins
    */
    #define SPI_NSS PB15 // SPI3_NSS
    #define SPI_SCK PB14 // SPI3_CLK
    #define SPI_MISO PB13 // SPI3_MISO
    #define SPI_MOSI PB12 // SPI3_MOSI

/*

  • SDIO Pins
    */
    #define BOARD_SDIO_D0 PC8
    #define BOARD_SDIO_D1 PC9
    #define BOARD_SDIO_D2 PC10
    #define BOARD_SDIO_D3 PC11
    #define BOARD_SDIO_CLK PC12
    #define BOARD_SDIO_CMD PD2
    #define BOARD_SDIO_DET PA10

// USARTS

#define BOARD_USART2_TX_PIN PA8 // USB
#define BOARD_USART2_RX_PIN PA7

#define BOARD_USART1_TX_PIN PA2 // LCD
#define BOARD_USART1_RX_PIN PA3

// Onboard crystal oscillator
//
#ifndef BOARD_XTAL_FREQUENCY
#define BOARD_XTAL_FREQUENCY 8000000 // 8 MHz XTAL
#endif

//
// EEPROM
//
#define IIC_BL24CXX_EEPROM // EEPROM on I2C-0
// #define SDCARD_EEPROM_EMULATION

#ifdef IIC_BL24CXX_EEPROM
#define IIC_EEPROM_SDA PA12
#define IIC_EEPROM_SCL PA11
#define MARLIN_EEPROM_SIZE 0x800 // 2Kb (24C16)
#endif

//
// Servos
//
#ifndef SERVO0_PIN
#define SERVO0_PIN PB2 // BLTouch OUT PIN
#endif

//
// Limit Switches
//
#define X_STOP_PIN PA5
#define Y_STOP_PIN PA6
#define Z_STOP_PIN PB0
#define X_MAX_PIN PA4
#define Y_MAX_PIN -1
#define Z_MAX_PIN -1

#ifndef Z_MIN_PROBE_PIN
#define Z_MIN_PROBE_PIN PB1 // BLTouch IN
#endif

//
// Filament Runout Sensor
//
#ifndef FIL_RUNOUT_PIN
#define FIL_RUNOUT_PIN PC15 // "Pulled-high"
#endif

//
// Steppers
//
#define X_ENABLE_PIN PC2
#define X_STEP_PIN PC1
#define X_DIR_PIN PC0

#define Y_ENABLE_PIN PH2
#define Y_STEP_PIN PB9
#define Y_DIR_PIN PB8

#define Z_ENABLE_PIN PB7
#define Z_STEP_PIN PB6
#define Z_DIR_PIN PB5

#define E0_ENABLE_PIN PB4
#define E0_STEP_PIN PB3
#define E0_DIR_PIN PA15

//
// Temperature Sensors
//
#define TEMP_0_PIN PC5 // HEATER1 ADC1_IN15
#define TEMP_BED_PIN PC4 // HOT BED ADC1_IN14
#define ADC_CHANNEL_COUNT 2u

//
// Heaters / Fans
//
#define HEATER_0_PIN PA1 // HEATER1
#define HEATER_BED_PIN PB10 // HOT BED

#ifndef FAN0_PIN
#define FAN0_PIN PA0 // FAN
#endif
#if PIN_EXISTS(FAN)
#define FAN_SOFT_PWM
#endif

//
// SD Card
//
#define SD_DETECT_PIN PA10
#define SDCARD_CONNECTION ONBOARD
#define ONBOARD_SPI_DEVICE 1
#define ONBOARD_SD_CS_PIN PC3 // SDSS
#define ONBOARD_SDIO
#define NO_SD_HOST_DRIVE // This board's SD is only seen by the printer

#if ENABLED(RET6_12864_LCD)

/* RET6 12864 LCD */
#define LCD_PINS_RS PB15 // SPI3_NSS
#define LCD_PINS_EN PB12 // SPI3_MOSI
#define LCD_PINS_D4 PB14 // SPI3_CLK

#define BTN_ENC PC7 // LCD_RST
#define BTN_EN1 PA2 // UART4-TX
#define BTN_EN2 PB13 // SPI MISO

#define BEEPER_PIN PC6 // LCD_ENC

#elif ENABLED(VET6_12864_LCD)

/* VET6 12864 LCD */
#define LCD_PINS_RS PA4
#define LCD_PINS_EN PA7
#define LCD_PINS_D4 PA5

#define BTN_ENC PC5
#define BTN_EN1 PB10
#define BTN_EN2 PA6

#elif ENABLED(DWIN_CREALITY_LCD)

// RET6 DWIN ENCODER LCD
#define BTN_ENC PB14
#define BTN_EN1 PB15
#define BTN_EN2 PB12

// #define LCD_LED_PIN PB2
#ifndef BEEPER_PIN
#define BEEPER_PIN PB13
#undef SPEAKER
#endif

#elif ENABLED(DWIN_VET6_CREALITY_LCD)

// VET6 DWIN ENCODER LCD
#define BTN_ENC PA6
#define BTN_EN1 PA7
#define BTN_EN2 PA4

#define BEEPER_PIN PA5

#endif

I currently don't have time to find out what was wrong to modify the pins file in the repository. Maybe I will find time at some point, or you have time to do it?

@jam-berg
Copy link
Author

jam-berg commented May 9, 2024

Fixed and created a pull request on the main repo. LCD_PINS_RS was not defined

@jam-berg jam-berg closed this as completed May 9, 2024
@shadow578
Copy link
Owner

Hi there,

seems like i'm a bit late to this issue :).

as you've already found out the CR10 display (or whatever it's actually called) is indeed supported on HC32, so the most likely cause of the issue is (as you've also already found) that the pins are defined incorrectly.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants