Browse Source

Add RAMPS 1.4.4 to AGCM4 (#16606)

pull/1/head
Giuliano Zaro 5 years ago
committed by GitHub
parent
commit
ff0c931e47
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      .github/workflows/test-builds.yml
  2. 2
      Marlin/src/HAL/HAL_SAMD51/timers.h
  3. 6
      Marlin/src/core/boards.h
  4. 7
      Marlin/src/pins/pins.h
  5. 611
      Marlin/src/pins/samd/pins_RAMPS_144.h
  6. 7
      buildroot/share/tests/SAMD51_grandcentral_m4-tests

2
.github/workflows/test-builds.yml

@ -32,6 +32,7 @@ jobs:
- megaatmega2560
- teensy31
- teensy35
- SAMD51_grandcentral_m4
# Extended AVR Environments
@ -75,7 +76,6 @@ jobs:
#- mks_robin_lite
#- mks_robin_mini
#- mks_robin_nano
#- SAMD51_grandcentral_m4
steps:

2
Marlin/src/HAL/HAL_SAMD51/timers.h

@ -29,7 +29,7 @@
typedef uint32_t hal_timer_t;
#define HAL_TIMER_TYPE_MAX 0xFFFFFFFF
#define HAL_TIMER_RATE SystemCoreClock // frequency of timers peripherals
#define HAL_TIMER_RATE F_CPU // frequency of timers peripherals
#define STEP_TIMER_NUM 0 // index of timer to use for stepper (also +1 for 32bits counter)
#define PULSE_TIMER_NUM STEP_TIMER_NUM

6
Marlin/src/core/boards.h

@ -295,7 +295,6 @@
#define BOARD_GTM32_MINI_A30 4022 // STM32F103VET6 controller
#define BOARD_GTM32_REV_B 4023 // STM32F103VET6 controller
//
// ARM Cortex-M4F
//
@ -340,6 +339,11 @@
#define BOARD_MRR_ESPE 6002
#define BOARD_E4D_BOX 6003 // E4d@BOX
//
// SAMD51 ARM Cortex M4
//
#define BOARD_AGCM4_RAMPS_144 6100 // RAMPS 1.4.4
//
// Simulations
//

7
Marlin/src/pins/pins.h

@ -578,6 +578,13 @@
#elif MB(E4D_BOX)
#include "esp32/pins_E4D.h" // ESP32 env:esp32
//
// Adafruit Grand Central M4 (SAMD51 ARM Cortex-M4)
//
#elif MB(AGCM4_RAMPS_144)
#include "samd/pins_RAMPS_144.h" // SAMD51 env:SAMD51_grandcentral_m4
//
// Linux Native Debug board
//

611
Marlin/src/pins/samd/pins_RAMPS_144.h

@ -0,0 +1,611 @@
/**
* Marlin 3D Printer Firmware
* Copyright (c) 2020 MarlinFirmware [https://github.com/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 <http://www.gnu.org/licenses/>.
*
*/
#pragma once
/**
* AGCM4 with RAMPS v1.4.4 pin assignments
*/
#ifndef ARDUINO_GRAND_CENTRAL_M4
#error "Oops! Select 'Adafruit Grand Central M4' in 'Tools > Board.'"
#endif
#ifndef BOARD_INFO_NAME
#define BOARD_INFO_NAME "AGCM4 RAMPS 1.4.4"
#endif
//
// Servos
//
#define SERVO0_PIN 11
#define SERVO1_PIN 6
#define SERVO2_PIN 5
#define SERVO3_PIN 4
//
// EEPROM
//
#define E2END 0x7FFF // 32Kb (24lc256)
#define I2C_EEPROM // EEPROM on I2C-0
//
// Limit Switches
//
#define X_MIN_PIN 3
#define X_MAX_PIN 2
#define Y_MIN_PIN 14
#define Y_MAX_PIN 15
#define Z_MIN_PIN 18
#define Z_MAX_PIN 19
//
// Z Probe (when not Z_MIN_PIN)
//
#ifndef Z_MIN_PROBE_PIN
#define Z_MIN_PROBE_PIN 18
#endif
//
// Steppers
//
#define X_STEP_PIN 67 // Mega/Due:54 - AGCM4:67
#define X_DIR_PIN 68 // Mega/Due:55 - AGCM4:68
#define X_ENABLE_PIN 38
#ifndef X_CS_PIN
#define X_CS_PIN 47
#endif
#define Y_STEP_PIN 73 // Mega/Due:60 - AGCM4:73
#define Y_DIR_PIN 74 // Mega/Due:61 - AGCM4:74
#define Y_ENABLE_PIN 69 // Mega/Due:56 - AGCM4:69
#ifndef Y_CS_PIN
#define Y_CS_PIN 45
#endif
#define Z_STEP_PIN 46
#define Z_DIR_PIN 48
#define Z_ENABLE_PIN 54 // Mega/Due:62 - AGCM4:54
#ifndef Z_CS_PIN
#define Z_CS_PIN 32
#endif
#define Z2_STEP_PIN 36
#define Z2_DIR_PIN 34
#define Z2_ENABLE_PIN 30
#ifndef Z2_CS_PIN
#define Z2_CS_PIN 22
#endif
#define E0_STEP_PIN 26
#define E0_DIR_PIN 28
#define E0_ENABLE_PIN 24
#ifndef E0_CS_PIN
#define E0_CS_PIN 43
#endif
//
// Temperature Sensors
//
#define TEMP_0_PIN 13
#define TEMP_BED_PIN 14
#define TEMP_CHAMBER_PIN 15
//
// Heaters / Fans
//
#define HEATER_0_PIN 10
#define HEATER_BED_PIN 8
#define FAN_PIN 9
#define FAN1_PIN 7
#define FAN2_PIN 12
//
// Misc. Functions
//
#define SDSS 53
#define LED_PIN 13
#ifndef FILWIDTH_PIN
#define FILWIDTH_PIN 5 // Analog Input on AUX2
#endif
// RAMPS 1.4 DIO 4 on the servos connector
#ifndef FIL_RUNOUT_PIN
#define FIL_RUNOUT_PIN 4
#endif
#ifndef PS_ON_PIN
#define PS_ON_PIN 39
#endif
#if ENABLED(CASE_LIGHT_ENABLE) && !defined(CASE_LIGHT_PIN) && !defined(SPINDLE_LASER_ENA_PIN)
#if NUM_SERVOS <= 1 // Prefer the servo connector
#define CASE_LIGHT_PIN 6 // Hardware PWM
#endif
#endif
//
// M3/M4/M5 - Spindle/Laser Control
//
#if HAS_CUTTER && !defined(SPINDLE_LASER_ENA_PIN)
#if !NUM_SERVOS // Use servo connector if possible
#define SPINDLE_LASER_ENA_PIN 4 // Pullup or pulldown!
#define SPINDLE_LASER_PWM_PIN 6 // Hardware PWM
#define SPINDLE_DIR_PIN 5
#else
#error "No auto-assignable Spindle/Laser pins available."
#endif
#endif
//
// TMC software SPI
//
#if ENABLED(TMC_USE_SW_SPI)
#ifndef TMC_SW_MOSI
#define TMC_SW_MOSI 58 // Mega/Due:66 - AGCM4:58
#endif
#ifndef TMC_SW_MISO
#define TMC_SW_MISO 44
#endif
#ifndef TMC_SW_SCK
#define TMC_SW_SCK 56 // Mega/Due:64 - AGCM4:56
#endif
#endif
#if HAS_TMC220x
/**
* TMC2208/TMC2209 stepper drivers
*
* Hardware serial communication ports.
* If undefined software serial is used according to the pins below
*/
//#define X_HARDWARE_SERIAL Serial1
//#define X2_HARDWARE_SERIAL Serial1
//#define Y_HARDWARE_SERIAL Serial1
//#define Y2_HARDWARE_SERIAL Serial1
//#define Z_HARDWARE_SERIAL Serial1
//#define Z2_HARDWARE_SERIAL Serial1
//#define E0_HARDWARE_SERIAL Serial1
//#define E1_HARDWARE_SERIAL Serial1
//#define E2_HARDWARE_SERIAL Serial1
//#define E3_HARDWARE_SERIAL Serial1
//#define E4_HARDWARE_SERIAL Serial1
//
// Software serial
//
#ifndef X_SERIAL_TX_PIN
#define X_SERIAL_TX_PIN 47
#endif
#ifndef X_SERIAL_RX_PIN
#define X_SERIAL_RX_PIN 47
#endif
#ifndef X2_SERIAL_TX_PIN
#define X2_SERIAL_TX_PIN -1
#endif
#ifndef X2_SERIAL_RX_PIN
#define X2_SERIAL_RX_PIN -1
#endif
#ifndef Y_SERIAL_TX_PIN
#define Y_SERIAL_TX_PIN 45
#endif
#ifndef Y_SERIAL_RX_PIN
#define Y_SERIAL_RX_PIN 45
#endif
#ifndef Y2_SERIAL_TX_PIN
#define Y2_SERIAL_TX_PIN -1
#endif
#ifndef Y2_SERIAL_RX_PIN
#define Y2_SERIAL_RX_PIN -1
#endif
#ifndef Z_SERIAL_TX_PIN
#define Z_SERIAL_TX_PIN 32
#endif
#ifndef Z_SERIAL_RX_PIN
#define Z_SERIAL_RX_PIN 32
#endif
#ifndef Z2_SERIAL_TX_PIN
#define Z2_SERIAL_TX_PIN 22
#endif
#ifndef Z2_SERIAL_RX_PIN
#define Z2_SERIAL_RX_PIN 22
#endif
#ifndef E0_SERIAL_TX_PIN
#define E0_SERIAL_TX_PIN 43
#endif
#ifndef E0_SERIAL_RX_PIN
#define E0_SERIAL_RX_PIN 43
#endif
#ifndef E1_SERIAL_TX_PIN
#define E1_SERIAL_TX_PIN -1
#endif
#ifndef E1_SERIAL_RX_PIN
#define E1_SERIAL_RX_PIN -1
#endif
#ifndef E2_SERIAL_TX_PIN
#define E2_SERIAL_TX_PIN -1
#endif
#ifndef E2_SERIAL_RX_PIN
#define E2_SERIAL_RX_PIN -1
#endif
#ifndef E3_SERIAL_TX_PIN
#define E3_SERIAL_TX_PIN -1
#endif
#ifndef E3_SERIAL_RX_PIN
#define E3_SERIAL_RX_PIN -1
#endif
#ifndef E4_SERIAL_TX_PIN
#define E4_SERIAL_TX_PIN -1
#endif
#ifndef E4_SERIAL_RX_PIN
#define E4_SERIAL_RX_PIN -1
#endif
#ifndef E5_SERIAL_TX_PIN
#define E5_SERIAL_TX_PIN -1
#endif
#ifndef E5_SERIAL_RX_PIN
#define E5_SERIAL_RX_PIN -1
#endif
#ifndef E6_SERIAL_TX_PIN
#define E6_SERIAL_TX_PIN -1
#endif
#ifndef E6_SERIAL_RX_PIN
#define E6_SERIAL_RX_PIN -1
#endif
#ifndef E7_SERIAL_TX_PIN
#define E7_SERIAL_TX_PIN -1
#endif
#ifndef E7_SERIAL_RX_PIN
#define E7_SERIAL_RX_PIN -1
#endif
#endif
//////////////////////////
// LCDs and Controllers //
//////////////////////////
#if HAS_SPI_LCD
//
// LCD Display output pins
//
#if ENABLED(REPRAPWORLD_GRAPHICAL_LCD)
// TO TEST
// #define LCD_PINS_RS 49 // CS chip select /SS chip slave select
// #define LCD_PINS_ENABLE 51 // SID (MOSI)
// #define LCD_PINS_D4 52 // SCK (CLK) clock
#elif BOTH(NEWPANEL, PANEL_ONE)
// TO TEST
// #define LCD_PINS_RS 40
// #define LCD_PINS_ENABLE 42
// #define LCD_PINS_D4 57 // Mega/Due:65 - AGCM4:57
// #define LCD_PINS_D5 58 // Mega/Due:66 - AGCM4:58
// #define LCD_PINS_D6 44
// #define LCD_PINS_D7 56 // Mega/Due:64 - AGCM4:56
#else
#if ENABLED(CR10_STOCKDISPLAY)
// TO TEST
// #define LCD_PINS_RS 27
// #define LCD_PINS_ENABLE 29
// #define LCD_PINS_D4 25
#if DISABLED(NEWPANEL)
// TO TEST
// #define BEEPER_PIN 37
#endif
#elif ENABLED(ZONESTAR_LCD)
// TO TEST
// #define LCD_PINS_RS 56 // Mega/Due:64 - AGCM4:56
// #define LCD_PINS_ENABLE 44
// #define LCD_PINS_D4 55 // Mega/Due:63 - AGCM4:55
// #define LCD_PINS_D5 40
// #define LCD_PINS_D6 42
// #define LCD_PINS_D7 57 // Mega/Due:65 - AGCM4:57
#else
#if EITHER(MKS_12864OLED, MKS_12864OLED_SSD1306)
// TO TEST
// #define LCD_PINS_DC 25 // Set as output on init
// #define LCD_PINS_RS 27 // Pull low for 1s to init
// DOGM SPI LCD Support
// #define DOGLCD_CS 16
// #define DOGLCD_MOSI 17
// #define DOGLCD_SCK 23
// #define DOGLCD_A0 LCD_PINS_DC
#else
#define LCD_PINS_RS 16
#define LCD_PINS_ENABLE 17
#define LCD_PINS_D4 23
#define LCD_PINS_D5 25
#define LCD_PINS_D6 27
#endif
#define LCD_PINS_D7 29
#if DISABLED(NEWPANEL)
#define BEEPER_PIN 33
#endif
#endif
#if DISABLED(NEWPANEL)
// Buttons attached to a shift register
// Not wired yet
//#define SHIFT_CLK 38
//#define SHIFT_LD 42
//#define SHIFT_OUT 40
//#define SHIFT_EN 17
#endif
#endif
//
// LCD Display input pins
//
#if ENABLED(NEWPANEL)
#if ENABLED(REPRAP_DISCOUNT_SMART_CONTROLLER)
#define BEEPER_PIN 37
#if ENABLED(CR10_STOCKDISPLAY)
// TO TEST
// #define BTN_EN1 17
// #define BTN_EN2 23
#else
#define BTN_EN1 31
#define BTN_EN2 33
#endif
#define BTN_ENC 35
#ifndef SD_DETECT_PIN
#define SD_DETECT_PIN 49
#endif
#define KILL_PIN 41
#if ENABLED(BQ_LCD_SMART_CONTROLLER)
// TO TEST
// #define LCD_BACKLIGHT_PIN 39
#endif
#elif ENABLED(REPRAPWORLD_GRAPHICAL_LCD)
// TO TEST
// #define BTN_EN1 56 // Mega/Due:64 - AGCM4:56
// #define BTN_EN2 72 // Mega/Due:59 - AGCM4:72
// #define BTN_ENC 55
// #define SD_DETECT_PIN 42
#elif ENABLED(LCD_I2C_PANELOLU2)
// TO TEST
// #define BTN_EN1 47
// #define BTN_EN2 43
// #define BTN_ENC 32
// #define LCD_SDSS SDSS
// #define KILL_PIN 41
#elif ENABLED(LCD_I2C_VIKI)
// TO TEST
// #define BTN_EN1 40 // http://files.panucatt.com/datasheets/viki_wiring_diagram.pdf explains 40/42.
// #define BTN_EN2 42
// #define BTN_ENC -1
// #define LCD_SDSS SDSS
// #define SD_DETECT_PIN 49
#elif ANY(VIKI2, miniVIKI)
// TO TEST
// #define DOGLCD_CS 45
// #define DOGLCD_A0 44
// #define LCD_SCREEN_ROT_180
// #define BEEPER_PIN 33
// #define STAT_LED_RED_PIN 32
// #define STAT_LED_BLUE_PIN 35
// #define BTN_EN1 22
// #define BTN_EN2 7
// #define BTN_ENC 39
// #define SD_DETECT_PIN -1 // Pin 49 for display SD interface, 72 for easy adapter board
// #define KILL_PIN 31
#elif ENABLED(ELB_FULL_GRAPHIC_CONTROLLER)
// TO TEST
// #define DOGLCD_CS 29
// #define DOGLCD_A0 27
// #define BEEPER_PIN 23
// #define LCD_BACKLIGHT_PIN 33
// #define BTN_EN1 35
// #define BTN_EN2 37
// #define BTN_ENC 31
// #define LCD_SDSS SDSS
// #define SD_DETECT_PIN 49
// #define KILL_PIN 41
#elif EITHER(MKS_MINI_12864, FYSETC_MINI_12864)
// TO TEST
//#define BEEPER_PIN 37
//#define BTN_ENC 35
//#define SD_DETECT_PIN 49
//#ifndef KILL_PIN
// #define KILL_PIN 41
//#endif
#if ENABLED(MKS_MINI_12864) // Added in Marlin 1.1.6
// TO TEST
// #define DOGLCD_A0 27
// #define DOGLCD_CS 25
// GLCD features
// Uncomment screen orientation
// #define LCD_SCREEN_ROT_90
// #define LCD_SCREEN_ROT_180
// #define LCD_SCREEN_ROT_270
// not connected to a pin
// #define LCD_BACKLIGHT_PIN 57 // backlight LED on A11/D? (Mega/Due:65 - AGCM4:57)
// #define BTN_EN1 31
// #define BTN_EN2 33
#elif ENABLED(FYSETC_MINI_12864)
// From https://wiki.fysetc.com/Mini12864_Panel/?fbclid=IwAR1FyjuNdVOOy9_xzky3qqo_WeM5h-4gpRnnWhQr_O1Ef3h0AFnFXmCehK8
// TO TEST
// #define DOGLCD_A0 16
// #define DOGLCD_CS 17
// #define BTN_EN1 33
// #define BTN_EN2 31
//#define FORCE_SOFT_SPI // Use this if default of hardware SPI causes display problems
// results in LCD soft SPI mode 3, SD soft SPI mode 0
// #define LCD_RESET_PIN 23 // Must be high or open for LCD to operate normally.
#if EITHER(FYSETC_MINI_12864_1_2, FYSETC_MINI_12864_2_0)
#ifndef RGB_LED_R_PIN
// TO TEST
// #define RGB_LED_R_PIN 25
#endif
#ifndef RGB_LED_G_PIN
// TO TEST
// #define RGB_LED_G_PIN 27
#endif
#ifndef RGB_LED_B_PIN
// TO TEST
// #define RGB_LED_B_PIN 29
#endif
#elif ENABLED(FYSETC_MINI_12864_2_1)
// TO TEST
// #define NEOPIXEL_PIN 25
#endif
#endif
#elif ENABLED(MINIPANEL)
// TO TEST
// #define BEEPER_PIN 42
// not connected to a pin
// #define LCD_BACKLIGHT_PIN 57 // backlight LED on A11/D? (Mega/Due:65 - AGCM4:57)
// #define DOGLCD_A0 44
// #define DOGLCD_CS 58 // Mega/Due:66 - AGCM4:58
// GLCD features
// Uncomment screen orientation
// #define LCD_SCREEN_ROT_90
// #define LCD_SCREEN_ROT_180
// #define LCD_SCREEN_ROT_270
// #define BTN_EN1 40
// #define BTN_EN2 55 // Mega/Due:63 - AGCM4:55
// #define BTN_ENC 72 // Mega/Due:59 - AGCM4:72
// #define SD_DETECT_PIN 49
// #define KILL_PIN 56 // Mega/Due:64 - AGCM4:56
#elif ENABLED(ZONESTAR_LCD)
// TO TEST
// #define ADC_KEYPAD_PIN 12
#elif ENABLED(AZSMZ_12864)
// TO TEST
#else
// Beeper on AUX-4
// #define BEEPER_PIN 33
// Buttons are directly attached to AUX-2
#if ENABLED(REPRAPWORLD_KEYPAD)
// TO TEST
// #define SHIFT_OUT 40
// #define SHIFT_CLK 44
// #define SHIFT_LD 42
// #define BTN_EN1 56 // Mega/Due:64 - AGCM4:56
// #define BTN_EN2 72 // Mega/Due:59 - AGCM4:72
// #define BTN_ENC 55 // Mega/Due:63 - AGCM4:55
#elif ENABLED(PANEL_ONE)
// TO TEST
// #define BTN_EN1 72 // AUX2 PIN 3 (Mega/Due:59 - AGCM4:72)
// #define BTN_EN2 55 // AUX2 PIN 4 (Mega/Due:63 - AGCM4:55)
// #define BTN_ENC 49 // AUX3 PIN 7
#else
// TO TEST
// #define BTN_EN1 37
// #define BTN_EN2 35
// #define BTN_ENC 31
#endif
#if ENABLED(G3D_PANEL)
// TO TEST
// #define SD_DETECT_PIN 49
// #define KILL_PIN 41
#endif
#endif
#endif // NEWPANEL
#endif // HAS_SPI_LCD
//
// SD Support
//
#ifndef SDCARD_CONNECTION
#define SDCARD_CONNECTION ONBOARD
#endif
#if SD_CONNECTION_IS(ONBOARD)
#undef SDSS
#define SDSS 83
#undef SD_DETECT_PIN
#define SD_DETECT_PIN 95
#endif

7
buildroot/share/tests/SAMD51_grandcentral_m4-tests

@ -6,5 +6,12 @@
# exit on first failure
set -e
#
# Build with the default configurations
#
restore_configs
opt_set MOTHERBOARD BOARD_AGCM4_RAMPS_144
exec_test $1 $2 "Build Grand Central M4 Default Configuration"
# clean up
restore_configs

Loading…
Cancel
Save