Smoothieboard V1.0/1.1 and A5984 support

This commit is contained in:
Greg Nutt 2018-08-07 20:01:56 -04:00 committed by Scott Lahteine
parent b7e15a65e3
commit a1a5367380
9 changed files with 144 additions and 23 deletions

View file

@ -556,11 +556,11 @@
* The options are used to determine driver pulse timings as well as more advanced functionality. * The options are used to determine driver pulse timings as well as more advanced functionality.
* Stepper timing options can be overridden in Configuration_adv.h * Stepper timing options can be overridden in Configuration_adv.h
* *
* Options: A4988, DRV8825, LV8729, L6470, TB6560, TB6600, TMC2100, * Options: A4988, A5984, DRV8825, LV8729, L6470, TB6560, TB6600, TMC2100,
* TMC2130, TMC2130_STANDALONE, TMC2208, TMC2208_STANDALONE, * TMC2130, TMC2130_STANDALONE, TMC2208, TMC2208_STANDALONE,
* TMC26X, TMC26X_STANDALONE, TMC2660, TMC2660_STANDALONE, * TMC26X, TMC26X_STANDALONE, TMC2660, TMC2660_STANDALONE,
* TMC5130, TMC5130_STANDALONE * TMC5130, TMC5130_STANDALONE
* :['A4988', 'DRV8825', 'LV8729', 'L6470', 'TB6560', 'TB6600', 'TMC2100', 'TMC2130', 'TMC2130_STANDALONE', 'TMC2208', 'TMC2208_STANDALONE', 'TMC26X', 'TMC26X_STANDALONE', 'TMC2660', 'TMC2660_STANDALONE', 'TMC5130', 'TMC5130_STANDALONE'] * :['A4988', 'A5984', 'DRV8825', 'LV8729', 'L6470', 'TB6560', 'TB6600', 'TMC2100', 'TMC2130', 'TMC2130_STANDALONE', 'TMC2208', 'TMC2208_STANDALONE', 'TMC26X', 'TMC26X_STANDALONE', 'TMC2660', 'TMC2660_STANDALONE', 'TMC5130', 'TMC5130_STANDALONE']
*/ */
#define X_DRIVER_TYPE A4988 #define X_DRIVER_TYPE A4988
#define Y_DRIVER_TYPE A4988 #define Y_DRIVER_TYPE A4988

View file

