From 04d64351a24d3278ef8079c74cc24a55e32a1de2 Mon Sep 17 00:00:00 2001 From: MaukCC Date: Tue, 21 Jan 2020 08:10:31 +0100 Subject: [PATCH] Add HMS434 V15 ATSAM board (#16620) --- Marlin/Configuration.h | 3 +- Marlin/src/core/boards.h | 1 + Marlin/src/module/thermistor/thermistor_332.h | 50 ++++++++++ Marlin/src/module/thermistor/thermistors.h | 5 +- Marlin/src/pins/pins.h | 2 + Marlin/src/pins/sam/pins_CNCONTROLS_15D.h | 97 +++++++++++++++++++ 6 files changed, 156 insertions(+), 2 deletions(-) create mode 100644 Marlin/src/module/thermistor/thermistor_332.h create mode 100644 Marlin/src/pins/sam/pins_CNCONTROLS_15D.h diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index d23a31c0db..65381fcce7 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -360,7 +360,8 @@ * -1 : thermocouple with AD595 * 0 : not used * 1 : 100k thermistor - best choice for EPCOS 100k (4.7k pullup) - * 331 : (3.3V scaled thermistor 1 table) + * 331 : (3.3V scaled thermistor 1 table for MEGA) + * 332 : (3.3V scaled thermistor 1 table for DUE) * 2 : 200k thermistor - ATC Semitec 204GT-2 (4.7k pullup) * 3 : Mendel-parts thermistor (4.7k pullup) * 4 : 10k thermistor !! do not use it for a hotend. It gives bad resolution at high temp. !! diff --git a/Marlin/src/core/boards.h b/Marlin/src/core/boards.h index bd7c98081e..7a3b413e99 100644 --- a/Marlin/src/core/boards.h +++ b/Marlin/src/core/boards.h @@ -256,6 +256,7 @@ #define BOARD_ARCHIM1 3023 // UltiMachine Archim1 (with DRV8825 drivers) #define BOARD_ARCHIM2 3024 // UltiMachine Archim2 (with TMC2130 drivers) #define BOARD_ALLIGATOR 3025 // Alligator Board R2 +#define BOARD_CNCONTROLS_15D 3026 // Cartesio CN Controls V15 on DUE // // SAM3X8C ARM Cortex M3 diff --git a/Marlin/src/module/thermistor/thermistor_332.h b/Marlin/src/module/thermistor/thermistor_332.h new file mode 100644 index 0000000000..85ca169a1e --- /dev/null +++ b/Marlin/src/module/thermistor/thermistor_332.h @@ -0,0 +1,50 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2019 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 . + * + */ +#pragma once + +#define OVM(V) OV((V)*(0.327/0.327)) + +// R25 = 100 kOhm, beta25 = 4092 K, 4.7 kOhm pull-up, bed thermistor +const short temptable_332[][2] PROGMEM = { + { OVM( 268), 150 }, + { OVM( 293), 145 }, + { OVM( 320), 141 }, + { OVM( 379), 133 }, + { OVM( 445), 122 }, + { OVM( 516), 108 }, + { OVM( 591), 98 }, + { OVM( 665), 88 }, + { OVM( 737), 79 }, + { OVM( 801), 70 }, + { OVM( 857), 55 }, + { OVM( 903), 46 }, + { OVM( 939), 39 }, + { OVM( 954), 33 }, + { OVM( 966), 27 }, + { OVM( 977), 22 }, + { OVM( 999), 15 }, + { OVM(1004), 5 }, + { OVM(1008), 0 }, + { OVM(1012), -5 }, + { OVM(1016), -10 }, + { OVM(1020), -15 } +}; diff --git a/Marlin/src/module/thermistor/thermistors.h b/Marlin/src/module/thermistor/thermistors.h index 55336c8da7..1e7b76d153 100644 --- a/Marlin/src/module/thermistor/thermistors.h +++ b/Marlin/src/module/thermistor/thermistors.h @@ -147,9 +147,12 @@ #if ANY_THERMISTOR_IS(201) // Pt100 with LMV324 Overlord #include "thermistor_201.h" #endif -#if ANY_THERMISTOR_IS(331) // Like table 1, but with 3V3 as input voltage +#if ANY_THERMISTOR_IS(331) // Like table 1, but with 3V3 as input voltage for MEGA #include "thermistor_331.h" #endif +#if ANY_THERMISTOR_IS(332) // Like table 1, but with 3V3 as input voltage for DUE + #include "thermistor_332.h" +#endif #if ANY_THERMISTOR_IS(666) // beta25 = UNK, R25 = 200K, Pull-up = 10 kOhm, "Unidentified 200K NTC thermistor (Einstart S)" #include "thermistor_666.h" #endif diff --git a/Marlin/src/pins/pins.h b/Marlin/src/pins/pins.h index d752fbe98e..c29f0c363d 100644 --- a/Marlin/src/pins/pins.h +++ b/Marlin/src/pins/pins.h @@ -451,6 +451,8 @@ #include "sam/pins_ADSK.h" // SAM3X8E env:DUE env:DUE_debug #elif MB(PRINTRBOARD_G2) #include "sam/pins_PRINTRBOARD_G2.h" // SAM3X8C env:DUE_USB +#elif MB(CNCONTROLS_15D) + #include "sam/pins_CNCONTROLS_15D.h" // SAM3X8E env:DUE env:DUE_USB // // STM32 ARM Cortex-M3 diff --git a/Marlin/src/pins/sam/pins_CNCONTROLS_15D.h b/Marlin/src/pins/sam/pins_CNCONTROLS_15D.h new file mode 100644 index 0000000000..fe9bfb9afd --- /dev/null +++ b/Marlin/src/pins/sam/pins_CNCONTROLS_15D.h @@ -0,0 +1,97 @@ +/** + * CNControls V15 for HMS434 with DUE pin assignments + */ + +#ifndef __SAM3X8E__ + #error "Oops! Select 'Arduino Due' in 'Tools > Board.'" +#endif + +#define BOARD_INFO_NAME "CN Controls V15D" + +// +// Servos +// +#define SERVO0_PIN 6 + +// +// Limit Switches +// +#define X_STOP_PIN 34 +#define Y_STOP_PIN 39 +#define Z_STOP_PIN 62 + +#ifndef Z_MIN_PROBE_PIN + #define Z_MIN_PROBE_PIN 49 +#endif + +// +// Steppers +// +#define X_STEP_PIN 14 +#define X_DIR_PIN 25 +#define X_ENABLE_PIN 26 + +#define Y_STEP_PIN 11 +#define Y_DIR_PIN 12 +#define Y_ENABLE_PIN 15 + +#define Z_STEP_PIN 24 +#define Z_DIR_PIN 27 +#define Z_ENABLE_PIN 28 + +#define E0_STEP_PIN 64 +#define E0_DIR_PIN 65 +#define E0_ENABLE_PIN 63 + +#define E1_STEP_PIN 8 +#define E1_DIR_PIN 7 +#define E1_ENABLE_PIN 29 + +// +// Temperature Sensors +// Analog Inputs +// +#define TEMP_0_PIN 1 +#define TEMP_1_PIN 2 +#define TEMP_BED_PIN 4 + +#ifndef TEMP_CHAMBER_PIN + #define TEMP_CHAMBER_PIN 5 +#endif + +// +// Heaters +// +#define HEATER_0_PIN 3 +#define HEATER_1_PIN 4 +#define HEATER_BED_PIN 32 +#define HEATER_CHAMBER_PIN 33 + +// +// Fans +// +//#define FAN0_PIN 8 +#define ORIG_E0_AUTO_FAN_PIN 30 +#define ORIG_E1_AUTO_FAN_PIN 30 +#define ORIG_E2_AUTO_FAN_PIN 30 +#define ORIG_E3_AUTO_FAN_PIN 30 +#define ORIG_CHAMBER_AUTO_FAN_PIN 10 + +// +// SD card +// +#define SCK_PIN 76 +#define MISO_PIN 74 +#define MOSI_PIN 75 +#define SDSS 53 +#define SD_DETECT_PIN 40 + +// Common I/O + +//#define PWM_1_PIN 6 // probe +//#define PWM_2_PIN 13 +//#define SPARE_IO 17 +#define BEEPER_PIN 13 +#define CALIBRATION_PIN 66 +#define STAT_LED_BLUE_PIN -1 +#define STAT_LED_RED_PIN 31