/* ******************************************************************************* * Copyright (c) 2017, STMicroelectronics * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. Neither the name of STMicroelectronics nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ******************************************************************************* */ #ifndef _VARIANT_ARDUINO_STM32_ #define _VARIANT_ARDUINO_STM32_ /*---------------------------------------------------------------------------- * Headers *----------------------------------------------------------------------------*/ #ifdef __cplusplus extern "C" { #endif // __cplusplus /*---------------------------------------------------------------------------- * Pins *----------------------------------------------------------------------------*/ #if defined(ARDUINO_STEVAL) /*---------------------------------------------------------------------------- * Pins *----------------------------------------------------------------------------*/ // USART1_MAIN #define PA9 0 //TX #define PA10 1 //RX // WIFI (USART2) #define PD3 2 // CTS #define PD4 3 // RTS #define PD5 4 // TX #define PD6 5 // RX #define PB5 6 // WIFI_WAKEUP #define PE11 7 // WIFI_RESET #define PE12 8 // WIFI_BOOT // STATUS_LED #define PE1 9 // STATUS_LED // SPI USER #define PB12 10 // SPI_CS #define PB15 11 // SPI_MOSI #define PB14 12 // SPI_MISO #define PB13 13 // SPI_SCK // I2C USER #define PB7 14 // SDA #define PB6 15 // SCL // SPI #define PA4 16 // SPI_CS #define PA5 17 // SPI_SCK #define PA6 18 // SPI_MISO #define PA7 19 // SPI_MOSI // JTAG #define PA13 20 // JTAG_TMS/SWDIO #define PA14 21 // JTAG_TCK/SWCLK #define PB3 22 // JTAG_TDO/SWO // SDCARD #define PC8 23 // SDIO_D0 #define PC9 24 // SDIO_D1 #define PA15 25 // SD_CARD_DETECT #define PC10 26 // SDIO_D2 #define PC11 27 // SDIO_D3 #define PC12 28 // SDIO_CK #define PD2 29 // SDIO_CMD // OTG #define PA11 30 //OTG_DM #define PA12 31 //OTG_DP // IR/PROBE #define PD1 32 //IR_OUT #define PC1 33 //IR_ON // USER_PINS #define PD7 34 // USER3 #define PB9 35 // USER1 #define PE0 36 // USER2 #define PB4 37 // USER4 // USERKET #define PE7 38 // USER_BUTTON // ENDSTOPS #define PD8 39 // X_STOP #define PD9 40 // Y_STOP #define PD10 41 // Z_STOP #define PD11 42 // U_STOP #define PA8 43 // V_STOP #define PD0 44 // W_STOP // HEATERS #define PD13 45 // BED_HEAT_2 #define PD14 46 // BED_HEAT_1 #define PD15 47 // BED_HEAT_3 #define PC7 48 // E1_HEAT_PWM #define PB0 49 // E2_HEAT_PWM #define PB1 50 // E3_HEAT_PWM // THERMISTOR #define PC2 51 // BED_THERMISTOR_1 #define PC3 52 // BED_THERMISTOR_2 #define PA3 53 // BED_THERMISTOR_3 #define PA0 54 // E1_THERMISTOR #define PA1 55 // E2_THERMISTOR #define PA2 56 // E3_THERMISTOR // FANS #define PC4 57 // E1_FAN #define PC5 58 // E2_FAN #define PE8 59 // E3_FAN // X_MOTOR #define PE13 60 // X_RESET #define PE14 61 // X_PWM #define PE15 62 // X_DIR // Y_MOTOR #define PE10 63 // Y_RESET #define PB10 64 // Y_PWM #define PE9 65 // Y_DIR // Z_MOTOR #define PC15 66 // Z_RESET #define PC6 67 // Z_PWM #define PC0 68 // Z_DIR // E1_MOTOR #define PC14 69 // E1_RESET #define PC13 70 // E1_DIR #define PD12 71 // E1_PWM // E2_MOTOR #define PE4 72 // E2_RESET #define PE5 73 // E2_PWM #define PE6 74 // E2_DIR // E3_MOTOR #define PE3 75 // E3_RESET #define PE2 76 // E3_DIR #define PB8 77 // E3_PWM // This must be a literal #define NUM_DIGITAL_PINS 78 // This must be a literal with a value less than or equal to to MAX_ANALOG_INPUTS #define NUM_ANALOG_INPUTS 6 #define NUM_ANALOG_FIRST 51 // On-board LED pin number #define LED_BUILTIN PE1 #define LED_GREEN LED_BUILTIN // On-board user button #define USER_BTN PE7 // UART Definitions #define SERIAL_UART_INSTANCE 1 // Connected to ST-Link //#define SERIAL_UART_INSTANCE 2 // Connected to WIFI // Default pin used for 'Serial' instance (ex: ST-Link) // Mandatory for Firmata #if SERIAL_UART_INSTANCE == 1 // ST-Link & J23 #define PIN_SERIAL_RX PA10 #define PIN_SERIAL_TX PA9 #elif SERIAL_UART_INSTANCE == 2 // WIFI interface #define PIN_SERIAL2_RX PD6 #define PIN_SERIAL2_TX PD5 #else #error'Invalid setting for SERIAL_UART_INSTANCE' #endif // Timer Definitions #define TIMER_SERVO TIM4 // TIMER_SERVO must be defined in this file #define TIMER_TONE TIM5 // TIMER_TONE must be defined in this file /* SD detect signal */ /* * By default, R67 is not provided, so SD card detect is not used. * Note: SD CD (pin 16 of expansion connector J23) can be connected * to GND in order to be able to use SD_DETECT_PIN */ /*#define SD_DETECT_PIN PA15*/ /* HAL configuration */ #define HSE_VALUE 25000000U /* Extra HAL modules */ #define HAL_SD_MODULE_ENABLED #endif #ifdef __cplusplus } // extern "C" #endif /*---------------------------------------------------------------------------- * Arduino objects - C++ only *----------------------------------------------------------------------------*/ #ifdef __cplusplus // These serial port names are intended to allow libraries and architecture-neutral // sketches to automatically default to the correct port name for a particular type // of use. For example, a GPS module would normally connect to SERIAL_PORT_HARDWARE_OPEN, // the first hardware serial port whose RX/TX pins are not dedicated to another use. // // SERIAL_PORT_MONITOR Port which normally prints to the Arduino Serial Monitor // // SERIAL_PORT_USBVIRTUAL Port which is USB virtual serial // // SERIAL_PORT_LINUXBRIDGE Port which connects to a Linux system via Bridge library // // SERIAL_PORT_HARDWARE Hardware serial port, physical RX & TX pins. // // SERIAL_PORT_HARDWARE_OPEN Hardware serial ports which are open for use. Their RX & TX // pins are NOT connected to anything by default. #define SERIAL_PORT_MONITOR Serial #define SERIAL_PORT_HARDWARE Serial1 #endif #endif // _VARIANT_ARDUINO_STM32_ // PA0 54 // E1_THERMISTOR // PA1 55 // E2_THERMISTOR // PA2 56 // E3_THERMISTOR // PA3 53 // BED_THERMISTOR_3 // PA4 16 // SPI_CS // PA5 17 // SPI_SCK // PA6 18 // SPI_MISO // PA7 19 // SPI_MOSI // PA8 43 // V_STOP // PA9 0 //TX // PA10 1 //RX // PA11 30 //OTG_DM // PA12 31 //OTG_DP // PA13 20 // JTAG_TMS/SWDIO // PA14 21 // JTAG_TCK/SWCLK // PA15 25 // SD_CARD_DETECT // PB0 49 // E2_HEAT_PWM // PB1 50 // E3_HEAT_PWM // PB3 22 // JTAG_TDO/SWO // PB4 37 // USER4 // PB5 6 // WIFI_WAKEUP // PB6 15 // SCL // PB7 14 // SDA // PB8 77 // E3_PWM // PB9 35 // USER1 // PB10 64 // Y_PWM // PB12 10 // SPI_CS // PB13 13 // SPI_SCK // PB14 12 // SPI_MISO // PB15 11 // SPI_MOSI // PC0 68 // Z_DIR // PC1 33 //IR_ON // PC2 51 // BED_THERMISTOR_1 // PC3 52 // BED_THERMISTOR_2 // PC4 57 // E1_FAN // PC5 58 // E2_FAN // PC6 67 // Z_PWM // PC7 48 // E1_HEAT_PWM // PC8 23 // SDIO_D0 // PC9 24 // SDIO_D1 // PC10 26 // SDIO_D2 // PC11 27 // SDIO_D3 // PC12 28 // SDIO_CK // PC13 70 // E1_DIR // PC14 69 // E1_RESET // PC15 66 // Z_RESET // PD0 44 // W_STOP // PD1 32 //IR_OUT // PD2 29 // SDIO_CMD // PD3 2 // CTS // PD4 3 // RTS // PD5 4 // TX // PD6 5 // RX // PD7 34 // USER3 // PD8 39 // X_STOP // PD9 40 // Y_STOP // PD10 41 // Z_STOP // PD11 42 // U_STOP // PD12 71 // E1_PWM // PD13 45 // BED_HEAT_2 // PD14 46 // BED_HEAT_1 // PD15 47 // BED_HEAT_3 // PE0 36 // USER2 // PE1 9 // STATUS_LED // PE2 76 // E3_DIR // PE3 75 // E3_RESET // PE4 72 // E2_RESET // PE5 73 // E2_PWM // PE6 74 // E2_DIR // PE7 38 // USER_BUTTON // PE8 59 // E3_FAN // PE9 65 // Y_DIR // PE10 63 // Y_RESET // PE11 7 // WIFI_RESET // PE12 8 // WIFI_BOOT // PE13 60 // X_RESET // PE14 61 // X_PWM // PE15 62 // X_DIR