@ -842,6 +842,7 @@
* 0 : No delay (Expect at least 10µS since one Stepper ISR must transpire) * 0 : No delay (Expect at least 10µS since one Stepper ISR must transpire)
* 20 : Minimum for TMC2xxx drivers * 20 : Minimum for TMC2xxx drivers
* 200 : Minimum for A4988 drivers * 200 : Minimum for A4988 drivers
* 400 : Minimum for A5984 drivers
* 500 : Minimum for LV8729 drivers (guess, no info in datasheet) * 500 : Minimum for LV8729 drivers (guess, no info in datasheet)
* 650 : Minimum for DRV8825 drivers * 650 : Minimum for DRV8825 drivers
* 1500 : Minimum for TB6600 drivers (guess, no info in datasheet) * 1500 : Minimum for TB6600 drivers (guess, no info in datasheet)
@ -854,8 +855,7 @@
/** /**
* Minimum stepper driver pulse width (in µs) * Minimum stepper driver pulse width (in µs)
* 0 : Smallest possible width the MCU can produce, compatible with TMC2xxx drivers * 0 : Smallest possible width the MCU can produce, compatible with TMC2xxx drivers
* 1 : Minimum for A4988 stepper drivers * 1 : Minimum for A4988, A5984, and LV8729 stepper drivers
* 1 : Minimum for LV8729 stepper drivers
* 2 : Minimum for DRV8825 stepper drivers * 2 : Minimum for DRV8825 stepper drivers
* 3 : Minimum for TB6600 stepper drivers * 3 : Minimum for TB6600 stepper drivers
* 30 : Minimum for TB6560 stepper drivers * 30 : Minimum for TB6560 stepper drivers

View file

@ -556,11 +556,11 @@
* The options are used to determine driver pulse timings as well as more advanced functionality. * The options are used to determine driver pulse timings as well as more advanced functionality.
* Stepper timing options can be overridden in Configuration_adv.h * Stepper timing options can be overridden in Configuration_adv.h
* *
* Options: A4988, DRV8825, LV8729, L6470, TB6560, TB6600, TMC2100, * Options: A4988, A5984, DRV8825, LV8729, L6470, TB6560, TB6600, TMC2100,
* TMC2130, TMC2130_STANDALONE, TMC2208, TMC2208_STANDALONE, * TMC2130, TMC2130_STANDALONE, TMC2208, TMC2208_STANDALONE,
* TMC26X, TMC26X_STANDALONE, TMC2660, TMC2660_STANDALONE, * TMC26X, TMC26X_STANDALONE, TMC2660, TMC2660_STANDALONE,
* TMC5130, TMC5130_STANDALONE * TMC5130, TMC5130_STANDALONE
* :['A4988', 'DRV8825', 'LV8729', 'L6470', 'TB6560', 'TB6600', 'TMC2100', 'TMC2130', 'TMC2130_STANDALONE', 'TMC2208', 'TMC2208_STANDALONE', 'TMC26X', 'TMC26X_STANDALONE', 'TMC2660', 'TMC2660_STANDALONE', 'TMC5130', 'TMC5130_STANDALONE'] * :['A4988', 'A5984', 'DRV8825', 'LV8729', 'L6470', 'TB6560', 'TB6600', 'TMC2100', 'TMC2130', 'TMC2130_STANDALONE', 'TMC2208', 'TMC2208_STANDALONE', 'TMC26X', 'TMC26X_STANDALONE', 'TMC2660', 'TMC2660_STANDALONE', 'TMC5130', 'TMC5130_STANDALONE']
*/ */
#define X_DRIVER_TYPE A4988 #define X_DRIVER_TYPE A4988
#define Y_DRIVER_TYPE A4988 #define Y_DRIVER_TYPE A4988

View file

