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
- STM32F103RET6_creality
- LERDGEX
- LERDGEK
- mks_robin_nano35
# Put lengthy tests last

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

@ -30,11 +30,17 @@
#if ENABLED(I2C_EEPROM)
#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() {
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)
#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[] = {
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), 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_PWR3), 0x00AF,
ESC_REG(0xC3), 0x0009, // Register not documented in datasheet
ESC_REG(ST7796S_VCMPCTL), 0x0022,
ESC_REG(ST7796S_VCMOST), 0x0000,
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 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
#define HAS_OTG_USB_HOST_SUPPORT
@ -36,7 +43,7 @@
//
// Servos
//
//#define SERVO0_PIN PB11
#define SERVO0_PIN PB11
//
// Limit Switches
@ -96,6 +103,13 @@
// #define E1_CS_PIN PE4
//#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
/**
* TMC2208/TMC2209 stepper drivers
@ -163,13 +177,19 @@
#ifndef FAN_PIN
#define FAN_PIN PF7
#endif
#define FAN1_PIN PF6
#define FAN2_PIN PF8
#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
#define CONTROLLER_FAN_PIN PF8
//
// LED / Lighting
//
@ -177,10 +197,10 @@
//#define CASE_LIGHT_PIN_DO -1
//#define NEOPIXEL_PIN -1
#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
#ifndef RGB_LED_G_PIN
#define RGB_LED_G_PIN PB8
#define RGB_LED_G_PIN PB7
#endif
#ifndef RGB_LED_B_PIN
#define RGB_LED_B_PIN PB9
@ -197,7 +217,7 @@
//
#define SDSS PC11
#define LED_PIN PA15 // Alive
#define PS_ON_PIN -1
#define PS_ON_PIN PA4
#define KILL_PIN -1
#define POWER_LOSS_PIN PA4 // Power-loss / nAC_FAULT
@ -213,17 +233,23 @@
// LCD / Controller
//
#define TFT_RESET_PIN PD6
#define TFT_BACKLIGHT_PIN PD3
#if HAS_FSMC_TFT
//#define TFT_DRIVER LERDGE_ST7796
#define TFT_CS_PIN PD7
#define TFT_RS_PIN PD11
#define TFT_RESET_PIN PD6
#define TFT_BACKLIGHT_PIN PD3
#define TOUCH_CS_PIN PG15
#define TOUCH_SCK_PIN PB3
#define TOUCH_MOSI_PIN PB5
#define TOUCH_MISO_PIN PB4
#define TFT_CS_PIN PD7
#define TFT_RS_PIN PD11
#define BTN_EN1 PG10
#define BTN_EN2 PG11
#define BTN_ENC PG9
#define TOUCH_CS_PIN PG15
#define TOUCH_SCK_PIN PB3
#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_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>
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>
HAS_GRAPHICAL_TFT = src_filter=+<src/lcd/tft>
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}
extends = lerdge_common
board_build.firmware = Lerdge_K_firmware_force.bin
build_flags = ${lerdge_common.build_flags}
-DLERDGEK
build_flags = ${lerdge_common.build_flags} -DLERDGEK
#
# Lerdge K with USB Flash Drive Support

Loading…
Cancel
Save