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

Add melzi creality ender2 board #25754

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 7 additions & 6 deletions Marlin/src/core/boards.h
Original file line number Diff line number Diff line change
Expand Up @@ -191,12 +191,13 @@
#define BOARD_MELZI_V2 1503 // Melzi V2
#define BOARD_MELZI_MAKR3D 1504 // Melzi with ATmega1284 (MaKr3d version)
#define BOARD_MELZI_CREALITY 1505 // Melzi Creality3D (for CR-10 etc)
#define BOARD_MELZI_MALYAN 1506 // Melzi Malyan M150
#define BOARD_MELZI_TRONXY 1507 // Tronxy X5S
#define BOARD_STB_11 1508 // STB V1.1
#define BOARD_AZTEEG_X1 1509 // Azteeg X1
#define BOARD_ANET_10 1510 // Anet 1.0 (Melzi clone)
#define BOARD_ZMIB_V2 1511 // ZoneStar ZMIB V2
#define BOARD_MELZI_CREALITY_ENDER2 1506 // Melzi Creality3D (for Ender-2)
#define BOARD_MELZI_MALYAN 1507 // Melzi Malyan M150
#define BOARD_MELZI_TRONXY 1508 // Tronxy X5S
#define BOARD_STB_11 1509 // STB V1.1
#define BOARD_AZTEEG_X1 1510 // Azteeg X1
#define BOARD_ANET_10 1511 // Anet 1.0 (Melzi clone)
#define BOARD_ZMIB_V2 1512 // ZoneStar ZMIB V2

//
// Other ATmega644P, ATmega644, ATmega1284P
Expand Down
2 changes: 2 additions & 0 deletions Marlin/src/pins/pins.h
Original file line number Diff line number Diff line change
Expand Up @@ -372,6 +372,8 @@
#include "sanguino/pins_MELZI_MAKR3D.h" // ATmega644P, ATmega1284P env:sanguino1284p_optimized env:sanguino1284p env:sanguino644p
#elif MB(MELZI_CREALITY)
#include "sanguino/pins_MELZI_CREALITY.h" // ATmega1284P env:melzi_optiboot_optimized env:melzi_optiboot env:melzi_optimized env:melzi
#elif MB(MELZI_CREALITY_ENDER2)
#include "sanguino/pins_MELZI_CREALITY_E2.h" // ATmega1284P env:melzi_optiboot_optimized env:melzi_optiboot env:melzi_optimized env:melzi
#elif MB(MELZI_MALYAN)
#include "sanguino/pins_MELZI_MALYAN.h" // ATmega644P, ATmega1284P env:sanguino1284p_optimized env:sanguino1284p env:sanguino644p
#elif MB(MELZI_TRONXY)
Expand Down
97 changes: 97 additions & 0 deletions Marlin/src/pins/sanguino/pins_MELZI_CREALITY_E2.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
/**
* Marlin 3D Printer Firmware
* Copyright (c) 2023 MarlinFirmware [https:/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/
#pragma once

#define BOARD_INFO_NAME "Melzi Ender 2 (Creality)"

/*
* Connectors.
* FAN1 LASER K-FAN B-MOT(A6) E-TEMP(A7) CHECK AVR ISP
* --------- --------- --------- --------- --------- --------- ----------
* J11(Power Switch) |12V GND| |12V D4| |12V D4| |GND D25| |GND D24| |D29 GND| |MISO 5V|
* ------ --------- --------- --------- --------- --------- --------- |SCK MOSI|
* |V-IN|(Regulator) BED HOT-END FAN2 OFF X-STOP Y-STOP Z-STOP |RST GND|
* |GND | --------- --------- --------- --------- --------- --------- --------- ----------
* |12V | |12V D12| |12V D13| |12V GND| |D27 D17| |GND D18| |GND D19| |GND D20|
* ------ --------- --------- --------- --------- --------- --------- ---------
*
*
* EXP1 EXP1 as ENDER2 STOCKDISPLAY EXP1 as CR10 STOCKDISPLAY
* ------ ------ ------
* (AVR_SCK) D7 | 1 2 | D16 SCK | 1 2 | BTN_E BEEPER_PIN | 1 2 | BTN_ENC
* D11 | 3 4 | RESET BTN_EN1 | 3 4 | RESET BTN_EN1 | 3 4 | RESET
* D10 5 6 | D30 BTN_EN2 5 6 | LCD_A0 BTN_EN2 5 6 | LCD_D4 (ST9720 CLK)
* D28 | 7 8 | D5 (AVR_MOSI) LCD_CS | 7 8 | MOSI (ST9720 CS) LCD_RS | 7 8 | LCD_EN (ST9720 DAT)
* GND | 9 10 | 5V GND | 9 10 | 5V GND | 9 10 | 5V
* ------ ------ ------
*/

#define EXP1_01_PIN 7
#define EXP1_02_PIN 16
#define EXP1_03_PIN 11
#define EXP1_04_PIN -1 // hardware reset line
#define EXP1_05_PIN 10
#define EXP1_06_PIN 30
#define EXP1_07_PIN 28
#define EXP1_08_PIN 5

//
// LCD / Controller
//
#if EITHER(CR10_STOCKDISPLAY, ENDER2_STOCKDISPLAY)
#if ENABLED(CR10_STOCKDISPLAY)
#if ENABLED(SDSUPPORT)
#error "Cannot have SDSUPPORT with CR10_STOCKDISPLAY on this motherboard." // Hardware SDCARD SCK and MOSI pins are reallocated.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks like something we could auto-detect in that LCD pins rework #25650. Although that PR is currently focused on LCD and encoder pins, it could definitely be expanded to deal with external media drives.

#endif
#define LCD_PINS_RS EXP1_07_PIN // ST9720 CS
#define LCD_PINS_EN EXP1_08_PIN // ST9720 DAT
#define LCD_PINS_D4 EXP1_06_PIN // ST9720 CLK
#define BEEPER_PIN EXP1_01_PIN
#elif ENABLED(ENDER2_STOCKDISPLAY)
#define DOGLCD_CS EXP1_07_PIN
#define DOGLCD_A0 EXP1_06_PIN
#endif
#define BTN_ENC EXP1_02_PIN
#define BTN_EN1 EXP1_03_PIN
#define BTN_EN2 EXP1_05_PIN
#define LCD_PINS_DEFINED
#endif

#define LCD_SDSS 31 // Controller's SD card

#include "pins_MELZI.h" // ... SANGUINOLOLU_12 ... SANGUINOLOLU_11

#if ENABLED(BLTOUCH)
#ifndef SERVO0_PIN
#define SERVO0_PIN 27
#endif
#if SERVO0_PIN == BEEPER_PIN
#undef BEEPER_PIN
#endif
#elif HAS_FILAMENT_SENSOR
#ifndef FIL_RUNOUT_PIN
#define FIL_RUNOUT_PIN 27
#endif
#if FIL_RUNOUT_PIN == BEEPER_PIN
#undef BEEPER_PIN
#endif
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also in relation to the LCD pins rework, there are these Pin 27 adapters that add a header for the pin usually applied to the BEEPER. I hope to add a flag for that adapter so that it can be paired with any LCD header, even those where the pin isn't necessarily pin 27, and then if the adapter is not present we can catch that and suggest a different available pin for the BLTouch or Runout Sensor.

#endif