Browse Source

Lerdge K EEPROM and TFT (#21812)

Co-authored-by: Scott Lahteine <github@thinkyhead.com>
vanilla_fb_2.0.x
sanek88lbl 3 years ago
committed by Scott Lahteine
parent
commit
06e965e29c
  1. 1
      .github/workflows/test-builds.yml
  2. 10
      Marlin/src/HAL/shared/eeprom_if_i2c.cpp
  3. 4
      Marlin/src/lcd/tft_io/st7796s.h
  4. 62
      Marlin/src/pins/stm32f4/pins_LERDGE_K.h
  5. 18
      buildroot/tests/LERDGEK
  6. 1
      ini/features.ini
  7. 3
      ini/stm32f4.ini

1
.github/workflows/test-builds.yml

@ -80,6 +80,7 @@ jobs:
- mks_robin_pro - mks_robin_pro
- STM32F103RET6_creality - STM32F103RET6_creality
- LERDGEX - LERDGEX
- LERDGEK
- mks_robin_nano35 - mks_robin_nano35
# Put lengthy tests last # Put lengthy tests last

10
Marlin/src/HAL/shared/eeprom_if_i2c.cpp

@ -30,11 +30,17 @@
#if ENABLED(I2C_EEPROM) #if ENABLED(I2C_EEPROM)
#include "eeprom_if.h" #include "eeprom_if.h"
#include <Wire.h>
#if ENABLED(SOFT_I2C_EEPROM)
#include <SlowSoftWire.h>
SlowSoftWire Wire = SlowSoftWire(I2C_SDA_PIN, I2C_SCL_PIN, true);
#else
#include <Wire.h>
#endif
void eeprom_init() { void eeprom_init() {
Wire.begin( Wire.begin(
#if PINS_EXIST(I2C_SCL, I2C_SDA) #if PINS_EXIST(I2C_SCL, I2C_SDA) && DISABLED(SOFT_I2C_EEPROM)
uint8_t(I2C_SDA_PIN), uint8_t(I2C_SCL_PIN) uint8_t(I2C_SDA_PIN), uint8_t(I2C_SCL_PIN)
#endif #endif
); );

4
Marlin/src/lcd/tft_io/st7796s.h

@ -154,6 +154,9 @@ static const uint16_t st7796s_init[] = {
static const uint16_t lerdge_st7796s_init[] = { static const uint16_t lerdge_st7796s_init[] = {
DATASIZE_8BIT, DATASIZE_8BIT,
ESC_REG(ST7796S_SWRESET), ESC_DELAY(100),
ESC_REG(ST7796S_SLPOUT), ESC_DELAY(20),
ESC_REG(ST7796S_CSCON), 0x00C3, // enable command 2 part I ESC_REG(ST7796S_CSCON), 0x00C3, // enable command 2 part I
ESC_REG(ST7796S_CSCON), 0x0096, // enable command 2 part II ESC_REG(ST7796S_CSCON), 0x0096, // enable command 2 part II
@ -165,7 +168,6 @@ static const uint16_t lerdge_st7796s_init[] = {
ESC_REG(ST7796S_PWR2), 0x0015, ESC_REG(ST7796S_PWR2), 0x0015,
ESC_REG(ST7796S_PWR3), 0x00AF, ESC_REG(ST7796S_PWR3), 0x00AF,
ESC_REG(0xC3), 0x0009, // Register not documented in datasheet
ESC_REG(ST7796S_VCMPCTL), 0x0022, ESC_REG(ST7796S_VCMPCTL), 0x0022,
ESC_REG(ST7796S_VCMOST), 0x0000, ESC_REG(ST7796S_VCMOST), 0x0000,
ESC_REG(ST7796S_DOCA), 0x0040, 0x008A, 0x0000, 0x0000, 0x0029, 0x0019, 0x00A5, 0x0033, ESC_REG(ST7796S_DOCA), 0x0040, 0x008A, 0x0000, 0x0000, 0x0029, 0x0019, 0x00A5, 0x0033,

62
Marlin/src/pins/stm32f4/pins_LERDGE_K.h

@ -28,7 +28,14 @@
#define BOARD_INFO_NAME "Lerdge K" #define BOARD_INFO_NAME "Lerdge K"
#define DEFAULT_MACHINE_NAME "LERDGE" #define DEFAULT_MACHINE_NAME "LERDGE"
#define I2C_EEPROM // EEPROM
#if NO_EEPROM_SELECTED
#define I2C_EEPROM
#define SOFT_I2C_EEPROM // Force the use of Software I2C
#define I2C_SCL_PIN PG14
#define I2C_SDA_PIN PG13
#define MARLIN_EEPROM_SIZE 0x10000
#endif
// USB Flash Drive support // USB Flash Drive support
#define HAS_OTG_USB_HOST_SUPPORT #define HAS_OTG_USB_HOST_SUPPORT
@ -36,7 +43,7 @@
// //
// Servos // Servos
// //
//#define SERVO0_PIN PB11 #define SERVO0_PIN PB11
// //
// Limit Switches // Limit Switches
@ -96,6 +103,13 @@
// #define E1_CS_PIN PE4 // #define E1_CS_PIN PE4
//#endif //#endif
//#define E2_STEP_PIN PF4 // best guess
//#define E2_DIR_PIN PF3 // best guess
//#define E2_ENABLE_PIN PF5 // best guess
//#ifndef E2_CS_PIN
// #define E2_CS_PIN PB2 // best guess
//#endif
#if HAS_TMC_UART #if HAS_TMC_UART
/** /**
* TMC2208/TMC2209 stepper drivers * TMC2208/TMC2209 stepper drivers
@ -163,13 +177,19 @@
#ifndef FAN_PIN #ifndef FAN_PIN
#define FAN_PIN PF7 #define FAN_PIN PF7
#endif #endif
#define FAN1_PIN PF6 #define FAN1_PIN PF6
#define FAN2_PIN PF8
#ifndef E0_AUTO_FAN_PIN #ifndef E0_AUTO_FAN_PIN
#define E0_AUTO_FAN_PIN PF6 #define E0_AUTO_FAN_PIN PB1
#endif
#ifndef E1_AUTO_FAN_PIN
#define E1_AUTO_FAN_PIN PB0
#endif #endif
#define CONTROLLER_FAN_PIN PF8
// //
// LED / Lighting // LED / Lighting
// //
@ -177,10 +197,10 @@
//#define CASE_LIGHT_PIN_DO -1 //#define CASE_LIGHT_PIN_DO -1
//#define NEOPIXEL_PIN -1 //#define NEOPIXEL_PIN -1
#ifndef RGB_LED_R_PIN #ifndef RGB_LED_R_PIN
#define RGB_LED_R_PIN PB7 #define RGB_LED_R_PIN PB8 // swap R and G pin for compatibility with real wires
#endif #endif
#ifndef RGB_LED_G_PIN #ifndef RGB_LED_G_PIN
#define RGB_LED_G_PIN PB8 #define RGB_LED_G_PIN PB7
#endif #endif
#ifndef RGB_LED_B_PIN #ifndef RGB_LED_B_PIN
#define RGB_LED_B_PIN PB9 #define RGB_LED_B_PIN PB9
@ -197,7 +217,7 @@
// //
#define SDSS PC11 #define SDSS PC11
#define LED_PIN PA15 // Alive #define LED_PIN PA15 // Alive
#define PS_ON_PIN -1 #define PS_ON_PIN PA4
#define KILL_PIN -1 #define KILL_PIN -1
#define POWER_LOSS_PIN PA4 // Power-loss / nAC_FAULT #define POWER_LOSS_PIN PA4 // Power-loss / nAC_FAULT
@ -213,17 +233,23 @@
// LCD / Controller // LCD / Controller
// //
#define TFT_RESET_PIN PD6 #if HAS_FSMC_TFT
#define TFT_BACKLIGHT_PIN PD3 //#define TFT_DRIVER LERDGE_ST7796
#define TFT_CS_PIN PD7 #define TFT_RESET_PIN PD6
#define TFT_RS_PIN PD11 #define TFT_BACKLIGHT_PIN PD3
#define TOUCH_CS_PIN PG15 #define TFT_CS_PIN PD7
#define TOUCH_SCK_PIN PB3 #define TFT_RS_PIN PD11
#define TOUCH_MOSI_PIN PB5
#define TOUCH_MISO_PIN PB4
#define BTN_EN1 PG10 #define TOUCH_CS_PIN PG15
#define BTN_EN2 PG11 #define TOUCH_SCK_PIN PB3
#define BTN_ENC PG9 #define TOUCH_MOSI_PIN PB5
#define TOUCH_MISO_PIN PB4
#endif
#if IS_NEWPANEL
#define BTN_EN1 PG10
#define BTN_EN2 PG11
#define BTN_ENC PG9
#endif

18
buildroot/tests/LERDGEK

@ -0,0 +1,18 @@
#!/usr/bin/env bash
#
# Build tests for LERDGEK environment
#
# exit on first failure
set -e
#
# Build with the typical configuration
#
restore_configs
opt_set MOTHERBOARD BOARD_LERDGE_K SERIAL_PORT 1
opt_enable TFT_GENERIC TFT_INTERFACE_FSMC TFT_COLOR_UI
exec_test $1 $2 "LERDGE K with Generic FSMC TFT with ColorUI" "$3"
# clean up
restore_configs

1
ini/features.ini

@ -41,6 +41,7 @@ HAS_(FSMC|SPI|LTDC)_TFT = src_filter=+<src/HAL/STM32/tft> +<src/H
HAS_FSMC_TFT = src_filter=+<src/HAL/STM32/tft/tft_fsmc.cpp> +<src/HAL/STM32F1/tft/tft_fsmc.cpp> HAS_FSMC_TFT = src_filter=+<src/HAL/STM32/tft/tft_fsmc.cpp> +<src/HAL/STM32F1/tft/tft_fsmc.cpp>
HAS_SPI_TFT = src_filter=+<src/HAL/STM32/tft/tft_spi.cpp> +<src/HAL/STM32F1/tft/tft_spi.cpp> HAS_SPI_TFT = src_filter=+<src/HAL/STM32/tft/tft_spi.cpp> +<src/HAL/STM32F1/tft/tft_spi.cpp>
I2C_EEPROM = src_filter=+<src/HAL/shared/eeprom_if_i2c.cpp> I2C_EEPROM = src_filter=+<src/HAL/shared/eeprom_if_i2c.cpp>
SOFT_I2C_EEPROM = SlowSoftI2CMaster, SlowSoftWire=https://github.com/felias-fogg/SlowSoftWire/archive/master.zip
SPI_EEPROM = src_filter=+<src/HAL/shared/eeprom_if_spi.cpp> SPI_EEPROM = src_filter=+<src/HAL/shared/eeprom_if_spi.cpp>
HAS_GRAPHICAL_TFT = src_filter=+<src/lcd/tft> HAS_GRAPHICAL_TFT = src_filter=+<src/lcd/tft>
DWIN_CREALITY_LCD = src_filter=+<src/lcd/dwin> DWIN_CREALITY_LCD = src_filter=+<src/lcd/dwin>

3
ini/stm32f4.ini

@ -308,8 +308,7 @@ build_flags = ${stm_flash_drive.build_flags}
platform = ${lerdge_common.platform} platform = ${lerdge_common.platform}
extends = lerdge_common extends = lerdge_common
board_build.firmware = Lerdge_K_firmware_force.bin board_build.firmware = Lerdge_K_firmware_force.bin
build_flags = ${lerdge_common.build_flags} build_flags = ${lerdge_common.build_flags} -DLERDGEK
-DLERDGEK
# #
# Lerdge K with USB Flash Drive Support # Lerdge K with USB Flash Drive Support

Loading…
Cancel
Save