diff --git a/config/board.cnc-shield-v3-nucleo.h b/config/board.cnc-shield-v3-nucleo.h new file mode 100644 index 0000000..d91576f --- /dev/null +++ b/config/board.cnc-shield-v3-nucleo.h @@ -0,0 +1,316 @@ + +/***************************************************************************\ +* * +* 1. CPU * +* * +\***************************************************************************/ + +/** \def CPU_TYPE + CPU types a user should be able to choose from in configtool. All + commented out. +*/ +//#define CPU_TYPE stm32f411 + +/** \def CPU + CPU actually present on the board. +*/ +#define CPU stm32f411 + +/** \def F_CPU_OPT + CPU clock frequencies a user should be able to choose from in configtool. + All commented out. +*/ +//#define F_CPU_OPT 16000000UL + +/** \def F_CPU + Actual CPU clock rate. #ifndef required for Arduino compatibility. +*/ +#ifndef F_CPU +#define F_CPU 16000000UL +#endif + +/** \def MOTHERBOARD + This is the motherboard, as opposed to the extruder. See extruder/ directory + for GEN3 extruder firmware. +*/ +#define MOTHERBOARD + + +/***************************************************************************\ +* * +* 2. PINOUTS * +* * +\***************************************************************************/ + +//#define TX_ENABLE_PIN xxxx +//#define RX_ENABLE_PIN xxxx + +#define X_STEP_PIN PA_10 +#define X_DIR_PIN PB_4 +#define X_MIN_PIN PC_7 +//#define X_MAX_PIN DIO21 +//#define X_ENABLE_PIN PA_9 +//#define X_INVERT_DIR +#define X_INVERT_MIN +//#define X_INVERT_MAX +//#define X_INVERT_ENABLE + +#define Y_STEP_PIN PB_3 +#define Y_DIR_PIN PB_10 +#define Y_MIN_PIN PB_6 +//#define Y_MAX_PIN DIO26 +//#define Y_ENABLE_PIN PA_9 +//#define Y_INVERT_DIR +#define Y_INVERT_MIN +//#define Y_INVERT_MAX +//#define Y_INVERT_ENABLE + +// #define Z_STEP_PIN PB_5 +// #define Z_DIR_PIN PA_8 +//#define Z_MIN_PIN PA_7 +//#define Z_MAX_PIN DIO31 +//#define Z_ENABLE_PIN PA_9 +//#define Z_INVERT_DIR +#define Z_INVERT_MIN +//#define Z_INVERT_MAX +//#define Z_INVERT_ENABLE + +#define E_STEP_PIN PA_6 +#define E_DIR_PIN PA_5 +//#define E_ENABLE_PIN PA_9 +//#define E_INVERT_DIR +//#define E_INVERT_ENABLE + +//#define PS_ON_PIN DIO14 +//#define PS_INVERT_ON +//#define PS_MOSFET_PIN xxxx +#define STEPPER_ENABLE_PIN PA_9 +//#define STEPPER_INVERT_ENABLE + +/** \def DEBUG_LED_PIN + + Enable flashing of a LED during motor stepping. + + Disabled by default. Uncommenting this makes the binary a few bytes larger + and adds a few cycles to the step timing interrrupt in timer.c. Also used + for precision profiling (profiling works even without actually having such + a LED in hardware), see + http://reprap.org/wiki/Teacup_Firmware#Doing_precision_profiling +*/ +//#define DEBUG_LED_PIN DIO21 + +/** \def SD_CARD_SELECT_PIN + + Chip Select pin of the SD card. + + SD cards work over SPI and have a Chip Select or Slave Select (SS) pin. + Choose this pin according to where on the board your SD card adapter is + connected. Disabling this pin also disables SD card support and makes the + firmware binary about 4.5 kB smaller. + + Connecting a device to SPI actually uses 4 signal lines, the other three + pins are choosen by Teacup automatically. +*/ +//#define SD_CARD_SELECT_PIN xxxx + +/** \def MCP3008_SELECT_PIN + + Chip Select pin of the MCP3008 ADC. + + MCP3008/4 analog-digital converter works over SPI and has a Chip Select pin. + Choose this pin according to where the MCP3008 is connected. Setting this + pin is required only if at least one temperature sensor of type MCP3008 is + configured. Else it's ignored. +*/ +//#define MCP3008_SELECT_PIN xxxx + + +/***************************************************************************\ +* * +* 3. TEMPERATURE SENSORS * +* * +\***************************************************************************/ + +#ifndef DEFINE_TEMP_SENSOR + #define DEFINE_TEMP_SENSOR(...) +#endif + +/** \def TEMP_MAX6675 TEMP_THERMISTOR TEMP_AD595 TEMP_PT100 TEMP_INTERCOM + \def TEMP_MCP3008 + + Which temperature sensor types are you using? Leave all used ones + uncommented, comment out all others to save binary size and enhance + performance. +*/ +//#define TEMP_MAX6675 +#define TEMP_THERMISTOR +//#define TEMP_AD595 +//#define TEMP_PT100 +//#define TEMP_INTERCOM +//#define TEMP_MCP3008 + +/** \def TEMP_SENSOR_PIN + Temperature sensor pins a user should be able to choose from in configtool. + All commented out. +*/ +//#define TEMP_SENSOR_PIN AIO1 +//#define TEMP_SENSOR_PIN AIO2 +//#define TEMP_SENSOR_PIN AIO3 + +/** \def DEFINE_TEMP_SENSOR + Define your temperature sensors here. One line for each sensor, only + limited by the number of available ATmega pins. + + Name must match the name of the corresponding heater. If a heater "extruder" + exists, a temperature sensor of that name has to exist as well. Same for + heater "bed". There can be one sensor without corresponding heater, name it + "noheater". + + Types are same as TEMP_ list above - TT_MAX6675, TT_THERMISTOR, TT_AD595, + TT_PT100, TT_INTERCOM. See list in temp.c. + + The "additional" field is used for TT_THERMISTOR only. It defines the + name of the table(s) in thermistortable.h to use. This name is arbitrary, + often used names include THERMISTOR_EXTRUDER and THERMISTOR_BED. Also, + several sensors can share the same table, which saves binary size. + + For a GEN3 set temp_type to TT_INTERCOM and temp_pin to AIO0. The pin + won't be used in this case. +*/ +//DEFINE_TEMP_SENSORS_START +// name type pin additional +DEFINE_TEMP_SENSOR(extruder, TT_THERMISTOR, PB_0, THERMISTOR_EXTRUDER) + +// Beta algorithm r0 beta r2 vadc +// Steinhart-Hart rp t0 r0 t1 r1 t2 r2 +//TEMP_TABLE EXTRUDER (100000, 4092, 4700, 5.0) +//DEFINE_TEMP_SENSORS_END + + +/***************************************************************************\ +* * +* 4. HEATERS * +* * +\***************************************************************************/ + +#ifndef DEFINE_HEATER + #define DEFINE_HEATER(...) +#endif + +/** \def HEATER_PIN + Heater pins a user should be able to choose from in configtool. All + commented out. +*/ +//#define HEATER_PIN AIO2 + +/** \def DEFINE_HEATER + Define your heaters and devices here. + + To attach a heater to a temp sensor above, simply use exactly the same + name - copy+paste is your friend. Some common names are 'extruder', + 'bed', 'fan', 'motor', ... names with special meaning can be found + in gcode_process.c. Currently, these are: + HEATER_extruder (M104) + HEATER_bed (M140) + HEATER_fan (M106) + + Devices don't neccessarily have a temperature sensor, e.g. fans or + milling spindles. Operate such devices by setting their power (M106), + instead of setting their temperature (M104). + + Also note, the index of a heater (M106 P#) can differ from the index of + its attached temperature sensor (M104 P#) in case sensor-less devices + are defined or the order of the definitions differs. The first defined + device has the index 0 (zero). + + Set 'invert' to 0 for normal heaters. Setting it to 1 inverts the pin signal + for this pin, e.g. for a MOSFET with a driver. + + Set 'pwm' to ... + 1 for using PWM on a PWM-able pin and on/off on other pins. + 0 for using on/off on a PWM-able pin, too. + + Using PWM usually gives smoother temperature control but can conflict + with slow switches, like solid state relays. PWM frequency can be + influenced globally with FAST_PWM, see below. +*/ +//DEFINE_HEATERS_START +// name pin invert pwm +DEFINE_HEATER(extruder, PA_5, 0, 10000) + +#define HEATER_EXTRUDER HEATER_extruder +//DEFINE_HEATERS_END + + +/***************************************************************************\ +* * +* 5. COMMUNICATION OPTIONS * +* * +\***************************************************************************/ + +/** \def BAUD + Baud rate for the serial RS232 protocol connection to the host. Usually + 115200, other common values are 19200, 38400 or 57600. Ignored when USB_SERIAL + is defined. +*/ +#define BAUD 115200 + +/** \def XONXOFF + Xon/Xoff flow control. + + Redundant when using RepRap Host for sending G-code, but mandatory when + sending G-code files with a plain terminal emulator, like GtkTerm (Linux), + CoolTerm (Mac) or HyperTerminal (Windows). +*/ +//#define XONXOFF + +/** \def USB_SERIAL + Define this for using USB instead of the serial RS232 protocol. Works on + USB-equipped ATmegas, like the ATmega32U4, only. +*/ +//#define USB_SERIAL + + +/***************************************************************************\ +* * +* 6. DISPLAY SUPPORT * +* * +\***************************************************************************/ + +/** \def DISPLAY_BUS_4BIT DISPLAY_BUS_8BIT DISPLAY_BUS_I2C DISPLAY_BUS_SPI + + The bus used to connect the display to the controller. This is a property + of the display. With most displays there can be only one correct choice. + + Comment in the one in use, comment out all others. If there is no display, + comment out all of them to remove display code for better performance. +*/ +//#define DISPLAY_BUS_4BIT +//#define DISPLAY_BUS_8BIT +//#define DISPLAY_BUS_I2C +//#define DISPLAY_BUS_SPI + +/** \def DISPLAY_RS_PIN DISPLAY_RW_PIN DISPLAY_E_PIN + \def DISPLAY_D4_PIN DISPLAY_D5_PIN DISPLAY_D6_PIN DISPLAY_D7_PIN + + Pins necessary for the 4-bit parallel display bus. Taken into account with + DISPLAY_BUS_4BIT defined, only. +*/ +//#define DISPLAY_RS_PIN xxxx +//#define DISPLAY_RW_PIN xxxx +//#define DISPLAY_E_PIN xxxx +//#define DISPLAY_D4_PIN xxxx +//#define DISPLAY_D5_PIN xxxx +//#define DISPLAY_D6_PIN xxxx +//#define DISPLAY_D7_PIN xxxx + +/** \def DISPLAY_TYPE_SSD1306 DISPLAY_TYPE_HD44780 + + The type of display in use. There can be only one choice. Taken into account + only if one of DISPLAY_BUS_xxx is defined. + + Comment in the display in use, comment out all others. If there is no + display, comment out all of DISPLAY_BUS_xxx. +*/ +//#define DISPLAY_TYPE_SSD1306 +//#define DISPLAY_TYPE_HD44780