@ -842,6 +842,7 @@
* 0 : No delay (Expect at least 10µS since one Stepper ISR must transpire) * 0 : No delay (Expect at least 10µS since one Stepper ISR must transpire)
* 20 : Minimum for TMC2xxx drivers * 20 : Minimum for TMC2xxx drivers
* 200 : Minimum for A4988 drivers * 200 : Minimum for A4988 drivers
* 400 : Minimum for A5984 drivers
* 500 : Minimum for LV8729 drivers (guess, no info in datasheet) * 500 : Minimum for LV8729 drivers (guess, no info in datasheet)
* 650 : Minimum for DRV8825 drivers * 650 : Minimum for DRV8825 drivers
* 1500 : Minimum for TB6600 drivers (guess, no info in datasheet) * 1500 : Minimum for TB6600 drivers (guess, no info in datasheet)
@ -854,8 +855,7 @@
/** /**
* Minimum stepper driver pulse width (in µs) * Minimum stepper driver pulse width (in µs)
* 0 : Smallest possible width the MCU can produce, compatible with TMC2xxx drivers * 0 : Smallest possible width the MCU can produce, compatible with TMC2xxx drivers
* 1 : Minimum for A4988 stepper drivers * 1 : Minimum for A4988, A5984, and LV8729 stepper drivers
* 1 : Minimum for LV8729 stepper drivers
* 2 : Minimum for DRV8825 stepper drivers * 2 : Minimum for DRV8825 stepper drivers
* 3 : Minimum for TB6600 stepper drivers * 3 : Minimum for TB6600 stepper drivers
* 30 : Minimum for TB6560 stepper drivers * 30 : Minimum for TB6560 stepper drivers

View file

@ -174,6 +174,7 @@
#define BOARD_SELENA_COMPACT 1754 // Selena Compact (Power outputs: Hotend0, Hotend1, Bed0, Bed1, Fan0, Fan1) #define BOARD_SELENA_COMPACT 1754 // Selena Compact (Power outputs: Hotend0, Hotend1, Bed0, Bed1, Fan0, Fan1)
#define BOARD_COHESION3D_REMIX 1755 // Cohesion3D ReMix #define BOARD_COHESION3D_REMIX 1755 // Cohesion3D ReMix
#define BOARD_COHESION3D_MINI 1756 // Cohesion3D Mini #define BOARD_COHESION3D_MINI 1756 // Cohesion3D Mini
#define BOARD_SMOOTHIEBOARD 1757 // Smoothieboard
// //
// SAM3X8E ARM Cortex M3 // SAM3X8E ARM Cortex M3

View file

@ -24,20 +24,21 @@
#include "../inc/MarlinConfigPre.h" #include "../inc/MarlinConfigPre.h"
#define A4988 0x001 #define A4988 0x001
#define DRV8825 0x002 #define A5984 0x002
#define LV8729 0x003 #define DRV8825 0x003
#define L6470 0x104 #define LV8729 0x004
#define TB6560 0x005 #define L6470 0x105
#define TB6600 0x006 #define TB6560 0x006
#define TMC2100 0x007 #define TB6600 0x007
#define TMC2130 0x108 #define TMC2100 0x008
#define TMC2130_STANDALONE 0x008 #define TMC2130 0x109
#define TMC2208 0x109 #define TMC2130_STANDALONE 0x009
#define TMC2208_STANDALONE 0x009 #define TMC2208 0x10A
#define TMC26X 0x10A #define TMC2208_STANDALONE 0x00A
#define TMC26X_STANDALONE 0x00A #define TMC26X 0x10B
#define TMC2660 0x10B #define TMC26X_STANDALONE 0x00B
#define TMC2660_STANDALONE 0x00B #define TMC2660 0x10C
#define TMC2660_STANDALONE 0x00C
#define AXIS_DRIVER_TYPE(A,T) ( defined(A##_DRIVER_TYPE) && (A##_DRIVER_TYPE == T) ) #define AXIS_DRIVER_TYPE(A,T) ( defined(A##_DRIVER_TYPE) && (A##_DRIVER_TYPE == T) )

View file

@ -452,6 +452,8 @@
#define MINIMUM_STEPPER_DIR_DELAY 650 #define MINIMUM_STEPPER_DIR_DELAY 650
#elif HAS_DRIVER(LV8729) #elif HAS_DRIVER(LV8729)
#define MINIMUM_STEPPER_DIR_DELAY 500 #define MINIMUM_STEPPER_DIR_DELAY 500
#elif HAS_DRIVER(A5984)
#define MINIMUM_STEPPER_DIR_DELAY 400
#elif HAS_DRIVER(A4988) #elif HAS_DRIVER(A4988)
#define MINIMUM_STEPPER_DIR_DELAY 200 #define MINIMUM_STEPPER_DIR_DELAY 200
#elif HAS_TRINAMIC || HAS_DRIVER(TMC2130_STANDALONE) || HAS_DRIVER(TMC2208_STANDALONE) || HAS_DRIVER(TMC26X_STANDALONE) || HAS_DRIVER(TMC2660_STANDALONE) #elif HAS_TRINAMIC || HAS_DRIVER(TMC2130_STANDALONE) || HAS_DRIVER(TMC2208_STANDALONE) || HAS_DRIVER(TMC26X_STANDALONE) || HAS_DRIVER(TMC2660_STANDALONE)
@ -468,7 +470,7 @@
#define MINIMUM_STEPPER_PULSE 3 #define MINIMUM_STEPPER_PULSE 3
#elif HAS_DRIVER(DRV8825) #elif HAS_DRIVER(DRV8825)
#define MINIMUM_STEPPER_PULSE 2 #define MINIMUM_STEPPER_PULSE 2
#elif HAS_DRIVER(A4988) || HAS_DRIVER(LV8729) #elif HAS_DRIVER(A4988) || HAS_DRIVER(LV8729) || HAS_DRIVER(A5984)
#define MINIMUM_STEPPER_PULSE 1 #define MINIMUM_STEPPER_PULSE 1
#elif HAS_TRINAMIC || HAS_DRIVER(TMC2130_STANDALONE) || HAS_DRIVER(TMC2208_STANDALONE) || HAS_DRIVER(TMC26X_STANDALONE) || HAS_DRIVER(TMC2660_STANDALONE) #elif HAS_TRINAMIC || HAS_DRIVER(TMC2130_STANDALONE) || HAS_DRIVER(TMC2208_STANDALONE) || HAS_DRIVER(TMC26X_STANDALONE) || HAS_DRIVER(TMC2660_STANDALONE)
#define MINIMUM_STEPPER_PULSE 0 #define MINIMUM_STEPPER_PULSE 0

View file

@ -298,6 +298,8 @@
#include "pins_COHESION3D_REMIX.h" // LPC176x env:LPC1768 env:LPC1768_debug_and_upload #include "pins_COHESION3D_REMIX.h" // LPC176x env:LPC1768 env:LPC1768_debug_and_upload
#elif MB(COHESION3D_MINI) #elif MB(COHESION3D_MINI)
#include "pins_COHESION3D_MINI.h" // LPC176x env:LPC1768 env:LPC1768_debug_and_upload #include "pins_COHESION3D_MINI.h" // LPC176x env:LPC1768 env:LPC1768_debug_and_upload
#elif MB(SMOOTHIEBOARD)
#include "pins_SMOOTHIEBOARD.h" // LPC176x env:LPC1768 env:LPC1768_debug_and_upload
// //
// Other 32-bit Boards // Other 32-bit Boards

View file

@ -0,0 +1,115 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
* Copyright (C) 2017 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/>.
*
*/
/**
* Smoothieboard pin assignments
*/
#ifndef TARGET_LPC1768
#error "Oops! Make sure you have the LPC1768 environment selected in your IDE."
#endif
#ifndef BOARD_NAME
#define BOARD_NAME "Smoothieboard"
#define DEFAULT_WEBSITE_URL "http://smoothieware.org/smoothieboard"
#endif
#undef F_CPU
#define F_CPU 120000000
//
// Servos
//
#define SERVO0_PIN P1_23
//
// Limit Switches
//
#define X_MIN_PIN P1_24
#define X_MAX_PIN P1_25
#define Y_MIN_PIN P1_26
#define Y_MAX_PIN P1_27
#define Z_MIN_PIN P1_28
#define Z_MAX_PIN P1_29
//
// Steppers
//
#define X_STEP_PIN P2_00
#define X_DIR_PIN P0_05
#define X_ENABLE_PIN P0_04
#define Y_STEP_PIN P2_01
#define Y_DIR_PIN P0_11
#define Y_ENABLE_PIN P0_10
#define Z_STEP_PIN P2_02
#define Z_DIR_PIN P0_20
#define Z_ENABLE_PIN P0_19
#define E0_STEP_PIN P2_03
#define E0_DIR_PIN P0_22
#define E0_ENABLE_PIN P0_21
#define E1_STEP_PIN P2_08
#define E1_DIR_PIN P2_13
#define E1_ENABLE_PIN P4_29
//
// Temperature Sensors
// 3.3V max when defined as an analog input
//
#define TEMP_0_PIN 0 // P0.23 (T1)
#define TEMP_BED_PIN 1 // P0.24 (T2)
#define TEMP_1_PIN 2 // P0.25 (T3)
#define TEMP_2_PIN 3 // P0.26 (T4)
//
// Heaters / Fans
//
#define HEATER_BED_PIN P2_05
#define HEATER_0_PIN P2_07
#define HEATER_1_PIN P1_23
#ifndef FAN_PIN
#define FAN_PIN P2_06
#endif
#define FAN1_PIN P2_04
//
// Display
//
#if ENABLED(VIKI2) || ENABLED(miniVIKI)
#define BEEPER_PIN P1_31
//#define DOGLCD_A0 P2_06
#define DOGLCD_CS P0_16
#define BTN_EN1 P3_25
#define BTN_EN2 P3_26
#define BTN_ENC P2_11
#define SD_DETECT_PIN P1_18
#define SDSS P1_21
#define STAT_LED_RED_PIN P1_19
#define STAT_LED_BLUE_PIN P1_20
#endif