diff --git a/g2core/board/ArduinoDue/gShield-pinout.h b/g2core/board/ArduinoDue/gShield-pinout.h new file mode 100644 index 00000000..28267af2 --- /dev/null +++ b/g2core/board/ArduinoDue/gShield-pinout.h @@ -0,0 +1,275 @@ +/* + * motate_pin_assignments.h - pin assignments for g2 v9 boards + * This file is part of the g2core project + * + * Copyright (c) 2013 - 2016 Robert Giseburt + * Copyright (c) 2013 - 2016 Alden S. Hart Jr. + * + * This file is part of the Motate Library. + * + * This file ("the software") is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License, version 2 as published by the + * Free Software Foundation. You should have received a copy of the GNU General Public + * License, version 2 along with the software. If not, see . + * + * As a special exception, you may use this file as part of a software library without + * restriction. Specifically, if other files instantiate templates or use macros or + * inline functions from this file, or you compile this file and link it with other + * files to produce an executable, this file does not by itself cause the resulting + * executable to be covered by the GNU General Public License. This exception does not + * however invalidate any other reasons why the executable file might be covered by the + * GNU General Public License. + * + * THE SOFTWARE IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT WITHOUT ANY + * WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT + * SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF + * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + */ + +#ifndef gShield_pinout_h +#define gShield_pinout_h + +#include + +// NOTE: This is a terrible example of a *-pinout.h file! +// This one is assigned backward in order to match the numbering on the Due. +// When making your own board, please use one of the other boards as an example +// of how to assign names to the pins. + +// We don't have all of the inputs, so we don't define them. +#define INPUT1_AVAILABLE 1 +#define INPUT2_AVAILABLE 1 +#define INPUT3_AVAILABLE 1 +#define INPUT4_AVAILABLE 1 +#define INPUT5_AVAILABLE 1 +#define INPUT6_AVAILABLE 1 +#define INPUT7_AVAILABLE 1 +#define INPUT8_AVAILABLE 1 +#define INPUT9_AVAILABLE 1 +#define INPUT10_AVAILABLE 1 +#define INPUT11_AVAILABLE 1 +#define INPUT12_AVAILABLE 1 +#define INPUT13_AVAILABLE 0 + +#define ADC0_AVAILABLE 0 +#define ADC1_AVAILABLE 0 +#define ADC2_AVAILABLE 0 +#define ADC3_AVAILABLE 0 + +#define XIO_HAS_USB 1 +#define XIO_HAS_UART 0 +#define XIO_HAS_SPI 0 +#define XIO_HAS_I2C 0 + +#define TEMPERATURE_OUTPUT_ON 0 + +// Some pins, if the PWM capability is turned on, it will cause timer conflicts. +// So we have to explicity enable them as PWM pins. +// Generated with: +// perl -e 'for($i=1;$i<14;$i++) { print "#define OUTPUT${i}_PWM 0\n";}' +#define OUTPUT1_PWM 0 +#define OUTPUT2_PWM 0 +#define OUTPUT3_PWM 0 +#define OUTPUT4_PWM 0 +#define OUTPUT5_PWM 0 +#define OUTPUT6_PWM 0 +#define OUTPUT7_PWM 0 +#define OUTPUT8_PWM 0 +#define OUTPUT9_PWM 0 +#define OUTPUT10_PWM 0 +#define OUTPUT11_PWM 0 +#define OUTPUT12_PWM 0 +#define OUTPUT13_PWM 0 + +namespace Motate { + +// NOT ALL OF THESE PINS ARE ON ALL PLATFORMS +// Undefined pins will be equivalent to Motate::NullPin, and return 1 for Pin<>::isNull(); + +pin_number kSerial_RXPinNumber = 0; +pin_number kSerial_TXPinNumber = 1; +// pin_number kSerial_RTSPinNumber = 8; // added later +// pin_number kSerial_CTSPinNumber = 9; // added later + +pin_number kSerial0_RX = 0; +pin_number kSerial0_TX = 1; +// pin_number kSerial0_RTS = 8; // added later +// pin_number kSerial0_CTS = 9; // added later + +pin_number kI2C_SDAPinNumber = 20; +pin_number kI2C_SCLPinNumber = 21; + +pin_number kI2C0_SDAPinNumber = 20; +pin_number kI2C0_SCLPinNumber = 21; + +pin_number kSPI_SCKPinNumber = 76; +pin_number kSPI_MISOPinNumber = 74; +pin_number kSPI_MOSIPinNumber = 75; + +pin_number kSPI0_SCKPinNumber = 76; +pin_number kSPI0_MISOPinNumber = 74; +pin_number kSPI0_MOSIPinNumber = 75; + +// pin_number kX_StepPinNumber = 53; +// pin_number kX_DirPinNumber = 52; +// pin_number kX_EnablePinNumber = -1; +// +// pin_number kY_StepPinNumber = 51; +// pin_number kY_DirPinNumber = 50; +// pin_number kY_EnablePinNumber = -1; +// +// pin_number kZ_StepPinNumber = 49; +// pin_number kZ_DirPinNumber = 48; +// pin_number kZ_EnablePinNumber = -1; + +pin_number kDebug1_PinNumber = 49; +pin_number kDebug2_PinNumber = 47; +pin_number kDebug3_PinNumber = 45; +pin_number kDebug4_PinNumber = -1; + +pin_number kKinen_SyncPinNumber = 53; + +pin_number kSocket1_SPISlaveSelectPinNumber = -1; // 10; +pin_number kSocket1_InterruptPinNumber = -1; +pin_number kSocket1_StepPinNumber = 2; +pin_number kSocket1_DirPinNumber = 5; +pin_number kSocket1_EnablePinNumber = 22; +pin_number kSocket1_Microstep_0PinNumber = 23; +pin_number kSocket1_Microstep_1PinNumber = 24; +pin_number kSocket1_Microstep_2PinNumber = -1; +pin_number kSocket1_VrefPinNumber = -1; // 34; //PWMTimer<0> + +pin_number kSocket2_SPISlaveSelectPinNumber = 65; +pin_number kSocket2_InterruptPinNumber = -1; +pin_number kSocket2_StepPinNumber = 3; +pin_number kSocket2_DirPinNumber = 6; +pin_number kSocket2_EnablePinNumber = 25; +pin_number kSocket2_Microstep_0PinNumber = 26; +pin_number kSocket2_Microstep_1PinNumber = 27; +pin_number kSocket2_Microstep_2PinNumber = -1; +pin_number kSocket2_VrefPinNumber = -1; // 62; //PWMTimer<1> + +pin_number kSocket3_SPISlaveSelectPinNumber = 52; +pin_number kSocket3_InterruptPinNumber = -1; +pin_number kSocket3_StepPinNumber = 4; +pin_number kSocket3_DirPinNumber = 7; +pin_number kSocket3_EnablePinNumber = 28; +pin_number kSocket3_Microstep_0PinNumber = 29; +pin_number kSocket3_Microstep_1PinNumber = 30; +pin_number kSocket3_Microstep_2PinNumber = -1; +pin_number kSocket3_VrefPinNumber = -1; // 63; //PWMTimer<2> + +pin_number kSocket4_SPISlaveSelectPinNumber = 77; +pin_number kSocket4_InterruptPinNumber = -1; +pin_number kSocket4_StepPinNumber = 31; +pin_number kSocket4_DirPinNumber = 32; +pin_number kSocket4_EnablePinNumber = 33; +pin_number kSocket4_Microstep_0PinNumber = 35; +pin_number kSocket4_Microstep_1PinNumber = 36; +pin_number kSocket4_Microstep_2PinNumber = -1; +pin_number kSocket4_VrefPinNumber = -1; // 64; //PWMTimer<3> + +pin_number kSocket5_SPISlaveSelectPinNumber = 78; +pin_number kSocket5_InterruptPinNumber = -1; +pin_number kSocket5_StepPinNumber = 37; +pin_number kSocket5_DirPinNumber = 38; +pin_number kSocket5_EnablePinNumber = 39; +pin_number kSocket5_Microstep_0PinNumber = 40; +pin_number kSocket5_Microstep_1PinNumber = 41; +pin_number kSocket5_Microstep_2PinNumber = -1; +pin_number kSocket5_VrefPinNumber = -1; // 66; //PWMTimer<3> + +pin_number kSocket6_SPISlaveSelectPinNumber = 50; +pin_number kSocket6_InterruptPinNumber = -1; +pin_number kSocket6_StepPinNumber = 42; +pin_number kSocket6_DirPinNumber = 43; +pin_number kSocket6_EnablePinNumber = 44; +pin_number kSocket6_Microstep_0PinNumber = -1; // 45; +pin_number kSocket6_Microstep_1PinNumber = 46; +pin_number kSocket6_Microstep_2PinNumber = -1; +pin_number kSocket6_VrefPinNumber = -1; // 67; //PWMTimer<0> + + +pin_number kInput1_PinNumber = 14; +pin_number kInput2_PinNumber = 15; +pin_number kInput3_PinNumber = 16; +pin_number kInput4_PinNumber = 17; +pin_number kInput5_PinNumber = 18; +pin_number kInput6_PinNumber = 19; + +pin_number kInput7_PinNumber = 58; +pin_number kInput8_PinNumber = 59; +pin_number kInput9_PinNumber = 60; +pin_number kInput10_PinNumber = 61; +pin_number kInput11_PinNumber = 65; +pin_number kInput12_PinNumber = 51; + +pin_number kSpindle_EnablePinNumber = 12; +pin_number kSpindle_DirPinNumber = -1; // 13; +pin_number kSpindle_PwmPinNumber = 11; +pin_number kSpindle_Pwm2PinNumber = 9; +pin_number kCoolant_EnablePinNumber = 57; + +pin_number kSD_CardDetectPinNumber = -1; +pin_number kInterlock_InPinNumber = -1; +pin_number kOutputSAFE_PinNumber = -1; // SAFE signal + +pin_number kLED_USBRXPinNumber = 72; +pin_number kLED_USBTXPinNumber = 73; + + +pin_number kOutput1_PinNumber = -1; // DO_1: Extruder1_PWM +pin_number kOutput2_PinNumber = -1; // DO_2: Extruder2_PWM +pin_number kOutput3_PinNumber = -1; // DO_3: Fan1A_PWM +pin_number kOutput4_PinNumber = -1; // DO_4: Fan1B_PWM +pin_number kOutput5_PinNumber = -1; // DO_5: Fan2A_PWM + +pin_number kOutput6_PinNumber = -1; // 135; // See Spindle Enable +pin_number kOutput7_PinNumber = -1; // 136; // See Spindle Direction +pin_number kOutput8_PinNumber = -1; // 137; // See Coolant Enable +pin_number kOutput9_PinNumber = -1; // +pin_number kOutput10_PinNumber = -1; // DO_10: Fan2B_PWM + +pin_number kOutput11_PinNumber = -1; // DO_11: Heted Bed FET +pin_number kOutput12_PinNumber = -1; // DO_12: Indicator_LED +pin_number kOutput13_PinNumber = -1; // 142; +pin_number kOutput14_PinNumber = -1; // 143; +pin_number kOutput15_PinNumber = -1; // 144; +pin_number kOutput16_PinNumber = -1; // 145; + +pin_number kADC0_PinNumber = -1; // Heated bed thermistor ADC +pin_number kADC1_PinNumber = -1; // Extruder1_ADC +pin_number kADC2_PinNumber = -1; // Extruder2_ADC +pin_number kADC3_PinNumber = -1; // 153; +pin_number kADC4_PinNumber = -1; // 154; +pin_number kADC5_PinNumber = -1; // 155; +pin_number kADC6_PinNumber = -1; // 156; +pin_number kADC7_PinNumber = -1; // 157; +pin_number kADC8_PinNumber = -1; // 158; +pin_number kADC9_PinNumber = -1; // 159; +pin_number kADC10_PinNumber = -1; // 160; +pin_number kADC11_PinNumber = -1; // 161; +pin_number kADC12_PinNumber = -1; // 162; +pin_number kADC13_PinNumber = -1; // Not physially pinned out +pin_number kADC14_PinNumber = -1; // Not physially pinned out + + +// GRBL / gShield compatibility pins -- Due board ONLY + +pin_number kGRBL_ResetPinNumber = 54; +pin_number kGRBL_FeedHoldPinNumber = 55; +pin_number kGRBL_CycleStartPinNumber = 56; + +pin_number kGRBL_CommonEnablePinNumber = 8; + +/** NOTE: When adding pin definitions here, they must be + * added to ALL board pin assignment files, even if + * they are defined as -1. + **/ + +} // namespace Motate + +#endif \ No newline at end of file