Support for Extrudrboard in Printrboard Rev.F

This commit is contained in:
Scott Lahteine 2017-11-13 15:23:30 -06:00
parent 1b6c25a5e6
commit b7feb53e8a
3 changed files with 80 additions and 7 deletions

View file

@ -661,7 +661,7 @@ void setup() {
Max7219_init(); Max7219_init();
#endif #endif
#ifdef DISABLE_JTAG #if ENABLED(DISABLE_JTAG)
// Disable JTAG on AT90USB chips to free up pins for IO // Disable JTAG on AT90USB chips to free up pins for IO
MCUCR = 0x80; MCUCR = 0x80;
MCUCR = 0x80; MCUCR = 0x80;

View file

@ -70,7 +70,7 @@
#define LARGE_FLASH true #define LARGE_FLASH true
// Disable JTAG pins so they can be used for the Extrudrboard // Disable JTAG pins so they can be used for the Extrudrboard
#define DISABLE_JTAG true #define DISABLE_JTAG
// //
// Limit Switches // Limit Switches

View file

@ -30,8 +30,8 @@
* There are two Arduino IDE extensions that are compatible with this board * There are two Arduino IDE extensions that are compatible with this board
* and with the mainstream Marlin software. * and with the mainstream Marlin software.
* *
* Teensyduino - http://www.pjrc.com/teensy/teensyduino.html * Teensyduino - https://www.pjrc.com/teensy/teensyduino.html
* Installation instructions are at the above URL. * Installation - https://www.pjrc.com/teensy/td_download.html
* *
* Select Teensy++ 2.0 in Arduino IDE from the 'Tools -> Boards' menu * Select Teensy++ 2.0 in Arduino IDE from the 'Tools -> Boards' menu
* *
@ -66,9 +66,36 @@
#error "Oops! Make sure you have 'Teensy++ 2.0' or 'Printrboard' selected from the 'Tools -> Boards' menu." #error "Oops! Make sure you have 'Teensy++ 2.0' or 'Printrboard' selected from the 'Tools -> Boards' menu."
#endif #endif
#ifndef USBCON
#error "USBCON should be defined by the platform for this board."
#endif
#define BOARD_NAME "Printrboard Rev F" #define BOARD_NAME "Printrboard Rev F"
#define LARGE_FLASH true #define LARGE_FLASH true
// Disable JTAG pins so EXP1 pins work correctly
// (Its pins are used for the Extrudrboard and filament sensor, for example).
#define DISABLE_JTAG
/**
* Note that REV F6 of the Printrboard stole the A HOTEND pin and
* reassigned it to a second fan for the extruder heater. It's
* recommended that you swap the A and B outputs on the Extrudrboard
* so EXTRUDERS=2 will still work on F6, using B for E1/HEATER_1/TEMP_1.
* See https://printrbot.zendesk.com/hc/en-us/articles/115003072346
*
* If you have REV F6 you probably also want to set E0_AUTO_FAN_PIN
* to PRINTRBOARD_F6_HEATER_FAN_PIN
*
* Define NO_EXTRUDRBOARD if you don't have an EXTRUDRBOARD and wish to
* reassign different functions to EXP1.
*
* Define NO_EXTRUDRBOARD_OUTPUT_SWAP if you have a REV F5 or lower and
* want to use EXTRUDRBOARD A for E1 and EXTRUDRBOARD B for E2.
*/
//#define NO_EXTRUDRBOARD
//#define NO_EXTRUDRBOARD_OUTPUT_SWAP
// //
// Limit Switches // Limit Switches
// //
@ -95,6 +122,26 @@
#define E0_DIR_PIN 35 // A7 #define E0_DIR_PIN 35 // A7
#define E0_ENABLE_PIN 13 // C3 #define E0_ENABLE_PIN 13 // C3
#if DISABLED(NO_EXTRUDRBOARD)
#if DISABLED(NO_EXTRUDRBOARD_OUTPUT_SWAP)
#define E1_STEP_PIN 25 // B5
#define E1_DIR_PIN 37 // E5
#define E1_ENABLE_PIN 42 // F4
#define E2_STEP_PIN 2 // D2
#define E2_DIR_PIN 3 // D3
#define E2_ENABLE_PIN 43 // F5
#else
#define E1_STEP_PIN 2 // D2
#define E1_DIR_PIN 3 // D3
#define E1_ENABLE_PIN 43 // F5
#define E2_STEP_PIN 25 // B5
#define E2_DIR_PIN 37 // E5
#define E2_ENABLE_PIN 42 // F4
#endif
#endif // NO_EXTRUDRBOARD
// Enable control of stepper motor currents with the I2C based MCP4728 DAC used on Printrboard REVF // Enable control of stepper motor currents with the I2C based MCP4728 DAC used on Printrboard REVF
#define DAC_STEPPER_CURRENT #define DAC_STEPPER_CURRENT
@ -119,14 +166,32 @@
#define TEMP_0_PIN 1 // Analog Input (Extruder) #define TEMP_0_PIN 1 // Analog Input (Extruder)
#define TEMP_BED_PIN 0 // Analog Input (Bed) #define TEMP_BED_PIN 0 // Analog Input (Bed)
#if DISABLED(NO_EXTRUDRBOARD)
#if DISABLED(NO_EXTRUDRBOARD_OUTPUT_SWAP)
#define TEMP_1_PIN 2 // Analog Input (Extrudrboard A THERM)
#define TEMP_2_PIN 3 // Analog Input (Extrudrboard B THERM)
#else
#define TEMP_1_PIN 3 // Analog Input (Extrudrboard B THERM)
#define TEMP_2_PIN 2 // Analog Input (Extrudrboard A THERM)
#endif
#endif
// //
// Heaters / Fans // Heaters / Fans
// //
#define HEATER_0_PIN 15 // C5 PWM3B - Extruder #define HEATER_0_PIN 15 // C5 PWM3B - Extruder
#define HEATER_1_PIN 44 // F6
#define HEATER_2_PIN 45 // F7
#define HEATER_BED_PIN 14 // C4 PWM3C #define HEATER_BED_PIN 14 // C4 PWM3C
#if DISABLED(NO_EXTRUDRBOARD)
#if DISABLED(NO_EXTRUDRBOARD_OUTPUT_SWAP)
#define HEATER_1_PIN 44 // F6 - Extrudrboard A HOTEND
#define HEATER_2_PIN 45 // F7 - Extrudrboard B HOTEND
#else
#define HEATER_1_PIN 45 // F7 - Extrudrboard B HOTEND
#define HEATER_2_PIN 44 // F6 - Extrudrboard A HOTEND
#endif
#endif
#define FAN_PIN 16 // C6 PWM3A #define FAN_PIN 16 // C6 PWM3A
// //
@ -201,6 +266,14 @@
#ifndef SDSS #ifndef SDSS
#define SDSS 20 // 10 B0 #define SDSS 20 // 10 B0
#endif #endif
/**
* This is EXP1-2, which is also the TEMP_A_PIN for the Extrudrboard.
* If using w/ Extrudrboard, cut off pin 2 on the Extrudrboard male
* connector to ensure this is disconnected from the A THERM pullups.
* You probably want to set EXTRUDERS=2 and swap the Extrudrboard outputs,
* which will let you use Channel B on the Extrudrboard as E1.
*/
#ifndef FILWIDTH_PIN #ifndef FILWIDTH_PIN
#define FILWIDTH_PIN 2 // Analog Input #define FILWIDTH_PIN 2 // Analog Input
#endif #endif