├── .gitattributes ├── .gitignore ├── LICENSE ├── README.md ├── firmware ├── Marlin_Mondrian3-dual │ ├── Conditionals.h │ ├── Configuration.h │ ├── Configuration_adv.h │ ├── Marlin.h │ ├── Marlin.ino │ ├── MarlinSerial.cpp │ ├── MarlinSerial.h │ ├── Marlin_Mondrian3-dual.ino │ ├── Marlin_main.cpp │ ├── SanityCheck.h │ ├── Sd2Card.cpp │ ├── Sd2Card.h │ ├── Sd2PinMap.h │ ├── SdBaseFile.cpp │ ├── SdBaseFile.h │ ├── SdFatConfig.h │ ├── SdFatStructs.h │ ├── SdFatUtil.cpp │ ├── SdFatUtil.h │ ├── SdFile.cpp │ ├── SdFile.h │ ├── SdInfo.h │ ├── SdVolume.cpp │ ├── SdVolume.h │ ├── blinkm.cpp │ ├── blinkm.h │ ├── boards.h │ ├── cardreader.cpp │ ├── cardreader.h │ ├── configuration_store.cpp │ ├── configuration_store.h │ ├── digipot_mcp4451.cpp │ ├── dogm_bitmaps.h │ ├── dogm_font_data_6x9_marlin.h │ ├── dogm_font_data_HD44780_C.h │ ├── dogm_font_data_HD44780_J.h │ ├── dogm_font_data_HD44780_W.h │ ├── dogm_font_data_ISO10646_1.h │ ├── dogm_font_data_ISO10646_5_Cyrillic.h │ ├── dogm_font_data_ISO10646_CN.h │ ├── dogm_font_data_ISO10646_Kana.h │ ├── dogm_font_data_Marlin_symbols.h │ ├── dogm_lcd_implementation.h │ ├── fastio.h │ ├── language.h │ ├── language_an.h │ ├── language_ca.h │ ├── language_cn.h │ ├── language_de.h │ ├── language_en.h │ ├── language_es.h │ ├── language_eu.h │ ├── language_fi.h │ ├── language_fr.h │ ├── language_it.h │ ├── language_kana.h │ ├── language_kana_utf8.h │ ├── language_nl.h │ ├── language_pl.h │ ├── language_pt-br.h │ ├── language_pt.h │ ├── language_ru.h │ ├── language_test.h │ ├── mesh_bed_leveling.cpp │ ├── mesh_bed_leveling.h │ ├── motion_control.cpp │ ├── motion_control.h │ ├── pins.h │ ├── pins_3DRAG.h │ ├── pins_5DPRINT.h │ ├── pins_99.h │ ├── pins_AZTEEG_X1.h │ ├── pins_AZTEEG_X3.h │ ├── pins_AZTEEG_X3_PRO.h │ ├── pins_BAM_DICE_DUE.h │ ├── pins_BRAINWAVE.h │ ├── pins_BRAINWAVE_PRO.h │ ├── pins_CHEAPTRONIC.h │ ├── pins_DUEMILANOVE_328P.h │ ├── pins_ELEFU_3.h │ ├── pins_FELIX2.h │ ├── pins_GEN3_MONOLITHIC.h │ ├── pins_GEN3_PLUS.h │ ├── pins_GEN6.h │ ├── pins_GEN6_DELUXE.h │ ├── pins_GEN7_12.h │ ├── pins_GEN7_13.h │ ├── pins_GEN7_14.h │ ├── pins_GEN7_CUSTOM.h │ ├── pins_HEPHESTOS.h │ ├── pins_K8200.h │ ├── pins_LEAPFROG.h │ ├── pins_MEGATRONICS.h │ ├── pins_MEGATRONICS_1.h │ ├── pins_MEGATRONICS_2.h │ ├── pins_MEGATRONICS_3.h │ ├── pins_MELZI.h │ ├── pins_MELZI_1284.h │ ├── pins_OMCA.h │ ├── pins_OMCA_A.h │ ├── pins_PRINTRBOARD.h │ ├── pins_RAMBO.h │ ├── pins_RAMPS_13.h │ ├── pins_RAMPS_OLD.h │ ├── pins_RUMBA.h │ ├── pins_SANGUINOLOLU_11.h │ ├── pins_SANGUINOLOLU_12.h │ ├── pins_SAV_MKI.h │ ├── pins_SETHI.h │ ├── pins_STB_11.h │ ├── pins_TEENSY2.h │ ├── pins_TEENSYLU.h │ ├── pins_ULTIMAIN_2.h │ ├── pins_ULTIMAKER.h │ ├── pins_ULTIMAKER_OLD.h │ ├── pins_WITBOX.h │ ├── planner.cpp │ ├── planner.h │ ├── qr_solve.cpp │ ├── qr_solve.h │ ├── servo.cpp │ ├── servo.h │ ├── speed_lookuptable.h │ ├── stepper.cpp │ ├── stepper.h │ ├── stepper_indirection.cpp │ ├── stepper_indirection.h │ ├── temperature.cpp │ ├── temperature.h │ ├── thermistortables.h │ ├── ultralcd.cpp │ ├── ultralcd.h │ ├── ultralcd_implementation_hitachi_HD44780.h │ ├── ultralcd_st7920_u8glib_rrd.h │ ├── utf_mapper.h │ ├── vector_3.cpp │ ├── vector_3.h │ ├── watchdog.cpp │ └── watchdog.h └── Marlin_Mondrian3-mono │ ├── Conditionals.h │ ├── Configuration.h │ ├── Configuration_adv.h │ ├── Marlin.h │ ├── Marlin.ino │ ├── MarlinSerial.cpp │ ├── MarlinSerial.h │ ├── Marlin_Mondrian3-mono.ino │ ├── Marlin_main.cpp │ ├── SanityCheck.h │ ├── Sd2Card.cpp │ ├── Sd2Card.h │ ├── Sd2PinMap.h │ ├── SdBaseFile.cpp │ ├── SdBaseFile.h │ ├── SdFatConfig.h │ ├── SdFatStructs.h │ ├── SdFatUtil.cpp │ ├── SdFatUtil.h │ ├── SdFile.cpp │ ├── SdFile.h │ ├── SdInfo.h │ ├── SdVolume.cpp │ ├── SdVolume.h │ ├── blinkm.cpp │ ├── blinkm.h │ ├── boards.h │ ├── cardreader.cpp │ ├── cardreader.h │ ├── configuration_store.cpp │ ├── configuration_store.h │ ├── digipot_mcp4451.cpp │ ├── dogm_bitmaps.h │ ├── dogm_font_data_6x9_marlin.h │ ├── dogm_font_data_HD44780_C.h │ ├── dogm_font_data_HD44780_J.h │ ├── dogm_font_data_HD44780_W.h │ ├── dogm_font_data_ISO10646_1.h │ ├── dogm_font_data_ISO10646_5_Cyrillic.h │ ├── dogm_font_data_ISO10646_CN.h │ ├── dogm_font_data_ISO10646_Kana.h │ ├── dogm_font_data_Marlin_symbols.h │ ├── dogm_lcd_implementation.h │ ├── fastio.h │ ├── language.h │ ├── language_an.h │ ├── language_ca.h │ ├── language_cn.h │ ├── language_de.h │ ├── language_en.h │ ├── language_es.h │ ├── language_eu.h │ ├── language_fi.h │ ├── language_fr.h │ ├── language_it.h │ ├── language_kana.h │ ├── language_kana_utf8.h │ ├── language_nl.h │ ├── language_pl.h │ ├── language_pt-br.h │ ├── language_pt.h │ ├── language_ru.h │ ├── language_test.h │ ├── mesh_bed_leveling.cpp │ ├── mesh_bed_leveling.h │ ├── motion_control.cpp │ ├── motion_control.h │ ├── pins.h │ ├── pins_3DRAG.h │ ├── pins_5DPRINT.h │ ├── pins_99.h │ ├── pins_AZTEEG_X1.h │ ├── pins_AZTEEG_X3.h │ ├── pins_AZTEEG_X3_PRO.h │ ├── pins_BAM_DICE_DUE.h │ ├── pins_BRAINWAVE.h │ ├── pins_BRAINWAVE_PRO.h │ ├── pins_CHEAPTRONIC.h │ ├── pins_DUEMILANOVE_328P.h │ ├── pins_ELEFU_3.h │ ├── pins_FELIX2.h │ ├── pins_GEN3_MONOLITHIC.h │ ├── pins_GEN3_PLUS.h │ ├── pins_GEN6.h │ ├── pins_GEN6_DELUXE.h │ ├── pins_GEN7_12.h │ ├── pins_GEN7_13.h │ ├── pins_GEN7_14.h │ ├── pins_GEN7_CUSTOM.h │ ├── pins_HEPHESTOS.h │ ├── pins_K8200.h │ ├── pins_LEAPFROG.h │ ├── pins_MEGATRONICS.h │ ├── pins_MEGATRONICS_1.h │ ├── pins_MEGATRONICS_2.h │ ├── pins_MEGATRONICS_3.h │ ├── pins_MELZI.h │ ├── pins_MELZI_1284.h │ ├── pins_OMCA.h │ ├── pins_OMCA_A.h │ ├── pins_PRINTRBOARD.h │ ├── pins_RAMBO.h │ ├── pins_RAMPS_13.h │ ├── pins_RAMPS_OLD.h │ ├── pins_RUMBA.h │ ├── pins_SANGUINOLOLU_11.h │ ├── pins_SANGUINOLOLU_12.h │ ├── pins_SAV_MKI.h │ ├── pins_SETHI.h │ ├── pins_STB_11.h │ ├── pins_TEENSY2.h │ ├── pins_TEENSYLU.h │ ├── pins_ULTIMAIN_2.h │ ├── pins_ULTIMAKER.h │ ├── pins_ULTIMAKER_OLD.h │ ├── pins_WITBOX.h │ ├── planner.cpp │ ├── planner.h │ ├── qr_solve.cpp │ ├── qr_solve.h │ ├── servo.cpp │ ├── servo.h │ ├── speed_lookuptable.h │ ├── stepper.cpp │ ├── stepper.h │ ├── stepper_indirection.cpp │ ├── stepper_indirection.h │ ├── temperature.cpp │ ├── temperature.h │ ├── thermistortables.h │ ├── ultralcd.cpp │ ├── ultralcd.h │ ├── ultralcd_implementation_hitachi_HD44780.h │ ├── ultralcd_st7920_u8glib_rrd.h │ ├── utf_mapper.h │ ├── vector_3.cpp │ ├── vector_3.h │ ├── watchdog.cpp │ └── watchdog.h ├── hardware ├── DXF │ ├── arriere.dxf │ ├── bas.dxf │ ├── bed │ │ ├── plateau-alu_220x220x4.dwg │ │ ├── plateau-alu_220x220x4.png │ │ └── plateau-alu_220x220x4mm.skp │ ├── capot-elec_dessus.dxf │ ├── capot-elec_megatronics.dxf │ ├── equerre.dxf │ ├── flanc.dxf │ ├── front-door.dxf │ ├── gabarit.dxf │ ├── hotend-insulation.dxf │ └── plateau Z.dxf └── STL │ ├── Dual │ ├── PIM30 Entrainement-fil corps.stl │ ├── PIM30 Entrainement-fil levier.stl │ ├── PIM30-dual Bouchon.stl │ ├── PIM30-dual Clip-tube-cables.stl │ ├── PIM30-dual Devidoir-bobine.stl │ ├── PIM30-dual Devidoir-bobine_x2.stl │ └── PIM30-dual Entrainement-fil capot-2.stl │ ├── Mono │ ├── PIM30-mono Clip-tube-gaine.stl │ └── PIM30-mono Crochet-bobine-70mm.stl │ ├── PIM30 Butee-capteur-Z.stl │ ├── PIM30 Capot-tete-dual.stl │ ├── PIM30 Chariot-X.stl │ ├── PIM30 Chariot-Y-droite.stl │ ├── PIM30 Chariot-Y-gauche.stl │ ├── PIM30 Chariot-Z.stl │ ├── PIM30 Chariots-Y.stl │ ├── PIM30 Coin-inferieur.stl │ ├── PIM30 Coin-superieur.stl │ ├── PIM30 Coupelle.stl │ ├── PIM30 Entrainement-fil capot-1.stl │ ├── PIM30 Entrainement-fil corps.stl │ ├── PIM30 Entrainement-fil levier.stl │ ├── PIM30 Loquet-porte-ecrou.stl │ ├── PIM30 Loquet-porte-vis.stl │ ├── PIM30 Molette-ecrou-M3.stl │ ├── PIM30 Support-courroie.stl │ ├── PIM30 Support-courroie_x2.stl │ └── PIM30 Support-tête.stl ├── software ├── Slic3r_config_bundle_Mondrian3_DUAL-OEV4.ini └── Slic3r_config_bundle_Mondrian3_MONO-OEV5.ini └── source └── Mondrian.skp /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | 4 | # Custom for Visual Studio 5 | *.cs diff=csharp 6 | 7 | # Standard to msysgit 8 | *.doc diff=astextplain 9 | *.DOC diff=astextplain 10 | *.docx diff=astextplain 11 | *.DOCX diff=astextplain 12 | *.dot diff=astextplain 13 | *.DOT diff=astextplain 14 | *.pdf diff=astextplain 15 | *.PDF diff=astextplain 16 | *.rtf diff=astextplain 17 | *.RTF diff=astextplain 18 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Windows image file caches 2 | Thumbs.db 3 | ehthumbs.db 4 | 5 | # Folder config file 6 | Desktop.ini 7 | 8 | # Recycle Bin used on file shares 9 | $RECYCLE.BIN/ 10 | 11 | # Windows Installer files 12 | *.cab 13 | *.msi 14 | *.msm 15 | *.msp 16 | 17 | # Windows shortcuts 18 | *.lnk 19 | 20 | # ========================= 21 | # Operating System Files 22 | # ========================= 23 | 24 | # OSX 25 | # ========================= 26 | 27 | .DS_Store 28 | .AppleDouble 29 | .LSOverride 30 | 31 | # Thumbnails 32 | ._* 33 | 34 | # Files that might appear in the root of a volume 35 | .DocumentRevisions-V100 36 | .fseventsd 37 | .Spotlight-V100 38 | .TemporaryItems 39 | .Trashes 40 | .VolumeIcon.icns 41 | 42 | # Directories potentially created on remote AFP share 43 | .AppleDB 44 | .AppleDesktop 45 | Network Trash Folder 46 | Temporary Items 47 | .apdisk 48 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Mondrian, The Modular RepRap 2 | ============================ 3 | 4 | For instructions, see the [RepRap wiki](http://reprap.org/wiki/Mondrian) :) -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-dual/Marlin.ino: -------------------------------------------------------------------------------- 1 | /* -*- c++ -*- */ 2 | 3 | /* 4 | Reprap firmware based on Sprinter and grbl. 5 | Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm 6 | 7 | This program is free software: you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation, either version 3 of the License, or 10 | (at your option) any later version. 11 | 12 | This program is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with this program. If not, see . 19 | */ 20 | 21 | /* 22 | This firmware is a mashup between Sprinter and grbl. 23 | (https://github.com/kliment/Sprinter) 24 | (https://github.com/simen/grbl/tree) 25 | 26 | It has preliminary support for Matthew Roberts advance algorithm 27 | http://reprap.org/pipermail/reprap-dev/2011-May/003323.html 28 | */ 29 | 30 | /* All the implementation is done in *.cpp files to get better compatibility with avr-gcc without the Arduino IDE */ 31 | /* Use this file to help the Arduino IDE find which Arduino libraries are needed and to keep documentation on GCode */ 32 | 33 | #include "Configuration.h" 34 | #include "pins.h" 35 | 36 | #ifdef ULTRA_LCD 37 | #if defined(LCD_I2C_TYPE_PCF8575) 38 | #include 39 | #include 40 | #elif defined(LCD_I2C_TYPE_MCP23017) || defined(LCD_I2C_TYPE_MCP23008) 41 | #include 42 | #include 43 | #elif defined(DOGLCD) 44 | #include // library for graphics LCD by Oli Kraus (https://code.google.com/p/u8glib/) 45 | #else 46 | #include // library for character LCD 47 | #endif 48 | #endif 49 | 50 | #if HAS_DIGIPOTSS 51 | #include 52 | #endif 53 | 54 | #if defined(DIGIPOT_I2C) 55 | #include 56 | #endif 57 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-dual/Marlin_Mondrian3-dual.ino: -------------------------------------------------------------------------------- 1 | /* -*- c++ -*- */ 2 | 3 | /* 4 | Reprap firmware based on Sprinter and grbl. 5 | Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm 6 | 7 | This program is free software: you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation, either version 3 of the License, or 10 | (at your option) any later version. 11 | 12 | This program is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with this program. If not, see . 19 | */ 20 | 21 | /* 22 | This firmware is a mashup between Sprinter and grbl. 23 | (https://github.com/kliment/Sprinter) 24 | (https://github.com/simen/grbl/tree) 25 | 26 | It has preliminary support for Matthew Roberts advance algorithm 27 | http://reprap.org/pipermail/reprap-dev/2011-May/003323.html 28 | */ 29 | 30 | /* All the implementation is done in *.cpp files to get better compatibility with avr-gcc without the Arduino IDE */ 31 | /* Use this file to help the Arduino IDE find which Arduino libraries are needed and to keep documentation on GCode */ 32 | 33 | #include "Configuration.h" 34 | #include "pins.h" 35 | 36 | #ifdef ULTRA_LCD 37 | #if defined(LCD_I2C_TYPE_PCF8575) 38 | #include 39 | #include 40 | #elif defined(LCD_I2C_TYPE_MCP23017) || defined(LCD_I2C_TYPE_MCP23008) 41 | #include 42 | #include 43 | #elif defined(DOGLCD) 44 | #include // library for graphics LCD by Oli Kraus (https://code.google.com/p/u8glib/) 45 | #else 46 | #include // library for character LCD 47 | #endif 48 | #endif 49 | 50 | #if HAS_DIGIPOTSS 51 | #include 52 | #endif 53 | 54 | #if defined(DIGIPOT_I2C) 55 | #include 56 | #endif 57 | 58 | #ifdef HAVE_TMCDRIVER 59 | #include 60 | #include 61 | #endif 62 | 63 | #ifdef HAVE_L6470DRIVER 64 | #include 65 | #include 66 | #endif 67 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-dual/SdFatUtil.cpp: -------------------------------------------------------------------------------- 1 | /* Arduino SdFat Library 2 | * Copyright (C) 2008 by William Greiman 3 | * 4 | * This file is part of the Arduino SdFat Library 5 | * 6 | * This Library is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * This Library is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | 16 | * You should have received a copy of the GNU General Public License 17 | * along with the Arduino SdFat Library. If not, see 18 | * . 19 | */ 20 | #include "Marlin.h" 21 | 22 | #ifdef SDSUPPORT 23 | #include "SdFatUtil.h" 24 | 25 | //------------------------------------------------------------------------------ 26 | /** Amount of free RAM 27 | * \return The number of free bytes. 28 | */ 29 | #ifdef __arm__ 30 | extern "C" char* sbrk(int incr); 31 | int SdFatUtil::FreeRam() { 32 | char top; 33 | return &top - reinterpret_cast(sbrk(0)); 34 | } 35 | #else // __arm__ 36 | extern char *__brkval; 37 | extern char __bss_end; 38 | /** Amount of free RAM 39 | * \return The number of free bytes. 40 | */ 41 | int SdFatUtil::FreeRam() { 42 | char top; 43 | return __brkval ? &top - __brkval : &top - &__bss_end; 44 | } 45 | #endif // __arm 46 | 47 | //------------------------------------------------------------------------------ 48 | /** %Print a string in flash memory. 49 | * 50 | * \param[in] pr Print object for output. 51 | * \param[in] str Pointer to string stored in flash memory. 52 | */ 53 | void SdFatUtil::print_P( PGM_P str) { 54 | for (uint8_t c; (c = pgm_read_byte(str)); str++) MYSERIAL.write(c); 55 | } 56 | //------------------------------------------------------------------------------ 57 | /** %Print a string in flash memory followed by a CR/LF. 58 | * 59 | * \param[in] pr Print object for output. 60 | * \param[in] str Pointer to string stored in flash memory. 61 | */ 62 | void SdFatUtil::println_P( PGM_P str) { 63 | print_P( str); 64 | MYSERIAL.println(); 65 | } 66 | //------------------------------------------------------------------------------ 67 | /** %Print a string in flash memory to Serial. 68 | * 69 | * \param[in] str Pointer to string stored in flash memory. 70 | */ 71 | void SdFatUtil::SerialPrint_P(PGM_P str) { 72 | print_P(str); 73 | } 74 | //------------------------------------------------------------------------------ 75 | /** %Print a string in flash memory to Serial followed by a CR/LF. 76 | * 77 | * \param[in] str Pointer to string stored in flash memory. 78 | */ 79 | void SdFatUtil::SerialPrintln_P(PGM_P str) { 80 | println_P( str); 81 | } 82 | #endif 83 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-dual/SdFatUtil.h: -------------------------------------------------------------------------------- 1 | /* Arduino SdFat Library 2 | * Copyright (C) 2008 by William Greiman 3 | * 4 | * This file is part of the Arduino SdFat Library 5 | * 6 | * This Library is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * This Library is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | 16 | * You should have received a copy of the GNU General Public License 17 | * along with the Arduino SdFat Library. If not, see 18 | * . 19 | */ 20 | #include "Marlin.h" 21 | #ifdef SDSUPPORT 22 | 23 | #ifndef SdFatUtil_h 24 | #define SdFatUtil_h 25 | /** 26 | * \file 27 | * \brief Useful utility functions. 28 | */ 29 | #include "Marlin.h" 30 | #include "MarlinSerial.h" 31 | /** Store and print a string in flash memory.*/ 32 | #define PgmPrint(x) SerialPrint_P(PSTR(x)) 33 | /** Store and print a string in flash memory followed by a CR/LF.*/ 34 | #define PgmPrintln(x) SerialPrintln_P(PSTR(x)) 35 | 36 | namespace SdFatUtil { 37 | int FreeRam(); 38 | void print_P( PGM_P str); 39 | void println_P( PGM_P str); 40 | void SerialPrint_P(PGM_P str); 41 | void SerialPrintln_P(PGM_P str); 42 | } 43 | 44 | using namespace SdFatUtil; // NOLINT 45 | #endif // #define SdFatUtil_h 46 | 47 | 48 | #endif 49 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-dual/SdFile.cpp: -------------------------------------------------------------------------------- 1 | /* Arduino SdFat Library 2 | * Copyright (C) 2009 by William Greiman 3 | * 4 | * This file is part of the Arduino SdFat Library 5 | * 6 | * This Library is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * This Library is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with the Arduino SdFat Library. If not, see 18 | * . 19 | */ 20 | #include "Marlin.h" 21 | 22 | #ifdef SDSUPPORT 23 | #include "SdFile.h" 24 | /** Create a file object and open it in the current working directory. 25 | * 26 | * \param[in] path A path with a valid 8.3 DOS name for a file to be opened. 27 | * 28 | * \param[in] oflag Values for \a oflag are constructed by a bitwise-inclusive 29 | * OR of open flags. see SdBaseFile::open(SdBaseFile*, const char*, uint8_t). 30 | */ 31 | SdFile::SdFile(const char* path, uint8_t oflag) : SdBaseFile(path, oflag) { 32 | } 33 | //------------------------------------------------------------------------------ 34 | /** Write data to an open file. 35 | * 36 | * \note Data is moved to the cache but may not be written to the 37 | * storage device until sync() is called. 38 | * 39 | * \param[in] buf Pointer to the location of the data to be written. 40 | * 41 | * \param[in] nbyte Number of bytes to write. 42 | * 43 | * \return For success write() returns the number of bytes written, always 44 | * \a nbyte. If an error occurs, write() returns -1. Possible errors 45 | * include write() is called before a file has been opened, write is called 46 | * for a read-only file, device is full, a corrupt file system or an I/O error. 47 | * 48 | */ 49 | int16_t SdFile::write(const void* buf, uint16_t nbyte) { 50 | return SdBaseFile::write(buf, nbyte); 51 | } 52 | //------------------------------------------------------------------------------ 53 | /** Write a byte to a file. Required by the Arduino Print class. 54 | * \param[in] b the byte to be written. 55 | * Use writeError to check for errors. 56 | */ 57 | #if ARDUINO >= 100 58 | size_t SdFile::write(uint8_t b) 59 | { 60 | return SdBaseFile::write(&b, 1); 61 | } 62 | #else 63 | void SdFile::write(uint8_t b) 64 | { 65 | SdBaseFile::write(&b, 1); 66 | } 67 | #endif 68 | //------------------------------------------------------------------------------ 69 | /** Write a string to a file. Used by the Arduino Print class. 70 | * \param[in] str Pointer to the string. 71 | * Use writeError to check for errors. 72 | */ 73 | void SdFile::write(const char* str) { 74 | SdBaseFile::write(str, strlen(str)); 75 | } 76 | //------------------------------------------------------------------------------ 77 | /** Write a PROGMEM string to a file. 78 | * \param[in] str Pointer to the PROGMEM string. 79 | * Use writeError to check for errors. 80 | */ 81 | void SdFile::write_P(PGM_P str) { 82 | for (uint8_t c; (c = pgm_read_byte(str)); str++) write(c); 83 | } 84 | //------------------------------------------------------------------------------ 85 | /** Write a PROGMEM string followed by CR/LF to a file. 86 | * \param[in] str Pointer to the PROGMEM string. 87 | * Use writeError to check for errors. 88 | */ 89 | void SdFile::writeln_P(PGM_P str) { 90 | write_P(str); 91 | write_P(PSTR("\r\n")); 92 | } 93 | 94 | 95 | #endif 96 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-dual/SdFile.h: -------------------------------------------------------------------------------- 1 | /* Arduino SdFat Library 2 | * Copyright (C) 2009 by William Greiman 3 | * 4 | * This file is part of the Arduino SdFat Library 5 | * 6 | * This Library is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * This Library is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with the Arduino SdFat Library. If not, see 18 | * . 19 | */ 20 | /** 21 | * \file 22 | * \brief SdFile class 23 | */ 24 | #include "Marlin.h" 25 | 26 | #ifdef SDSUPPORT 27 | #include "SdBaseFile.h" 28 | #include 29 | #ifndef SdFile_h 30 | #define SdFile_h 31 | //------------------------------------------------------------------------------ 32 | /** 33 | * \class SdFile 34 | * \brief SdBaseFile with Print. 35 | */ 36 | class SdFile : public SdBaseFile, public Print { 37 | public: 38 | SdFile() {} 39 | SdFile(const char* name, uint8_t oflag); 40 | #if ARDUINO >= 100 41 | size_t write(uint8_t b); 42 | #else 43 | void write(uint8_t b); 44 | #endif 45 | 46 | int16_t write(const void* buf, uint16_t nbyte); 47 | void write(const char* str); 48 | void write_P(PGM_P str); 49 | void writeln_P(PGM_P str); 50 | }; 51 | #endif // SdFile_h 52 | 53 | 54 | #endif 55 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-dual/blinkm.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | blinkm.cpp - Library for controlling a BlinkM over i2c 3 | Created by Tim Koster, August 21 2013. 4 | */ 5 | #include "Marlin.h" 6 | #ifdef BLINKM 7 | 8 | #include "blinkm.h" 9 | 10 | void SendColors(byte red, byte grn, byte blu) { 11 | Wire.begin(); 12 | Wire.beginTransmission(0x09); 13 | Wire.write('o'); //to disable ongoing script, only needs to be used once 14 | Wire.write('n'); 15 | Wire.write(red); 16 | Wire.write(grn); 17 | Wire.write(blu); 18 | Wire.endTransmission(); 19 | } 20 | 21 | #endif //BLINKM 22 | 23 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-dual/blinkm.h: -------------------------------------------------------------------------------- 1 | /* 2 | blinkm.h 3 | Library header file for BlinkM library 4 | */ 5 | #if ARDUINO >= 100 6 | #include "Arduino.h" 7 | #else 8 | #include "WProgram.h" 9 | #endif 10 | 11 | #include "Wire.h" 12 | 13 | void SendColors(byte red, byte grn, byte blu); 14 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-dual/boards.h: -------------------------------------------------------------------------------- 1 | #ifndef BOARDS_H 2 | #define BOARDS_H 3 | 4 | #define BOARD_UNKNOWN -1 5 | 6 | #define BOARD_GEN7_CUSTOM 10 // Gen7 custom (Alfons3 Version) "https://github.com/Alfons3/Generation_7_Electronics" 7 | #define BOARD_GEN7_12 11 // Gen7 v1.1, v1.2 8 | #define BOARD_GEN7_13 12 // Gen7 v1.3 9 | #define BOARD_GEN7_14 13 // Gen7 v1.4 10 | #define BOARD_CHEAPTRONIC 2 // Cheaptronic v1.0 11 | #define BOARD_SETHI 20 // Sethi 3D_1 12 | #define BOARD_RAMPS_OLD 3 // MEGA/RAMPS up to 1.2 13 | #define BOARD_RAMPS_13_EFB 33 // RAMPS 1.3 / 1.4 (Power outputs: Extruder, Fan, Bed) 14 | #define BOARD_RAMPS_13_EEB 34 // RAMPS 1.3 / 1.4 (Power outputs: Extruder0, Extruder1, Bed) 15 | #define BOARD_RAMPS_13_EFF 35 // RAMPS 1.3 / 1.4 (Power outputs: Extruder, Fan, Fan) 16 | #define BOARD_RAMPS_13_EEF 36 // RAMPS 1.3 / 1.4 (Power outputs: Extruder0, Extruder1, Fan) 17 | #define BOARD_FELIX2 37 // Felix 2.0+ Electronics Board (RAMPS like) 18 | #define BOARD_DUEMILANOVE_328P 4 // Duemilanove w/ ATMega328P pin assignments 19 | #define BOARD_GEN6 5 // Gen6 20 | #define BOARD_GEN6_DELUXE 51 // Gen6 deluxe 21 | #define BOARD_SANGUINOLOLU_11 6 // Sanguinololu < 1.2 22 | #define BOARD_SANGUINOLOLU_12 62 // Sanguinololu 1.2 and above 23 | #define BOARD_MELZI 63 // Melzi 24 | #define BOARD_STB_11 64 // STB V1.1 25 | #define BOARD_AZTEEG_X1 65 // Azteeg X1 26 | #define BOARD_MELZI_1284 66 // Melzi with ATmega1284 (MaKr3d version) 27 | #define BOARD_AZTEEG_X3 67 // Azteeg X3 28 | #define BOARD_AZTEEG_X3_PRO 68 // Azteeg X3 Pro 29 | #define BOARD_ULTIMAKER 7 // Ultimaker 30 | #define BOARD_ULTIMAKER_OLD 71 // Ultimaker (Older electronics. Pre 1.5.4. This is rare) 31 | #define BOARD_ULTIMAIN_2 72 // Ultimainboard 2.x (Uses TEMP_SENSOR 20) 32 | #define BOARD_3DRAG 77 // 3Drag Controller 33 | #define BOARD_K8200 78 // Vellemann K8200 Controller (derived from 3Drag Controller) 34 | #define BOARD_TEENSYLU 8 // Teensylu 35 | #define BOARD_RUMBA 80 // Rumba 36 | #define BOARD_PRINTRBOARD 81 // Printrboard (AT90USB1286) 37 | #define BOARD_BRAINWAVE 82 // Brainwave (AT90USB646) 38 | #define BOARD_SAV_MKI 83 // SAV Mk-I (AT90USB1286) 39 | #define BOARD_TEENSY2 84 // Teensy++2.0 (AT90USB1286) - CLI compile: DEFINES=AT90USBxx_TEENSYPP_ASSIGNMENTS HARDWARE_MOTHERBOARD=84 make 40 | #define BOARD_BRAINWAVE_PRO 85 // Brainwave Pro (AT90USB1286) 41 | #define BOARD_GEN3_PLUS 9 // Gen3+ 42 | #define BOARD_GEN3_MONOLITHIC 22 // Gen3 Monolithic Electronics 43 | #define BOARD_MEGATRONICS 70 // Megatronics 44 | #define BOARD_MEGATRONICS_2 701 // Megatronics v2.0 45 | #define BOARD_MEGATRONICS_1 702 // Minitronics v1.0 46 | #define BOARD_MEGATRONICS_3 703 // Megatronics v3.0 47 | #define BOARD_OMCA_A 90 // Alpha OMCA board 48 | #define BOARD_OMCA 91 // Final OMCA board 49 | #define BOARD_RAMBO 301 // Rambo 50 | #define BOARD_ELEFU_3 21 // Elefu Ra Board (v3) 51 | #define BOARD_5DPRINT 88 // 5DPrint D8 Driver Board 52 | #define BOARD_LEAPFROG 999 // Leapfrog 53 | #define BOARD_WITBOX 41 // bq WITBOX 54 | #define BOARD_HEPHESTOS 42 // bq Prusa i3 Hephestos 55 | #define BOARD_BAM_DICE 401 // 2PrintBeta BAM&DICE with STK drivers 56 | #define BOARD_BAM_DICE_DUE 402 // 2PrintBeta BAM&DICE Due with STK drivers 57 | 58 | #define BOARD_99 99 // This is in pins.h but...? 59 | 60 | #define MB(board) (MOTHERBOARD==BOARD_##board) 61 | 62 | #endif //__BOARDS_H 63 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-dual/cardreader.h: -------------------------------------------------------------------------------- 1 | #ifndef CARDREADER_H 2 | #define CARDREADER_H 3 | 4 | #ifdef SDSUPPORT 5 | 6 | #define MAX_DIR_DEPTH 10 // Maximum folder depth 7 | 8 | #include "SdFile.h" 9 | enum LsAction { LS_SerialPrint, LS_Count, LS_GetFilename }; 10 | 11 | class CardReader { 12 | public: 13 | CardReader(); 14 | 15 | void initsd(); 16 | void write_command(char *buf); 17 | //files auto[0-9].g on the sd card are performed in a row 18 | //this is to delay autostart and hence the initialisaiton of the sd card to some seconds after the normal init, so the device is available quick after a reset 19 | 20 | void checkautostart(bool x); 21 | void openFile(char* name,bool read,bool replace_current=true); 22 | void openLogFile(char* name); 23 | void removeFile(char* name); 24 | void closefile(bool store_location=false); 25 | void release(); 26 | void startFileprint(); 27 | void pauseSDPrint(); 28 | void getStatus(); 29 | void printingHasFinished(); 30 | 31 | void getfilename(uint16_t nr, const char* const match=NULL); 32 | uint16_t getnrfilenames(); 33 | 34 | void getAbsFilename(char *t); 35 | 36 | void ls(); 37 | void chdir(const char * relpath); 38 | void updir(); 39 | void setroot(); 40 | 41 | 42 | FORCE_INLINE bool isFileOpen() { return file.isOpen(); } 43 | FORCE_INLINE bool eof() { return sdpos >= filesize; } 44 | FORCE_INLINE int16_t get() { sdpos = file.curPosition(); return (int16_t)file.read(); } 45 | FORCE_INLINE void setIndex(long index) { sdpos = index; file.seekSet(index); } 46 | FORCE_INLINE uint8_t percentDone() { return (isFileOpen() && filesize) ? sdpos / ((filesize + 99) / 100) : 0; } 47 | FORCE_INLINE char* getWorkDirName() { workDir.getFilename(filename); return filename; } 48 | 49 | public: 50 | bool saving, logging, sdprinting, cardOK, filenameIsDir; 51 | char filename[FILENAME_LENGTH], longFilename[LONG_FILENAME_LENGTH]; 52 | int autostart_index; 53 | private: 54 | SdFile root, *curDir, workDir, workDirParents[MAX_DIR_DEPTH]; 55 | uint16_t workDirDepth; 56 | Sd2Card card; 57 | SdVolume volume; 58 | SdFile file; 59 | #define SD_PROCEDURE_DEPTH 1 60 | #define MAXPATHNAMELENGTH (FILENAME_LENGTH*MAX_DIR_DEPTH + MAX_DIR_DEPTH + 1) 61 | uint8_t file_subcall_ctr; 62 | uint32_t filespos[SD_PROCEDURE_DEPTH]; 63 | char filenames[SD_PROCEDURE_DEPTH][MAXPATHNAMELENGTH]; 64 | uint32_t filesize; 65 | millis_t next_autostart_ms; 66 | uint32_t sdpos; 67 | 68 | bool autostart_stilltocheck; //the sd start is delayed, because otherwise the serial cannot answer fast enought to make contact with the hostsoftware. 69 | 70 | LsAction lsAction; //stored for recursion. 71 | uint16_t nrFiles; //counter for the files in the current directory and recycled as position counter for getting the nrFiles'th name in the directory. 72 | char* diveDirName; 73 | void lsDive(const char *prepend, SdFile parent, const char * const match=NULL); 74 | }; 75 | 76 | extern CardReader card; 77 | 78 | #define IS_SD_PRINTING (card.sdprinting) 79 | 80 | #if (SDCARDDETECT > -1) 81 | #ifdef SDCARDDETECTINVERTED 82 | #define IS_SD_INSERTED (READ(SDCARDDETECT) != 0) 83 | #else 84 | #define IS_SD_INSERTED (READ(SDCARDDETECT) == 0) 85 | #endif 86 | #else 87 | //No card detect line? Assume the card is inserted. 88 | #define IS_SD_INSERTED true 89 | #endif 90 | 91 | #else 92 | 93 | #define IS_SD_PRINTING (false) 94 | 95 | #endif //SDSUPPORT 96 | 97 | #endif //__CARDREADER_H 98 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-dual/configuration_store.h: -------------------------------------------------------------------------------- 1 | #ifndef CONFIGURATION_STORE_H 2 | #define CONFIGURATION_STORE_H 3 | 4 | #include "Configuration.h" 5 | 6 | void Config_ResetDefault(); 7 | 8 | #ifndef DISABLE_M503 9 | void Config_PrintSettings(bool forReplay=false); 10 | #else 11 | FORCE_INLINE void Config_PrintSettings(bool forReplay=false) {} 12 | #endif 13 | 14 | #ifdef EEPROM_SETTINGS 15 | void Config_StoreSettings(); 16 | void Config_RetrieveSettings(); 17 | #else 18 | FORCE_INLINE void Config_StoreSettings() {} 19 | FORCE_INLINE void Config_RetrieveSettings() { Config_ResetDefault(); Config_PrintSettings(); } 20 | #endif 21 | 22 | #endif //CONFIGURATION_STORE_H 23 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-dual/digipot_mcp4451.cpp: -------------------------------------------------------------------------------- 1 | #include "Configuration.h" 2 | 3 | #ifdef DIGIPOT_I2C 4 | 5 | #include "Stream.h" 6 | #include "utility/twi.h" 7 | #include "Wire.h" 8 | 9 | // Settings for the I2C based DIGIPOT (MCP4451) on Azteeg X3 Pro 10 | #if MB(5DPRINT) 11 | #define DIGIPOT_I2C_FACTOR 117.96 12 | #define DIGIPOT_I2C_MAX_CURRENT 1.736 13 | #else 14 | #define DIGIPOT_I2C_FACTOR 106.7 15 | #define DIGIPOT_I2C_MAX_CURRENT 2.5 16 | #endif 17 | 18 | static byte current_to_wiper(float current) { 19 | return byte(ceil(float((DIGIPOT_I2C_FACTOR*current)))); 20 | } 21 | 22 | static void i2c_send(byte addr, byte a, byte b) { 23 | Wire.beginTransmission(addr); 24 | Wire.write(a); 25 | Wire.write(b); 26 | Wire.endTransmission(); 27 | } 28 | 29 | // This is for the MCP4451 I2C based digipot 30 | void digipot_i2c_set_current(int channel, float current) { 31 | current = min( (float) max( current, 0.0f ), DIGIPOT_I2C_MAX_CURRENT); 32 | // these addresses are specific to Azteeg X3 Pro, can be set to others, 33 | // In this case first digipot is at address A0=0, A1= 0, second one is at A0=0, A1= 1 34 | byte addr = 0x2C; // channel 0-3 35 | if (channel >= 4) { 36 | addr = 0x2E; // channel 4-7 37 | channel -= 4; 38 | } 39 | 40 | // Initial setup 41 | i2c_send(addr, 0x40, 0xff); 42 | i2c_send(addr, 0xA0, 0xff); 43 | 44 | // Set actual wiper value 45 | byte addresses[4] = { 0x00, 0x10, 0x60, 0x70 }; 46 | i2c_send(addr, addresses[channel], current_to_wiper(current)); 47 | } 48 | 49 | void digipot_i2c_init() { 50 | const float digipot_motor_current[] = DIGIPOT_I2C_MOTOR_CURRENTS; 51 | Wire.begin(); 52 | // setup initial currents as defined in Configuration_adv.h 53 | for(int i = 0; i <= sizeof(digipot_motor_current) / sizeof(float); i++) { 54 | digipot_i2c_set_current(i, digipot_motor_current[i]); 55 | } 56 | } 57 | 58 | #endif //DIGIPOT_I2C 59 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-dual/dogm_font_data_Marlin_symbols.h: -------------------------------------------------------------------------------- 1 | /* 2 | Fontname: Marlin_symbols 3 | Copyright: Created with Fony 1.4.7 4 | Capital A Height: 0, '1' Height: 0 5 | Calculated Max Values w= 5 h=10 x= 0 y= 3 dx= 6 dy= 0 ascent= 8 len=10 6 | Font Bounding box w= 6 h= 9 x= 0 y=-2 7 | Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 8 | Pure Font ascent = 0 descent= 0 9 | X Font ascent = 0 descent= 0 10 | Max Font ascent = 8 descent=-2 11 | */ 12 | #include 13 | const u8g_fntpgm_uint8_t Marlin_symbols[140] U8G_SECTION(".progmem.Marlin_symbols") = { 14 | 0,6,9,0,254,0,0,0,0,0,1,9,0,8,254,0, 15 | 0,5,8,8,6,0,0,64,240,200,136,136,152,120,16,5, 16 | 8,8,6,0,0,192,248,136,136,136,136,136,248,5,5,5, 17 | 6,0,1,32,48,248,48,32,5,8,8,6,0,0,32,112, 18 | 248,32,32,32,32,224,5,9,9,6,0,255,32,112,168,168, 19 | 184,136,136,112,32,5,9,9,6,0,255,224,128,192,176,168, 20 | 40,48,40,40,5,9,9,6,0,255,248,168,136,136,136,136, 21 | 136,168,248,5,10,10,6,0,254,32,80,80,80,80,136,168, 22 | 168,136,112,3,3,3,6,0,3,64,160,64}; 23 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-dual/mesh_bed_leveling.cpp: -------------------------------------------------------------------------------- 1 | #include "mesh_bed_leveling.h" 2 | 3 | #ifdef MESH_BED_LEVELING 4 | 5 | mesh_bed_leveling mbl; 6 | 7 | mesh_bed_leveling::mesh_bed_leveling() { reset(); } 8 | 9 | void mesh_bed_leveling::reset() { 10 | active = 0; 11 | for (int y = 0; y < MESH_NUM_Y_POINTS; y++) 12 | for (int x = 0; x < MESH_NUM_X_POINTS; x++) 13 | z_values[y][x] = 0; 14 | } 15 | 16 | #endif // MESH_BED_LEVELING 17 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-dual/mesh_bed_leveling.h: -------------------------------------------------------------------------------- 1 | #include "Marlin.h" 2 | 3 | #ifdef MESH_BED_LEVELING 4 | 5 | #define MESH_X_DIST ((MESH_MAX_X - MESH_MIN_X)/(MESH_NUM_X_POINTS - 1)) 6 | #define MESH_Y_DIST ((MESH_MAX_Y - MESH_MIN_Y)/(MESH_NUM_Y_POINTS - 1)) 7 | 8 | class mesh_bed_leveling { 9 | public: 10 | uint8_t active; 11 | float z_values[MESH_NUM_Y_POINTS][MESH_NUM_X_POINTS]; 12 | 13 | mesh_bed_leveling(); 14 | 15 | void reset(); 16 | 17 | float get_x(int i) { return MESH_MIN_X + MESH_X_DIST * i; } 18 | float get_y(int i) { return MESH_MIN_Y + MESH_Y_DIST * i; } 19 | void set_z(int ix, int iy, float z) { z_values[iy][ix] = z; } 20 | 21 | int select_x_index(float x) { 22 | int i = 1; 23 | while (x > get_x(i) && i < MESH_NUM_X_POINTS-1) i++; 24 | return i - 1; 25 | } 26 | 27 | int select_y_index(float y) { 28 | int i = 1; 29 | while (y > get_y(i) && i < MESH_NUM_Y_POINTS - 1) i++; 30 | return i - 1; 31 | } 32 | 33 | float calc_z0(float a0, float a1, float z1, float a2, float z2) { 34 | float delta_z = (z2 - z1)/(a2 - a1); 35 | float delta_a = a0 - a1; 36 | return z1 + delta_a * delta_z; 37 | } 38 | 39 | float get_z(float x0, float y0) { 40 | int x_index = select_x_index(x0); 41 | int y_index = select_y_index(y0); 42 | float z1 = calc_z0(x0, 43 | get_x(x_index), z_values[y_index][x_index], 44 | get_x(x_index+1), z_values[y_index][x_index+1]); 45 | float z2 = calc_z0(x0, 46 | get_x(x_index), z_values[y_index+1][x_index], 47 | get_x(x_index+1), z_values[y_index+1][x_index+1]); 48 | float z0 = calc_z0(y0, 49 | get_y(y_index), z1, 50 | get_y(y_index+1), z2); 51 | return z0; 52 | } 53 | }; 54 | 55 | extern mesh_bed_leveling mbl; 56 | 57 | #endif // MESH_BED_LEVELING 58 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-dual/motion_control.h: -------------------------------------------------------------------------------- 1 | /* 2 | motion_control.h - high level interface for issuing motion commands 3 | Part of Grbl 4 | 5 | Copyright (c) 2009-2011 Simen Svale Skogsrud 6 | Copyright (c) 2011 Sungeun K. Jeon 7 | 8 | Grbl is free software: you can redistribute it and/or modify 9 | it under the terms of the GNU General Public License as published by 10 | the Free Software Foundation, either version 3 of the License, or 11 | (at your option) any later version. 12 | 13 | Grbl is distributed in the hope that it will be useful, 14 | but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | GNU General Public License for more details. 17 | 18 | You should have received a copy of the GNU General Public License 19 | along with Grbl. If not, see . 20 | */ 21 | 22 | #ifndef motion_control_h 23 | #define motion_control_h 24 | 25 | // Execute an arc in offset mode format. position == current xyz, target == target xyz, 26 | // offset == offset from current xyz, axis_XXX defines circle plane in tool space, axis_linear is 27 | // the direction of helical travel, radius == circle radius, isclockwise boolean. Used 28 | // for vector transformation direction. 29 | void mc_arc(float *position, float *target, float *offset, unsigned char axis_0, unsigned char axis_1, 30 | unsigned char axis_linear, float feed_rate, float radius, unsigned char isclockwise, uint8_t extruder); 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-dual/pins_3DRAG.h: -------------------------------------------------------------------------------- 1 | /** 2 | * 3DRAG (and K8200) Arduino Mega with RAMPS v1.3 pin assignments 3 | */ 4 | 5 | #include "pins_RAMPS_13.h" 6 | 7 | #undef Z_ENABLE_PIN 8 | #define Z_ENABLE_PIN 63 9 | 10 | #undef X_MAX_PIN 11 | #undef Y_MAX_PIN 12 | #undef Z_MAX_PIN 13 | #define X_MAX_PIN 2 14 | #define Y_MAX_PIN 15 15 | #define Z_MAX_PIN -1 16 | 17 | #undef SDSS 18 | #define SDSS 25//53 19 | 20 | #undef FAN_PIN 21 | #define FAN_PIN 8 22 | 23 | #undef HEATER_1_PIN 24 | #undef HEATER_2_PIN 25 | #undef HEATER_BED_PIN 26 | #define HEATER_0_PIN 10 27 | #define HEATER_1_PIN 12 28 | #define HEATER_2_PIN 6 29 | 30 | #define HEATER_BED_PIN 9 // BED 31 | 32 | #if defined(ULTRA_LCD) && defined(NEWPANEL) 33 | #undef BEEPER 34 | #define BEEPER -1 35 | 36 | #undef LCD_PINS_RS 37 | #undef LCD_PINS_ENABLE 38 | #undef LCD_PINS_D4 39 | #undef LCD_PINS_D5 40 | #undef LCD_PINS_D6 41 | #undef LCD_PINS_D7 42 | #define LCD_PINS_RS 27 43 | #define LCD_PINS_ENABLE 29 44 | #define LCD_PINS_D4 37 45 | #define LCD_PINS_D5 35 46 | #define LCD_PINS_D6 33 47 | #define LCD_PINS_D7 31 48 | 49 | // Buttons 50 | #undef BTN_EN1 51 | #undef BTN_EN2 52 | #undef BTN_ENC 53 | #define BTN_EN1 16 54 | #define BTN_EN2 17 55 | #define BTN_ENC 23 //the click 56 | 57 | #else 58 | 59 | #define BEEPER 33 60 | 61 | #endif // ULTRA_LCD && NEWPANEL 62 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-dual/pins_5DPRINT.h: -------------------------------------------------------------------------------- 1 | /** 2 | * 5DPrint D8 Driver board pin assignments 3 | * 4 | * https://bitbucket.org/makible/5dprint-d8-controller-board 5 | */ 6 | 7 | #ifndef __AVR_AT90USB1286__ 8 | #error Oops! Make sure you have 'Teensy++ 2.0' selected from the 'Tools -> Boards' menu. 9 | #endif 10 | 11 | #define AT90USB 1286 // Disable MarlinSerial etc. 12 | 13 | #define LARGE_FLASH true 14 | 15 | #define X_STEP_PIN 0 16 | #define X_DIR_PIN 1 17 | #define X_ENABLE_PIN 23 18 | #define X_STOP_PIN 37 19 | 20 | #define Y_STEP_PIN 2 21 | #define Y_DIR_PIN 3 22 | #define Y_ENABLE_PIN 19 23 | #define Y_STOP_PIN 36 24 | 25 | #define Z_STEP_PIN 4 26 | #define Z_DIR_PIN 5 27 | #define Z_ENABLE_PIN 18 28 | #define Z_STOP_PIN 39 29 | 30 | #define E0_STEP_PIN 6 31 | #define E0_DIR_PIN 7 32 | #define E0_ENABLE_PIN 17 33 | 34 | #define HEATER_0_PIN 21 // Extruder 35 | #define HEATER_1_PIN -1 36 | #define HEATER_2_PIN -1 37 | #define HEATER_BED_PIN 20 // Bed 38 | // You may need to change FAN_PIN to 16 because Marlin isn't using fastio.h 39 | // for the fan and Teensyduino uses a different pin mapping. 40 | #define FAN_PIN 16 // Fan 41 | 42 | #define TEMP_0_PIN 1 // Extruder / Analog pin numbering 43 | #define TEMP_BED_PIN 0 // Bed / Analog pin numbering 44 | 45 | #define TEMP_1_PIN -1 46 | #define TEMP_2_PIN -1 47 | 48 | #define SDPOWER -1 49 | #define LED_PIN -1 50 | #define PS_ON_PIN -1 51 | #define KILL_PIN -1 52 | #define ALARM_PIN -1 53 | 54 | // The SDSS pin uses a different pin mapping from file Sd2PinMap.h 55 | #define SDSS 20 56 | 57 | #ifndef SDSUPPORT 58 | // these pins are defined in the SD library if building with SD support 59 | #define SCK_PIN 9 60 | #define MISO_PIN 11 61 | #define MOSI_PIN 10 62 | #endif 63 | 64 | // Microstepping pins 65 | // Note that the pin mapping is not from fastio.h 66 | // See Sd2PinMap.h for the pin configurations 67 | 68 | #undef X_MS1_PIN 69 | #undef X_MS2_PIN 70 | #undef Y_MS1_PIN 71 | #undef Y_MS2_PIN 72 | #undef Z_MS1_PIN 73 | #undef Z_MS2_PIN 74 | #undef E0_MS1_PIN 75 | #undef E0_MS2_PIN 76 | #define X_MS1_PIN 25 77 | #define X_MS2_PIN 26 78 | #define Y_MS1_PIN 9 79 | #define Y_MS2_PIN 8 80 | #define Z_MS1_PIN 7 81 | #define Z_MS2_PIN 6 82 | #define E0_MS1_PIN 5 83 | #define E0_MS2_PIN 4 84 | 85 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-dual/pins_99.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Board 99 pin assignments 3 | */ 4 | 5 | #define X_STEP_PIN 2 6 | #define X_DIR_PIN 3 7 | #define X_ENABLE_PIN -1 8 | #define X_STOP_PIN 16 9 | 10 | #define Y_STEP_PIN 5 11 | #define Y_DIR_PIN 6 12 | #define Y_ENABLE_PIN -1 13 | #define Y_STOP_PIN 67 14 | 15 | #define Z_STEP_PIN 62 16 | #define Z_DIR_PIN 63 17 | #define Z_ENABLE_PIN -1 18 | #define Z_STOP_PIN 59 19 | 20 | #define E0_STEP_PIN 65 21 | #define E0_DIR_PIN 66 22 | #define E0_ENABLE_PIN -1 23 | 24 | #define SDPOWER -1 25 | #define SDSS 53 26 | #define LED_PIN -1 27 | #define FAN_PIN -1 28 | #define PS_ON_PIN 9 29 | #define KILL_PIN -1 30 | 31 | #define HEATER_0_PIN 13 32 | #define HEATER_1_PIN -1 33 | #define HEATER_2_PIN -1 34 | #define TEMP_0_PIN 6 // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!! 35 | #define TEMP_1_PIN -1 // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!! 36 | #define TEMP_2_PIN -1 // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!! 37 | #define HEATER_BED_PIN 4 38 | #define TEMP_BED_PIN 10 39 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-dual/pins_AZTEEG_X1.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Azteeg X1 pin assignments 3 | */ 4 | 5 | #define SANGUINOLOLU_V_1_2 6 | 7 | #include "pins_SANGUINOLOLU_11.h" 8 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-dual/pins_AZTEEG_X3.h: -------------------------------------------------------------------------------- 1 | /** 2 | * AZTEEG_X3 Arduino Mega with RAMPS v1.3 pin assignments 3 | */ 4 | 5 | #include "pins_RAMPS_13.h" 6 | 7 | #define FAN_PIN 9 // (Sprinter config) 8 | #define HEATER_1_PIN -1 9 | 10 | //LCD Pins// 11 | 12 | #if defined(VIKI2) || defined(miniVIKI) 13 | #define BEEPER 33 14 | // Pins for DOGM SPI LCD Support 15 | #define DOGLCD_A0 31 16 | #define DOGLCD_CS 32 17 | #define LCD_SCREEN_ROT_180 18 | 19 | //The encoder and click button 20 | #define BTN_EN1 22 21 | #define BTN_EN2 7 22 | #define BTN_ENC 12 //the click switch 23 | 24 | #define SDSS 53 25 | #define SDCARDDETECT -1 // Pin 49 if using display sd interface 26 | 27 | #ifdef TEMP_STAT_LEDS 28 | #define STAT_LED_RED 64 29 | #define STAT_LED_BLUE 63 30 | #endif 31 | #elif defined(TEMP_STAT_LEDS) 32 | #define STAT_LED_RED 6 33 | #define STAT_LED_BLUE 11 34 | #endif 35 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-dual/pins_AZTEEG_X3_PRO.h: -------------------------------------------------------------------------------- 1 | /** 2 | * AZTEEG_X3_PRO (Arduino Mega) pin assignments 3 | */ 4 | 5 | #include "pins_RAMPS_13.h" 6 | 7 | #undef FAN_PIN 8 | #define FAN_PIN 6 //Part Cooling System 9 | #define BEEPER 33 10 | #define CONTROLLERFAN_PIN 4 //Pin used for the fan to cool motherboard (-1 to disable) 11 | //Fans/Water Pump to cool the hotend cool side. 12 | #define EXTRUDER_0_AUTO_FAN_PIN 5 13 | #define EXTRUDER_1_AUTO_FAN_PIN 5 14 | #define EXTRUDER_2_AUTO_FAN_PIN 5 15 | #define EXTRUDER_3_AUTO_FAN_PIN 5 16 | // 17 | //This section is to swap the MIN and MAX pins because the X3 Pro comes with only 18 | //MIN endstops soldered onto the board. Delta code wants the homing endstops to be 19 | //the MAX so I swapped them here. 20 | // 21 | #ifdef DELTA 22 | #undef X_MIN_PIN 23 | #undef X_MAX_PIN 24 | #undef Y_MIN_PIN 25 | #undef Y_MAX_PIN 26 | #undef Z_MIN_PIN 27 | #undef Z_MAX_PIN 28 | 29 | #define X_MIN_PIN 2 30 | #define X_MAX_PIN 3 31 | #define Y_MIN_PIN 15 32 | #define Y_MAX_PIN 14 33 | #define Z_MIN_PIN 19 34 | #define Z_MAX_PIN 18 35 | #endif 36 | // 37 | #ifdef Z_PROBE_ENDSTOP 38 | //#undef Z_MIN_PIN 39 | //#define Z_MIN_PIN 15 40 | #define Z_PROBE_PIN 19 41 | #endif 42 | // 43 | #define E2_STEP_PIN 23 44 | #define E2_DIR_PIN 25 45 | #define E2_ENABLE_PIN 40 46 | 47 | #define E3_STEP_PIN 27 48 | #define E3_DIR_PIN 29 49 | #define E3_ENABLE_PIN 41 50 | 51 | #define E4_STEP_PIN 43 52 | #define E4_DIR_PIN 37 53 | #define E4_ENABLE_PIN 42 54 | 55 | #undef HEATER_1_PIN 56 | #undef HEATER_2_PIN 57 | #undef HEATER_3_PIN 58 | #define HEATER_1_PIN 9 59 | #define HEATER_2_PIN 16 60 | #define HEATER_3_PIN 17 61 | #define HEATER_4_PIN 4 62 | #define HEATER_5_PIN 5 63 | #define HEATER_6_PIN 6 64 | #define HEATER_7_PIN 11 65 | 66 | #undef TEMP_2_PIN 67 | #undef TEMP_3_PIN 68 | #define TEMP_2_PIN 12 // ANALOG NUMBERING 69 | #define TEMP_3_PIN 11 // ANALOG NUMBERING 70 | #define TEMP_4_PIN 10 // ANALOG NUMBERING 71 | #define TC1 4 // ANALOG NUMBERING Thermo couple on Azteeg X3Pro 72 | #define TC2 5 // ANALOG NUMBERING Thermo couple on Azteeg X3Pro 73 | 74 | // 75 | //These Servo pins are for when they are defined. Tested for usage with bed leveling 76 | //on a Delta with 1 servo. Running through the Z servo endstop in code. 77 | //Physical wire attachment was done on EXT1 on the GND, 5V, and D47 pins. 78 | // 79 | #undef SERVO0_PIN 80 | #undef SERVO1_PIN 81 | #undef SERVO2_PIN 82 | #undef SERVO3_PIN 83 | 84 | #ifdef NUM_SERVOS 85 | #define SERVO0_PIN 47 86 | #if NUM_SERVOS > 1 87 | #define SERVO1_PIN -1 88 | #if NUM_SERVOS > 2 89 | #define SERVO2_PIN -1 90 | #if NUM_SERVOS > 3 91 | #define SERVO3_PIN -1 92 | #endif 93 | #endif 94 | #endif 95 | #endif 96 | 97 | //LCD Pins// 98 | 99 | #if defined(VIKI2) || defined(miniVIKI) 100 | #define BEEPER 33 101 | // Pins for DOGM SPI LCD Support 102 | #define DOGLCD_A0 44 103 | #define DOGLCD_CS 45 104 | #define LCD_SCREEN_ROT_180 105 | 106 | //The encoder and click button 107 | #define BTN_EN1 22 108 | #define BTN_EN2 7 109 | #define BTN_ENC 39 //the click switch 110 | 111 | #define SDSS 53 112 | #define SDCARDDETECT 49 113 | 114 | #define KILL_PIN 31 115 | #endif 116 | 117 | #ifdef TEMP_STAT_LEDS 118 | #define STAT_LED_RED 32 119 | #define STAT_LED_BLUE 35 120 | #endif 121 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-dual/pins_BAM_DICE_DUE.h: -------------------------------------------------------------------------------- 1 | /** 2 | * BAM&DICE Due (Arduino Mega) pin assignments 3 | */ 4 | 5 | #include "pins_RAMPS_13.h" 6 | 7 | #undef FAN_PIN 8 | #define FAN_PIN 9 // (Sprinter config) 9 | 10 | #undef HEATER_1_PIN 11 | #define HEATER_1_PIN -1 12 | 13 | #undef TEMP_0_PIN 14 | #undef TEMP_1_PIN 15 | #define TEMP_0_PIN 9 // ANALOG NUMBERING 16 | #define TEMP_1_PIN 11 // ANALOG NUMBERING 17 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-dual/pins_BRAINWAVE.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Brainwave 1.0 pin assignments (AT90USB646) 3 | * 4 | * Requires hardware bundle for Arduino: 5 | * https://github.com/unrepentantgeek/brainwave-arduino 6 | */ 7 | 8 | #ifndef __AVR_AT90USB646__ 9 | #error Oops! Make sure you have 'Brainwave' selected from the 'Tools -> Boards' menu. 10 | #endif 11 | 12 | #define AT90USB 646 // Disable MarlinSerial etc. 13 | 14 | #define X_STEP_PIN 27 15 | #define X_DIR_PIN 29 16 | #define X_ENABLE_PIN 28 17 | #define X_STOP_PIN 7 18 | #define X_ATT_PIN 26 19 | 20 | #define Y_STEP_PIN 31 21 | #define Y_DIR_PIN 33 22 | #define Y_ENABLE_PIN 32 23 | #define Y_STOP_PIN 6 24 | #define Y_ATT_PIN 30 25 | 26 | #define Z_STEP_PIN 17 27 | #define Z_DIR_PIN 19 28 | #define Z_ENABLE_PIN 18 29 | #define Z_STOP_PIN 5 30 | #define Z_ATT_PIN 16 31 | 32 | #define E0_STEP_PIN 21 33 | #define E0_DIR_PIN 23 34 | #define E0_ENABLE_PIN 22 35 | #define E0_ATT_PIN 20 36 | 37 | #define HEATER_0_PIN 4 // Extruder 38 | #define HEATER_1_PIN -1 39 | #define HEATER_2_PIN -1 40 | #define HEATER_BED_PIN 38 // Bed 41 | #define FAN_PIN 3 // Fan 42 | 43 | #define TEMP_0_PIN 7 // Extruder / Analog pin numbering 44 | #define TEMP_1_PIN -1 45 | #define TEMP_2_PIN -1 46 | #define TEMP_BED_PIN 6 // Bed / Analog pin numbering 47 | 48 | #define SDPOWER -1 49 | #define SDSS -1 50 | #define LED_PIN 39 51 | #define PS_ON_PIN -1 52 | #define KILL_PIN -1 53 | #define ALARM_PIN -1 54 | 55 | #ifndef SDSUPPORT 56 | // these pins are defined in the SD library if building with SD support 57 | #define SCK_PIN 9 58 | #define MISO_PIN 11 59 | #define MOSI_PIN 10 60 | #endif 61 | 62 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-dual/pins_BRAINWAVE_PRO.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Brainwave Pro pin assignments (AT90USB186) 3 | * 4 | * Requires hardware bundle for Arduino: 5 | * https://github.com/unrepentantgeek/brainwave-arduino 6 | */ 7 | 8 | #ifndef __AVR_AT90USB1286__ 9 | #error Oops! Make sure you have 'Brainwave Pro' selected from the 'Tools -> Boards' menu. 10 | #endif 11 | 12 | #ifndef AT90USBxx_TEENSYPP_ASSIGNMENTS // use Teensyduino Teensy++2.0 pin assignments instead of Marlin alphabetical. 13 | #error Uncomment #define AT90USBxx_TEENSYPP_ASSIGNMENTS in fastio.h for this config 14 | #endif 15 | 16 | #define AT90USB 1286 // Disable MarlinSerial etc. 17 | 18 | #define X_STEP_PIN 33 19 | #define X_DIR_PIN 32 20 | #define X_ENABLE_PIN 11 21 | #define X_STOP_PIN 47 22 | 23 | #define Y_STEP_PIN 31 24 | #define Y_DIR_PIN 30 25 | #define Y_ENABLE_PIN 8 26 | #define Y_STOP_PIN 18 27 | 28 | #define Z_STEP_PIN 29 29 | #define Z_DIR_PIN 28 30 | #define Z_ENABLE_PIN 37 31 | #define Z_MAX_PIN 36 32 | #define Z_MIN_PIN 17 // Bed probe 33 | 34 | #define E0_STEP_PIN 35 35 | #define E0_DIR_PIN 34 36 | #define E0_ENABLE_PIN 13 37 | 38 | #define HEATER_0_PIN 15 39 | #define HEATER_1_PIN -1 40 | #define HEATER_2_PIN -1 41 | #define HEATER_BED_PIN 14 // Bed 42 | #define FAN_PIN 16 // Fan, PWM 43 | 44 | #define TEMP_0_PIN 2 // Extruder / Analog pin numbering 45 | #define TEMP_1_PIN 1 // Spare / Analog pin numbering 46 | #define TEMP_2_PIN -1 47 | #define TEMP_BED_PIN 0 // Bed / Analog pin numbering 48 | 49 | #define SDPOWER -1 50 | #define SDSS 20 51 | #define LED_PIN 19 52 | #define PS_ON_PIN -1 53 | #define KILL_PIN -1 54 | #define ALARM_PIN -1 55 | #define SDCARDDETECT 12 56 | 57 | #ifndef SDSUPPORT 58 | // these pins are defined in the SD library if building with SD support 59 | #define SCK_PIN 21 60 | #define MISO_PIN 23 61 | #define MOSI_PIN 22 62 | #endif 63 | 64 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-dual/pins_CHEAPTRONIC.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Cheaptronic v1.0 pin assignments 3 | */ 4 | 5 | #ifndef __AVR_ATmega2560__ 6 | #error Oops! Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu. 7 | #endif 8 | 9 | #define LARGE_FLASH true 10 | 11 | // X motor stepper 12 | #define X_STEP_PIN 14 13 | #define X_DIR_PIN 15 14 | #define X_ENABLE_PIN 24 15 | 16 | // X endstop 17 | #define X_MIN_PIN 3 18 | #define X_MAX_PIN -1 19 | 20 | // Y motor stepper 21 | #define Y_STEP_PIN 35 22 | #define Y_DIR_PIN 36 23 | #define Y_ENABLE_PIN 31 24 | 25 | // Y endstop 26 | #define Y_MIN_PIN 2 27 | #define Y_MAX_PIN -1 28 | 29 | // Z motor stepper 30 | #define Z_STEP_PIN 40 31 | #define Z_DIR_PIN 41 32 | #define Z_ENABLE_PIN 37 33 | 34 | // Z endstop 35 | #define Z_MIN_PIN 5 36 | #define Z_MAX_PIN -1 37 | 38 | // Extruder 0 stepper 39 | #define E0_STEP_PIN 26 40 | #define E0_DIR_PIN 28 41 | #define E0_ENABLE_PIN 25 42 | 43 | // Extruder 1 stepper 44 | #define E1_STEP_PIN 33 45 | #define E1_DIR_PIN 34 46 | #define E1_ENABLE_PIN 30 47 | 48 | #define SDPOWER -1 49 | #define SDSS -1 50 | #define LED_PIN -1 51 | 52 | // FAN 53 | #define FAN_PIN -1 54 | 55 | #define PS_ON_PIN -1 56 | #define KILL_PIN -1 57 | 58 | #define HEATER_0_PIN 19 // EXTRUDER 1 59 | #define HEATER_1_PIN 23 // EXTRUDER 2 60 | // HeatedBad 61 | #define HEATER_BED_PIN 22 62 | // Cheaptronic v1.0 hasent EXTRUDER 3 63 | #define HEATER_2_PIN -1 64 | 65 | // Temperature sensors 66 | #define TEMP_0_PIN 15 67 | #define TEMP_1_PIN 14 68 | #define TEMP_2_PIN -1 69 | #define TEMP_BED_PIN 13 70 | 71 | // Cheaptronic v1.0 doesn't support LCD 72 | #define LCD_PINS_RS -1 73 | #define LCD_PINS_ENABLE -1 74 | #define LCD_PINS_D4 -1 75 | #define LCD_PINS_D5 -1 76 | #define LCD_PINS_D6 -1 77 | #define LCD_PINS_D7 -1 78 | 79 | // Cheaptronic v1.0 doesn't support keypad 80 | #define BTN_EN1 -1 81 | #define BTN_EN2 -1 82 | #define BTN_ENC -1 83 | 84 | #define BLEN_C 2 85 | #define BLEN_B 1 86 | #define BLEN_A 0 87 | 88 | // Cheaptronic v1.0 does not use this port 89 | #define SDCARDDETECT -1 90 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-dual/pins_DUEMILANOVE_328P.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Duemilanove w/ ATMega328P pin assignments 3 | */ 4 | 5 | #ifndef __AVR_ATmega328P__ 6 | #error Oops! Make sure you have 'Arduino Duemilanove w/ ATMega328' selected from the 'Tools -> Boards' menu. 7 | #endif 8 | 9 | #define X_STEP_PIN 19 10 | #define X_DIR_PIN 18 11 | #define X_ENABLE_PIN -1 12 | #define X_STOP_PIN 17 13 | 14 | #define Y_STEP_PIN 10 15 | #define Y_DIR_PIN 7 16 | #define Y_ENABLE_PIN -1 17 | #define Y_STOP_PIN 8 18 | 19 | #define Z_STEP_PIN 13 20 | #define Z_DIR_PIN 3 21 | #define Z_ENABLE_PIN 2 22 | #define Z_STOP_PIN 4 23 | 24 | #define E0_STEP_PIN 11 25 | #define E0_DIR_PIN 12 26 | #define E0_ENABLE_PIN -1 27 | 28 | #define SDPOWER -1 29 | #define SDSS -1 30 | #define LED_PIN -1 31 | #define FAN_PIN 5 32 | #define PS_ON_PIN -1 33 | #define KILL_PIN -1 34 | 35 | #define HEATER_0_PIN 6 36 | #define HEATER_1_PIN -1 37 | #define HEATER_2_PIN -1 38 | #define TEMP_0_PIN 0 // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!! 39 | #define TEMP_1_PIN -1 40 | #define TEMP_2_PIN -1 41 | #define HEATER_BED_PIN -1 42 | #define TEMP_BED_PIN -1 43 | 44 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-dual/pins_FELIX2.h: -------------------------------------------------------------------------------- 1 | /** 2 | * FELIXprinters v2.0/3.0 (RAMPS v1.3) pin assignments 3 | */ 4 | 5 | #include "pins_RAMPS_13.h" 6 | 7 | #undef X_MAX_PIN 8 | #undef Y_MAX_PIN 9 | #undef Z_MAX_PIN 10 | #define X_MAX_PIN -1 11 | #define Y_MAX_PIN -1 12 | #define Z_MAX_PIN -1 13 | 14 | #undef Y2_STEP_PIN 15 | #undef Y2_DIR_PIN 16 | #undef Y2_ENABLE_PIN 17 | #define Y2_STEP_PIN -1 18 | #define Y2_DIR_PIN -1 19 | #define Y2_ENABLE_PIN -1 20 | 21 | #undef Z2_STEP_PIN 22 | #undef Z2_DIR_PIN 23 | #undef Z2_ENABLE_PIN 24 | #define Z2_STEP_PIN -1 25 | #define Z2_DIR_PIN -1 26 | #define Z2_ENABLE_PIN -1 27 | 28 | #define E1_STEP_PIN 36 // FELIX E1 uses RAMPS Y2/Z2 pins 29 | #define E1_DIR_PIN 34 30 | #define E1_ENABLE_PIN 30 31 | 32 | #undef SDPOWER 33 | #define SDPOWER 1 34 | 35 | #undef FAN_PIN 36 | #define FAN_PIN 9 // (Sprinter config) 37 | #define PS_ON_PIN 12 38 | 39 | #undef HEATER_1_PIN 40 | #define HEATER_1_PIN 7 // EXTRUDER 2 41 | 42 | #if defined(ULTRA_LCD) && defined(NEWPANEL) 43 | 44 | #define BLEN_C 2 45 | #define BLEN_B 1 46 | #define BLEN_A 0 47 | #define SDCARDDETECT 6 48 | 49 | #endif // NEWPANEL && ULTRA_LCD 50 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-dual/pins_GEN3_MONOLITHIC.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Gen3 Monolithic Electronics pin assignments 3 | */ 4 | 5 | #ifndef __AVR_ATmega644P__ 6 | #error Oops! Make sure you have 'Sanguino' selected from the 'Tools -> Boards' menu. 7 | #endif 8 | 9 | #define DEBUG_PIN 0 10 | 11 | // x axis 12 | #define X_STEP_PIN 15 13 | #define X_DIR_PIN 18 14 | #define X_MIN_PIN 20 15 | // Alex Checar #define X_STOP_PIN 20 16 | #define X_ENABLE_PIN 24 // actually uses Y_enable_pin 17 | #define X_MAX_PIN -1 18 | 19 | // y axis 20 | #define Y_STEP_PIN 23 21 | #define Y_DIR_PIN 22 22 | #define Y_MIN_PIN 25 23 | // Alex Checar #define Y_STOP_PIN 25 24 | #define Y_ENABLE_PIN 24 // shared with X_enable_pin 25 | #define Y_MAX_PIN -1 26 | 27 | // z axis 28 | #define Z_STEP_PIN 27 29 | #define Z_DIR_PIN 28 30 | #define Z_MIN_PIN 30 31 | // Alex Checar #define Z_STOP_PIN 30 32 | #define Z_ENABLE_PIN 29 33 | #define Z_MAX_PIN -1 34 | 35 | // extruder pins 36 | #define E0_STEP_PIN 12 37 | #define E0_DIR_PIN 17 38 | #define E0_ENABLE_PIN 3 39 | 40 | #define HEATER_0_PIN 16 41 | #define TEMP_0_PIN 0 42 | 43 | #define FAN_PIN -1 44 | 45 | // bed pins 46 | #define HEATER_BED_PIN -1 47 | #define TEMP_BED_PIN -1 48 | 49 | 50 | #define SDSS -1 51 | #define SDPOWER -1 52 | #define LED_PIN -1 53 | 54 | // pin for controlling the PSU. 55 | #define PS_ON_PIN 14 // Alex, Do this work on the card? 56 | 57 | // Alex extras from Gen3+ 58 | #define KILL_PIN -1 59 | #define TEMP_1_PIN -1 60 | #define TEMP_2_PIN -1 61 | #define HEATER_2_PIN -1 62 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-dual/pins_GEN3_PLUS.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Gen3+ pin assignments 3 | */ 4 | 5 | #if !defined(__AVR_ATmega644P__) && !defined(__AVR_ATmega1284P__) 6 | #error Oops! Make sure you have 'Sanguino' selected from the 'Tools -> Boards' menu. 7 | #endif 8 | 9 | #define X_STEP_PIN 15 10 | #define X_DIR_PIN 18 11 | #define X_STOP_PIN 20 12 | 13 | #define Y_STEP_PIN 23 14 | #define Y_DIR_PIN 22 15 | #define Y_STOP_PIN 25 16 | 17 | #define Z_STEP_PIN 27 18 | #define Z_DIR_PIN 28 19 | #define Z_STOP_PIN 30 20 | 21 | #define E0_STEP_PIN 17 22 | #define E0_DIR_PIN 21 23 | 24 | #define LED_PIN -1 25 | 26 | #define FAN_PIN -1 27 | 28 | #define PS_ON_PIN 14 29 | #define KILL_PIN -1 30 | 31 | #define HEATER_0_PIN 12 // (extruder) 32 | 33 | #define HEATER_BED_PIN 16 // (bed) 34 | #define X_ENABLE_PIN 19 35 | #define Y_ENABLE_PIN 24 36 | #define Z_ENABLE_PIN 29 37 | #define E0_ENABLE_PIN 13 38 | 39 | #define TEMP_0_PIN 0 // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!! (pin 33 extruder) 40 | #define TEMP_1_PIN -1 41 | #define TEMP_2_PIN -1 42 | #define TEMP_BED_PIN 5 // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!! (pin 34 bed) 43 | #define SDPOWER -1 44 | #define SDSS 4 45 | #define HEATER_2_PIN -1 46 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-dual/pins_GEN6.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Gen6 pin assignments 3 | */ 4 | 5 | #ifndef __AVR_ATmega644P__ 6 | #ifndef __AVR_ATmega1284P__ 7 | #error Oops! Make sure you have 'Sanguino' selected from the 'Tools -> Boards' menu. 8 | #endif 9 | #endif 10 | 11 | //x axis pins 12 | #define X_STEP_PIN 15 13 | #define X_DIR_PIN 18 14 | #define X_ENABLE_PIN 19 15 | #define X_STOP_PIN 20 16 | 17 | //y axis pins 18 | #define Y_STEP_PIN 23 19 | #define Y_DIR_PIN 22 20 | #define Y_ENABLE_PIN 24 21 | #define Y_STOP_PIN 25 22 | 23 | //z axis pins 24 | #define Z_STEP_PIN 27 25 | #define Z_DIR_PIN 28 26 | #define Z_ENABLE_PIN 29 27 | #define Z_STOP_PIN 30 28 | 29 | //extruder pins 30 | #define E0_STEP_PIN 4 //Edited @ EJE Electronics 20100715 31 | #define E0_DIR_PIN 2 //Edited @ EJE Electronics 20100715 32 | #define E0_ENABLE_PIN 3 //Added @ EJE Electronics 20100715 33 | #define TEMP_0_PIN 5 //changed @ rkoeppl 20110410 34 | #define TEMP_1_PIN -1 //changed @ rkoeppl 20110410 35 | 36 | 37 | #define TEMP_2_PIN -1 //changed @ rkoeppl 20110410 38 | #define HEATER_0_PIN 14 //changed @ rkoeppl 20110410 39 | #define HEATER_1_PIN -1 40 | #define HEATER_2_PIN -1 41 | 42 | #if MB(GEN6) 43 | #define HEATER_BED_PIN -1 //changed @ rkoeppl 20110410 44 | #define TEMP_BED_PIN -1 //changed @ rkoeppl 20110410 45 | #else 46 | #define HEATER_BED_PIN 1 //changed @ rkoeppl 20110410 47 | #define TEMP_BED_PIN 0 //changed @ rkoeppl 20110410 48 | #endif 49 | 50 | #define SDPOWER -1 51 | #define SDSS 17 52 | #define LED_PIN -1 //changed @ rkoeppl 20110410 53 | #define FAN_PIN -1 //changed @ rkoeppl 20110410 54 | #define PS_ON_PIN -1 //changed @ rkoeppl 20110410 55 | #define KILL_PIN -1 //changed @ drakelive 20120830 56 | //our pin for debugging. 57 | 58 | #define DEBUG_PIN 0 59 | 60 | //our RS485 pins 61 | #define TX_ENABLE_PIN 12 62 | #define RX_ENABLE_PIN 13 63 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-dual/pins_GEN6_DELUXE.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Gen6 Deluxe pin assignments 3 | */ 4 | 5 | #include "pins_GEN6.h" 6 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-dual/pins_GEN7_12.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Gen7 v1.1, v1.2, v1.3 pin assignments 3 | */ 4 | 5 | #if !defined(__AVR_ATmega644P__) && !defined(__AVR_ATmega644__) && !defined(__AVR_ATmega1284P__) 6 | #error Oops! Make sure you have 'Gen7' selected from the 'Tools -> Boards' menu. 7 | #endif 8 | 9 | #ifndef GEN7_VERSION 10 | #define GEN7_VERSION 12 // v1.x 11 | #endif 12 | 13 | //x axis pins 14 | #define X_STEP_PIN 19 15 | #define X_DIR_PIN 18 16 | #define X_ENABLE_PIN 24 17 | #define X_STOP_PIN 7 18 | 19 | //y axis pins 20 | #define Y_STEP_PIN 23 21 | #define Y_DIR_PIN 22 22 | #define Y_ENABLE_PIN 24 23 | #define Y_STOP_PIN 5 24 | 25 | //z axis pins 26 | #define Z_STEP_PIN 26 27 | #define Z_DIR_PIN 25 28 | #define Z_ENABLE_PIN 24 29 | #define Z_MIN_PIN 1 30 | #define Z_MAX_PIN 0 31 | 32 | //extruder pins 33 | #define E0_STEP_PIN 28 34 | #define E0_DIR_PIN 27 35 | #define E0_ENABLE_PIN 24 36 | 37 | #define TEMP_0_PIN 1 38 | #define TEMP_1_PIN -1 39 | #define TEMP_2_PIN -1 40 | #define TEMP_BED_PIN 2 41 | 42 | #define HEATER_0_PIN 4 43 | #define HEATER_1_PIN -1 44 | #define HEATER_2_PIN -1 45 | #define HEATER_BED_PIN 3 46 | 47 | #define KILL_PIN -1 48 | 49 | #define SDPOWER -1 50 | #define SDSS -1 // SCL pin of I2C header 51 | #define LED_PIN -1 52 | 53 | #if (GEN7_VERSION >= 13) 54 | // Gen7 v1.3 removed the fan pin 55 | #define FAN_PIN -1 56 | #else 57 | #define FAN_PIN 31 58 | #endif 59 | 60 | #define PS_ON_PIN 15 61 | 62 | //All these generations of Gen7 supply thermistor power 63 | //via PS_ON, so ignore bad thermistor readings 64 | #define BOGUS_TEMPERATURE_FAILSAFE_OVERRIDE 65 | 66 | //our pin for debugging. 67 | #define DEBUG_PIN 0 68 | 69 | //our RS485 pins 70 | #define TX_ENABLE_PIN 12 71 | #define RX_ENABLE_PIN 13 72 | 73 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-dual/pins_GEN7_13.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Gen7 v1.3 pin assignments 3 | */ 4 | 5 | #define MOTHERBOARD BOARD_GEN7_12 6 | #define GEN7_VERSION 13 // v1.3 7 | 8 | #include "pins_GEN7_12.h" 9 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-dual/pins_GEN7_14.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Gen7 v1.4 pin assignments 3 | */ 4 | 5 | #define GEN7_VERSION 14 // v1.4 6 | 7 | #if !defined(__AVR_ATmega644P__) && !defined(__AVR_ATmega644__) && !defined(__AVR_ATmega1284P__) 8 | #error Oops! Make sure you have 'Gen7' selected from the 'Tools -> Boards' menu. 9 | #endif 10 | 11 | //x axis pins 12 | #define X_STEP_PIN 29 13 | #define X_DIR_PIN 28 14 | #define X_ENABLE_PIN 25 15 | #define X_STOP_PIN 0 16 | 17 | //y axis pins 18 | #define Y_STEP_PIN 27 19 | #define Y_DIR_PIN 26 20 | #define Y_ENABLE_PIN 25 21 | #define Y_STOP_PIN 1 22 | 23 | //z axis pins 24 | #define Z_STEP_PIN 23 25 | #define Z_DIR_PIN 22 26 | #define Z_ENABLE_PIN 25 27 | #define Z_STOP_PIN 2 28 | 29 | //extruder pins 30 | #define E0_STEP_PIN 19 31 | #define E0_DIR_PIN 18 32 | #define E0_ENABLE_PIN 25 33 | 34 | #define TEMP_0_PIN 1 35 | #define TEMP_1_PIN -1 36 | #define TEMP_2_PIN -1 37 | #define TEMP_BED_PIN 0 38 | 39 | #define HEATER_0_PIN 4 40 | #define HEATER_1_PIN -1 41 | #define HEATER_2_PIN -1 42 | #define HEATER_BED_PIN 3 43 | 44 | #define KILL_PIN -1 45 | 46 | #define SDPOWER -1 47 | #define SDSS -1 // SCL pin of I2C header 48 | #define LED_PIN -1 49 | 50 | #define FAN_PIN -1 51 | 52 | #define PS_ON_PIN 15 53 | 54 | //our pin for debugging. 55 | #define DEBUG_PIN 0 56 | 57 | //our RS485 pins 58 | #define TX_ENABLE_PIN 12 59 | #define RX_ENABLE_PIN 13 60 | 61 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-dual/pins_GEN7_CUSTOM.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Gen7 Alfons3 board pin assignments 3 | * 4 | * These Pins are assigned for the modified GEN7 Board from Alfons3. 5 | * Please review the pins and adjust them for your needs. 6 | */ 7 | 8 | #if !defined(__AVR_ATmega644P__) && !defined(__AVR_ATmega644__) && !defined(__AVR_ATmega1284P__) 9 | #error Oops! Make sure you have 'Gen7' selected from the 'Tools -> Boards' menu. 10 | #endif 11 | 12 | //x axis pins 13 | #define X_STEP_PIN 21 // different from standard GEN7 14 | #define X_DIR_PIN 20 // different from standard GEN7 15 | #define X_ENABLE_PIN 24 16 | #define X_STOP_PIN 0 17 | 18 | //y axis pins 19 | #define Y_STEP_PIN 23 20 | #define Y_DIR_PIN 22 21 | #define Y_ENABLE_PIN 24 22 | #define Y_STOP_PIN 1 23 | 24 | //z axis pins 25 | #define Z_STEP_PIN 26 26 | #define Z_DIR_PIN 25 27 | #define Z_ENABLE_PIN 24 28 | #define Z_STOP_PIN 2 29 | 30 | //extruder pins 31 | #define E0_STEP_PIN 28 32 | #define E0_DIR_PIN 27 33 | #define E0_ENABLE_PIN 24 34 | 35 | #define TEMP_0_PIN 2 36 | #define TEMP_1_PIN -1 37 | #define TEMP_2_PIN -1 38 | #define TEMP_BED_PIN 1 // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!! (pin 34 bed) 39 | 40 | #define HEATER_0_PIN 4 41 | #define HEATER_1_PIN -1 42 | #define HEATER_2_PIN -1 43 | #define HEATER_BED_PIN 3 // (bed) 44 | 45 | #define SDPOWER -1 46 | #define SDSS 31 // SCL pin of I2C header || CS Pin for SD Card support 47 | #define LED_PIN -1 48 | 49 | #define FAN_PIN -1 50 | #define PS_ON_PIN 19 51 | //our pin for debugging. 52 | 53 | #define DEBUG_PIN -1 54 | 55 | //our RS485 pins 56 | //#define TX_ENABLE_PIN 12 57 | //#define RX_ENABLE_PIN 13 58 | 59 | #define BEEPER -1 60 | #define SDCARDDETECT -1 61 | #define SUICIDE_PIN -1 //has to be defined; otherwise Power_off doesn't work 62 | 63 | #define KILL_PIN -1 64 | //Pins for 4bit LCD Support 65 | #define LCD_PINS_RS 18 66 | #define LCD_PINS_ENABLE 17 67 | #define LCD_PINS_D4 16 68 | #define LCD_PINS_D5 15 69 | #define LCD_PINS_D6 13 70 | #define LCD_PINS_D7 14 71 | 72 | //buttons are directly attached 73 | #define BTN_EN1 11 74 | #define BTN_EN2 10 75 | #define BTN_ENC 12 //the click 76 | 77 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-dual/pins_HEPHESTOS.h: -------------------------------------------------------------------------------- 1 | /** 2 | * bq Prusa i3 Hephestos – Arduino Mega with RAMPS v1.3/1.4 pin assignments 3 | */ 4 | 5 | #include "pins_RAMPS_13.h" 6 | 7 | #undef FAN_PIN 8 | #define FAN_PIN 9 // (Sprinter config) 9 | 10 | #undef HEATER_1_PIN 11 | #define HEATER_1_PIN -1 12 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-dual/pins_K8200.h: -------------------------------------------------------------------------------- 1 | /** 2 | * K8200 Arduino Mega with RAMPS v1.3 pin assignments 3 | * Identical to 3DRAG 4 | */ 5 | 6 | #include "pins_3DRAG.h" 7 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-dual/pins_LEAPFROG.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Leapfrog Driver board pin assignments 3 | */ 4 | 5 | #if !defined(__AVR_ATmega1280__) && !defined(__AVR_ATmega2560__) 6 | #error Oops! Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu. 7 | #endif 8 | 9 | #define X_STEP_PIN 28 10 | #define X_DIR_PIN 63 11 | #define X_ENABLE_PIN 29 12 | #define X_MIN_PIN 47 13 | #define X_MAX_PIN 2 //Max endstops default to disabled "-1", set to commented value to enable. 14 | 15 | #define Y_STEP_PIN 14 // A6 16 | #define Y_DIR_PIN 15 // A0 17 | #define Y_ENABLE_PIN 39 18 | #define Y_MIN_PIN 48 19 | #define Y_MAX_PIN 15 20 | 21 | #define Z_STEP_PIN 31 // A2 22 | #define Z_DIR_PIN 32 // A6 23 | #define Z_ENABLE_PIN 30 // A1 24 | #define Z_MIN_PIN 49 25 | #define Z_MAX_PIN -1 26 | 27 | #define E0_STEP_PIN 34 //34 28 | #define E0_DIR_PIN 35 //35 29 | #define E0_ENABLE_PIN 33 //33 30 | 31 | #define E1_STEP_PIN 37 //37 32 | #define E1_DIR_PIN 40 //40 33 | #define E1_ENABLE_PIN 36 //36 34 | 35 | #define Y2_STEP_PIN 37 36 | #define Y2_DIR_PIN 40 37 | #define Y2_ENABLE_PIN 36 38 | 39 | #define Z2_STEP_PIN 37 40 | #define Z2_DIR_PIN 40 41 | #define Z2_ENABLE_PIN 36 42 | 43 | #define SDPOWER -1 44 | #define SDSS 11 45 | #define SDCARDDETECT -1 // 10 optional also used as mode pin 46 | #define LED_PIN 13 47 | #define FAN_PIN 7 48 | #define PS_ON_PIN -1 49 | #define KILL_PIN -1 50 | #define SOL1_PIN 16 51 | #define SOL2_PIN 17 52 | 53 | #define HEATER_0_PIN 9 54 | #define HEATER_1_PIN 8 // 12 55 | #define HEATER_2_PIN 11 //-1 // 13 56 | #define TEMP_0_PIN 13 //D27 // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!! 57 | #define TEMP_1_PIN 15 // 1 58 | #define TEMP_2_PIN -1 // 2 59 | #define HEATER_BED_PIN 10 // 14/15 60 | #define TEMP_BED_PIN 14 // 1,2 or I2C 61 | /* Unused (1) (2) (3) 4 5 6 7 8 9 10 11 12 13 (14) (15) (16) 17 (18) (19) (20) (21) (22) (23) 24 (25) (26) (27) 28 (29) (30) (31) */ 62 | 63 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-dual/pins_MEGATRONICS.h: -------------------------------------------------------------------------------- 1 | /** 2 | * MegaTronics pin assignments 3 | */ 4 | 5 | #ifndef __AVR_ATmega2560__ 6 | #error Oops! Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu. 7 | #endif 8 | 9 | #define LARGE_FLASH true 10 | 11 | #define X_STEP_PIN 26 12 | #define X_DIR_PIN 28 13 | #define X_ENABLE_PIN 24 14 | #define X_MIN_PIN 41 15 | #define X_MAX_PIN 37 16 | 17 | #define Y_STEP_PIN 60 // A6 18 | #define Y_DIR_PIN 61 // A7 19 | #define Y_ENABLE_PIN 22 20 | #define Y_MIN_PIN 14 21 | #define Y_MAX_PIN 15 22 | 23 | #define Z_STEP_PIN 54 // A0 24 | #define Z_DIR_PIN 55 // A1 25 | #define Z_ENABLE_PIN 56 // A2 26 | #define Z_MIN_PIN 18 27 | #define Z_MAX_PIN 19 28 | 29 | #define E0_STEP_PIN 31 30 | #define E0_DIR_PIN 32 31 | #define E0_ENABLE_PIN 38 32 | 33 | #define E1_STEP_PIN 34 34 | #define E1_DIR_PIN 36 35 | #define E1_ENABLE_PIN 30 36 | 37 | #define SDPOWER -1 38 | #define SDSS 53 39 | #define LED_PIN 13 40 | 41 | 42 | #define FAN_PIN 7 // IO pin. Buffer needed 43 | #define PS_ON_PIN 12 44 | #define KILL_PIN -1 45 | 46 | #define HEATER_0_PIN 9 // EXTRUDER 1 47 | #define HEATER_1_PIN 8 // EXTRUDER 2 (FAN On Sprinter) 48 | #define HEATER_2_PIN -1 49 | 50 | #if TEMP_SENSOR_0 == -1 51 | #define TEMP_0_PIN 8 // ANALOG NUMBERING 52 | #else 53 | #define TEMP_0_PIN 13 // ANALOG NUMBERING 54 | 55 | #endif 56 | 57 | #define TEMP_1_PIN 15 // ANALOG NUMBERING 58 | #define TEMP_2_PIN -1 // ANALOG NUMBERING 59 | #define HEATER_BED_PIN 10 // BED 60 | #define TEMP_BED_PIN 14 // ANALOG NUMBERING 61 | 62 | #define BEEPER 33 // Beeper on AUX-4 63 | 64 | 65 | #if defined(ULTRA_LCD) && defined(NEWPANEL) 66 | //arduino pin which triggers an piezzo beeper 67 | 68 | #define LCD_PINS_RS 16 69 | #define LCD_PINS_ENABLE 17 70 | #define LCD_PINS_D4 23 71 | #define LCD_PINS_D5 25 72 | #define LCD_PINS_D6 27 73 | #define LCD_PINS_D7 29 74 | 75 | //buttons are directly attached using AUX-2 76 | #define BTN_EN1 59 77 | #define BTN_EN2 64 78 | #define BTN_ENC 43 //the click 79 | 80 | #define BLEN_C 2 81 | #define BLEN_B 1 82 | #define BLEN_A 0 83 | 84 | #define SDCARDDETECT -1 // Ramps does not use this port 85 | 86 | #endif // ULTRA_LCD && NEWPANEL 87 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-dual/pins_MEGATRONICS_1.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Minitronics v1.0 pin assignments 3 | */ 4 | 5 | #ifndef __AVR_ATmega1281__ 6 | #error Oops! Make sure you have 'Minitronics' selected from the 'Tools -> Boards' menu. 7 | #endif 8 | 9 | #define LARGE_FLASH true 10 | 11 | #define X_STEP_PIN 48 12 | #define X_DIR_PIN 47 13 | #define X_ENABLE_PIN 49 14 | #define X_MIN_PIN 5 15 | #define X_MAX_PIN 2 16 | 17 | #define Y_STEP_PIN 42 // A6 was 39 18 | #define Y_DIR_PIN 43 // A0 was 40 19 | #define Y_ENABLE_PIN 41 // was 38 20 | #define Y_MIN_PIN 6 // was 2 21 | #define Y_MAX_PIN -1 //15 22 | 23 | #define Z_STEP_PIN 39 // A2 was 42 24 | #define Z_DIR_PIN 40 // A6 was 43 25 | #define Z_ENABLE_PIN 38 // A1 was 41 26 | #define Z_MIN_PIN 2 // was 6 27 | #define Z_MAX_PIN -1 28 | 29 | #define E0_STEP_PIN 45 30 | #define E0_DIR_PIN 44 31 | #define E0_ENABLE_PIN 27 32 | 33 | #define E1_STEP_PIN 36 34 | #define E1_DIR_PIN 35 35 | #define E1_ENABLE_PIN 37 36 | 37 | #define E2_STEP_PIN -1 38 | #define E2_DIR_PIN -1 39 | #define E2_ENABLE_PIN -1 40 | 41 | #define SDPOWER -1 42 | #define SDSS 16 43 | #define LED_PIN 46 44 | 45 | #define FAN_PIN 9 46 | #define FAN2_PIN -1 47 | #define PS_ON_PIN -1 48 | #define KILL_PIN -1 49 | 50 | #define HEATER_0_PIN 7 // EXTRUDER 1 51 | #define HEATER_1_PIN 8 // EXTRUDER 2 52 | #define HEATER_2_PIN -1 53 | 54 | 55 | #define TEMP_0_PIN 7 // ANALOG NUMBERING 56 | #define TEMP_1_PIN 6 // ANALOG NUMBERING 57 | #define TEMP_2_PIN -1 // ANALOG NUMBERING 58 | 59 | #define HEATER_BED_PIN 3 // BED 60 | #define TEMP_BED_PIN 6 // ANALOG NUMBERING 61 | 62 | #define BEEPER -1 63 | 64 | 65 | #define LCD_PINS_RS -1 66 | #define LCD_PINS_ENABLE -1 67 | #define LCD_PINS_D4 -1 68 | #define LCD_PINS_D5 -1 69 | #define LCD_PINS_D6 -1 70 | #define LCD_PINS_D7 -1 71 | 72 | 73 | // Buttons are directly attached using keypad 74 | #define BTN_EN1 -1 75 | #define BTN_EN2 -1 76 | #define BTN_ENC -1 // the click 77 | 78 | #define BLEN_C 2 79 | #define BLEN_B 1 80 | #define BLEN_A 0 81 | 82 | #define SDCARDDETECT -1 // Megatronics does not use this port 83 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-dual/pins_MEGATRONICS_2.h: -------------------------------------------------------------------------------- 1 | /** 2 | * MegaTronics v2.0 pin assignments 3 | */ 4 | 5 | #ifndef __AVR_ATmega2560__ 6 | #error Oops! Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu. 7 | #endif 8 | 9 | #define LARGE_FLASH true 10 | 11 | #define X_STEP_PIN 26 12 | #define X_DIR_PIN 27 13 | #define X_ENABLE_PIN 25 14 | #define X_MIN_PIN 37 15 | #define X_MAX_PIN 40 16 | 17 | #define Y_STEP_PIN 4 // A6 18 | #define Y_DIR_PIN 54 // A0 19 | #define Y_ENABLE_PIN 5 20 | #define Y_MIN_PIN 41 21 | #define Y_MAX_PIN 38 22 | 23 | #define Z_STEP_PIN 56 // A2 24 | #define Z_DIR_PIN 60 // A6 25 | #define Z_ENABLE_PIN 55 // A1 26 | #define Z_MIN_PIN 18 27 | #define Z_MAX_PIN 19 28 | 29 | #define E0_STEP_PIN 35 30 | #define E0_DIR_PIN 36 31 | #define E0_ENABLE_PIN 34 32 | 33 | #define E1_STEP_PIN 29 34 | #define E1_DIR_PIN 39 35 | #define E1_ENABLE_PIN 28 36 | 37 | #define E2_STEP_PIN 23 38 | #define E2_DIR_PIN 24 39 | #define E2_ENABLE_PIN 22 40 | 41 | #define SDPOWER -1 42 | #define SDSS 53 43 | #define LED_PIN 13 44 | 45 | #define FAN_PIN 7 46 | #define FAN2_PIN 6 47 | #define PS_ON_PIN 12 48 | #define KILL_PIN -1 49 | 50 | #define HEATER_0_PIN 9 // EXTRUDER 1 51 | #define HEATER_1_PIN 8 // EXTRUDER 2 52 | #define HEATER_2_PIN -1 53 | 54 | #if TEMP_SENSOR_0 == -1 55 | #define TEMP_0_PIN 4 // ANALOG NUMBERING 56 | #else 57 | #define TEMP_0_PIN 13 // ANALOG NUMBERING 58 | #endif 59 | 60 | 61 | #if TEMP_SENSOR_1 == -1 62 | #define TEMP_1_PIN 8 // ANALOG NUMBERING 63 | #else 64 | #define TEMP_1_PIN 15 // ANALOG NUMBERING 65 | #endif 66 | 67 | #define TEMP_2_PIN -1 // ANALOG NUMBERING 68 | 69 | #define HEATER_BED_PIN 10 // BED 70 | 71 | #if TEMP_SENSOR_BED == -1 72 | #define TEMP_BED_PIN 8 // ANALOG NUMBERING 73 | #else 74 | #define TEMP_BED_PIN 14 // ANALOG NUMBERING 75 | #endif 76 | 77 | #define BEEPER 64 78 | 79 | 80 | #define LCD_PINS_RS 14 81 | #define LCD_PINS_ENABLE 15 82 | #define LCD_PINS_D4 30 83 | #define LCD_PINS_D5 31 84 | #define LCD_PINS_D6 32 85 | #define LCD_PINS_D7 33 86 | 87 | 88 | // Buttons are directly attached using keypad 89 | #define BTN_EN1 61 90 | #define BTN_EN2 59 91 | #define BTN_ENC 43 //the click 92 | 93 | #define BLEN_C 2 94 | #define BLEN_B 1 95 | #define BLEN_A 0 96 | 97 | #define SDCARDDETECT -1 // Megatronics does not use this port 98 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-dual/pins_MEGATRONICS_3.h: -------------------------------------------------------------------------------- 1 | /** 2 | * MegaTronics v3.0 pin assignments 3 | */ 4 | 5 | #ifndef __AVR_ATmega2560__ 6 | #error Oops! Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu. 7 | #endif 8 | 9 | #define LARGE_FLASH true 10 | 11 | // Servo support 12 | #ifdef NUM_SERVOS 13 | #define SERVO0_PIN 46 //AUX3-6 14 | #if NUM_SERVOS > 1 15 | #define SERVO1_PIN 47 //AUX3-5 16 | #if NUM_SERVOS > 2 17 | #define SERVO2_PIN 48 //AUX3-4 18 | #if NUM_SERVOS > 3 19 | #define SERVO2_PIN 49 //AUX3-3 20 | #endif 21 | #endif 22 | #endif 23 | #endif 24 | 25 | #define X_STEP_PIN 58 26 | #define X_DIR_PIN 57 27 | #define X_ENABLE_PIN 59 28 | #define X_MIN_PIN 37 29 | #define X_MAX_PIN 40 // put to -1 to disable 30 | 31 | #define Y_STEP_PIN 16 // was 5 32 | #define Y_DIR_PIN 11 // was 17 33 | #define Y_ENABLE_PIN 3 // was 4 34 | #define Y_MIN_PIN 18 // was 41 35 | #define Y_MAX_PIN 19 // was 38 - put to -1 to disable 36 | 37 | #define Z_STEP_PIN 5 // was 16 38 | #define Z_DIR_PIN 17 // was 11 39 | #define Z_ENABLE_PIN 4 // was 3 40 | #define Z_MIN_PIN 41 // was 18 41 | #define Z_MAX_PIN 38 // was 19 - put to -1 to disable 42 | 43 | #define E0_STEP_PIN 28 44 | #define E0_DIR_PIN 27 45 | #define E0_ENABLE_PIN 29 46 | 47 | #define E1_STEP_PIN 25 48 | #define E1_DIR_PIN 24 49 | #define E1_ENABLE_PIN 26 50 | 51 | #define E2_STEP_PIN 22 52 | #define E2_DIR_PIN 60 53 | #define E2_ENABLE_PIN 23 54 | 55 | #define SDPOWER -1 56 | #define SDSS 53 57 | #define LED_PIN 13 58 | 59 | #define PS_ON_PIN 12 60 | #define KILL_PIN -1 61 | 62 | #define HEATER_0_PIN 2 63 | #define HEATER_1_PIN 9 64 | #define HEATER_2_PIN 8 65 | #define HEATER_BED_PIN 10 66 | #define FAN_PIN 6 67 | #define FAN2_PIN 7 68 | 69 | #define TEMP_0_PIN (TEMP_SENSOR_0 == -1 ? 11 : 15) // ANALOG NUMBERING 70 | #define TEMP_1_PIN (TEMP_SENSOR_1 == -1 ? 10 : 13) // ANALOG NUMBERING 71 | #define TEMP_2_PIN (TEMP_SENSOR_2 == -1 ? 9 : 12) // ANALOG NUMBERING 72 | #define TEMP_BED_PIN (TEMP_SENSOR_BED == -1 ? 8 : 14) // ANALOG NUMBERING 73 | 74 | #define BEEPER 61 75 | 76 | #define LCD_PINS_RS 32 77 | #define LCD_PINS_ENABLE 31 78 | #define LCD_PINS_D4 14 79 | #define LCD_PINS_D5 30 80 | #define LCD_PINS_D6 39 81 | #define LCD_PINS_D7 15 82 | 83 | #define SHIFT_CLK 43 84 | #define SHIFT_LD 35 85 | #define SHIFT_OUT 34 86 | #define SHIFT_EN 44 87 | 88 | // Buttons are directly attached using keypad 89 | #define BTN_EN1 44 90 | #define BTN_EN2 45 91 | #define BTN_ENC 33 // the click 92 | 93 | #define BLEN_C 2 94 | #define BLEN_B 1 95 | #define BLEN_A 0 96 | 97 | #define SDCARDDETECT -1 // Megatronics does not use this port 98 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-dual/pins_MELZI.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Melzi pin assignments 3 | */ 4 | 5 | #define SANGUINOLOLU_V_1_2 6 | 7 | #if defined(__AVR_ATmega1284P__) 8 | #define LARGE_FLASH true 9 | #endif 10 | 11 | #include "pins_SANGUINOLOLU_11.h" 12 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-dual/pins_MELZI_1284.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Melzi with ATmega1284 (MaKr3d version) pin assignments 3 | */ 4 | 5 | #define MELZI 6 | 7 | #undef MOTHERBOARD 8 | #define MOTHERBOARD BOARD_SANGUINOLOLU_11 9 | #define SANGUINOLOLU_V_1_2 10 | 11 | #if defined(__AVR_ATmega1284P__) 12 | #define LARGE_FLASH true 13 | #endif 14 | 15 | #include "pins_SANGUINOLOLU_11.h" 16 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-dual/pins_OMCA.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Open Motion controller with enable based extruders (Final!) 3 | * 4 | * ATMega644 5 | * 6 | * +---\/---+ 7 | * (D 0) PB0 1| |40 PA0 (AI 0 / D31) 8 | * (D 1) PB1 2| |39 PA1 (AI 1 / D30) 9 | * INT2 (D 2) PB2 3| |38 PA2 (AI 2 / D29) 10 | * PWM (D 3) PB3 4| |37 PA3 (AI 3 / D28) 11 | * PWM (D 4) PB4 5| |36 PA4 (AI 4 / D27) 12 | * MOSI (D 5) PB5 6| |35 PA5 (AI 5 / D26) 13 | * MISO (D 6) PB6 7| |34 PA6 (AI 6 / D25) 14 | * SCK (D 7) PB7 8| |33 PA7 (AI 7 / D24) 15 | * RST 9| |32 AREF 16 | * VCC 10| |31 GND 17 | * GND 11| |30 AVCC 18 | * XTAL2 12| |29 PC7 (D 23) 19 | * XTAL1 13| |28 PC6 (D 22) 20 | * RX0 (D 8) PD0 14| |27 PC5 (D 21) TDI 21 | * TX0 (D 9) PD1 15| |26 PC4 (D 20) TDO 22 | * INT0 RX1 (D 10) PD2 16| |25 PC3 (D 19) TMS 23 | * INT1 TX1 (D 11) PD3 17| |24 PC2 (D 18) TCK 24 | * PWM (D 12) PD4 18| |23 PC1 (D 17) SDA 25 | * PWM (D 13) PD5 19| |22 PC0 (D 16) SCL 26 | * PWM (D 14) PD6 20| |21 PD7 (D 15) PWM 27 | * +--------+ 28 | * 29 | * REF http://sanguino.cc/hardware 30 | */ 31 | 32 | #if !defined(__AVR_ATmega644P__) && !defined(__AVR_ATmega644__) 33 | #error Oops! Make sure you have 'Sanguino' selected from the 'Tools -> Boards' menu. (Final OMCA board) 34 | #endif 35 | 36 | #define X_STEP_PIN 26 37 | #define X_DIR_PIN 25 38 | #define X_ENABLE_PIN 10 39 | #define X_STOP_PIN 0 40 | 41 | #define Y_STEP_PIN 28 42 | #define Y_DIR_PIN 27 43 | #define Y_ENABLE_PIN 10 44 | #define Y_STOP_PIN 1 45 | 46 | #define Z_STEP_PIN 23 47 | #define Z_DIR_PIN 22 48 | #define Z_ENABLE_PIN 10 49 | #define Z_STOP_PIN 2 50 | 51 | #define E0_STEP_PIN 24 52 | #define E0_DIR_PIN 21 53 | #define E0_ENABLE_PIN 10 54 | 55 | // future proofing 56 | #define __FS 20 57 | #define __FD 19 58 | #define __GS 18 59 | #define __GD 13 60 | 61 | #define UNUSED_PWM 14 // PWM on LEFT connector 62 | 63 | #define E1_STEP_PIN -1 // 21 64 | #define E1_DIR_PIN -1 // 20 65 | #define E1_ENABLE_PIN -1 // 19 66 | 67 | #define E2_STEP_PIN -1 // 21 68 | #define E2_DIR_PIN -1 // 20 69 | #define E2_ENABLE_PIN -1 // 18 70 | 71 | #define SDPOWER -1 72 | #define SDSS 11 73 | #define SDCARDDETECT -1 // 10 optional also used as mode pin 74 | #define LED_PIN -1 75 | #define FAN_PIN 14 // PWM on MIDDLE connector 76 | #define PS_ON_PIN -1 77 | #define KILL_PIN -1 78 | 79 | #define HEATER_0_PIN 3 // DONE PWM on RIGHT connector 80 | #define HEATER_1_PIN -1 81 | #define HEATER_2_PIN -1 82 | #define HEATER_1_PIN -1 83 | #define HEATER_2_PIN -1 84 | #define TEMP_0_PIN 0 // ANALOG INPUT NUMBERING 85 | #define TEMP_1_PIN 1 // ANALOG 86 | #define TEMP_2_PIN -1 // 2 87 | #define HEATER_BED_PIN 4 88 | #define TEMP_BED_PIN 2 // 1,2 or I2C 89 | 90 | #define I2C_SCL 16 91 | #define I2C_SDA 17 92 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-dual/pins_OMCA_A.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Open Motion controller with enable based extruders (Alpha!) 3 | * 4 | * ATMega644 5 | * 6 | * +---\/---+ 7 | * (D 0) PB0 1| |40 PA0 (AI 0 / D31) 8 | * (D 1) PB1 2| |39 PA1 (AI 1 / D30) 9 | * INT2 (D 2) PB2 3| |38 PA2 (AI 2 / D29) 10 | * PWM (D 3) PB3 4| |37 PA3 (AI 3 / D28) 11 | * PWM (D 4) PB4 5| |36 PA4 (AI 4 / D27) 12 | * MOSI (D 5) PB5 6| |35 PA5 (AI 5 / D26) 13 | * MISO (D 6) PB6 7| |34 PA6 (AI 6 / D25) 14 | * SCK (D 7) PB7 8| |33 PA7 (AI 7 / D24) 15 | * RST 9| |32 AREF 16 | * VCC 10| |31 GND 17 | * GND 11| |30 AVCC 18 | * XTAL2 12| |29 PC7 (D 23) 19 | * XTAL1 13| |28 PC6 (D 22) 20 | * RX0 (D 8) PD0 14| |27 PC5 (D 21) TDI 21 | * TX0 (D 9) PD1 15| |26 PC4 (D 20) TDO 22 | * INT0 RX1 (D 10) PD2 16| |25 PC3 (D 19) TMS 23 | * INT1 TX1 (D 11) PD3 17| |24 PC2 (D 18) TCK 24 | * PWM (D 12) PD4 18| |23 PC1 (D 17) SDA 25 | * PWM (D 13) PD5 19| |22 PC0 (D 16) SCL 26 | * PWM (D 14) PD6 20| |21 PD7 (D 15) PWM 27 | * +--------+ 28 | * 29 | */ 30 | 31 | #ifndef __AVR_ATmega644__ 32 | #error Oops! Make sure you have 'SanguinoA' selected from the 'Tools -> Boards' menu. 33 | #endif 34 | 35 | #define X_STEP_PIN 21 36 | #define X_DIR_PIN 20 37 | #define X_ENABLE_PIN 24 38 | #define X_STOP_PIN 0 39 | 40 | #define Y_STEP_PIN 23 41 | #define Y_DIR_PIN 22 42 | #define Y_ENABLE_PIN 24 43 | #define Y_STOP_PIN 1 44 | 45 | #define Z_STEP_PIN 26 46 | #define Z_DIR_PIN 25 47 | #define Z_ENABLE_PIN 24 48 | #define Z_STOP_PIN 2 49 | 50 | #define E0_STEP_PIN 28 51 | #define E0_DIR_PIN 27 52 | #define E0_ENABLE_PIN 24 53 | 54 | #define E1_STEP_PIN -1 // 19 55 | #define E1_DIR_PIN -1 // 18 56 | #define E1_ENABLE_PIN 24 57 | 58 | #define E2_STEP_PIN -1 // 17 59 | #define E2_DIR_PIN -1 // 16 60 | #define E2_ENABLE_PIN 24 61 | 62 | #define SDPOWER -1 63 | #define SDSS 11 64 | #define SDCARDDETECT -1 // 10 optional also used as mode pin 65 | #define LED_PIN -1 66 | #define FAN_PIN 3 67 | #define PS_ON_PIN -1 68 | #define KILL_PIN -1 69 | 70 | #define HEATER_0_PIN 4 71 | #define HEATER_1_PIN -1 // 12 72 | #define HEATER_2_PIN -1 // 13 73 | #define TEMP_0_PIN 0 //D27 // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!! 74 | #define TEMP_1_PIN -1 // 1 75 | #define TEMP_2_PIN -1 // 2 76 | #define HEATER_BED_PIN -1 // 14/15 77 | #define TEMP_BED_PIN -1 // 1,2 or I2C 78 | /* Unused (1) (2) (3) 4 5 6 7 8 9 10 11 12 13 (14) (15) (16) 17 (18) (19) (20) (21) (22) (23) 24 (25) (26) (27) 28 (29) (30) (31) */ 79 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-dual/pins_RAMPS_OLD.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Arduino Mega with RAMPS v1.0, v1.1, v1.2 pin assignments 3 | */ 4 | 5 | #if !defined(__AVR_ATmega1280__) && !defined(__AVR_ATmega2560__) 6 | #error Oops! Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu. 7 | #endif 8 | 9 | // Uncomment the following line for RAMPS v1.0 10 | //#define RAMPS_V_1_0 11 | 12 | #define X_STEP_PIN 26 13 | #define X_DIR_PIN 28 14 | #define X_ENABLE_PIN 24 15 | #define X_MIN_PIN 3 16 | #define X_MAX_PIN 2 17 | 18 | #define Y_STEP_PIN 38 19 | #define Y_DIR_PIN 40 20 | #define Y_ENABLE_PIN 36 21 | #define Y_MIN_PIN 16 22 | #define Y_MAX_PIN 17 23 | 24 | #define Z_STEP_PIN 44 25 | #define Z_DIR_PIN 46 26 | #define Z_ENABLE_PIN 42 27 | #define Z_MIN_PIN 18 28 | #define Z_MAX_PIN 19 29 | 30 | #define E0_STEP_PIN 32 31 | #define E0_DIR_PIN 34 32 | #define E0_ENABLE_PIN 30 33 | 34 | #define SDPOWER 48 35 | #define SDSS 53 36 | #define LED_PIN 13 37 | #define PS_ON_PIN -1 38 | #define KILL_PIN -1 39 | 40 | #ifdef RAMPS_V_1_0 // RAMPS_V_1_0 41 | #define HEATER_0_PIN 12 // RAMPS 1.0 42 | #define HEATER_BED_PIN -1 // RAMPS 1.0 43 | #define FAN_PIN 11 // RAMPS 1.0 44 | #else // RAMPS_V_1_1 or RAMPS_V_1_2 45 | #define HEATER_0_PIN 10 // RAMPS 1.1 46 | #define HEATER_BED_PIN 8 // RAMPS 1.1 47 | #define FAN_PIN 9 // RAMPS 1.1 48 | #endif 49 | 50 | #define HEATER_1_PIN -1 51 | #define HEATER_2_PIN -1 52 | #define TEMP_0_PIN 2 // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!! 53 | #define TEMP_1_PIN -1 54 | #define TEMP_2_PIN -1 55 | #define TEMP_BED_PIN 1 // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!! 56 | 57 | // SPI for Max6675 Thermocouple 58 | #ifndef SDSUPPORT 59 | #define MAX6675_SS 66// Do not use pin 53 if there is even the remote possibility of using Display/SD card 60 | #else 61 | #define MAX6675_SS 66// Do not use pin 49 as this is tied to the switch inside the SD card socket to detect if there is an SD card present 62 | #endif 63 | 64 | #ifndef SDSUPPORT 65 | // these pins are defined in the SD library if building with SD support 66 | #define SCK_PIN 52 67 | #define MISO_PIN 50 68 | #define MOSI_PIN 51 69 | #endif 70 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-dual/pins_SANGUINOLOLU_12.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Sanguinololu V1.2 pin assignments 3 | * 4 | * Applies to the following boards: 5 | * 6 | * AZTEEG_X1 7 | * MELZI 8 | * MELZI_1284 9 | * SANGUINOLOLU_12 10 | * STB_11 11 | */ 12 | 13 | #define SANGUINOLOLU_V_1_2 14 | 15 | #if defined(__AVR_ATmega1284P__) 16 | #define LARGE_FLASH true 17 | #endif 18 | 19 | #include "pins_SANGUINOLOLU_11.h" 20 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-dual/pins_SAV_MKI.h: -------------------------------------------------------------------------------- 1 | /** 2 | * SAV MkI pin assignments (AT90USB1286) 3 | * Requires the Teensyduino software with Teensy++ 2.0 selected in Arduino IDE! 4 | * http://www.pjrc.com/teensy/teensyduino.html 5 | * RepRap Clone Wars project board. 6 | */ 7 | 8 | #ifndef __AVR_AT90USB1286__ 9 | #error Oops! Make sure you have 'Teensy++ 2.0' selected from the 'Tools -> Boards' menu. 10 | #endif 11 | 12 | #define AT90USB 1286 // Disable MarlinSerial etc. 13 | 14 | #define LARGE_FLASH true 15 | 16 | #define X_STEP_PIN 0 17 | #define X_DIR_PIN 1 18 | #define X_ENABLE_PIN 39 19 | 20 | #define Y_STEP_PIN 2 21 | #define Y_DIR_PIN 3 22 | #define Y_ENABLE_PIN 38 23 | 24 | #define Z_STEP_PIN 4 25 | #define Z_DIR_PIN 5 26 | #define Z_ENABLE_PIN 23 27 | 28 | #define E0_STEP_PIN 6 29 | #define E0_DIR_PIN 7 30 | #define E0_ENABLE_PIN 19 31 | 32 | #define HEATER_0_PIN 21 // Extruder 33 | #define HEATER_1_PIN -1 34 | #define HEATER_2_PIN -1 35 | #define HEATER_BED_PIN 20 // Bed 36 | #define FAN_PIN 16 // Fan -- from Teensyduino environment. 37 | // For the fan and Teensyduino uses a different pin mapping. 38 | 39 | #define X_STOP_PIN 13 40 | #define Y_STOP_PIN 14 41 | #define Z_STOP_PIN 15 42 | //#define Z_STOP_PIN 36 // For inductive sensor. 43 | 44 | #define TEMP_0_PIN 7 // Extruder / Analog pin numbering 45 | #define TEMP_BED_PIN 6 // Bed / Analog pin numbering 46 | 47 | #define TEMP_1_PIN -1 48 | #define TEMP_2_PIN -1 49 | 50 | #define SDPOWER -1 51 | #define SDSS 20 // PB0 - 8 in marlin env. 52 | #define LED_PIN -1 53 | #define PS_ON_PIN -1 54 | #define ALARM_PIN -1 55 | #define SDCARDDETECT -1 56 | 57 | #ifndef SDSUPPORT 58 | // these pins are defined in the SD library if building with SD support 59 | #define SCK_PIN 9 60 | #define MISO_PIN 11 61 | #define MOSI_PIN 10 62 | #endif 63 | 64 | #define BEEPER -1 65 | #define LCD_PINS_RS -1 66 | #define LCD_PINS_ENABLE -1 67 | #define LCD_PINS_D4 -1 68 | #define LCD_PINS_D5 -1 69 | #define LCD_PINS_D6 -1 70 | #define LCD_PINS_D7 -1 71 | 72 | #ifdef SAV_3DLCD 73 | // For LCD SHIFT register LCD 74 | #define SR_DATA_PIN 1 75 | #define SR_CLK_PIN 0 76 | 77 | #define BTN_EN1 41 78 | #define BTN_EN2 40 79 | #define BTN_ENC 12 80 | 81 | #define KILL_PIN 42 // A2 = 42 - teensy = 40 82 | #define HOME_PIN -1 // A4 = marlin 44 - teensy = 42 83 | 84 | #ifdef NUM_SERVOS 85 | #define SERVO0_PIN 41 // In teensy's pin definition for pinMode (in servo.cpp) 86 | #endif 87 | 88 | #endif // SAV_3DLCD 89 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-dual/pins_SETHI.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Sethi 3D_1 pin assignments - www.sethi3d.com.br 3 | */ 4 | 5 | #if !defined(__AVR_ATmega644P__) && !defined(__AVR_ATmega644__) && !defined(__AVR_ATmega1284P__) 6 | #error Oops! Make sure you have 'Sethi 3D' selected from the 'Tools -> Boards' menu. 7 | #endif 8 | 9 | #ifndef GEN7_VERSION 10 | #define GEN7_VERSION 12 // v1.x 11 | #endif 12 | 13 | //x axis pins 14 | #define X_STEP_PIN 19 15 | #define X_DIR_PIN 18 16 | #define X_ENABLE_PIN 24 17 | #define X_STOP_PIN 2 18 | 19 | //y axis pins 20 | #define Y_STEP_PIN 23 21 | #define Y_DIR_PIN 22 22 | #define Y_ENABLE_PIN 24 23 | #define Y_STOP_PIN 0 24 | 25 | //z axis pins 26 | #define Z_STEP_PIN 26 27 | #define Z_DIR_PIN 25 28 | #define Z_ENABLE_PIN 24 29 | #define Z_MIN_PIN 1 30 | #define Z_MAX_PIN 0 31 | 32 | //extruder pins 33 | #define E0_STEP_PIN 28 34 | #define E0_DIR_PIN 27 35 | #define E0_ENABLE_PIN 24 36 | 37 | #define TEMP_0_PIN 1 38 | #define TEMP_1_PIN -1 39 | #define TEMP_2_PIN -1 40 | #define TEMP_BED_PIN 2 41 | 42 | #define HEATER_0_PIN 4 43 | #define HEATER_1_PIN -1 44 | #define HEATER_2_PIN -1 45 | #define HEATER_BED_PIN 3 46 | 47 | #define KILL_PIN -1 48 | 49 | #define SDPOWER -1 50 | #define SDSS -1 // SCL pin of I2C header 51 | #define LED_PIN -1 52 | 53 | #if (GEN7_VERSION >= 13) 54 | // Gen7 v1.3 removed the fan pin 55 | #define FAN_PIN -1 56 | #else 57 | #define FAN_PIN 31 58 | #endif 59 | 60 | #define PS_ON_PIN 15 61 | 62 | //All these generations of Gen7 supply thermistor power 63 | //via PS_ON, so ignore bad thermistor readings 64 | #define BOGUS_TEMPERATURE_FAILSAFE_OVERRIDE 65 | 66 | //our pin for debugging. 67 | #define DEBUG_PIN 0 68 | 69 | //our RS485 pins 70 | #define TX_ENABLE_PIN 12 71 | #define RX_ENABLE_PIN 13 72 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-dual/pins_STB_11.h: -------------------------------------------------------------------------------- 1 | /** 2 | * STB V1.1 pin assignments 3 | */ 4 | 5 | #define SANGUINOLOLU_V_1_2 6 | 7 | #if defined(__AVR_ATmega1284P__) 8 | #define LARGE_FLASH true 9 | #endif 10 | 11 | #include "pins_SANGUINOLOLU_11.h" 12 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-dual/pins_TEENSYLU.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Teensylu 0.7 pin assignments (AT90USB1286) 3 | * Requires the Teensyduino software with Teensy++ 2.0 selected in Arduino IDE! 4 | * http://www.pjrc.com/teensy/teensyduino.html 5 | * See http://reprap.org/wiki/Printrboard for more info 6 | */ 7 | 8 | #ifndef __AVR_AT90USB1286__ 9 | #error Oops! Make sure you have 'Teensy++ 2.0' selected from the 'Tools -> Boards' menu. 10 | #endif 11 | 12 | #ifdef AT90USBxx_TEENSYPP_ASSIGNMENTS // use Teensyduino Teensy++2.0 pin assignments instead of Marlin traditional. 13 | #error These Teensylu assignments depend on traditional Marlin assignments, not AT90USBxx_TEENSYPP_ASSIGNMENTS in fastio.h 14 | #endif 15 | 16 | #define AT90USB 1286 // Disable MarlinSerial etc. 17 | 18 | #define LARGE_FLASH true 19 | 20 | #define X_STEP_PIN 0 21 | #define X_DIR_PIN 1 22 | #define X_ENABLE_PIN 39 23 | 24 | #define Y_STEP_PIN 2 25 | #define Y_DIR_PIN 3 26 | #define Y_ENABLE_PIN 38 27 | 28 | #define Z_STEP_PIN 4 29 | #define Z_DIR_PIN 5 30 | #define Z_ENABLE_PIN 23 31 | 32 | #define E0_STEP_PIN 6 33 | #define E0_DIR_PIN 7 34 | #define E0_ENABLE_PIN 19 35 | 36 | #define HEATER_0_PIN 21 // Extruder 37 | #define HEATER_1_PIN 46 38 | #define HEATER_2_PIN 47 39 | #define HEATER_BED_PIN 20 40 | 41 | // If soft or fast PWM is off then use Teensyduino pin numbering, Marlin 42 | // fastio pin numbering otherwise 43 | #ifdef FAN_SOFT_PWM || FAST_PWM_FAN 44 | #define FAN_PIN 22 45 | #else 46 | #define FAN_PIN 16 47 | #endif 48 | 49 | #define X_STOP_PIN 13 50 | #define Y_STOP_PIN 14 51 | #define Z_STOP_PIN 15 52 | #define TEMP_0_PIN 7 // Extruder / Analog pin numbering 53 | #define TEMP_BED_PIN 6 // Bed / Analog pin numbering 54 | 55 | #define TEMP_1_PIN -1 56 | #define TEMP_2_PIN -1 57 | 58 | #define SDPOWER -1 59 | #define SDSS 8 60 | #define LED_PIN -1 61 | #define PS_ON_PIN -1 62 | #define KILL_PIN -1 63 | #define ALARM_PIN -1 64 | 65 | #ifndef SDSUPPORT 66 | // these pins are defined in the SD library if building with SD support 67 | #define SCK_PIN 9 68 | #define MISO_PIN 11 69 | #define MOSI_PIN 10 70 | #endif 71 | 72 | #if defined(ULTRA_LCD) && defined(NEWPANEL) 73 | //we have no buzzer installed 74 | #define BEEPER -1 75 | //LCD Pins 76 | #ifdef LCD_I2C_PANELOLU2 77 | #define BTN_EN1 27 //RX1 - fastio.h pin mapping 27 78 | #define BTN_EN2 26 //TX1 - fastio.h pin mapping 26 79 | #define BTN_ENC 43 //A3 - fastio.h pin mapping 43 80 | #define SDSS 40 //use SD card on Panelolu2 (Teensyduino pin mapping) 81 | #endif // LCD_I2C_PANELOLU2 82 | //not connected to a pin 83 | #define SDCARDDETECT -1 84 | #endif // ULTRA_LCD && NEWPANEL 85 | 86 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-dual/pins_ULTIMAIN_2.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Ultiboard v2.0 pin assignments 3 | */ 4 | 5 | #ifndef __AVR_ATmega2560__ 6 | #error Oops! Make sure you have 'Arduino Mega 2560' selected from the 'Tools -> Boards' menu. 7 | #endif 8 | 9 | #define X_STEP_PIN 25 10 | #define X_DIR_PIN 23 11 | #define X_STOP_PIN 22 12 | #define X_ENABLE_PIN 27 13 | 14 | #define Y_STEP_PIN 32 15 | #define Y_DIR_PIN 33 16 | #define Y_STOP_PIN 26 17 | #define Y_ENABLE_PIN 31 18 | 19 | #define Z_STEP_PIN 35 20 | #define Z_DIR_PIN 36 21 | #define Z_STOP_PIN 29 22 | #define Z_ENABLE_PIN 34 23 | 24 | #define HEATER_BED_PIN 4 25 | #define TEMP_BED_PIN 10 26 | 27 | #define HEATER_0_PIN 2 28 | #define TEMP_0_PIN 8 29 | 30 | #define HEATER_1_PIN 3 31 | #define TEMP_1_PIN 9 32 | 33 | #define HEATER_2_PIN -1 34 | #define TEMP_2_PIN -1 35 | 36 | #define E0_STEP_PIN 42 37 | #define E0_DIR_PIN 43 38 | #define E0_ENABLE_PIN 37 39 | 40 | #define E1_STEP_PIN 49 41 | #define E1_DIR_PIN 47 42 | #define E1_ENABLE_PIN 48 43 | 44 | #define SDPOWER -1 45 | #define SDSS 53 46 | #define LED_PIN 8 47 | #define FAN_PIN 7 48 | #define PS_ON_PIN -1 49 | #define KILL_PIN -1 50 | #define SUICIDE_PIN -1 //PIN that has to be turned on right after start, to keep power flowing. 51 | #define SAFETY_TRIGGERED_PIN 28 //PIN to detect the safety circuit has triggered 52 | #define MAIN_VOLTAGE_MEASURE_PIN 14 //Analogue PIN to measure the main voltage, with a 100k - 4k7 resitor divider. 53 | 54 | #define MOTOR_CURRENT_PWM_XY_PIN 44 55 | #define MOTOR_CURRENT_PWM_Z_PIN 45 56 | #define MOTOR_CURRENT_PWM_E_PIN 46 57 | //Motor current PWM conversion, PWM value = MotorCurrentSetting * 255 / range 58 | #define MOTOR_CURRENT_PWM_RANGE 2000 59 | #define DEFAULT_PWM_MOTOR_CURRENT {1300, 1300, 1250} 60 | 61 | //arduino pin witch triggers an piezzo beeper 62 | #define BEEPER 18 63 | 64 | #define LCD_PINS_RS 20 65 | #define LCD_PINS_ENABLE 15 66 | #define LCD_PINS_D4 14 67 | #define LCD_PINS_D5 21 68 | #define LCD_PINS_D6 5 69 | #define LCD_PINS_D7 6 70 | 71 | //buttons are directly attached 72 | #define BTN_EN1 40 73 | #define BTN_EN2 41 74 | #define BTN_ENC 19 //the click 75 | 76 | #define BLEN_C 2 77 | #define BLEN_B 1 78 | #define BLEN_A 0 79 | 80 | #define SDCARDDETECT 39 81 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-dual/pins_ULTIMAKER.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Ultimaker pin assignments 3 | */ 4 | 5 | #if !defined(__AVR_ATmega1280__) && !defined(__AVR_ATmega2560__) 6 | #error Oops! Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu. 7 | #endif 8 | 9 | #define LARGE_FLASH true 10 | 11 | #define X_STEP_PIN 25 12 | #define X_DIR_PIN 23 13 | #define X_MIN_PIN 22 14 | #define X_MAX_PIN 24 15 | #define X_ENABLE_PIN 27 16 | 17 | #define Y_STEP_PIN 31 18 | #define Y_DIR_PIN 33 19 | #define Y_MIN_PIN 26 20 | #define Y_MAX_PIN 28 21 | #define Y_ENABLE_PIN 29 22 | 23 | #define Z_STEP_PIN 37 24 | #define Z_DIR_PIN 39 25 | #define Z_MIN_PIN 30 26 | #define Z_MAX_PIN 32 27 | #define Z_ENABLE_PIN 35 28 | 29 | #define HEATER_BED_PIN 4 30 | #define TEMP_BED_PIN 10 31 | 32 | #define HEATER_0_PIN 2 33 | #define TEMP_0_PIN 8 34 | 35 | #define HEATER_1_PIN 3 36 | #define TEMP_1_PIN 9 37 | 38 | #define HEATER_2_PIN -1 39 | #define TEMP_2_PIN -1 40 | 41 | #define E0_STEP_PIN 43 42 | #define E0_DIR_PIN 45 43 | #define E0_ENABLE_PIN 41 44 | 45 | #define E1_STEP_PIN 49 46 | #define E1_DIR_PIN 47 47 | #define E1_ENABLE_PIN 48 48 | 49 | #define SDPOWER -1 50 | #define SDSS 53 51 | #define LED_PIN 13 52 | #define FAN_PIN 7 53 | #define PS_ON_PIN 12 54 | #define KILL_PIN -1 55 | #define SUICIDE_PIN 54 //PIN that has to be turned on right after start, to keep power flowing. 56 | #define SERVO0_PIN 13 // untested 57 | 58 | #ifdef ULTRA_LCD 59 | 60 | #ifdef NEWPANEL 61 | //arduino pin witch triggers an piezzo beeper 62 | #define BEEPER 18 63 | 64 | #define LCD_PINS_RS 20 65 | #define LCD_PINS_ENABLE 17 66 | #define LCD_PINS_D4 16 67 | #define LCD_PINS_D5 21 68 | #define LCD_PINS_D6 5 69 | #define LCD_PINS_D7 6 70 | 71 | //buttons are directly attached 72 | #define BTN_EN1 40 73 | #define BTN_EN2 42 74 | #define BTN_ENC 19 //the click 75 | 76 | #define SDCARDDETECT 38 77 | 78 | #else //!NEWPANEL - Old style panel with shift register 79 | 80 | //arduino pin witch triggers an piezzo beeper 81 | #define BEEPER 18 82 | 83 | //buttons are attached to a shift register 84 | #define SHIFT_CLK 38 85 | #define SHIFT_LD 42 86 | #define SHIFT_OUT 40 87 | #define SHIFT_EN 17 88 | 89 | #define LCD_PINS_RS 16 90 | #define LCD_PINS_ENABLE 5 91 | #define LCD_PINS_D4 6 92 | #define LCD_PINS_D5 21 93 | #define LCD_PINS_D6 20 94 | #define LCD_PINS_D7 19 95 | 96 | #define SDCARDDETECT -1 97 | 98 | #endif // !NEWPANEL 99 | 100 | #endif // ULTRA_LCD 101 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-dual/pins_ULTIMAKER_OLD.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Ultimaker pin assignments (Old electronics) 3 | */ 4 | 5 | #if !defined(__AVR_ATmega1280__) && !defined(__AVR_ATmega2560__) 6 | #error Oops! Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu. 7 | #endif 8 | 9 | #define LARGE_FLASH true 10 | 11 | #define X_STEP_PIN 25 12 | #define X_DIR_PIN 23 13 | #define X_MIN_PIN 15 14 | #define X_MAX_PIN 14 15 | #define X_ENABLE_PIN 27 16 | 17 | #define Y_STEP_PIN 31 18 | #define Y_DIR_PIN 33 19 | #define Y_MIN_PIN 17 20 | #define Y_MAX_PIN 16 21 | #define Y_ENABLE_PIN 29 22 | 23 | #define Z_STEP_PIN 37 24 | #define Z_DIR_PIN 39 25 | #define Z_MIN_PIN 19 26 | #define Z_MAX_PIN 18 27 | #define Z_ENABLE_PIN 35 28 | 29 | #define HEATER_BED_PIN -1 30 | #define TEMP_BED_PIN -1 31 | 32 | #define HEATER_0_PIN 2 33 | #define TEMP_0_PIN 8 34 | 35 | #define HEATER_1_PIN 1 36 | #define TEMP_1_PIN 1 37 | 38 | #define HEATER_2_PIN -1 39 | #define TEMP_2_PIN -1 40 | 41 | #define E0_STEP_PIN 43 42 | #define E0_DIR_PIN 45 43 | #define E0_ENABLE_PIN 41 44 | 45 | #define E1_STEP_PIN -1 46 | #define E1_DIR_PIN -1 47 | #define E1_ENABLE_PIN -1 48 | 49 | #define SDPOWER -1 50 | #define SDSS -1 51 | #define LED_PIN -1 52 | #define FAN_PIN -1 53 | #define PS_ON_PIN -1 54 | #define KILL_PIN -1 55 | #define SUICIDE_PIN -1 //PIN that has to be turned on right after start, to keep power flowing. 56 | 57 | #define LCD_PINS_RS 24 58 | #define LCD_PINS_ENABLE 22 59 | #define LCD_PINS_D4 36 60 | #define LCD_PINS_D5 34 61 | #define LCD_PINS_D6 32 62 | #define LCD_PINS_D7 30 63 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-dual/pins_WITBOX.h: -------------------------------------------------------------------------------- 1 | /** 2 | * bq WITBOX Arduino Mega with RAMPS v1.3/1.4 pin assignments 3 | */ 4 | 5 | #include "pins_RAMPS_13.h" 6 | 7 | #undef FAN_PIN 8 | #define FAN_PIN 9 // (Sprinter config) 9 | 10 | #undef HEATER_1_PIN 11 | #define HEATER_1_PIN -1 12 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-dual/qr_solve.h: -------------------------------------------------------------------------------- 1 | #include "Configuration.h" 2 | 3 | #ifdef AUTO_BED_LEVELING_GRID 4 | 5 | void daxpy ( int n, double da, double dx[], int incx, double dy[], int incy ); 6 | double ddot ( int n, double dx[], int incx, double dy[], int incy ); 7 | double dnrm2 ( int n, double x[], int incx ); 8 | void dqrank ( double a[], int lda, int m, int n, double tol, int *kr, 9 | int jpvt[], double qraux[] ); 10 | void dqrdc ( double a[], int lda, int n, int p, double qraux[], int jpvt[], 11 | double work[], int job ); 12 | int dqrls ( double a[], int lda, int m, int n, double tol, int *kr, double b[], 13 | double x[], double rsd[], int jpvt[], double qraux[], int itask ); 14 | void dqrlss ( double a[], int lda, int m, int n, int kr, double b[], double x[], 15 | double rsd[], int jpvt[], double qraux[] ); 16 | int dqrsl ( double a[], int lda, int n, int k, double qraux[], double y[], 17 | double qy[], double qty[], double b[], double rsd[], double ab[], int job ); 18 | void dscal ( int n, double sa, double x[], int incx ); 19 | void dswap ( int n, double x[], int incx, double y[], int incy ); 20 | double *qr_solve ( int m, int n, double a[], double b[] ); 21 | 22 | #endif 23 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-dual/vector_3.h: -------------------------------------------------------------------------------- 1 | /* 2 | vector_3.cpp - Vector library for bed leveling 3 | Copyright (c) 2012 Lars Brubaker. All right reserved. 4 | 5 | This library is free software; you can redistribute it and/or 6 | modify it under the terms of the GNU Lesser General Public 7 | License as published by the Free Software Foundation; either 8 | version 2.1 of the License, or (at your option) any later version. 9 | 10 | This library is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | Lesser General Public License for more details. 14 | 15 | You should have received a copy of the GNU Lesser General Public 16 | License along with this library; if not, write to the Free Software 17 | Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | #ifndef VECTOR_3_H 20 | #define VECTOR_3_H 21 | 22 | #ifdef ENABLE_AUTO_BED_LEVELING 23 | class matrix_3x3; 24 | 25 | struct vector_3 26 | { 27 | float x, y, z; 28 | 29 | vector_3(); 30 | vector_3(float x, float y, float z); 31 | 32 | static vector_3 cross(vector_3 a, vector_3 b); 33 | 34 | vector_3 operator+(vector_3 v); 35 | vector_3 operator-(vector_3 v); 36 | void normalize(); 37 | float get_length(); 38 | vector_3 get_normal(); 39 | 40 | void debug(const char title[]); 41 | 42 | void apply_rotation(matrix_3x3 matrix); 43 | }; 44 | 45 | struct matrix_3x3 46 | { 47 | float matrix[9]; 48 | 49 | static matrix_3x3 create_from_rows(vector_3 row_0, vector_3 row_1, vector_3 row_2); 50 | static matrix_3x3 create_look_at(vector_3 target); 51 | static matrix_3x3 transpose(matrix_3x3 original); 52 | 53 | void set_to_identity(); 54 | 55 | void debug(const char title[]); 56 | }; 57 | 58 | 59 | void apply_rotation_xyz(matrix_3x3 rotationMatrix, float &x, float& y, float& z); 60 | #endif // ENABLE_AUTO_BED_LEVELING 61 | 62 | #endif // VECTOR_3_H 63 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-dual/watchdog.cpp: -------------------------------------------------------------------------------- 1 | #include "Marlin.h" 2 | 3 | #ifdef USE_WATCHDOG 4 | #include 5 | 6 | #include "watchdog.h" 7 | #include "ultralcd.h" 8 | 9 | //=========================================================================== 10 | //============================ private variables ============================ 11 | //=========================================================================== 12 | 13 | //=========================================================================== 14 | //================================ functions ================================ 15 | //=========================================================================== 16 | 17 | 18 | /// intialise watch dog with a 4 sec interrupt time 19 | void watchdog_init() 20 | { 21 | #ifdef WATCHDOG_RESET_MANUAL 22 | //We enable the watchdog timer, but only for the interrupt. 23 | //Take care, as this requires the correct order of operation, with interrupts disabled. See the datasheet of any AVR chip for details. 24 | wdt_reset(); 25 | _WD_CONTROL_REG = _BV(_WD_CHANGE_BIT) | _BV(WDE); 26 | _WD_CONTROL_REG = _BV(WDIE) | WDTO_4S; 27 | #else 28 | wdt_enable(WDTO_4S); 29 | #endif 30 | } 31 | 32 | /// reset watchdog. MUST be called every 1s after init or avr will reset. 33 | void watchdog_reset() 34 | { 35 | wdt_reset(); 36 | } 37 | 38 | //=========================================================================== 39 | //=================================== ISR =================================== 40 | //=========================================================================== 41 | 42 | //Watchdog timer interrupt, called if main program blocks >1sec and manual reset is enabled. 43 | #ifdef WATCHDOG_RESET_MANUAL 44 | ISR(WDT_vect) 45 | { 46 | //TODO: This message gets overwritten by the kill() call 47 | LCD_ALERTMESSAGEPGM("ERR:Please Reset");//16 characters so it fits on a 16x2 display 48 | lcd_update(); 49 | SERIAL_ERROR_START; 50 | SERIAL_ERRORLNPGM("Something is wrong, please turn off the printer."); 51 | kill(); //kill blocks 52 | while(1); //wait for user or serial reset 53 | } 54 | #endif//RESET_MANUAL 55 | 56 | #endif//USE_WATCHDOG 57 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-dual/watchdog.h: -------------------------------------------------------------------------------- 1 | #ifndef WATCHDOG_H 2 | #define WATCHDOG_H 3 | 4 | #include "Marlin.h" 5 | 6 | #ifdef USE_WATCHDOG 7 | // initialize watch dog with a 1 sec interrupt time 8 | void watchdog_init(); 9 | // pad the dog/reset watchdog. MUST be called at least every second after the first watchdog_init or AVR will go into emergency procedures.. 10 | void watchdog_reset(); 11 | #else 12 | //If we do not have a watchdog, then we can have empty functions which are optimized away. 13 | FORCE_INLINE void watchdog_init() {}; 14 | FORCE_INLINE void watchdog_reset() {}; 15 | #endif 16 | 17 | #endif 18 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-mono/Marlin.ino: -------------------------------------------------------------------------------- 1 | /* -*- c++ -*- */ 2 | 3 | /* 4 | Reprap firmware based on Sprinter and grbl. 5 | Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm 6 | 7 | This program is free software: you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation, either version 3 of the License, or 10 | (at your option) any later version. 11 | 12 | This program is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with this program. If not, see . 19 | */ 20 | 21 | /* 22 | This firmware is a mashup between Sprinter and grbl. 23 | (https://github.com/kliment/Sprinter) 24 | (https://github.com/simen/grbl/tree) 25 | 26 | It has preliminary support for Matthew Roberts advance algorithm 27 | http://reprap.org/pipermail/reprap-dev/2011-May/003323.html 28 | */ 29 | 30 | /* All the implementation is done in *.cpp files to get better compatibility with avr-gcc without the Arduino IDE */ 31 | /* Use this file to help the Arduino IDE find which Arduino libraries are needed and to keep documentation on GCode */ 32 | 33 | #include "Configuration.h" 34 | #include "pins.h" 35 | 36 | #ifdef ULTRA_LCD 37 | #if defined(LCD_I2C_TYPE_PCF8575) 38 | #include 39 | #include 40 | #elif defined(LCD_I2C_TYPE_MCP23017) || defined(LCD_I2C_TYPE_MCP23008) 41 | #include 42 | #include 43 | #elif defined(DOGLCD) 44 | #include // library for graphics LCD by Oli Kraus (https://code.google.com/p/u8glib/) 45 | #else 46 | #include // library for character LCD 47 | #endif 48 | #endif 49 | 50 | #if HAS_DIGIPOTSS 51 | #include 52 | #endif 53 | 54 | #if defined(DIGIPOT_I2C) 55 | #include 56 | #endif 57 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-mono/Marlin_Mondrian3-mono.ino: -------------------------------------------------------------------------------- 1 | /* -*- c++ -*- */ 2 | 3 | /* 4 | Reprap firmware based on Sprinter and grbl. 5 | Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm 6 | 7 | This program is free software: you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation, either version 3 of the License, or 10 | (at your option) any later version. 11 | 12 | This program is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with this program. If not, see . 19 | */ 20 | 21 | /* 22 | This firmware is a mashup between Sprinter and grbl. 23 | (https://github.com/kliment/Sprinter) 24 | (https://github.com/simen/grbl/tree) 25 | 26 | It has preliminary support for Matthew Roberts advance algorithm 27 | http://reprap.org/pipermail/reprap-dev/2011-May/003323.html 28 | */ 29 | 30 | /* All the implementation is done in *.cpp files to get better compatibility with avr-gcc without the Arduino IDE */ 31 | /* Use this file to help the Arduino IDE find which Arduino libraries are needed and to keep documentation on GCode */ 32 | 33 | #include "Configuration.h" 34 | #include "pins.h" 35 | 36 | #ifdef ULTRA_LCD 37 | #if defined(LCD_I2C_TYPE_PCF8575) 38 | #include 39 | #include 40 | #elif defined(LCD_I2C_TYPE_MCP23017) || defined(LCD_I2C_TYPE_MCP23008) 41 | #include 42 | #include 43 | #elif defined(DOGLCD) 44 | #include // library for graphics LCD by Oli Kraus (https://code.google.com/p/u8glib/) 45 | #else 46 | #include // library for character LCD 47 | #endif 48 | #endif 49 | 50 | #if HAS_DIGIPOTSS 51 | #include 52 | #endif 53 | 54 | #if defined(DIGIPOT_I2C) 55 | #include 56 | #endif 57 | 58 | #ifdef HAVE_TMCDRIVER 59 | #include 60 | #include 61 | #endif 62 | 63 | #ifdef HAVE_L6470DRIVER 64 | #include 65 | #include 66 | #endif 67 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-mono/SdFatUtil.cpp: -------------------------------------------------------------------------------- 1 | /* Arduino SdFat Library 2 | * Copyright (C) 2008 by William Greiman 3 | * 4 | * This file is part of the Arduino SdFat Library 5 | * 6 | * This Library is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * This Library is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | 16 | * You should have received a copy of the GNU General Public License 17 | * along with the Arduino SdFat Library. If not, see 18 | * . 19 | */ 20 | #include "Marlin.h" 21 | 22 | #ifdef SDSUPPORT 23 | #include "SdFatUtil.h" 24 | 25 | //------------------------------------------------------------------------------ 26 | /** Amount of free RAM 27 | * \return The number of free bytes. 28 | */ 29 | #ifdef __arm__ 30 | extern "C" char* sbrk(int incr); 31 | int SdFatUtil::FreeRam() { 32 | char top; 33 | return &top - reinterpret_cast(sbrk(0)); 34 | } 35 | #else // __arm__ 36 | extern char *__brkval; 37 | extern char __bss_end; 38 | /** Amount of free RAM 39 | * \return The number of free bytes. 40 | */ 41 | int SdFatUtil::FreeRam() { 42 | char top; 43 | return __brkval ? &top - __brkval : &top - &__bss_end; 44 | } 45 | #endif // __arm 46 | 47 | //------------------------------------------------------------------------------ 48 | /** %Print a string in flash memory. 49 | * 50 | * \param[in] pr Print object for output. 51 | * \param[in] str Pointer to string stored in flash memory. 52 | */ 53 | void SdFatUtil::print_P( PGM_P str) { 54 | for (uint8_t c; (c = pgm_read_byte(str)); str++) MYSERIAL.write(c); 55 | } 56 | //------------------------------------------------------------------------------ 57 | /** %Print a string in flash memory followed by a CR/LF. 58 | * 59 | * \param[in] pr Print object for output. 60 | * \param[in] str Pointer to string stored in flash memory. 61 | */ 62 | void SdFatUtil::println_P( PGM_P str) { 63 | print_P( str); 64 | MYSERIAL.println(); 65 | } 66 | //------------------------------------------------------------------------------ 67 | /** %Print a string in flash memory to Serial. 68 | * 69 | * \param[in] str Pointer to string stored in flash memory. 70 | */ 71 | void SdFatUtil::SerialPrint_P(PGM_P str) { 72 | print_P(str); 73 | } 74 | //------------------------------------------------------------------------------ 75 | /** %Print a string in flash memory to Serial followed by a CR/LF. 76 | * 77 | * \param[in] str Pointer to string stored in flash memory. 78 | */ 79 | void SdFatUtil::SerialPrintln_P(PGM_P str) { 80 | println_P( str); 81 | } 82 | #endif 83 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-mono/SdFatUtil.h: -------------------------------------------------------------------------------- 1 | /* Arduino SdFat Library 2 | * Copyright (C) 2008 by William Greiman 3 | * 4 | * This file is part of the Arduino SdFat Library 5 | * 6 | * This Library is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * This Library is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | 16 | * You should have received a copy of the GNU General Public License 17 | * along with the Arduino SdFat Library. If not, see 18 | * . 19 | */ 20 | #include "Marlin.h" 21 | #ifdef SDSUPPORT 22 | 23 | #ifndef SdFatUtil_h 24 | #define SdFatUtil_h 25 | /** 26 | * \file 27 | * \brief Useful utility functions. 28 | */ 29 | #include "Marlin.h" 30 | #include "MarlinSerial.h" 31 | /** Store and print a string in flash memory.*/ 32 | #define PgmPrint(x) SerialPrint_P(PSTR(x)) 33 | /** Store and print a string in flash memory followed by a CR/LF.*/ 34 | #define PgmPrintln(x) SerialPrintln_P(PSTR(x)) 35 | 36 | namespace SdFatUtil { 37 | int FreeRam(); 38 | void print_P( PGM_P str); 39 | void println_P( PGM_P str); 40 | void SerialPrint_P(PGM_P str); 41 | void SerialPrintln_P(PGM_P str); 42 | } 43 | 44 | using namespace SdFatUtil; // NOLINT 45 | #endif // #define SdFatUtil_h 46 | 47 | 48 | #endif 49 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-mono/SdFile.cpp: -------------------------------------------------------------------------------- 1 | /* Arduino SdFat Library 2 | * Copyright (C) 2009 by William Greiman 3 | * 4 | * This file is part of the Arduino SdFat Library 5 | * 6 | * This Library is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * This Library is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with the Arduino SdFat Library. If not, see 18 | * . 19 | */ 20 | #include "Marlin.h" 21 | 22 | #ifdef SDSUPPORT 23 | #include "SdFile.h" 24 | /** Create a file object and open it in the current working directory. 25 | * 26 | * \param[in] path A path with a valid 8.3 DOS name for a file to be opened. 27 | * 28 | * \param[in] oflag Values for \a oflag are constructed by a bitwise-inclusive 29 | * OR of open flags. see SdBaseFile::open(SdBaseFile*, const char*, uint8_t). 30 | */ 31 | SdFile::SdFile(const char* path, uint8_t oflag) : SdBaseFile(path, oflag) { 32 | } 33 | //------------------------------------------------------------------------------ 34 | /** Write data to an open file. 35 | * 36 | * \note Data is moved to the cache but may not be written to the 37 | * storage device until sync() is called. 38 | * 39 | * \param[in] buf Pointer to the location of the data to be written. 40 | * 41 | * \param[in] nbyte Number of bytes to write. 42 | * 43 | * \return For success write() returns the number of bytes written, always 44 | * \a nbyte. If an error occurs, write() returns -1. Possible errors 45 | * include write() is called before a file has been opened, write is called 46 | * for a read-only file, device is full, a corrupt file system or an I/O error. 47 | * 48 | */ 49 | int16_t SdFile::write(const void* buf, uint16_t nbyte) { 50 | return SdBaseFile::write(buf, nbyte); 51 | } 52 | //------------------------------------------------------------------------------ 53 | /** Write a byte to a file. Required by the Arduino Print class. 54 | * \param[in] b the byte to be written. 55 | * Use writeError to check for errors. 56 | */ 57 | #if ARDUINO >= 100 58 | size_t SdFile::write(uint8_t b) 59 | { 60 | return SdBaseFile::write(&b, 1); 61 | } 62 | #else 63 | void SdFile::write(uint8_t b) 64 | { 65 | SdBaseFile::write(&b, 1); 66 | } 67 | #endif 68 | //------------------------------------------------------------------------------ 69 | /** Write a string to a file. Used by the Arduino Print class. 70 | * \param[in] str Pointer to the string. 71 | * Use writeError to check for errors. 72 | */ 73 | void SdFile::write(const char* str) { 74 | SdBaseFile::write(str, strlen(str)); 75 | } 76 | //------------------------------------------------------------------------------ 77 | /** Write a PROGMEM string to a file. 78 | * \param[in] str Pointer to the PROGMEM string. 79 | * Use writeError to check for errors. 80 | */ 81 | void SdFile::write_P(PGM_P str) { 82 | for (uint8_t c; (c = pgm_read_byte(str)); str++) write(c); 83 | } 84 | //------------------------------------------------------------------------------ 85 | /** Write a PROGMEM string followed by CR/LF to a file. 86 | * \param[in] str Pointer to the PROGMEM string. 87 | * Use writeError to check for errors. 88 | */ 89 | void SdFile::writeln_P(PGM_P str) { 90 | write_P(str); 91 | write_P(PSTR("\r\n")); 92 | } 93 | 94 | 95 | #endif 96 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-mono/SdFile.h: -------------------------------------------------------------------------------- 1 | /* Arduino SdFat Library 2 | * Copyright (C) 2009 by William Greiman 3 | * 4 | * This file is part of the Arduino SdFat Library 5 | * 6 | * This Library is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * This Library is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with the Arduino SdFat Library. If not, see 18 | * . 19 | */ 20 | /** 21 | * \file 22 | * \brief SdFile class 23 | */ 24 | #include "Marlin.h" 25 | 26 | #ifdef SDSUPPORT 27 | #include "SdBaseFile.h" 28 | #include 29 | #ifndef SdFile_h 30 | #define SdFile_h 31 | //------------------------------------------------------------------------------ 32 | /** 33 | * \class SdFile 34 | * \brief SdBaseFile with Print. 35 | */ 36 | class SdFile : public SdBaseFile, public Print { 37 | public: 38 | SdFile() {} 39 | SdFile(const char* name, uint8_t oflag); 40 | #if ARDUINO >= 100 41 | size_t write(uint8_t b); 42 | #else 43 | void write(uint8_t b); 44 | #endif 45 | 46 | int16_t write(const void* buf, uint16_t nbyte); 47 | void write(const char* str); 48 | void write_P(PGM_P str); 49 | void writeln_P(PGM_P str); 50 | }; 51 | #endif // SdFile_h 52 | 53 | 54 | #endif 55 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-mono/blinkm.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | blinkm.cpp - Library for controlling a BlinkM over i2c 3 | Created by Tim Koster, August 21 2013. 4 | */ 5 | #include "Marlin.h" 6 | #ifdef BLINKM 7 | 8 | #include "blinkm.h" 9 | 10 | void SendColors(byte red, byte grn, byte blu) { 11 | Wire.begin(); 12 | Wire.beginTransmission(0x09); 13 | Wire.write('o'); //to disable ongoing script, only needs to be used once 14 | Wire.write('n'); 15 | Wire.write(red); 16 | Wire.write(grn); 17 | Wire.write(blu); 18 | Wire.endTransmission(); 19 | } 20 | 21 | #endif //BLINKM 22 | 23 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-mono/blinkm.h: -------------------------------------------------------------------------------- 1 | /* 2 | blinkm.h 3 | Library header file for BlinkM library 4 | */ 5 | #if ARDUINO >= 100 6 | #include "Arduino.h" 7 | #else 8 | #include "WProgram.h" 9 | #endif 10 | 11 | #include "Wire.h" 12 | 13 | void SendColors(byte red, byte grn, byte blu); 14 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-mono/boards.h: -------------------------------------------------------------------------------- 1 | #ifndef BOARDS_H 2 | #define BOARDS_H 3 | 4 | #define BOARD_UNKNOWN -1 5 | 6 | #define BOARD_GEN7_CUSTOM 10 // Gen7 custom (Alfons3 Version) "https://github.com/Alfons3/Generation_7_Electronics" 7 | #define BOARD_GEN7_12 11 // Gen7 v1.1, v1.2 8 | #define BOARD_GEN7_13 12 // Gen7 v1.3 9 | #define BOARD_GEN7_14 13 // Gen7 v1.4 10 | #define BOARD_CHEAPTRONIC 2 // Cheaptronic v1.0 11 | #define BOARD_SETHI 20 // Sethi 3D_1 12 | #define BOARD_RAMPS_OLD 3 // MEGA/RAMPS up to 1.2 13 | #define BOARD_RAMPS_13_EFB 33 // RAMPS 1.3 / 1.4 (Power outputs: Extruder, Fan, Bed) 14 | #define BOARD_RAMPS_13_EEB 34 // RAMPS 1.3 / 1.4 (Power outputs: Extruder0, Extruder1, Bed) 15 | #define BOARD_RAMPS_13_EFF 35 // RAMPS 1.3 / 1.4 (Power outputs: Extruder, Fan, Fan) 16 | #define BOARD_RAMPS_13_EEF 36 // RAMPS 1.3 / 1.4 (Power outputs: Extruder0, Extruder1, Fan) 17 | #define BOARD_FELIX2 37 // Felix 2.0+ Electronics Board (RAMPS like) 18 | #define BOARD_DUEMILANOVE_328P 4 // Duemilanove w/ ATMega328P pin assignments 19 | #define BOARD_GEN6 5 // Gen6 20 | #define BOARD_GEN6_DELUXE 51 // Gen6 deluxe 21 | #define BOARD_SANGUINOLOLU_11 6 // Sanguinololu < 1.2 22 | #define BOARD_SANGUINOLOLU_12 62 // Sanguinololu 1.2 and above 23 | #define BOARD_MELZI 63 // Melzi 24 | #define BOARD_STB_11 64 // STB V1.1 25 | #define BOARD_AZTEEG_X1 65 // Azteeg X1 26 | #define BOARD_MELZI_1284 66 // Melzi with ATmega1284 (MaKr3d version) 27 | #define BOARD_AZTEEG_X3 67 // Azteeg X3 28 | #define BOARD_AZTEEG_X3_PRO 68 // Azteeg X3 Pro 29 | #define BOARD_ULTIMAKER 7 // Ultimaker 30 | #define BOARD_ULTIMAKER_OLD 71 // Ultimaker (Older electronics. Pre 1.5.4. This is rare) 31 | #define BOARD_ULTIMAIN_2 72 // Ultimainboard 2.x (Uses TEMP_SENSOR 20) 32 | #define BOARD_3DRAG 77 // 3Drag Controller 33 | #define BOARD_K8200 78 // Vellemann K8200 Controller (derived from 3Drag Controller) 34 | #define BOARD_TEENSYLU 8 // Teensylu 35 | #define BOARD_RUMBA 80 // Rumba 36 | #define BOARD_PRINTRBOARD 81 // Printrboard (AT90USB1286) 37 | #define BOARD_BRAINWAVE 82 // Brainwave (AT90USB646) 38 | #define BOARD_SAV_MKI 83 // SAV Mk-I (AT90USB1286) 39 | #define BOARD_TEENSY2 84 // Teensy++2.0 (AT90USB1286) - CLI compile: DEFINES=AT90USBxx_TEENSYPP_ASSIGNMENTS HARDWARE_MOTHERBOARD=84 make 40 | #define BOARD_BRAINWAVE_PRO 85 // Brainwave Pro (AT90USB1286) 41 | #define BOARD_GEN3_PLUS 9 // Gen3+ 42 | #define BOARD_GEN3_MONOLITHIC 22 // Gen3 Monolithic Electronics 43 | #define BOARD_MEGATRONICS 70 // Megatronics 44 | #define BOARD_MEGATRONICS_2 701 // Megatronics v2.0 45 | #define BOARD_MEGATRONICS_1 702 // Minitronics v1.0 46 | #define BOARD_MEGATRONICS_3 703 // Megatronics v3.0 47 | #define BOARD_OMCA_A 90 // Alpha OMCA board 48 | #define BOARD_OMCA 91 // Final OMCA board 49 | #define BOARD_RAMBO 301 // Rambo 50 | #define BOARD_ELEFU_3 21 // Elefu Ra Board (v3) 51 | #define BOARD_5DPRINT 88 // 5DPrint D8 Driver Board 52 | #define BOARD_LEAPFROG 999 // Leapfrog 53 | #define BOARD_WITBOX 41 // bq WITBOX 54 | #define BOARD_HEPHESTOS 42 // bq Prusa i3 Hephestos 55 | #define BOARD_BAM_DICE 401 // 2PrintBeta BAM&DICE with STK drivers 56 | #define BOARD_BAM_DICE_DUE 402 // 2PrintBeta BAM&DICE Due with STK drivers 57 | 58 | #define BOARD_99 99 // This is in pins.h but...? 59 | 60 | #define MB(board) (MOTHERBOARD==BOARD_##board) 61 | 62 | #endif //__BOARDS_H 63 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-mono/cardreader.h: -------------------------------------------------------------------------------- 1 | #ifndef CARDREADER_H 2 | #define CARDREADER_H 3 | 4 | #ifdef SDSUPPORT 5 | 6 | #define MAX_DIR_DEPTH 10 // Maximum folder depth 7 | 8 | #include "SdFile.h" 9 | enum LsAction { LS_SerialPrint, LS_Count, LS_GetFilename }; 10 | 11 | class CardReader { 12 | public: 13 | CardReader(); 14 | 15 | void initsd(); 16 | void write_command(char *buf); 17 | //files auto[0-9].g on the sd card are performed in a row 18 | //this is to delay autostart and hence the initialisaiton of the sd card to some seconds after the normal init, so the device is available quick after a reset 19 | 20 | void checkautostart(bool x); 21 | void openFile(char* name,bool read,bool replace_current=true); 22 | void openLogFile(char* name); 23 | void removeFile(char* name); 24 | void closefile(bool store_location=false); 25 | void release(); 26 | void startFileprint(); 27 | void pauseSDPrint(); 28 | void getStatus(); 29 | void printingHasFinished(); 30 | 31 | void getfilename(uint16_t nr, const char* const match=NULL); 32 | uint16_t getnrfilenames(); 33 | 34 | void getAbsFilename(char *t); 35 | 36 | void ls(); 37 | void chdir(const char * relpath); 38 | void updir(); 39 | void setroot(); 40 | 41 | 42 | FORCE_INLINE bool isFileOpen() { return file.isOpen(); } 43 | FORCE_INLINE bool eof() { return sdpos >= filesize; } 44 | FORCE_INLINE int16_t get() { sdpos = file.curPosition(); return (int16_t)file.read(); } 45 | FORCE_INLINE void setIndex(long index) { sdpos = index; file.seekSet(index); } 46 | FORCE_INLINE uint8_t percentDone() { return (isFileOpen() && filesize) ? sdpos / ((filesize + 99) / 100) : 0; } 47 | FORCE_INLINE char* getWorkDirName() { workDir.getFilename(filename); return filename; } 48 | 49 | public: 50 | bool saving, logging, sdprinting, cardOK, filenameIsDir; 51 | char filename[FILENAME_LENGTH], longFilename[LONG_FILENAME_LENGTH]; 52 | int autostart_index; 53 | private: 54 | SdFile root, *curDir, workDir, workDirParents[MAX_DIR_DEPTH]; 55 | uint16_t workDirDepth; 56 | Sd2Card card; 57 | SdVolume volume; 58 | SdFile file; 59 | #define SD_PROCEDURE_DEPTH 1 60 | #define MAXPATHNAMELENGTH (FILENAME_LENGTH*MAX_DIR_DEPTH + MAX_DIR_DEPTH + 1) 61 | uint8_t file_subcall_ctr; 62 | uint32_t filespos[SD_PROCEDURE_DEPTH]; 63 | char filenames[SD_PROCEDURE_DEPTH][MAXPATHNAMELENGTH]; 64 | uint32_t filesize; 65 | millis_t next_autostart_ms; 66 | uint32_t sdpos; 67 | 68 | bool autostart_stilltocheck; //the sd start is delayed, because otherwise the serial cannot answer fast enought to make contact with the hostsoftware. 69 | 70 | LsAction lsAction; //stored for recursion. 71 | uint16_t nrFiles; //counter for the files in the current directory and recycled as position counter for getting the nrFiles'th name in the directory. 72 | char* diveDirName; 73 | void lsDive(const char *prepend, SdFile parent, const char * const match=NULL); 74 | }; 75 | 76 | extern CardReader card; 77 | 78 | #define IS_SD_PRINTING (card.sdprinting) 79 | 80 | #if (SDCARDDETECT > -1) 81 | #ifdef SDCARDDETECTINVERTED 82 | #define IS_SD_INSERTED (READ(SDCARDDETECT) != 0) 83 | #else 84 | #define IS_SD_INSERTED (READ(SDCARDDETECT) == 0) 85 | #endif 86 | #else 87 | //No card detect line? Assume the card is inserted. 88 | #define IS_SD_INSERTED true 89 | #endif 90 | 91 | #else 92 | 93 | #define IS_SD_PRINTING (false) 94 | 95 | #endif //SDSUPPORT 96 | 97 | #endif //__CARDREADER_H 98 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-mono/configuration_store.h: -------------------------------------------------------------------------------- 1 | #ifndef CONFIGURATION_STORE_H 2 | #define CONFIGURATION_STORE_H 3 | 4 | #include "Configuration.h" 5 | 6 | void Config_ResetDefault(); 7 | 8 | #ifndef DISABLE_M503 9 | void Config_PrintSettings(bool forReplay=false); 10 | #else 11 | FORCE_INLINE void Config_PrintSettings(bool forReplay=false) {} 12 | #endif 13 | 14 | #ifdef EEPROM_SETTINGS 15 | void Config_StoreSettings(); 16 | void Config_RetrieveSettings(); 17 | #else 18 | FORCE_INLINE void Config_StoreSettings() {} 19 | FORCE_INLINE void Config_RetrieveSettings() { Config_ResetDefault(); Config_PrintSettings(); } 20 | #endif 21 | 22 | #endif //CONFIGURATION_STORE_H 23 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-mono/digipot_mcp4451.cpp: -------------------------------------------------------------------------------- 1 | #include "Configuration.h" 2 | 3 | #ifdef DIGIPOT_I2C 4 | 5 | #include "Stream.h" 6 | #include "utility/twi.h" 7 | #include "Wire.h" 8 | 9 | // Settings for the I2C based DIGIPOT (MCP4451) on Azteeg X3 Pro 10 | #if MB(5DPRINT) 11 | #define DIGIPOT_I2C_FACTOR 117.96 12 | #define DIGIPOT_I2C_MAX_CURRENT 1.736 13 | #else 14 | #define DIGIPOT_I2C_FACTOR 106.7 15 | #define DIGIPOT_I2C_MAX_CURRENT 2.5 16 | #endif 17 | 18 | static byte current_to_wiper(float current) { 19 | return byte(ceil(float((DIGIPOT_I2C_FACTOR*current)))); 20 | } 21 | 22 | static void i2c_send(byte addr, byte a, byte b) { 23 | Wire.beginTransmission(addr); 24 | Wire.write(a); 25 | Wire.write(b); 26 | Wire.endTransmission(); 27 | } 28 | 29 | // This is for the MCP4451 I2C based digipot 30 | void digipot_i2c_set_current(int channel, float current) { 31 | current = min( (float) max( current, 0.0f ), DIGIPOT_I2C_MAX_CURRENT); 32 | // these addresses are specific to Azteeg X3 Pro, can be set to others, 33 | // In this case first digipot is at address A0=0, A1= 0, second one is at A0=0, A1= 1 34 | byte addr = 0x2C; // channel 0-3 35 | if (channel >= 4) { 36 | addr = 0x2E; // channel 4-7 37 | channel -= 4; 38 | } 39 | 40 | // Initial setup 41 | i2c_send(addr, 0x40, 0xff); 42 | i2c_send(addr, 0xA0, 0xff); 43 | 44 | // Set actual wiper value 45 | byte addresses[4] = { 0x00, 0x10, 0x60, 0x70 }; 46 | i2c_send(addr, addresses[channel], current_to_wiper(current)); 47 | } 48 | 49 | void digipot_i2c_init() { 50 | const float digipot_motor_current[] = DIGIPOT_I2C_MOTOR_CURRENTS; 51 | Wire.begin(); 52 | // setup initial currents as defined in Configuration_adv.h 53 | for(int i = 0; i <= sizeof(digipot_motor_current) / sizeof(float); i++) { 54 | digipot_i2c_set_current(i, digipot_motor_current[i]); 55 | } 56 | } 57 | 58 | #endif //DIGIPOT_I2C 59 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-mono/dogm_font_data_Marlin_symbols.h: -------------------------------------------------------------------------------- 1 | /* 2 | Fontname: Marlin_symbols 3 | Copyright: Created with Fony 1.4.7 4 | Capital A Height: 0, '1' Height: 0 5 | Calculated Max Values w= 5 h=10 x= 0 y= 3 dx= 6 dy= 0 ascent= 8 len=10 6 | Font Bounding box w= 6 h= 9 x= 0 y=-2 7 | Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 8 | Pure Font ascent = 0 descent= 0 9 | X Font ascent = 0 descent= 0 10 | Max Font ascent = 8 descent=-2 11 | */ 12 | #include 13 | const u8g_fntpgm_uint8_t Marlin_symbols[140] U8G_SECTION(".progmem.Marlin_symbols") = { 14 | 0,6,9,0,254,0,0,0,0,0,1,9,0,8,254,0, 15 | 0,5,8,8,6,0,0,64,240,200,136,136,152,120,16,5, 16 | 8,8,6,0,0,192,248,136,136,136,136,136,248,5,5,5, 17 | 6,0,1,32,48,248,48,32,5,8,8,6,0,0,32,112, 18 | 248,32,32,32,32,224,5,9,9,6,0,255,32,112,168,168, 19 | 184,136,136,112,32,5,9,9,6,0,255,224,128,192,176,168, 20 | 40,48,40,40,5,9,9,6,0,255,248,168,136,136,136,136, 21 | 136,168,248,5,10,10,6,0,254,32,80,80,80,80,136,168, 22 | 168,136,112,3,3,3,6,0,3,64,160,64}; 23 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-mono/mesh_bed_leveling.cpp: -------------------------------------------------------------------------------- 1 | #include "mesh_bed_leveling.h" 2 | 3 | #ifdef MESH_BED_LEVELING 4 | 5 | mesh_bed_leveling mbl; 6 | 7 | mesh_bed_leveling::mesh_bed_leveling() { reset(); } 8 | 9 | void mesh_bed_leveling::reset() { 10 | active = 0; 11 | for (int y = 0; y < MESH_NUM_Y_POINTS; y++) 12 | for (int x = 0; x < MESH_NUM_X_POINTS; x++) 13 | z_values[y][x] = 0; 14 | } 15 | 16 | #endif // MESH_BED_LEVELING 17 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-mono/mesh_bed_leveling.h: -------------------------------------------------------------------------------- 1 | #include "Marlin.h" 2 | 3 | #ifdef MESH_BED_LEVELING 4 | 5 | #define MESH_X_DIST ((MESH_MAX_X - MESH_MIN_X)/(MESH_NUM_X_POINTS - 1)) 6 | #define MESH_Y_DIST ((MESH_MAX_Y - MESH_MIN_Y)/(MESH_NUM_Y_POINTS - 1)) 7 | 8 | class mesh_bed_leveling { 9 | public: 10 | uint8_t active; 11 | float z_values[MESH_NUM_Y_POINTS][MESH_NUM_X_POINTS]; 12 | 13 | mesh_bed_leveling(); 14 | 15 | void reset(); 16 | 17 | float get_x(int i) { return MESH_MIN_X + MESH_X_DIST * i; } 18 | float get_y(int i) { return MESH_MIN_Y + MESH_Y_DIST * i; } 19 | void set_z(int ix, int iy, float z) { z_values[iy][ix] = z; } 20 | 21 | int select_x_index(float x) { 22 | int i = 1; 23 | while (x > get_x(i) && i < MESH_NUM_X_POINTS-1) i++; 24 | return i - 1; 25 | } 26 | 27 | int select_y_index(float y) { 28 | int i = 1; 29 | while (y > get_y(i) && i < MESH_NUM_Y_POINTS - 1) i++; 30 | return i - 1; 31 | } 32 | 33 | float calc_z0(float a0, float a1, float z1, float a2, float z2) { 34 | float delta_z = (z2 - z1)/(a2 - a1); 35 | float delta_a = a0 - a1; 36 | return z1 + delta_a * delta_z; 37 | } 38 | 39 | float get_z(float x0, float y0) { 40 | int x_index = select_x_index(x0); 41 | int y_index = select_y_index(y0); 42 | float z1 = calc_z0(x0, 43 | get_x(x_index), z_values[y_index][x_index], 44 | get_x(x_index+1), z_values[y_index][x_index+1]); 45 | float z2 = calc_z0(x0, 46 | get_x(x_index), z_values[y_index+1][x_index], 47 | get_x(x_index+1), z_values[y_index+1][x_index+1]); 48 | float z0 = calc_z0(y0, 49 | get_y(y_index), z1, 50 | get_y(y_index+1), z2); 51 | return z0; 52 | } 53 | }; 54 | 55 | extern mesh_bed_leveling mbl; 56 | 57 | #endif // MESH_BED_LEVELING 58 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-mono/motion_control.h: -------------------------------------------------------------------------------- 1 | /* 2 | motion_control.h - high level interface for issuing motion commands 3 | Part of Grbl 4 | 5 | Copyright (c) 2009-2011 Simen Svale Skogsrud 6 | Copyright (c) 2011 Sungeun K. Jeon 7 | 8 | Grbl is free software: you can redistribute it and/or modify 9 | it under the terms of the GNU General Public License as published by 10 | the Free Software Foundation, either version 3 of the License, or 11 | (at your option) any later version. 12 | 13 | Grbl is distributed in the hope that it will be useful, 14 | but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | GNU General Public License for more details. 17 | 18 | You should have received a copy of the GNU General Public License 19 | along with Grbl. If not, see . 20 | */ 21 | 22 | #ifndef motion_control_h 23 | #define motion_control_h 24 | 25 | // Execute an arc in offset mode format. position == current xyz, target == target xyz, 26 | // offset == offset from current xyz, axis_XXX defines circle plane in tool space, axis_linear is 27 | // the direction of helical travel, radius == circle radius, isclockwise boolean. Used 28 | // for vector transformation direction. 29 | void mc_arc(float *position, float *target, float *offset, unsigned char axis_0, unsigned char axis_1, 30 | unsigned char axis_linear, float feed_rate, float radius, unsigned char isclockwise, uint8_t extruder); 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-mono/pins_3DRAG.h: -------------------------------------------------------------------------------- 1 | /** 2 | * 3DRAG (and K8200) Arduino Mega with RAMPS v1.3 pin assignments 3 | */ 4 | 5 | #include "pins_RAMPS_13.h" 6 | 7 | #undef Z_ENABLE_PIN 8 | #define Z_ENABLE_PIN 63 9 | 10 | #undef X_MAX_PIN 11 | #undef Y_MAX_PIN 12 | #undef Z_MAX_PIN 13 | #define X_MAX_PIN 2 14 | #define Y_MAX_PIN 15 15 | #define Z_MAX_PIN -1 16 | 17 | #undef SDSS 18 | #define SDSS 25//53 19 | 20 | #undef FAN_PIN 21 | #define FAN_PIN 8 22 | 23 | #undef HEATER_1_PIN 24 | #undef HEATER_2_PIN 25 | #undef HEATER_BED_PIN 26 | #define HEATER_0_PIN 10 27 | #define HEATER_1_PIN 12 28 | #define HEATER_2_PIN 6 29 | 30 | #define HEATER_BED_PIN 9 // BED 31 | 32 | #if defined(ULTRA_LCD) && defined(NEWPANEL) 33 | #undef BEEPER 34 | #define BEEPER -1 35 | 36 | #undef LCD_PINS_RS 37 | #undef LCD_PINS_ENABLE 38 | #undef LCD_PINS_D4 39 | #undef LCD_PINS_D5 40 | #undef LCD_PINS_D6 41 | #undef LCD_PINS_D7 42 | #define LCD_PINS_RS 27 43 | #define LCD_PINS_ENABLE 29 44 | #define LCD_PINS_D4 37 45 | #define LCD_PINS_D5 35 46 | #define LCD_PINS_D6 33 47 | #define LCD_PINS_D7 31 48 | 49 | // Buttons 50 | #undef BTN_EN1 51 | #undef BTN_EN2 52 | #undef BTN_ENC 53 | #define BTN_EN1 16 54 | #define BTN_EN2 17 55 | #define BTN_ENC 23 //the click 56 | 57 | #else 58 | 59 | #define BEEPER 33 60 | 61 | #endif // ULTRA_LCD && NEWPANEL 62 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-mono/pins_5DPRINT.h: -------------------------------------------------------------------------------- 1 | /** 2 | * 5DPrint D8 Driver board pin assignments 3 | * 4 | * https://bitbucket.org/makible/5dprint-d8-controller-board 5 | */ 6 | 7 | #ifndef __AVR_AT90USB1286__ 8 | #error Oops! Make sure you have 'Teensy++ 2.0' selected from the 'Tools -> Boards' menu. 9 | #endif 10 | 11 | #define AT90USB 1286 // Disable MarlinSerial etc. 12 | 13 | #define LARGE_FLASH true 14 | 15 | #define X_STEP_PIN 0 16 | #define X_DIR_PIN 1 17 | #define X_ENABLE_PIN 23 18 | #define X_STOP_PIN 37 19 | 20 | #define Y_STEP_PIN 2 21 | #define Y_DIR_PIN 3 22 | #define Y_ENABLE_PIN 19 23 | #define Y_STOP_PIN 36 24 | 25 | #define Z_STEP_PIN 4 26 | #define Z_DIR_PIN 5 27 | #define Z_ENABLE_PIN 18 28 | #define Z_STOP_PIN 39 29 | 30 | #define E0_STEP_PIN 6 31 | #define E0_DIR_PIN 7 32 | #define E0_ENABLE_PIN 17 33 | 34 | #define HEATER_0_PIN 21 // Extruder 35 | #define HEATER_1_PIN -1 36 | #define HEATER_2_PIN -1 37 | #define HEATER_BED_PIN 20 // Bed 38 | // You may need to change FAN_PIN to 16 because Marlin isn't using fastio.h 39 | // for the fan and Teensyduino uses a different pin mapping. 40 | #define FAN_PIN 16 // Fan 41 | 42 | #define TEMP_0_PIN 1 // Extruder / Analog pin numbering 43 | #define TEMP_BED_PIN 0 // Bed / Analog pin numbering 44 | 45 | #define TEMP_1_PIN -1 46 | #define TEMP_2_PIN -1 47 | 48 | #define SDPOWER -1 49 | #define LED_PIN -1 50 | #define PS_ON_PIN -1 51 | #define KILL_PIN -1 52 | #define ALARM_PIN -1 53 | 54 | // The SDSS pin uses a different pin mapping from file Sd2PinMap.h 55 | #define SDSS 20 56 | 57 | #ifndef SDSUPPORT 58 | // these pins are defined in the SD library if building with SD support 59 | #define SCK_PIN 9 60 | #define MISO_PIN 11 61 | #define MOSI_PIN 10 62 | #endif 63 | 64 | // Microstepping pins 65 | // Note that the pin mapping is not from fastio.h 66 | // See Sd2PinMap.h for the pin configurations 67 | 68 | #undef X_MS1_PIN 69 | #undef X_MS2_PIN 70 | #undef Y_MS1_PIN 71 | #undef Y_MS2_PIN 72 | #undef Z_MS1_PIN 73 | #undef Z_MS2_PIN 74 | #undef E0_MS1_PIN 75 | #undef E0_MS2_PIN 76 | #define X_MS1_PIN 25 77 | #define X_MS2_PIN 26 78 | #define Y_MS1_PIN 9 79 | #define Y_MS2_PIN 8 80 | #define Z_MS1_PIN 7 81 | #define Z_MS2_PIN 6 82 | #define E0_MS1_PIN 5 83 | #define E0_MS2_PIN 4 84 | 85 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-mono/pins_99.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Board 99 pin assignments 3 | */ 4 | 5 | #define X_STEP_PIN 2 6 | #define X_DIR_PIN 3 7 | #define X_ENABLE_PIN -1 8 | #define X_STOP_PIN 16 9 | 10 | #define Y_STEP_PIN 5 11 | #define Y_DIR_PIN 6 12 | #define Y_ENABLE_PIN -1 13 | #define Y_STOP_PIN 67 14 | 15 | #define Z_STEP_PIN 62 16 | #define Z_DIR_PIN 63 17 | #define Z_ENABLE_PIN -1 18 | #define Z_STOP_PIN 59 19 | 20 | #define E0_STEP_PIN 65 21 | #define E0_DIR_PIN 66 22 | #define E0_ENABLE_PIN -1 23 | 24 | #define SDPOWER -1 25 | #define SDSS 53 26 | #define LED_PIN -1 27 | #define FAN_PIN -1 28 | #define PS_ON_PIN 9 29 | #define KILL_PIN -1 30 | 31 | #define HEATER_0_PIN 13 32 | #define HEATER_1_PIN -1 33 | #define HEATER_2_PIN -1 34 | #define TEMP_0_PIN 6 // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!! 35 | #define TEMP_1_PIN -1 // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!! 36 | #define TEMP_2_PIN -1 // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!! 37 | #define HEATER_BED_PIN 4 38 | #define TEMP_BED_PIN 10 39 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-mono/pins_AZTEEG_X1.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Azteeg X1 pin assignments 3 | */ 4 | 5 | #define SANGUINOLOLU_V_1_2 6 | 7 | #include "pins_SANGUINOLOLU_11.h" 8 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-mono/pins_AZTEEG_X3.h: -------------------------------------------------------------------------------- 1 | /** 2 | * AZTEEG_X3 Arduino Mega with RAMPS v1.3 pin assignments 3 | */ 4 | 5 | #include "pins_RAMPS_13.h" 6 | 7 | #define FAN_PIN 9 // (Sprinter config) 8 | #define HEATER_1_PIN -1 9 | 10 | //LCD Pins// 11 | 12 | #if defined(VIKI2) || defined(miniVIKI) 13 | #define BEEPER 33 14 | // Pins for DOGM SPI LCD Support 15 | #define DOGLCD_A0 31 16 | #define DOGLCD_CS 32 17 | #define LCD_SCREEN_ROT_180 18 | 19 | //The encoder and click button 20 | #define BTN_EN1 22 21 | #define BTN_EN2 7 22 | #define BTN_ENC 12 //the click switch 23 | 24 | #define SDSS 53 25 | #define SDCARDDETECT -1 // Pin 49 if using display sd interface 26 | 27 | #ifdef TEMP_STAT_LEDS 28 | #define STAT_LED_RED 64 29 | #define STAT_LED_BLUE 63 30 | #endif 31 | #elif defined(TEMP_STAT_LEDS) 32 | #define STAT_LED_RED 6 33 | #define STAT_LED_BLUE 11 34 | #endif 35 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-mono/pins_AZTEEG_X3_PRO.h: -------------------------------------------------------------------------------- 1 | /** 2 | * AZTEEG_X3_PRO (Arduino Mega) pin assignments 3 | */ 4 | 5 | #include "pins_RAMPS_13.h" 6 | 7 | #undef FAN_PIN 8 | #define FAN_PIN 6 //Part Cooling System 9 | #define BEEPER 33 10 | #define CONTROLLERFAN_PIN 4 //Pin used for the fan to cool motherboard (-1 to disable) 11 | //Fans/Water Pump to cool the hotend cool side. 12 | #define EXTRUDER_0_AUTO_FAN_PIN 5 13 | #define EXTRUDER_1_AUTO_FAN_PIN 5 14 | #define EXTRUDER_2_AUTO_FAN_PIN 5 15 | #define EXTRUDER_3_AUTO_FAN_PIN 5 16 | // 17 | //This section is to swap the MIN and MAX pins because the X3 Pro comes with only 18 | //MIN endstops soldered onto the board. Delta code wants the homing endstops to be 19 | //the MAX so I swapped them here. 20 | // 21 | #ifdef DELTA 22 | #undef X_MIN_PIN 23 | #undef X_MAX_PIN 24 | #undef Y_MIN_PIN 25 | #undef Y_MAX_PIN 26 | #undef Z_MIN_PIN 27 | #undef Z_MAX_PIN 28 | 29 | #define X_MIN_PIN 2 30 | #define X_MAX_PIN 3 31 | #define Y_MIN_PIN 15 32 | #define Y_MAX_PIN 14 33 | #define Z_MIN_PIN 19 34 | #define Z_MAX_PIN 18 35 | #endif 36 | // 37 | #ifdef Z_PROBE_ENDSTOP 38 | //#undef Z_MIN_PIN 39 | //#define Z_MIN_PIN 15 40 | #define Z_PROBE_PIN 19 41 | #endif 42 | // 43 | #define E2_STEP_PIN 23 44 | #define E2_DIR_PIN 25 45 | #define E2_ENABLE_PIN 40 46 | 47 | #define E3_STEP_PIN 27 48 | #define E3_DIR_PIN 29 49 | #define E3_ENABLE_PIN 41 50 | 51 | #define E4_STEP_PIN 43 52 | #define E4_DIR_PIN 37 53 | #define E4_ENABLE_PIN 42 54 | 55 | #undef HEATER_1_PIN 56 | #undef HEATER_2_PIN 57 | #undef HEATER_3_PIN 58 | #define HEATER_1_PIN 9 59 | #define HEATER_2_PIN 16 60 | #define HEATER_3_PIN 17 61 | #define HEATER_4_PIN 4 62 | #define HEATER_5_PIN 5 63 | #define HEATER_6_PIN 6 64 | #define HEATER_7_PIN 11 65 | 66 | #undef TEMP_2_PIN 67 | #undef TEMP_3_PIN 68 | #define TEMP_2_PIN 12 // ANALOG NUMBERING 69 | #define TEMP_3_PIN 11 // ANALOG NUMBERING 70 | #define TEMP_4_PIN 10 // ANALOG NUMBERING 71 | #define TC1 4 // ANALOG NUMBERING Thermo couple on Azteeg X3Pro 72 | #define TC2 5 // ANALOG NUMBERING Thermo couple on Azteeg X3Pro 73 | 74 | // 75 | //These Servo pins are for when they are defined. Tested for usage with bed leveling 76 | //on a Delta with 1 servo. Running through the Z servo endstop in code. 77 | //Physical wire attachment was done on EXT1 on the GND, 5V, and D47 pins. 78 | // 79 | #undef SERVO0_PIN 80 | #undef SERVO1_PIN 81 | #undef SERVO2_PIN 82 | #undef SERVO3_PIN 83 | 84 | #ifdef NUM_SERVOS 85 | #define SERVO0_PIN 47 86 | #if NUM_SERVOS > 1 87 | #define SERVO1_PIN -1 88 | #if NUM_SERVOS > 2 89 | #define SERVO2_PIN -1 90 | #if NUM_SERVOS > 3 91 | #define SERVO3_PIN -1 92 | #endif 93 | #endif 94 | #endif 95 | #endif 96 | 97 | //LCD Pins// 98 | 99 | #if defined(VIKI2) || defined(miniVIKI) 100 | #define BEEPER 33 101 | // Pins for DOGM SPI LCD Support 102 | #define DOGLCD_A0 44 103 | #define DOGLCD_CS 45 104 | #define LCD_SCREEN_ROT_180 105 | 106 | //The encoder and click button 107 | #define BTN_EN1 22 108 | #define BTN_EN2 7 109 | #define BTN_ENC 39 //the click switch 110 | 111 | #define SDSS 53 112 | #define SDCARDDETECT 49 113 | 114 | #define KILL_PIN 31 115 | #endif 116 | 117 | #ifdef TEMP_STAT_LEDS 118 | #define STAT_LED_RED 32 119 | #define STAT_LED_BLUE 35 120 | #endif 121 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-mono/pins_BAM_DICE_DUE.h: -------------------------------------------------------------------------------- 1 | /** 2 | * BAM&DICE Due (Arduino Mega) pin assignments 3 | */ 4 | 5 | #include "pins_RAMPS_13.h" 6 | 7 | #undef FAN_PIN 8 | #define FAN_PIN 9 // (Sprinter config) 9 | 10 | #undef HEATER_1_PIN 11 | #define HEATER_1_PIN -1 12 | 13 | #undef TEMP_0_PIN 14 | #undef TEMP_1_PIN 15 | #define TEMP_0_PIN 9 // ANALOG NUMBERING 16 | #define TEMP_1_PIN 11 // ANALOG NUMBERING 17 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-mono/pins_BRAINWAVE.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Brainwave 1.0 pin assignments (AT90USB646) 3 | * 4 | * Requires hardware bundle for Arduino: 5 | * https://github.com/unrepentantgeek/brainwave-arduino 6 | */ 7 | 8 | #ifndef __AVR_AT90USB646__ 9 | #error Oops! Make sure you have 'Brainwave' selected from the 'Tools -> Boards' menu. 10 | #endif 11 | 12 | #define AT90USB 646 // Disable MarlinSerial etc. 13 | 14 | #define X_STEP_PIN 27 15 | #define X_DIR_PIN 29 16 | #define X_ENABLE_PIN 28 17 | #define X_STOP_PIN 7 18 | #define X_ATT_PIN 26 19 | 20 | #define Y_STEP_PIN 31 21 | #define Y_DIR_PIN 33 22 | #define Y_ENABLE_PIN 32 23 | #define Y_STOP_PIN 6 24 | #define Y_ATT_PIN 30 25 | 26 | #define Z_STEP_PIN 17 27 | #define Z_DIR_PIN 19 28 | #define Z_ENABLE_PIN 18 29 | #define Z_STOP_PIN 5 30 | #define Z_ATT_PIN 16 31 | 32 | #define E0_STEP_PIN 21 33 | #define E0_DIR_PIN 23 34 | #define E0_ENABLE_PIN 22 35 | #define E0_ATT_PIN 20 36 | 37 | #define HEATER_0_PIN 4 // Extruder 38 | #define HEATER_1_PIN -1 39 | #define HEATER_2_PIN -1 40 | #define HEATER_BED_PIN 38 // Bed 41 | #define FAN_PIN 3 // Fan 42 | 43 | #define TEMP_0_PIN 7 // Extruder / Analog pin numbering 44 | #define TEMP_1_PIN -1 45 | #define TEMP_2_PIN -1 46 | #define TEMP_BED_PIN 6 // Bed / Analog pin numbering 47 | 48 | #define SDPOWER -1 49 | #define SDSS -1 50 | #define LED_PIN 39 51 | #define PS_ON_PIN -1 52 | #define KILL_PIN -1 53 | #define ALARM_PIN -1 54 | 55 | #ifndef SDSUPPORT 56 | // these pins are defined in the SD library if building with SD support 57 | #define SCK_PIN 9 58 | #define MISO_PIN 11 59 | #define MOSI_PIN 10 60 | #endif 61 | 62 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-mono/pins_BRAINWAVE_PRO.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Brainwave Pro pin assignments (AT90USB186) 3 | * 4 | * Requires hardware bundle for Arduino: 5 | * https://github.com/unrepentantgeek/brainwave-arduino 6 | */ 7 | 8 | #ifndef __AVR_AT90USB1286__ 9 | #error Oops! Make sure you have 'Brainwave Pro' selected from the 'Tools -> Boards' menu. 10 | #endif 11 | 12 | #ifndef AT90USBxx_TEENSYPP_ASSIGNMENTS // use Teensyduino Teensy++2.0 pin assignments instead of Marlin alphabetical. 13 | #error Uncomment #define AT90USBxx_TEENSYPP_ASSIGNMENTS in fastio.h for this config 14 | #endif 15 | 16 | #define AT90USB 1286 // Disable MarlinSerial etc. 17 | 18 | #define X_STEP_PIN 33 19 | #define X_DIR_PIN 32 20 | #define X_ENABLE_PIN 11 21 | #define X_STOP_PIN 47 22 | 23 | #define Y_STEP_PIN 31 24 | #define Y_DIR_PIN 30 25 | #define Y_ENABLE_PIN 8 26 | #define Y_STOP_PIN 18 27 | 28 | #define Z_STEP_PIN 29 29 | #define Z_DIR_PIN 28 30 | #define Z_ENABLE_PIN 37 31 | #define Z_MAX_PIN 36 32 | #define Z_MIN_PIN 17 // Bed probe 33 | 34 | #define E0_STEP_PIN 35 35 | #define E0_DIR_PIN 34 36 | #define E0_ENABLE_PIN 13 37 | 38 | #define HEATER_0_PIN 15 39 | #define HEATER_1_PIN -1 40 | #define HEATER_2_PIN -1 41 | #define HEATER_BED_PIN 14 // Bed 42 | #define FAN_PIN 16 // Fan, PWM 43 | 44 | #define TEMP_0_PIN 2 // Extruder / Analog pin numbering 45 | #define TEMP_1_PIN 1 // Spare / Analog pin numbering 46 | #define TEMP_2_PIN -1 47 | #define TEMP_BED_PIN 0 // Bed / Analog pin numbering 48 | 49 | #define SDPOWER -1 50 | #define SDSS 20 51 | #define LED_PIN 19 52 | #define PS_ON_PIN -1 53 | #define KILL_PIN -1 54 | #define ALARM_PIN -1 55 | #define SDCARDDETECT 12 56 | 57 | #ifndef SDSUPPORT 58 | // these pins are defined in the SD library if building with SD support 59 | #define SCK_PIN 21 60 | #define MISO_PIN 23 61 | #define MOSI_PIN 22 62 | #endif 63 | 64 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-mono/pins_CHEAPTRONIC.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Cheaptronic v1.0 pin assignments 3 | */ 4 | 5 | #ifndef __AVR_ATmega2560__ 6 | #error Oops! Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu. 7 | #endif 8 | 9 | #define LARGE_FLASH true 10 | 11 | // X motor stepper 12 | #define X_STEP_PIN 14 13 | #define X_DIR_PIN 15 14 | #define X_ENABLE_PIN 24 15 | 16 | // X endstop 17 | #define X_MIN_PIN 3 18 | #define X_MAX_PIN -1 19 | 20 | // Y motor stepper 21 | #define Y_STEP_PIN 35 22 | #define Y_DIR_PIN 36 23 | #define Y_ENABLE_PIN 31 24 | 25 | // Y endstop 26 | #define Y_MIN_PIN 2 27 | #define Y_MAX_PIN -1 28 | 29 | // Z motor stepper 30 | #define Z_STEP_PIN 40 31 | #define Z_DIR_PIN 41 32 | #define Z_ENABLE_PIN 37 33 | 34 | // Z endstop 35 | #define Z_MIN_PIN 5 36 | #define Z_MAX_PIN -1 37 | 38 | // Extruder 0 stepper 39 | #define E0_STEP_PIN 26 40 | #define E0_DIR_PIN 28 41 | #define E0_ENABLE_PIN 25 42 | 43 | // Extruder 1 stepper 44 | #define E1_STEP_PIN 33 45 | #define E1_DIR_PIN 34 46 | #define E1_ENABLE_PIN 30 47 | 48 | #define SDPOWER -1 49 | #define SDSS -1 50 | #define LED_PIN -1 51 | 52 | // FAN 53 | #define FAN_PIN -1 54 | 55 | #define PS_ON_PIN -1 56 | #define KILL_PIN -1 57 | 58 | #define HEATER_0_PIN 19 // EXTRUDER 1 59 | #define HEATER_1_PIN 23 // EXTRUDER 2 60 | // HeatedBad 61 | #define HEATER_BED_PIN 22 62 | // Cheaptronic v1.0 hasent EXTRUDER 3 63 | #define HEATER_2_PIN -1 64 | 65 | // Temperature sensors 66 | #define TEMP_0_PIN 15 67 | #define TEMP_1_PIN 14 68 | #define TEMP_2_PIN -1 69 | #define TEMP_BED_PIN 13 70 | 71 | // Cheaptronic v1.0 doesn't support LCD 72 | #define LCD_PINS_RS -1 73 | #define LCD_PINS_ENABLE -1 74 | #define LCD_PINS_D4 -1 75 | #define LCD_PINS_D5 -1 76 | #define LCD_PINS_D6 -1 77 | #define LCD_PINS_D7 -1 78 | 79 | // Cheaptronic v1.0 doesn't support keypad 80 | #define BTN_EN1 -1 81 | #define BTN_EN2 -1 82 | #define BTN_ENC -1 83 | 84 | #define BLEN_C 2 85 | #define BLEN_B 1 86 | #define BLEN_A 0 87 | 88 | // Cheaptronic v1.0 does not use this port 89 | #define SDCARDDETECT -1 90 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-mono/pins_DUEMILANOVE_328P.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Duemilanove w/ ATMega328P pin assignments 3 | */ 4 | 5 | #ifndef __AVR_ATmega328P__ 6 | #error Oops! Make sure you have 'Arduino Duemilanove w/ ATMega328' selected from the 'Tools -> Boards' menu. 7 | #endif 8 | 9 | #define X_STEP_PIN 19 10 | #define X_DIR_PIN 18 11 | #define X_ENABLE_PIN -1 12 | #define X_STOP_PIN 17 13 | 14 | #define Y_STEP_PIN 10 15 | #define Y_DIR_PIN 7 16 | #define Y_ENABLE_PIN -1 17 | #define Y_STOP_PIN 8 18 | 19 | #define Z_STEP_PIN 13 20 | #define Z_DIR_PIN 3 21 | #define Z_ENABLE_PIN 2 22 | #define Z_STOP_PIN 4 23 | 24 | #define E0_STEP_PIN 11 25 | #define E0_DIR_PIN 12 26 | #define E0_ENABLE_PIN -1 27 | 28 | #define SDPOWER -1 29 | #define SDSS -1 30 | #define LED_PIN -1 31 | #define FAN_PIN 5 32 | #define PS_ON_PIN -1 33 | #define KILL_PIN -1 34 | 35 | #define HEATER_0_PIN 6 36 | #define HEATER_1_PIN -1 37 | #define HEATER_2_PIN -1 38 | #define TEMP_0_PIN 0 // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!! 39 | #define TEMP_1_PIN -1 40 | #define TEMP_2_PIN -1 41 | #define HEATER_BED_PIN -1 42 | #define TEMP_BED_PIN -1 43 | 44 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-mono/pins_FELIX2.h: -------------------------------------------------------------------------------- 1 | /** 2 | * FELIXprinters v2.0/3.0 (RAMPS v1.3) pin assignments 3 | */ 4 | 5 | #include "pins_RAMPS_13.h" 6 | 7 | #undef X_MAX_PIN 8 | #undef Y_MAX_PIN 9 | #undef Z_MAX_PIN 10 | #define X_MAX_PIN -1 11 | #define Y_MAX_PIN -1 12 | #define Z_MAX_PIN -1 13 | 14 | #undef Y2_STEP_PIN 15 | #undef Y2_DIR_PIN 16 | #undef Y2_ENABLE_PIN 17 | #define Y2_STEP_PIN -1 18 | #define Y2_DIR_PIN -1 19 | #define Y2_ENABLE_PIN -1 20 | 21 | #undef Z2_STEP_PIN 22 | #undef Z2_DIR_PIN 23 | #undef Z2_ENABLE_PIN 24 | #define Z2_STEP_PIN -1 25 | #define Z2_DIR_PIN -1 26 | #define Z2_ENABLE_PIN -1 27 | 28 | #define E1_STEP_PIN 36 // FELIX E1 uses RAMPS Y2/Z2 pins 29 | #define E1_DIR_PIN 34 30 | #define E1_ENABLE_PIN 30 31 | 32 | #undef SDPOWER 33 | #define SDPOWER 1 34 | 35 | #undef FAN_PIN 36 | #define FAN_PIN 9 // (Sprinter config) 37 | #define PS_ON_PIN 12 38 | 39 | #undef HEATER_1_PIN 40 | #define HEATER_1_PIN 7 // EXTRUDER 2 41 | 42 | #if defined(ULTRA_LCD) && defined(NEWPANEL) 43 | 44 | #define BLEN_C 2 45 | #define BLEN_B 1 46 | #define BLEN_A 0 47 | #define SDCARDDETECT 6 48 | 49 | #endif // NEWPANEL && ULTRA_LCD 50 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-mono/pins_GEN3_MONOLITHIC.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Gen3 Monolithic Electronics pin assignments 3 | */ 4 | 5 | #ifndef __AVR_ATmega644P__ 6 | #error Oops! Make sure you have 'Sanguino' selected from the 'Tools -> Boards' menu. 7 | #endif 8 | 9 | #define DEBUG_PIN 0 10 | 11 | // x axis 12 | #define X_STEP_PIN 15 13 | #define X_DIR_PIN 18 14 | #define X_MIN_PIN 20 15 | // Alex Checar #define X_STOP_PIN 20 16 | #define X_ENABLE_PIN 24 // actually uses Y_enable_pin 17 | #define X_MAX_PIN -1 18 | 19 | // y axis 20 | #define Y_STEP_PIN 23 21 | #define Y_DIR_PIN 22 22 | #define Y_MIN_PIN 25 23 | // Alex Checar #define Y_STOP_PIN 25 24 | #define Y_ENABLE_PIN 24 // shared with X_enable_pin 25 | #define Y_MAX_PIN -1 26 | 27 | // z axis 28 | #define Z_STEP_PIN 27 29 | #define Z_DIR_PIN 28 30 | #define Z_MIN_PIN 30 31 | // Alex Checar #define Z_STOP_PIN 30 32 | #define Z_ENABLE_PIN 29 33 | #define Z_MAX_PIN -1 34 | 35 | // extruder pins 36 | #define E0_STEP_PIN 12 37 | #define E0_DIR_PIN 17 38 | #define E0_ENABLE_PIN 3 39 | 40 | #define HEATER_0_PIN 16 41 | #define TEMP_0_PIN 0 42 | 43 | #define FAN_PIN -1 44 | 45 | // bed pins 46 | #define HEATER_BED_PIN -1 47 | #define TEMP_BED_PIN -1 48 | 49 | 50 | #define SDSS -1 51 | #define SDPOWER -1 52 | #define LED_PIN -1 53 | 54 | // pin for controlling the PSU. 55 | #define PS_ON_PIN 14 // Alex, Do this work on the card? 56 | 57 | // Alex extras from Gen3+ 58 | #define KILL_PIN -1 59 | #define TEMP_1_PIN -1 60 | #define TEMP_2_PIN -1 61 | #define HEATER_2_PIN -1 62 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-mono/pins_GEN3_PLUS.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Gen3+ pin assignments 3 | */ 4 | 5 | #if !defined(__AVR_ATmega644P__) && !defined(__AVR_ATmega1284P__) 6 | #error Oops! Make sure you have 'Sanguino' selected from the 'Tools -> Boards' menu. 7 | #endif 8 | 9 | #define X_STEP_PIN 15 10 | #define X_DIR_PIN 18 11 | #define X_STOP_PIN 20 12 | 13 | #define Y_STEP_PIN 23 14 | #define Y_DIR_PIN 22 15 | #define Y_STOP_PIN 25 16 | 17 | #define Z_STEP_PIN 27 18 | #define Z_DIR_PIN 28 19 | #define Z_STOP_PIN 30 20 | 21 | #define E0_STEP_PIN 17 22 | #define E0_DIR_PIN 21 23 | 24 | #define LED_PIN -1 25 | 26 | #define FAN_PIN -1 27 | 28 | #define PS_ON_PIN 14 29 | #define KILL_PIN -1 30 | 31 | #define HEATER_0_PIN 12 // (extruder) 32 | 33 | #define HEATER_BED_PIN 16 // (bed) 34 | #define X_ENABLE_PIN 19 35 | #define Y_ENABLE_PIN 24 36 | #define Z_ENABLE_PIN 29 37 | #define E0_ENABLE_PIN 13 38 | 39 | #define TEMP_0_PIN 0 // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!! (pin 33 extruder) 40 | #define TEMP_1_PIN -1 41 | #define TEMP_2_PIN -1 42 | #define TEMP_BED_PIN 5 // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!! (pin 34 bed) 43 | #define SDPOWER -1 44 | #define SDSS 4 45 | #define HEATER_2_PIN -1 46 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-mono/pins_GEN6.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Gen6 pin assignments 3 | */ 4 | 5 | #ifndef __AVR_ATmega644P__ 6 | #ifndef __AVR_ATmega1284P__ 7 | #error Oops! Make sure you have 'Sanguino' selected from the 'Tools -> Boards' menu. 8 | #endif 9 | #endif 10 | 11 | //x axis pins 12 | #define X_STEP_PIN 15 13 | #define X_DIR_PIN 18 14 | #define X_ENABLE_PIN 19 15 | #define X_STOP_PIN 20 16 | 17 | //y axis pins 18 | #define Y_STEP_PIN 23 19 | #define Y_DIR_PIN 22 20 | #define Y_ENABLE_PIN 24 21 | #define Y_STOP_PIN 25 22 | 23 | //z axis pins 24 | #define Z_STEP_PIN 27 25 | #define Z_DIR_PIN 28 26 | #define Z_ENABLE_PIN 29 27 | #define Z_STOP_PIN 30 28 | 29 | //extruder pins 30 | #define E0_STEP_PIN 4 //Edited @ EJE Electronics 20100715 31 | #define E0_DIR_PIN 2 //Edited @ EJE Electronics 20100715 32 | #define E0_ENABLE_PIN 3 //Added @ EJE Electronics 20100715 33 | #define TEMP_0_PIN 5 //changed @ rkoeppl 20110410 34 | #define TEMP_1_PIN -1 //changed @ rkoeppl 20110410 35 | 36 | 37 | #define TEMP_2_PIN -1 //changed @ rkoeppl 20110410 38 | #define HEATER_0_PIN 14 //changed @ rkoeppl 20110410 39 | #define HEATER_1_PIN -1 40 | #define HEATER_2_PIN -1 41 | 42 | #if MB(GEN6) 43 | #define HEATER_BED_PIN -1 //changed @ rkoeppl 20110410 44 | #define TEMP_BED_PIN -1 //changed @ rkoeppl 20110410 45 | #else 46 | #define HEATER_BED_PIN 1 //changed @ rkoeppl 20110410 47 | #define TEMP_BED_PIN 0 //changed @ rkoeppl 20110410 48 | #endif 49 | 50 | #define SDPOWER -1 51 | #define SDSS 17 52 | #define LED_PIN -1 //changed @ rkoeppl 20110410 53 | #define FAN_PIN -1 //changed @ rkoeppl 20110410 54 | #define PS_ON_PIN -1 //changed @ rkoeppl 20110410 55 | #define KILL_PIN -1 //changed @ drakelive 20120830 56 | //our pin for debugging. 57 | 58 | #define DEBUG_PIN 0 59 | 60 | //our RS485 pins 61 | #define TX_ENABLE_PIN 12 62 | #define RX_ENABLE_PIN 13 63 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-mono/pins_GEN6_DELUXE.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Gen6 Deluxe pin assignments 3 | */ 4 | 5 | #include "pins_GEN6.h" 6 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-mono/pins_GEN7_12.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Gen7 v1.1, v1.2, v1.3 pin assignments 3 | */ 4 | 5 | #if !defined(__AVR_ATmega644P__) && !defined(__AVR_ATmega644__) && !defined(__AVR_ATmega1284P__) 6 | #error Oops! Make sure you have 'Gen7' selected from the 'Tools -> Boards' menu. 7 | #endif 8 | 9 | #ifndef GEN7_VERSION 10 | #define GEN7_VERSION 12 // v1.x 11 | #endif 12 | 13 | //x axis pins 14 | #define X_STEP_PIN 19 15 | #define X_DIR_PIN 18 16 | #define X_ENABLE_PIN 24 17 | #define X_STOP_PIN 7 18 | 19 | //y axis pins 20 | #define Y_STEP_PIN 23 21 | #define Y_DIR_PIN 22 22 | #define Y_ENABLE_PIN 24 23 | #define Y_STOP_PIN 5 24 | 25 | //z axis pins 26 | #define Z_STEP_PIN 26 27 | #define Z_DIR_PIN 25 28 | #define Z_ENABLE_PIN 24 29 | #define Z_MIN_PIN 1 30 | #define Z_MAX_PIN 0 31 | 32 | //extruder pins 33 | #define E0_STEP_PIN 28 34 | #define E0_DIR_PIN 27 35 | #define E0_ENABLE_PIN 24 36 | 37 | #define TEMP_0_PIN 1 38 | #define TEMP_1_PIN -1 39 | #define TEMP_2_PIN -1 40 | #define TEMP_BED_PIN 2 41 | 42 | #define HEATER_0_PIN 4 43 | #define HEATER_1_PIN -1 44 | #define HEATER_2_PIN -1 45 | #define HEATER_BED_PIN 3 46 | 47 | #define KILL_PIN -1 48 | 49 | #define SDPOWER -1 50 | #define SDSS -1 // SCL pin of I2C header 51 | #define LED_PIN -1 52 | 53 | #if (GEN7_VERSION >= 13) 54 | // Gen7 v1.3 removed the fan pin 55 | #define FAN_PIN -1 56 | #else 57 | #define FAN_PIN 31 58 | #endif 59 | 60 | #define PS_ON_PIN 15 61 | 62 | //All these generations of Gen7 supply thermistor power 63 | //via PS_ON, so ignore bad thermistor readings 64 | #define BOGUS_TEMPERATURE_FAILSAFE_OVERRIDE 65 | 66 | //our pin for debugging. 67 | #define DEBUG_PIN 0 68 | 69 | //our RS485 pins 70 | #define TX_ENABLE_PIN 12 71 | #define RX_ENABLE_PIN 13 72 | 73 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-mono/pins_GEN7_13.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Gen7 v1.3 pin assignments 3 | */ 4 | 5 | #define MOTHERBOARD BOARD_GEN7_12 6 | #define GEN7_VERSION 13 // v1.3 7 | 8 | #include "pins_GEN7_12.h" 9 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-mono/pins_GEN7_14.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Gen7 v1.4 pin assignments 3 | */ 4 | 5 | #define GEN7_VERSION 14 // v1.4 6 | 7 | #if !defined(__AVR_ATmega644P__) && !defined(__AVR_ATmega644__) && !defined(__AVR_ATmega1284P__) 8 | #error Oops! Make sure you have 'Gen7' selected from the 'Tools -> Boards' menu. 9 | #endif 10 | 11 | //x axis pins 12 | #define X_STEP_PIN 29 13 | #define X_DIR_PIN 28 14 | #define X_ENABLE_PIN 25 15 | #define X_STOP_PIN 0 16 | 17 | //y axis pins 18 | #define Y_STEP_PIN 27 19 | #define Y_DIR_PIN 26 20 | #define Y_ENABLE_PIN 25 21 | #define Y_STOP_PIN 1 22 | 23 | //z axis pins 24 | #define Z_STEP_PIN 23 25 | #define Z_DIR_PIN 22 26 | #define Z_ENABLE_PIN 25 27 | #define Z_STOP_PIN 2 28 | 29 | //extruder pins 30 | #define E0_STEP_PIN 19 31 | #define E0_DIR_PIN 18 32 | #define E0_ENABLE_PIN 25 33 | 34 | #define TEMP_0_PIN 1 35 | #define TEMP_1_PIN -1 36 | #define TEMP_2_PIN -1 37 | #define TEMP_BED_PIN 0 38 | 39 | #define HEATER_0_PIN 4 40 | #define HEATER_1_PIN -1 41 | #define HEATER_2_PIN -1 42 | #define HEATER_BED_PIN 3 43 | 44 | #define KILL_PIN -1 45 | 46 | #define SDPOWER -1 47 | #define SDSS -1 // SCL pin of I2C header 48 | #define LED_PIN -1 49 | 50 | #define FAN_PIN -1 51 | 52 | #define PS_ON_PIN 15 53 | 54 | //our pin for debugging. 55 | #define DEBUG_PIN 0 56 | 57 | //our RS485 pins 58 | #define TX_ENABLE_PIN 12 59 | #define RX_ENABLE_PIN 13 60 | 61 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-mono/pins_GEN7_CUSTOM.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Gen7 Alfons3 board pin assignments 3 | * 4 | * These Pins are assigned for the modified GEN7 Board from Alfons3. 5 | * Please review the pins and adjust them for your needs. 6 | */ 7 | 8 | #if !defined(__AVR_ATmega644P__) && !defined(__AVR_ATmega644__) && !defined(__AVR_ATmega1284P__) 9 | #error Oops! Make sure you have 'Gen7' selected from the 'Tools -> Boards' menu. 10 | #endif 11 | 12 | //x axis pins 13 | #define X_STEP_PIN 21 // different from standard GEN7 14 | #define X_DIR_PIN 20 // different from standard GEN7 15 | #define X_ENABLE_PIN 24 16 | #define X_STOP_PIN 0 17 | 18 | //y axis pins 19 | #define Y_STEP_PIN 23 20 | #define Y_DIR_PIN 22 21 | #define Y_ENABLE_PIN 24 22 | #define Y_STOP_PIN 1 23 | 24 | //z axis pins 25 | #define Z_STEP_PIN 26 26 | #define Z_DIR_PIN 25 27 | #define Z_ENABLE_PIN 24 28 | #define Z_STOP_PIN 2 29 | 30 | //extruder pins 31 | #define E0_STEP_PIN 28 32 | #define E0_DIR_PIN 27 33 | #define E0_ENABLE_PIN 24 34 | 35 | #define TEMP_0_PIN 2 36 | #define TEMP_1_PIN -1 37 | #define TEMP_2_PIN -1 38 | #define TEMP_BED_PIN 1 // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!! (pin 34 bed) 39 | 40 | #define HEATER_0_PIN 4 41 | #define HEATER_1_PIN -1 42 | #define HEATER_2_PIN -1 43 | #define HEATER_BED_PIN 3 // (bed) 44 | 45 | #define SDPOWER -1 46 | #define SDSS 31 // SCL pin of I2C header || CS Pin for SD Card support 47 | #define LED_PIN -1 48 | 49 | #define FAN_PIN -1 50 | #define PS_ON_PIN 19 51 | //our pin for debugging. 52 | 53 | #define DEBUG_PIN -1 54 | 55 | //our RS485 pins 56 | //#define TX_ENABLE_PIN 12 57 | //#define RX_ENABLE_PIN 13 58 | 59 | #define BEEPER -1 60 | #define SDCARDDETECT -1 61 | #define SUICIDE_PIN -1 //has to be defined; otherwise Power_off doesn't work 62 | 63 | #define KILL_PIN -1 64 | //Pins for 4bit LCD Support 65 | #define LCD_PINS_RS 18 66 | #define LCD_PINS_ENABLE 17 67 | #define LCD_PINS_D4 16 68 | #define LCD_PINS_D5 15 69 | #define LCD_PINS_D6 13 70 | #define LCD_PINS_D7 14 71 | 72 | //buttons are directly attached 73 | #define BTN_EN1 11 74 | #define BTN_EN2 10 75 | #define BTN_ENC 12 //the click 76 | 77 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-mono/pins_HEPHESTOS.h: -------------------------------------------------------------------------------- 1 | /** 2 | * bq Prusa i3 Hephestos – Arduino Mega with RAMPS v1.3/1.4 pin assignments 3 | */ 4 | 5 | #include "pins_RAMPS_13.h" 6 | 7 | #undef FAN_PIN 8 | #define FAN_PIN 9 // (Sprinter config) 9 | 10 | #undef HEATER_1_PIN 11 | #define HEATER_1_PIN -1 12 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-mono/pins_K8200.h: -------------------------------------------------------------------------------- 1 | /** 2 | * K8200 Arduino Mega with RAMPS v1.3 pin assignments 3 | * Identical to 3DRAG 4 | */ 5 | 6 | #include "pins_3DRAG.h" 7 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-mono/pins_LEAPFROG.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Leapfrog Driver board pin assignments 3 | */ 4 | 5 | #if !defined(__AVR_ATmega1280__) && !defined(__AVR_ATmega2560__) 6 | #error Oops! Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu. 7 | #endif 8 | 9 | #define X_STEP_PIN 28 10 | #define X_DIR_PIN 63 11 | #define X_ENABLE_PIN 29 12 | #define X_MIN_PIN 47 13 | #define X_MAX_PIN 2 //Max endstops default to disabled "-1", set to commented value to enable. 14 | 15 | #define Y_STEP_PIN 14 // A6 16 | #define Y_DIR_PIN 15 // A0 17 | #define Y_ENABLE_PIN 39 18 | #define Y_MIN_PIN 48 19 | #define Y_MAX_PIN 15 20 | 21 | #define Z_STEP_PIN 31 // A2 22 | #define Z_DIR_PIN 32 // A6 23 | #define Z_ENABLE_PIN 30 // A1 24 | #define Z_MIN_PIN 49 25 | #define Z_MAX_PIN -1 26 | 27 | #define E0_STEP_PIN 34 //34 28 | #define E0_DIR_PIN 35 //35 29 | #define E0_ENABLE_PIN 33 //33 30 | 31 | #define E1_STEP_PIN 37 //37 32 | #define E1_DIR_PIN 40 //40 33 | #define E1_ENABLE_PIN 36 //36 34 | 35 | #define Y2_STEP_PIN 37 36 | #define Y2_DIR_PIN 40 37 | #define Y2_ENABLE_PIN 36 38 | 39 | #define Z2_STEP_PIN 37 40 | #define Z2_DIR_PIN 40 41 | #define Z2_ENABLE_PIN 36 42 | 43 | #define SDPOWER -1 44 | #define SDSS 11 45 | #define SDCARDDETECT -1 // 10 optional also used as mode pin 46 | #define LED_PIN 13 47 | #define FAN_PIN 7 48 | #define PS_ON_PIN -1 49 | #define KILL_PIN -1 50 | #define SOL1_PIN 16 51 | #define SOL2_PIN 17 52 | 53 | #define HEATER_0_PIN 9 54 | #define HEATER_1_PIN 8 // 12 55 | #define HEATER_2_PIN 11 //-1 // 13 56 | #define TEMP_0_PIN 13 //D27 // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!! 57 | #define TEMP_1_PIN 15 // 1 58 | #define TEMP_2_PIN -1 // 2 59 | #define HEATER_BED_PIN 10 // 14/15 60 | #define TEMP_BED_PIN 14 // 1,2 or I2C 61 | /* Unused (1) (2) (3) 4 5 6 7 8 9 10 11 12 13 (14) (15) (16) 17 (18) (19) (20) (21) (22) (23) 24 (25) (26) (27) 28 (29) (30) (31) */ 62 | 63 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-mono/pins_MEGATRONICS.h: -------------------------------------------------------------------------------- 1 | /** 2 | * MegaTronics pin assignments 3 | */ 4 | 5 | #ifndef __AVR_ATmega2560__ 6 | #error Oops! Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu. 7 | #endif 8 | 9 | #define LARGE_FLASH true 10 | 11 | #define X_STEP_PIN 26 12 | #define X_DIR_PIN 28 13 | #define X_ENABLE_PIN 24 14 | #define X_MIN_PIN 41 15 | #define X_MAX_PIN 37 16 | 17 | #define Y_STEP_PIN 60 // A6 18 | #define Y_DIR_PIN 61 // A7 19 | #define Y_ENABLE_PIN 22 20 | #define Y_MIN_PIN 14 21 | #define Y_MAX_PIN 15 22 | 23 | #define Z_STEP_PIN 54 // A0 24 | #define Z_DIR_PIN 55 // A1 25 | #define Z_ENABLE_PIN 56 // A2 26 | #define Z_MIN_PIN 18 27 | #define Z_MAX_PIN 19 28 | 29 | #define E0_STEP_PIN 31 30 | #define E0_DIR_PIN 32 31 | #define E0_ENABLE_PIN 38 32 | 33 | #define E1_STEP_PIN 34 34 | #define E1_DIR_PIN 36 35 | #define E1_ENABLE_PIN 30 36 | 37 | #define SDPOWER -1 38 | #define SDSS 53 39 | #define LED_PIN 13 40 | 41 | 42 | #define FAN_PIN 7 // IO pin. Buffer needed 43 | #define PS_ON_PIN 12 44 | #define KILL_PIN -1 45 | 46 | #define HEATER_0_PIN 9 // EXTRUDER 1 47 | #define HEATER_1_PIN 8 // EXTRUDER 2 (FAN On Sprinter) 48 | #define HEATER_2_PIN -1 49 | 50 | #if TEMP_SENSOR_0 == -1 51 | #define TEMP_0_PIN 8 // ANALOG NUMBERING 52 | #else 53 | #define TEMP_0_PIN 13 // ANALOG NUMBERING 54 | 55 | #endif 56 | 57 | #define TEMP_1_PIN 15 // ANALOG NUMBERING 58 | #define TEMP_2_PIN -1 // ANALOG NUMBERING 59 | #define HEATER_BED_PIN 10 // BED 60 | #define TEMP_BED_PIN 14 // ANALOG NUMBERING 61 | 62 | #define BEEPER 33 // Beeper on AUX-4 63 | 64 | 65 | #if defined(ULTRA_LCD) && defined(NEWPANEL) 66 | //arduino pin which triggers an piezzo beeper 67 | 68 | #define LCD_PINS_RS 16 69 | #define LCD_PINS_ENABLE 17 70 | #define LCD_PINS_D4 23 71 | #define LCD_PINS_D5 25 72 | #define LCD_PINS_D6 27 73 | #define LCD_PINS_D7 29 74 | 75 | //buttons are directly attached using AUX-2 76 | #define BTN_EN1 59 77 | #define BTN_EN2 64 78 | #define BTN_ENC 43 //the click 79 | 80 | #define BLEN_C 2 81 | #define BLEN_B 1 82 | #define BLEN_A 0 83 | 84 | #define SDCARDDETECT -1 // Ramps does not use this port 85 | 86 | #endif // ULTRA_LCD && NEWPANEL 87 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-mono/pins_MEGATRONICS_1.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Minitronics v1.0 pin assignments 3 | */ 4 | 5 | #ifndef __AVR_ATmega1281__ 6 | #error Oops! Make sure you have 'Minitronics' selected from the 'Tools -> Boards' menu. 7 | #endif 8 | 9 | #define LARGE_FLASH true 10 | 11 | #define X_STEP_PIN 48 12 | #define X_DIR_PIN 47 13 | #define X_ENABLE_PIN 49 14 | #define X_MIN_PIN 5 15 | #define X_MAX_PIN 2 16 | 17 | #define Y_STEP_PIN 42 // A6 was 39 18 | #define Y_DIR_PIN 43 // A0 was 40 19 | #define Y_ENABLE_PIN 41 // was 38 20 | #define Y_MIN_PIN 6 // was 2 21 | #define Y_MAX_PIN -1 //15 22 | 23 | #define Z_STEP_PIN 39 // A2 was 42 24 | #define Z_DIR_PIN 40 // A6 was 43 25 | #define Z_ENABLE_PIN 38 // A1 was 41 26 | #define Z_MIN_PIN 2 // was 6 27 | #define Z_MAX_PIN -1 28 | 29 | #define E0_STEP_PIN 45 30 | #define E0_DIR_PIN 44 31 | #define E0_ENABLE_PIN 27 32 | 33 | #define E1_STEP_PIN 36 34 | #define E1_DIR_PIN 35 35 | #define E1_ENABLE_PIN 37 36 | 37 | #define E2_STEP_PIN -1 38 | #define E2_DIR_PIN -1 39 | #define E2_ENABLE_PIN -1 40 | 41 | #define SDPOWER -1 42 | #define SDSS 16 43 | #define LED_PIN 46 44 | 45 | #define FAN_PIN 9 46 | #define FAN2_PIN -1 47 | #define PS_ON_PIN -1 48 | #define KILL_PIN -1 49 | 50 | #define HEATER_0_PIN 7 // EXTRUDER 1 51 | #define HEATER_1_PIN 8 // EXTRUDER 2 52 | #define HEATER_2_PIN -1 53 | 54 | 55 | #define TEMP_0_PIN 7 // ANALOG NUMBERING 56 | #define TEMP_1_PIN 6 // ANALOG NUMBERING 57 | #define TEMP_2_PIN -1 // ANALOG NUMBERING 58 | 59 | #define HEATER_BED_PIN 3 // BED 60 | #define TEMP_BED_PIN 6 // ANALOG NUMBERING 61 | 62 | #define BEEPER -1 63 | 64 | 65 | #define LCD_PINS_RS -1 66 | #define LCD_PINS_ENABLE -1 67 | #define LCD_PINS_D4 -1 68 | #define LCD_PINS_D5 -1 69 | #define LCD_PINS_D6 -1 70 | #define LCD_PINS_D7 -1 71 | 72 | 73 | // Buttons are directly attached using keypad 74 | #define BTN_EN1 -1 75 | #define BTN_EN2 -1 76 | #define BTN_ENC -1 // the click 77 | 78 | #define BLEN_C 2 79 | #define BLEN_B 1 80 | #define BLEN_A 0 81 | 82 | #define SDCARDDETECT -1 // Megatronics does not use this port 83 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-mono/pins_MEGATRONICS_2.h: -------------------------------------------------------------------------------- 1 | /** 2 | * MegaTronics v2.0 pin assignments 3 | */ 4 | 5 | #ifndef __AVR_ATmega2560__ 6 | #error Oops! Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu. 7 | #endif 8 | 9 | #define LARGE_FLASH true 10 | 11 | #define X_STEP_PIN 26 12 | #define X_DIR_PIN 27 13 | #define X_ENABLE_PIN 25 14 | #define X_MIN_PIN 37 15 | #define X_MAX_PIN 40 16 | 17 | #define Y_STEP_PIN 4 // A6 18 | #define Y_DIR_PIN 54 // A0 19 | #define Y_ENABLE_PIN 5 20 | #define Y_MIN_PIN 41 21 | #define Y_MAX_PIN 38 22 | 23 | #define Z_STEP_PIN 56 // A2 24 | #define Z_DIR_PIN 60 // A6 25 | #define Z_ENABLE_PIN 55 // A1 26 | #define Z_MIN_PIN 18 27 | #define Z_MAX_PIN 19 28 | 29 | #define E0_STEP_PIN 35 30 | #define E0_DIR_PIN 36 31 | #define E0_ENABLE_PIN 34 32 | 33 | #define E1_STEP_PIN 29 34 | #define E1_DIR_PIN 39 35 | #define E1_ENABLE_PIN 28 36 | 37 | #define E2_STEP_PIN 23 38 | #define E2_DIR_PIN 24 39 | #define E2_ENABLE_PIN 22 40 | 41 | #define SDPOWER -1 42 | #define SDSS 53 43 | #define LED_PIN 13 44 | 45 | #define FAN_PIN 7 46 | #define FAN2_PIN 6 47 | #define PS_ON_PIN 12 48 | #define KILL_PIN -1 49 | 50 | #define HEATER_0_PIN 9 // EXTRUDER 1 51 | #define HEATER_1_PIN 8 // EXTRUDER 2 52 | #define HEATER_2_PIN -1 53 | 54 | #if TEMP_SENSOR_0 == -1 55 | #define TEMP_0_PIN 4 // ANALOG NUMBERING 56 | #else 57 | #define TEMP_0_PIN 13 // ANALOG NUMBERING 58 | #endif 59 | 60 | 61 | #if TEMP_SENSOR_1 == -1 62 | #define TEMP_1_PIN 8 // ANALOG NUMBERING 63 | #else 64 | #define TEMP_1_PIN 15 // ANALOG NUMBERING 65 | #endif 66 | 67 | #define TEMP_2_PIN -1 // ANALOG NUMBERING 68 | 69 | #define HEATER_BED_PIN 10 // BED 70 | 71 | #if TEMP_SENSOR_BED == -1 72 | #define TEMP_BED_PIN 8 // ANALOG NUMBERING 73 | #else 74 | #define TEMP_BED_PIN 14 // ANALOG NUMBERING 75 | #endif 76 | 77 | #define BEEPER 64 78 | 79 | 80 | #define LCD_PINS_RS 14 81 | #define LCD_PINS_ENABLE 15 82 | #define LCD_PINS_D4 30 83 | #define LCD_PINS_D5 31 84 | #define LCD_PINS_D6 32 85 | #define LCD_PINS_D7 33 86 | 87 | 88 | // Buttons are directly attached using keypad 89 | #define BTN_EN1 61 90 | #define BTN_EN2 59 91 | #define BTN_ENC 43 //the click 92 | 93 | #define BLEN_C 2 94 | #define BLEN_B 1 95 | #define BLEN_A 0 96 | 97 | #define SDCARDDETECT -1 // Megatronics does not use this port 98 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-mono/pins_MEGATRONICS_3.h: -------------------------------------------------------------------------------- 1 | /** 2 | * MegaTronics v3.0 pin assignments 3 | */ 4 | 5 | #ifndef __AVR_ATmega2560__ 6 | #error Oops! Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu. 7 | #endif 8 | 9 | #define LARGE_FLASH true 10 | 11 | // Servo support 12 | #ifdef NUM_SERVOS 13 | #define SERVO0_PIN 46 //AUX3-6 14 | #if NUM_SERVOS > 1 15 | #define SERVO1_PIN 47 //AUX3-5 16 | #if NUM_SERVOS > 2 17 | #define SERVO2_PIN 48 //AUX3-4 18 | #if NUM_SERVOS > 3 19 | #define SERVO2_PIN 49 //AUX3-3 20 | #endif 21 | #endif 22 | #endif 23 | #endif 24 | 25 | #define X_STEP_PIN 58 26 | #define X_DIR_PIN 57 27 | #define X_ENABLE_PIN 59 28 | #define X_MIN_PIN 37 29 | #define X_MAX_PIN 40 // put to -1 to disable 30 | 31 | #define Y_STEP_PIN 16 // was 5 32 | #define Y_DIR_PIN 11 // was 17 33 | #define Y_ENABLE_PIN 3 // was 4 34 | #define Y_MIN_PIN 18 // was 41 35 | #define Y_MAX_PIN 19 // was 38 - put to -1 to disable 36 | 37 | #define Z_STEP_PIN 5 // was 16 38 | #define Z_DIR_PIN 17 // was 11 39 | #define Z_ENABLE_PIN 4 // was 3 40 | #define Z_MIN_PIN 41 // was 18 41 | #define Z_MAX_PIN 38 // was 19 - put to -1 to disable 42 | 43 | #define E0_STEP_PIN 28 44 | #define E0_DIR_PIN 27 45 | #define E0_ENABLE_PIN 29 46 | 47 | #define E1_STEP_PIN 25 48 | #define E1_DIR_PIN 24 49 | #define E1_ENABLE_PIN 26 50 | 51 | #define E2_STEP_PIN 22 52 | #define E2_DIR_PIN 60 53 | #define E2_ENABLE_PIN 23 54 | 55 | #define SDPOWER -1 56 | #define SDSS 53 57 | #define LED_PIN 13 58 | 59 | #define PS_ON_PIN 12 60 | #define KILL_PIN -1 61 | 62 | #define HEATER_0_PIN 2 63 | #define HEATER_1_PIN 9 64 | #define HEATER_2_PIN 8 65 | #define HEATER_BED_PIN 10 66 | #define FAN_PIN 6 67 | #define FAN2_PIN 7 68 | 69 | #define TEMP_0_PIN (TEMP_SENSOR_0 == -1 ? 11 : 15) // ANALOG NUMBERING 70 | #define TEMP_1_PIN (TEMP_SENSOR_1 == -1 ? 10 : 13) // ANALOG NUMBERING 71 | #define TEMP_2_PIN (TEMP_SENSOR_2 == -1 ? 9 : 12) // ANALOG NUMBERING 72 | #define TEMP_BED_PIN (TEMP_SENSOR_BED == -1 ? 8 : 14) // ANALOG NUMBERING 73 | 74 | #define BEEPER 61 75 | 76 | #define LCD_PINS_RS 32 77 | #define LCD_PINS_ENABLE 31 78 | #define LCD_PINS_D4 14 79 | #define LCD_PINS_D5 30 80 | #define LCD_PINS_D6 39 81 | #define LCD_PINS_D7 15 82 | 83 | #define SHIFT_CLK 43 84 | #define SHIFT_LD 35 85 | #define SHIFT_OUT 34 86 | #define SHIFT_EN 44 87 | 88 | // Buttons are directly attached using keypad 89 | #define BTN_EN1 44 90 | #define BTN_EN2 45 91 | #define BTN_ENC 33 // the click 92 | 93 | #define BLEN_C 2 94 | #define BLEN_B 1 95 | #define BLEN_A 0 96 | 97 | #define SDCARDDETECT -1 // Megatronics does not use this port 98 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-mono/pins_MELZI.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Melzi pin assignments 3 | */ 4 | 5 | #define SANGUINOLOLU_V_1_2 6 | 7 | #if defined(__AVR_ATmega1284P__) 8 | #define LARGE_FLASH true 9 | #endif 10 | 11 | #include "pins_SANGUINOLOLU_11.h" 12 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-mono/pins_MELZI_1284.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Melzi with ATmega1284 (MaKr3d version) pin assignments 3 | */ 4 | 5 | #define MELZI 6 | 7 | #undef MOTHERBOARD 8 | #define MOTHERBOARD BOARD_SANGUINOLOLU_11 9 | #define SANGUINOLOLU_V_1_2 10 | 11 | #if defined(__AVR_ATmega1284P__) 12 | #define LARGE_FLASH true 13 | #endif 14 | 15 | #include "pins_SANGUINOLOLU_11.h" 16 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-mono/pins_OMCA.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Open Motion controller with enable based extruders (Final!) 3 | * 4 | * ATMega644 5 | * 6 | * +---\/---+ 7 | * (D 0) PB0 1| |40 PA0 (AI 0 / D31) 8 | * (D 1) PB1 2| |39 PA1 (AI 1 / D30) 9 | * INT2 (D 2) PB2 3| |38 PA2 (AI 2 / D29) 10 | * PWM (D 3) PB3 4| |37 PA3 (AI 3 / D28) 11 | * PWM (D 4) PB4 5| |36 PA4 (AI 4 / D27) 12 | * MOSI (D 5) PB5 6| |35 PA5 (AI 5 / D26) 13 | * MISO (D 6) PB6 7| |34 PA6 (AI 6 / D25) 14 | * SCK (D 7) PB7 8| |33 PA7 (AI 7 / D24) 15 | * RST 9| |32 AREF 16 | * VCC 10| |31 GND 17 | * GND 11| |30 AVCC 18 | * XTAL2 12| |29 PC7 (D 23) 19 | * XTAL1 13| |28 PC6 (D 22) 20 | * RX0 (D 8) PD0 14| |27 PC5 (D 21) TDI 21 | * TX0 (D 9) PD1 15| |26 PC4 (D 20) TDO 22 | * INT0 RX1 (D 10) PD2 16| |25 PC3 (D 19) TMS 23 | * INT1 TX1 (D 11) PD3 17| |24 PC2 (D 18) TCK 24 | * PWM (D 12) PD4 18| |23 PC1 (D 17) SDA 25 | * PWM (D 13) PD5 19| |22 PC0 (D 16) SCL 26 | * PWM (D 14) PD6 20| |21 PD7 (D 15) PWM 27 | * +--------+ 28 | * 29 | * REF http://sanguino.cc/hardware 30 | */ 31 | 32 | #if !defined(__AVR_ATmega644P__) && !defined(__AVR_ATmega644__) 33 | #error Oops! Make sure you have 'Sanguino' selected from the 'Tools -> Boards' menu. (Final OMCA board) 34 | #endif 35 | 36 | #define X_STEP_PIN 26 37 | #define X_DIR_PIN 25 38 | #define X_ENABLE_PIN 10 39 | #define X_STOP_PIN 0 40 | 41 | #define Y_STEP_PIN 28 42 | #define Y_DIR_PIN 27 43 | #define Y_ENABLE_PIN 10 44 | #define Y_STOP_PIN 1 45 | 46 | #define Z_STEP_PIN 23 47 | #define Z_DIR_PIN 22 48 | #define Z_ENABLE_PIN 10 49 | #define Z_STOP_PIN 2 50 | 51 | #define E0_STEP_PIN 24 52 | #define E0_DIR_PIN 21 53 | #define E0_ENABLE_PIN 10 54 | 55 | // future proofing 56 | #define __FS 20 57 | #define __FD 19 58 | #define __GS 18 59 | #define __GD 13 60 | 61 | #define UNUSED_PWM 14 // PWM on LEFT connector 62 | 63 | #define E1_STEP_PIN -1 // 21 64 | #define E1_DIR_PIN -1 // 20 65 | #define E1_ENABLE_PIN -1 // 19 66 | 67 | #define E2_STEP_PIN -1 // 21 68 | #define E2_DIR_PIN -1 // 20 69 | #define E2_ENABLE_PIN -1 // 18 70 | 71 | #define SDPOWER -1 72 | #define SDSS 11 73 | #define SDCARDDETECT -1 // 10 optional also used as mode pin 74 | #define LED_PIN -1 75 | #define FAN_PIN 14 // PWM on MIDDLE connector 76 | #define PS_ON_PIN -1 77 | #define KILL_PIN -1 78 | 79 | #define HEATER_0_PIN 3 // DONE PWM on RIGHT connector 80 | #define HEATER_1_PIN -1 81 | #define HEATER_2_PIN -1 82 | #define HEATER_1_PIN -1 83 | #define HEATER_2_PIN -1 84 | #define TEMP_0_PIN 0 // ANALOG INPUT NUMBERING 85 | #define TEMP_1_PIN 1 // ANALOG 86 | #define TEMP_2_PIN -1 // 2 87 | #define HEATER_BED_PIN 4 88 | #define TEMP_BED_PIN 2 // 1,2 or I2C 89 | 90 | #define I2C_SCL 16 91 | #define I2C_SDA 17 92 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-mono/pins_OMCA_A.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Open Motion controller with enable based extruders (Alpha!) 3 | * 4 | * ATMega644 5 | * 6 | * +---\/---+ 7 | * (D 0) PB0 1| |40 PA0 (AI 0 / D31) 8 | * (D 1) PB1 2| |39 PA1 (AI 1 / D30) 9 | * INT2 (D 2) PB2 3| |38 PA2 (AI 2 / D29) 10 | * PWM (D 3) PB3 4| |37 PA3 (AI 3 / D28) 11 | * PWM (D 4) PB4 5| |36 PA4 (AI 4 / D27) 12 | * MOSI (D 5) PB5 6| |35 PA5 (AI 5 / D26) 13 | * MISO (D 6) PB6 7| |34 PA6 (AI 6 / D25) 14 | * SCK (D 7) PB7 8| |33 PA7 (AI 7 / D24) 15 | * RST 9| |32 AREF 16 | * VCC 10| |31 GND 17 | * GND 11| |30 AVCC 18 | * XTAL2 12| |29 PC7 (D 23) 19 | * XTAL1 13| |28 PC6 (D 22) 20 | * RX0 (D 8) PD0 14| |27 PC5 (D 21) TDI 21 | * TX0 (D 9) PD1 15| |26 PC4 (D 20) TDO 22 | * INT0 RX1 (D 10) PD2 16| |25 PC3 (D 19) TMS 23 | * INT1 TX1 (D 11) PD3 17| |24 PC2 (D 18) TCK 24 | * PWM (D 12) PD4 18| |23 PC1 (D 17) SDA 25 | * PWM (D 13) PD5 19| |22 PC0 (D 16) SCL 26 | * PWM (D 14) PD6 20| |21 PD7 (D 15) PWM 27 | * +--------+ 28 | * 29 | */ 30 | 31 | #ifndef __AVR_ATmega644__ 32 | #error Oops! Make sure you have 'SanguinoA' selected from the 'Tools -> Boards' menu. 33 | #endif 34 | 35 | #define X_STEP_PIN 21 36 | #define X_DIR_PIN 20 37 | #define X_ENABLE_PIN 24 38 | #define X_STOP_PIN 0 39 | 40 | #define Y_STEP_PIN 23 41 | #define Y_DIR_PIN 22 42 | #define Y_ENABLE_PIN 24 43 | #define Y_STOP_PIN 1 44 | 45 | #define Z_STEP_PIN 26 46 | #define Z_DIR_PIN 25 47 | #define Z_ENABLE_PIN 24 48 | #define Z_STOP_PIN 2 49 | 50 | #define E0_STEP_PIN 28 51 | #define E0_DIR_PIN 27 52 | #define E0_ENABLE_PIN 24 53 | 54 | #define E1_STEP_PIN -1 // 19 55 | #define E1_DIR_PIN -1 // 18 56 | #define E1_ENABLE_PIN 24 57 | 58 | #define E2_STEP_PIN -1 // 17 59 | #define E2_DIR_PIN -1 // 16 60 | #define E2_ENABLE_PIN 24 61 | 62 | #define SDPOWER -1 63 | #define SDSS 11 64 | #define SDCARDDETECT -1 // 10 optional also used as mode pin 65 | #define LED_PIN -1 66 | #define FAN_PIN 3 67 | #define PS_ON_PIN -1 68 | #define KILL_PIN -1 69 | 70 | #define HEATER_0_PIN 4 71 | #define HEATER_1_PIN -1 // 12 72 | #define HEATER_2_PIN -1 // 13 73 | #define TEMP_0_PIN 0 //D27 // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!! 74 | #define TEMP_1_PIN -1 // 1 75 | #define TEMP_2_PIN -1 // 2 76 | #define HEATER_BED_PIN -1 // 14/15 77 | #define TEMP_BED_PIN -1 // 1,2 or I2C 78 | /* Unused (1) (2) (3) 4 5 6 7 8 9 10 11 12 13 (14) (15) (16) 17 (18) (19) (20) (21) (22) (23) 24 (25) (26) (27) 28 (29) (30) (31) */ 79 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-mono/pins_RAMPS_OLD.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Arduino Mega with RAMPS v1.0, v1.1, v1.2 pin assignments 3 | */ 4 | 5 | #if !defined(__AVR_ATmega1280__) && !defined(__AVR_ATmega2560__) 6 | #error Oops! Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu. 7 | #endif 8 | 9 | // Uncomment the following line for RAMPS v1.0 10 | //#define RAMPS_V_1_0 11 | 12 | #define X_STEP_PIN 26 13 | #define X_DIR_PIN 28 14 | #define X_ENABLE_PIN 24 15 | #define X_MIN_PIN 3 16 | #define X_MAX_PIN 2 17 | 18 | #define Y_STEP_PIN 38 19 | #define Y_DIR_PIN 40 20 | #define Y_ENABLE_PIN 36 21 | #define Y_MIN_PIN 16 22 | #define Y_MAX_PIN 17 23 | 24 | #define Z_STEP_PIN 44 25 | #define Z_DIR_PIN 46 26 | #define Z_ENABLE_PIN 42 27 | #define Z_MIN_PIN 18 28 | #define Z_MAX_PIN 19 29 | 30 | #define E0_STEP_PIN 32 31 | #define E0_DIR_PIN 34 32 | #define E0_ENABLE_PIN 30 33 | 34 | #define SDPOWER 48 35 | #define SDSS 53 36 | #define LED_PIN 13 37 | #define PS_ON_PIN -1 38 | #define KILL_PIN -1 39 | 40 | #ifdef RAMPS_V_1_0 // RAMPS_V_1_0 41 | #define HEATER_0_PIN 12 // RAMPS 1.0 42 | #define HEATER_BED_PIN -1 // RAMPS 1.0 43 | #define FAN_PIN 11 // RAMPS 1.0 44 | #else // RAMPS_V_1_1 or RAMPS_V_1_2 45 | #define HEATER_0_PIN 10 // RAMPS 1.1 46 | #define HEATER_BED_PIN 8 // RAMPS 1.1 47 | #define FAN_PIN 9 // RAMPS 1.1 48 | #endif 49 | 50 | #define HEATER_1_PIN -1 51 | #define HEATER_2_PIN -1 52 | #define TEMP_0_PIN 2 // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!! 53 | #define TEMP_1_PIN -1 54 | #define TEMP_2_PIN -1 55 | #define TEMP_BED_PIN 1 // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!! 56 | 57 | // SPI for Max6675 Thermocouple 58 | #ifndef SDSUPPORT 59 | #define MAX6675_SS 66// Do not use pin 53 if there is even the remote possibility of using Display/SD card 60 | #else 61 | #define MAX6675_SS 66// Do not use pin 49 as this is tied to the switch inside the SD card socket to detect if there is an SD card present 62 | #endif 63 | 64 | #ifndef SDSUPPORT 65 | // these pins are defined in the SD library if building with SD support 66 | #define SCK_PIN 52 67 | #define MISO_PIN 50 68 | #define MOSI_PIN 51 69 | #endif 70 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-mono/pins_SANGUINOLOLU_12.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Sanguinololu V1.2 pin assignments 3 | * 4 | * Applies to the following boards: 5 | * 6 | * AZTEEG_X1 7 | * MELZI 8 | * MELZI_1284 9 | * SANGUINOLOLU_12 10 | * STB_11 11 | */ 12 | 13 | #define SANGUINOLOLU_V_1_2 14 | 15 | #if defined(__AVR_ATmega1284P__) 16 | #define LARGE_FLASH true 17 | #endif 18 | 19 | #include "pins_SANGUINOLOLU_11.h" 20 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-mono/pins_SAV_MKI.h: -------------------------------------------------------------------------------- 1 | /** 2 | * SAV MkI pin assignments (AT90USB1286) 3 | * Requires the Teensyduino software with Teensy++ 2.0 selected in Arduino IDE! 4 | * http://www.pjrc.com/teensy/teensyduino.html 5 | * RepRap Clone Wars project board. 6 | */ 7 | 8 | #ifndef __AVR_AT90USB1286__ 9 | #error Oops! Make sure you have 'Teensy++ 2.0' selected from the 'Tools -> Boards' menu. 10 | #endif 11 | 12 | #define AT90USB 1286 // Disable MarlinSerial etc. 13 | 14 | #define LARGE_FLASH true 15 | 16 | #define X_STEP_PIN 0 17 | #define X_DIR_PIN 1 18 | #define X_ENABLE_PIN 39 19 | 20 | #define Y_STEP_PIN 2 21 | #define Y_DIR_PIN 3 22 | #define Y_ENABLE_PIN 38 23 | 24 | #define Z_STEP_PIN 4 25 | #define Z_DIR_PIN 5 26 | #define Z_ENABLE_PIN 23 27 | 28 | #define E0_STEP_PIN 6 29 | #define E0_DIR_PIN 7 30 | #define E0_ENABLE_PIN 19 31 | 32 | #define HEATER_0_PIN 21 // Extruder 33 | #define HEATER_1_PIN -1 34 | #define HEATER_2_PIN -1 35 | #define HEATER_BED_PIN 20 // Bed 36 | #define FAN_PIN 16 // Fan -- from Teensyduino environment. 37 | // For the fan and Teensyduino uses a different pin mapping. 38 | 39 | #define X_STOP_PIN 13 40 | #define Y_STOP_PIN 14 41 | #define Z_STOP_PIN 15 42 | //#define Z_STOP_PIN 36 // For inductive sensor. 43 | 44 | #define TEMP_0_PIN 7 // Extruder / Analog pin numbering 45 | #define TEMP_BED_PIN 6 // Bed / Analog pin numbering 46 | 47 | #define TEMP_1_PIN -1 48 | #define TEMP_2_PIN -1 49 | 50 | #define SDPOWER -1 51 | #define SDSS 20 // PB0 - 8 in marlin env. 52 | #define LED_PIN -1 53 | #define PS_ON_PIN -1 54 | #define ALARM_PIN -1 55 | #define SDCARDDETECT -1 56 | 57 | #ifndef SDSUPPORT 58 | // these pins are defined in the SD library if building with SD support 59 | #define SCK_PIN 9 60 | #define MISO_PIN 11 61 | #define MOSI_PIN 10 62 | #endif 63 | 64 | #define BEEPER -1 65 | #define LCD_PINS_RS -1 66 | #define LCD_PINS_ENABLE -1 67 | #define LCD_PINS_D4 -1 68 | #define LCD_PINS_D5 -1 69 | #define LCD_PINS_D6 -1 70 | #define LCD_PINS_D7 -1 71 | 72 | #ifdef SAV_3DLCD 73 | // For LCD SHIFT register LCD 74 | #define SR_DATA_PIN 1 75 | #define SR_CLK_PIN 0 76 | 77 | #define BTN_EN1 41 78 | #define BTN_EN2 40 79 | #define BTN_ENC 12 80 | 81 | #define KILL_PIN 42 // A2 = 42 - teensy = 40 82 | #define HOME_PIN -1 // A4 = marlin 44 - teensy = 42 83 | 84 | #ifdef NUM_SERVOS 85 | #define SERVO0_PIN 41 // In teensy's pin definition for pinMode (in servo.cpp) 86 | #endif 87 | 88 | #endif // SAV_3DLCD 89 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-mono/pins_SETHI.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Sethi 3D_1 pin assignments - www.sethi3d.com.br 3 | */ 4 | 5 | #if !defined(__AVR_ATmega644P__) && !defined(__AVR_ATmega644__) && !defined(__AVR_ATmega1284P__) 6 | #error Oops! Make sure you have 'Sethi 3D' selected from the 'Tools -> Boards' menu. 7 | #endif 8 | 9 | #ifndef GEN7_VERSION 10 | #define GEN7_VERSION 12 // v1.x 11 | #endif 12 | 13 | //x axis pins 14 | #define X_STEP_PIN 19 15 | #define X_DIR_PIN 18 16 | #define X_ENABLE_PIN 24 17 | #define X_STOP_PIN 2 18 | 19 | //y axis pins 20 | #define Y_STEP_PIN 23 21 | #define Y_DIR_PIN 22 22 | #define Y_ENABLE_PIN 24 23 | #define Y_STOP_PIN 0 24 | 25 | //z axis pins 26 | #define Z_STEP_PIN 26 27 | #define Z_DIR_PIN 25 28 | #define Z_ENABLE_PIN 24 29 | #define Z_MIN_PIN 1 30 | #define Z_MAX_PIN 0 31 | 32 | //extruder pins 33 | #define E0_STEP_PIN 28 34 | #define E0_DIR_PIN 27 35 | #define E0_ENABLE_PIN 24 36 | 37 | #define TEMP_0_PIN 1 38 | #define TEMP_1_PIN -1 39 | #define TEMP_2_PIN -1 40 | #define TEMP_BED_PIN 2 41 | 42 | #define HEATER_0_PIN 4 43 | #define HEATER_1_PIN -1 44 | #define HEATER_2_PIN -1 45 | #define HEATER_BED_PIN 3 46 | 47 | #define KILL_PIN -1 48 | 49 | #define SDPOWER -1 50 | #define SDSS -1 // SCL pin of I2C header 51 | #define LED_PIN -1 52 | 53 | #if (GEN7_VERSION >= 13) 54 | // Gen7 v1.3 removed the fan pin 55 | #define FAN_PIN -1 56 | #else 57 | #define FAN_PIN 31 58 | #endif 59 | 60 | #define PS_ON_PIN 15 61 | 62 | //All these generations of Gen7 supply thermistor power 63 | //via PS_ON, so ignore bad thermistor readings 64 | #define BOGUS_TEMPERATURE_FAILSAFE_OVERRIDE 65 | 66 | //our pin for debugging. 67 | #define DEBUG_PIN 0 68 | 69 | //our RS485 pins 70 | #define TX_ENABLE_PIN 12 71 | #define RX_ENABLE_PIN 13 72 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-mono/pins_STB_11.h: -------------------------------------------------------------------------------- 1 | /** 2 | * STB V1.1 pin assignments 3 | */ 4 | 5 | #define SANGUINOLOLU_V_1_2 6 | 7 | #if defined(__AVR_ATmega1284P__) 8 | #define LARGE_FLASH true 9 | #endif 10 | 11 | #include "pins_SANGUINOLOLU_11.h" 12 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-mono/pins_TEENSYLU.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Teensylu 0.7 pin assignments (AT90USB1286) 3 | * Requires the Teensyduino software with Teensy++ 2.0 selected in Arduino IDE! 4 | * http://www.pjrc.com/teensy/teensyduino.html 5 | * See http://reprap.org/wiki/Printrboard for more info 6 | */ 7 | 8 | #ifndef __AVR_AT90USB1286__ 9 | #error Oops! Make sure you have 'Teensy++ 2.0' selected from the 'Tools -> Boards' menu. 10 | #endif 11 | 12 | #ifdef AT90USBxx_TEENSYPP_ASSIGNMENTS // use Teensyduino Teensy++2.0 pin assignments instead of Marlin traditional. 13 | #error These Teensylu assignments depend on traditional Marlin assignments, not AT90USBxx_TEENSYPP_ASSIGNMENTS in fastio.h 14 | #endif 15 | 16 | #define AT90USB 1286 // Disable MarlinSerial etc. 17 | 18 | #define LARGE_FLASH true 19 | 20 | #define X_STEP_PIN 0 21 | #define X_DIR_PIN 1 22 | #define X_ENABLE_PIN 39 23 | 24 | #define Y_STEP_PIN 2 25 | #define Y_DIR_PIN 3 26 | #define Y_ENABLE_PIN 38 27 | 28 | #define Z_STEP_PIN 4 29 | #define Z_DIR_PIN 5 30 | #define Z_ENABLE_PIN 23 31 | 32 | #define E0_STEP_PIN 6 33 | #define E0_DIR_PIN 7 34 | #define E0_ENABLE_PIN 19 35 | 36 | #define HEATER_0_PIN 21 // Extruder 37 | #define HEATER_1_PIN 46 38 | #define HEATER_2_PIN 47 39 | #define HEATER_BED_PIN 20 40 | 41 | // If soft or fast PWM is off then use Teensyduino pin numbering, Marlin 42 | // fastio pin numbering otherwise 43 | #ifdef FAN_SOFT_PWM || FAST_PWM_FAN 44 | #define FAN_PIN 22 45 | #else 46 | #define FAN_PIN 16 47 | #endif 48 | 49 | #define X_STOP_PIN 13 50 | #define Y_STOP_PIN 14 51 | #define Z_STOP_PIN 15 52 | #define TEMP_0_PIN 7 // Extruder / Analog pin numbering 53 | #define TEMP_BED_PIN 6 // Bed / Analog pin numbering 54 | 55 | #define TEMP_1_PIN -1 56 | #define TEMP_2_PIN -1 57 | 58 | #define SDPOWER -1 59 | #define SDSS 8 60 | #define LED_PIN -1 61 | #define PS_ON_PIN -1 62 | #define KILL_PIN -1 63 | #define ALARM_PIN -1 64 | 65 | #ifndef SDSUPPORT 66 | // these pins are defined in the SD library if building with SD support 67 | #define SCK_PIN 9 68 | #define MISO_PIN 11 69 | #define MOSI_PIN 10 70 | #endif 71 | 72 | #if defined(ULTRA_LCD) && defined(NEWPANEL) 73 | //we have no buzzer installed 74 | #define BEEPER -1 75 | //LCD Pins 76 | #ifdef LCD_I2C_PANELOLU2 77 | #define BTN_EN1 27 //RX1 - fastio.h pin mapping 27 78 | #define BTN_EN2 26 //TX1 - fastio.h pin mapping 26 79 | #define BTN_ENC 43 //A3 - fastio.h pin mapping 43 80 | #define SDSS 40 //use SD card on Panelolu2 (Teensyduino pin mapping) 81 | #endif // LCD_I2C_PANELOLU2 82 | //not connected to a pin 83 | #define SDCARDDETECT -1 84 | #endif // ULTRA_LCD && NEWPANEL 85 | 86 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-mono/pins_ULTIMAIN_2.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Ultiboard v2.0 pin assignments 3 | */ 4 | 5 | #ifndef __AVR_ATmega2560__ 6 | #error Oops! Make sure you have 'Arduino Mega 2560' selected from the 'Tools -> Boards' menu. 7 | #endif 8 | 9 | #define X_STEP_PIN 25 10 | #define X_DIR_PIN 23 11 | #define X_STOP_PIN 22 12 | #define X_ENABLE_PIN 27 13 | 14 | #define Y_STEP_PIN 32 15 | #define Y_DIR_PIN 33 16 | #define Y_STOP_PIN 26 17 | #define Y_ENABLE_PIN 31 18 | 19 | #define Z_STEP_PIN 35 20 | #define Z_DIR_PIN 36 21 | #define Z_STOP_PIN 29 22 | #define Z_ENABLE_PIN 34 23 | 24 | #define HEATER_BED_PIN 4 25 | #define TEMP_BED_PIN 10 26 | 27 | #define HEATER_0_PIN 2 28 | #define TEMP_0_PIN 8 29 | 30 | #define HEATER_1_PIN 3 31 | #define TEMP_1_PIN 9 32 | 33 | #define HEATER_2_PIN -1 34 | #define TEMP_2_PIN -1 35 | 36 | #define E0_STEP_PIN 42 37 | #define E0_DIR_PIN 43 38 | #define E0_ENABLE_PIN 37 39 | 40 | #define E1_STEP_PIN 49 41 | #define E1_DIR_PIN 47 42 | #define E1_ENABLE_PIN 48 43 | 44 | #define SDPOWER -1 45 | #define SDSS 53 46 | #define LED_PIN 8 47 | #define FAN_PIN 7 48 | #define PS_ON_PIN -1 49 | #define KILL_PIN -1 50 | #define SUICIDE_PIN -1 //PIN that has to be turned on right after start, to keep power flowing. 51 | #define SAFETY_TRIGGERED_PIN 28 //PIN to detect the safety circuit has triggered 52 | #define MAIN_VOLTAGE_MEASURE_PIN 14 //Analogue PIN to measure the main voltage, with a 100k - 4k7 resitor divider. 53 | 54 | #define MOTOR_CURRENT_PWM_XY_PIN 44 55 | #define MOTOR_CURRENT_PWM_Z_PIN 45 56 | #define MOTOR_CURRENT_PWM_E_PIN 46 57 | //Motor current PWM conversion, PWM value = MotorCurrentSetting * 255 / range 58 | #define MOTOR_CURRENT_PWM_RANGE 2000 59 | #define DEFAULT_PWM_MOTOR_CURRENT {1300, 1300, 1250} 60 | 61 | //arduino pin witch triggers an piezzo beeper 62 | #define BEEPER 18 63 | 64 | #define LCD_PINS_RS 20 65 | #define LCD_PINS_ENABLE 15 66 | #define LCD_PINS_D4 14 67 | #define LCD_PINS_D5 21 68 | #define LCD_PINS_D6 5 69 | #define LCD_PINS_D7 6 70 | 71 | //buttons are directly attached 72 | #define BTN_EN1 40 73 | #define BTN_EN2 41 74 | #define BTN_ENC 19 //the click 75 | 76 | #define BLEN_C 2 77 | #define BLEN_B 1 78 | #define BLEN_A 0 79 | 80 | #define SDCARDDETECT 39 81 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-mono/pins_ULTIMAKER.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Ultimaker pin assignments 3 | */ 4 | 5 | #if !defined(__AVR_ATmega1280__) && !defined(__AVR_ATmega2560__) 6 | #error Oops! Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu. 7 | #endif 8 | 9 | #define LARGE_FLASH true 10 | 11 | #define X_STEP_PIN 25 12 | #define X_DIR_PIN 23 13 | #define X_MIN_PIN 22 14 | #define X_MAX_PIN 24 15 | #define X_ENABLE_PIN 27 16 | 17 | #define Y_STEP_PIN 31 18 | #define Y_DIR_PIN 33 19 | #define Y_MIN_PIN 26 20 | #define Y_MAX_PIN 28 21 | #define Y_ENABLE_PIN 29 22 | 23 | #define Z_STEP_PIN 37 24 | #define Z_DIR_PIN 39 25 | #define Z_MIN_PIN 30 26 | #define Z_MAX_PIN 32 27 | #define Z_ENABLE_PIN 35 28 | 29 | #define HEATER_BED_PIN 4 30 | #define TEMP_BED_PIN 10 31 | 32 | #define HEATER_0_PIN 2 33 | #define TEMP_0_PIN 8 34 | 35 | #define HEATER_1_PIN 3 36 | #define TEMP_1_PIN 9 37 | 38 | #define HEATER_2_PIN -1 39 | #define TEMP_2_PIN -1 40 | 41 | #define E0_STEP_PIN 43 42 | #define E0_DIR_PIN 45 43 | #define E0_ENABLE_PIN 41 44 | 45 | #define E1_STEP_PIN 49 46 | #define E1_DIR_PIN 47 47 | #define E1_ENABLE_PIN 48 48 | 49 | #define SDPOWER -1 50 | #define SDSS 53 51 | #define LED_PIN 13 52 | #define FAN_PIN 7 53 | #define PS_ON_PIN 12 54 | #define KILL_PIN -1 55 | #define SUICIDE_PIN 54 //PIN that has to be turned on right after start, to keep power flowing. 56 | #define SERVO0_PIN 13 // untested 57 | 58 | #ifdef ULTRA_LCD 59 | 60 | #ifdef NEWPANEL 61 | //arduino pin witch triggers an piezzo beeper 62 | #define BEEPER 18 63 | 64 | #define LCD_PINS_RS 20 65 | #define LCD_PINS_ENABLE 17 66 | #define LCD_PINS_D4 16 67 | #define LCD_PINS_D5 21 68 | #define LCD_PINS_D6 5 69 | #define LCD_PINS_D7 6 70 | 71 | //buttons are directly attached 72 | #define BTN_EN1 40 73 | #define BTN_EN2 42 74 | #define BTN_ENC 19 //the click 75 | 76 | #define SDCARDDETECT 38 77 | 78 | #else //!NEWPANEL - Old style panel with shift register 79 | 80 | //arduino pin witch triggers an piezzo beeper 81 | #define BEEPER 18 82 | 83 | //buttons are attached to a shift register 84 | #define SHIFT_CLK 38 85 | #define SHIFT_LD 42 86 | #define SHIFT_OUT 40 87 | #define SHIFT_EN 17 88 | 89 | #define LCD_PINS_RS 16 90 | #define LCD_PINS_ENABLE 5 91 | #define LCD_PINS_D4 6 92 | #define LCD_PINS_D5 21 93 | #define LCD_PINS_D6 20 94 | #define LCD_PINS_D7 19 95 | 96 | #define SDCARDDETECT -1 97 | 98 | #endif // !NEWPANEL 99 | 100 | #endif // ULTRA_LCD 101 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-mono/pins_ULTIMAKER_OLD.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Ultimaker pin assignments (Old electronics) 3 | */ 4 | 5 | #if !defined(__AVR_ATmega1280__) && !defined(__AVR_ATmega2560__) 6 | #error Oops! Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu. 7 | #endif 8 | 9 | #define LARGE_FLASH true 10 | 11 | #define X_STEP_PIN 25 12 | #define X_DIR_PIN 23 13 | #define X_MIN_PIN 15 14 | #define X_MAX_PIN 14 15 | #define X_ENABLE_PIN 27 16 | 17 | #define Y_STEP_PIN 31 18 | #define Y_DIR_PIN 33 19 | #define Y_MIN_PIN 17 20 | #define Y_MAX_PIN 16 21 | #define Y_ENABLE_PIN 29 22 | 23 | #define Z_STEP_PIN 37 24 | #define Z_DIR_PIN 39 25 | #define Z_MIN_PIN 19 26 | #define Z_MAX_PIN 18 27 | #define Z_ENABLE_PIN 35 28 | 29 | #define HEATER_BED_PIN -1 30 | #define TEMP_BED_PIN -1 31 | 32 | #define HEATER_0_PIN 2 33 | #define TEMP_0_PIN 8 34 | 35 | #define HEATER_1_PIN 1 36 | #define TEMP_1_PIN 1 37 | 38 | #define HEATER_2_PIN -1 39 | #define TEMP_2_PIN -1 40 | 41 | #define E0_STEP_PIN 43 42 | #define E0_DIR_PIN 45 43 | #define E0_ENABLE_PIN 41 44 | 45 | #define E1_STEP_PIN -1 46 | #define E1_DIR_PIN -1 47 | #define E1_ENABLE_PIN -1 48 | 49 | #define SDPOWER -1 50 | #define SDSS -1 51 | #define LED_PIN -1 52 | #define FAN_PIN -1 53 | #define PS_ON_PIN -1 54 | #define KILL_PIN -1 55 | #define SUICIDE_PIN -1 //PIN that has to be turned on right after start, to keep power flowing. 56 | 57 | #define LCD_PINS_RS 24 58 | #define LCD_PINS_ENABLE 22 59 | #define LCD_PINS_D4 36 60 | #define LCD_PINS_D5 34 61 | #define LCD_PINS_D6 32 62 | #define LCD_PINS_D7 30 63 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-mono/pins_WITBOX.h: -------------------------------------------------------------------------------- 1 | /** 2 | * bq WITBOX Arduino Mega with RAMPS v1.3/1.4 pin assignments 3 | */ 4 | 5 | #include "pins_RAMPS_13.h" 6 | 7 | #undef FAN_PIN 8 | #define FAN_PIN 9 // (Sprinter config) 9 | 10 | #undef HEATER_1_PIN 11 | #define HEATER_1_PIN -1 12 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-mono/qr_solve.h: -------------------------------------------------------------------------------- 1 | #include "Configuration.h" 2 | 3 | #ifdef AUTO_BED_LEVELING_GRID 4 | 5 | void daxpy ( int n, double da, double dx[], int incx, double dy[], int incy ); 6 | double ddot ( int n, double dx[], int incx, double dy[], int incy ); 7 | double dnrm2 ( int n, double x[], int incx ); 8 | void dqrank ( double a[], int lda, int m, int n, double tol, int *kr, 9 | int jpvt[], double qraux[] ); 10 | void dqrdc ( double a[], int lda, int n, int p, double qraux[], int jpvt[], 11 | double work[], int job ); 12 | int dqrls ( double a[], int lda, int m, int n, double tol, int *kr, double b[], 13 | double x[], double rsd[], int jpvt[], double qraux[], int itask ); 14 | void dqrlss ( double a[], int lda, int m, int n, int kr, double b[], double x[], 15 | double rsd[], int jpvt[], double qraux[] ); 16 | int dqrsl ( double a[], int lda, int n, int k, double qraux[], double y[], 17 | double qy[], double qty[], double b[], double rsd[], double ab[], int job ); 18 | void dscal ( int n, double sa, double x[], int incx ); 19 | void dswap ( int n, double x[], int incx, double y[], int incy ); 20 | double *qr_solve ( int m, int n, double a[], double b[] ); 21 | 22 | #endif 23 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-mono/vector_3.h: -------------------------------------------------------------------------------- 1 | /* 2 | vector_3.cpp - Vector library for bed leveling 3 | Copyright (c) 2012 Lars Brubaker. All right reserved. 4 | 5 | This library is free software; you can redistribute it and/or 6 | modify it under the terms of the GNU Lesser General Public 7 | License as published by the Free Software Foundation; either 8 | version 2.1 of the License, or (at your option) any later version. 9 | 10 | This library is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | Lesser General Public License for more details. 14 | 15 | You should have received a copy of the GNU Lesser General Public 16 | License along with this library; if not, write to the Free Software 17 | Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | #ifndef VECTOR_3_H 20 | #define VECTOR_3_H 21 | 22 | #ifdef ENABLE_AUTO_BED_LEVELING 23 | class matrix_3x3; 24 | 25 | struct vector_3 26 | { 27 | float x, y, z; 28 | 29 | vector_3(); 30 | vector_3(float x, float y, float z); 31 | 32 | static vector_3 cross(vector_3 a, vector_3 b); 33 | 34 | vector_3 operator+(vector_3 v); 35 | vector_3 operator-(vector_3 v); 36 | void normalize(); 37 | float get_length(); 38 | vector_3 get_normal(); 39 | 40 | void debug(const char title[]); 41 | 42 | void apply_rotation(matrix_3x3 matrix); 43 | }; 44 | 45 | struct matrix_3x3 46 | { 47 | float matrix[9]; 48 | 49 | static matrix_3x3 create_from_rows(vector_3 row_0, vector_3 row_1, vector_3 row_2); 50 | static matrix_3x3 create_look_at(vector_3 target); 51 | static matrix_3x3 transpose(matrix_3x3 original); 52 | 53 | void set_to_identity(); 54 | 55 | void debug(const char title[]); 56 | }; 57 | 58 | 59 | void apply_rotation_xyz(matrix_3x3 rotationMatrix, float &x, float& y, float& z); 60 | #endif // ENABLE_AUTO_BED_LEVELING 61 | 62 | #endif // VECTOR_3_H 63 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-mono/watchdog.cpp: -------------------------------------------------------------------------------- 1 | #include "Marlin.h" 2 | 3 | #ifdef USE_WATCHDOG 4 | #include 5 | 6 | #include "watchdog.h" 7 | #include "ultralcd.h" 8 | 9 | //=========================================================================== 10 | //============================ private variables ============================ 11 | //=========================================================================== 12 | 13 | //=========================================================================== 14 | //================================ functions ================================ 15 | //=========================================================================== 16 | 17 | 18 | /// intialise watch dog with a 4 sec interrupt time 19 | void watchdog_init() 20 | { 21 | #ifdef WATCHDOG_RESET_MANUAL 22 | //We enable the watchdog timer, but only for the interrupt. 23 | //Take care, as this requires the correct order of operation, with interrupts disabled. See the datasheet of any AVR chip for details. 24 | wdt_reset(); 25 | _WD_CONTROL_REG = _BV(_WD_CHANGE_BIT) | _BV(WDE); 26 | _WD_CONTROL_REG = _BV(WDIE) | WDTO_4S; 27 | #else 28 | wdt_enable(WDTO_4S); 29 | #endif 30 | } 31 | 32 | /// reset watchdog. MUST be called every 1s after init or avr will reset. 33 | void watchdog_reset() 34 | { 35 | wdt_reset(); 36 | } 37 | 38 | //=========================================================================== 39 | //=================================== ISR =================================== 40 | //=========================================================================== 41 | 42 | //Watchdog timer interrupt, called if main program blocks >1sec and manual reset is enabled. 43 | #ifdef WATCHDOG_RESET_MANUAL 44 | ISR(WDT_vect) 45 | { 46 | //TODO: This message gets overwritten by the kill() call 47 | LCD_ALERTMESSAGEPGM("ERR:Please Reset");//16 characters so it fits on a 16x2 display 48 | lcd_update(); 49 | SERIAL_ERROR_START; 50 | SERIAL_ERRORLNPGM("Something is wrong, please turn off the printer."); 51 | kill(); //kill blocks 52 | while(1); //wait for user or serial reset 53 | } 54 | #endif//RESET_MANUAL 55 | 56 | #endif//USE_WATCHDOG 57 | -------------------------------------------------------------------------------- /firmware/Marlin_Mondrian3-mono/watchdog.h: -------------------------------------------------------------------------------- 1 | #ifndef WATCHDOG_H 2 | #define WATCHDOG_H 3 | 4 | #include "Marlin.h" 5 | 6 | #ifdef USE_WATCHDOG 7 | // initialize watch dog with a 1 sec interrupt time 8 | void watchdog_init(); 9 | // pad the dog/reset watchdog. MUST be called at least every second after the first watchdog_init or AVR will go into emergency procedures.. 10 | void watchdog_reset(); 11 | #else 12 | //If we do not have a watchdog, then we can have empty functions which are optimized away. 13 | FORCE_INLINE void watchdog_init() {}; 14 | FORCE_INLINE void watchdog_reset() {}; 15 | #endif 16 | 17 | #endif 18 | -------------------------------------------------------------------------------- /hardware/DXF/bed/plateau-alu_220x220x4.dwg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenEdge/Mondrian3/1a14c5ee610820d08efc8ae007812a12f7268a3a/hardware/DXF/bed/plateau-alu_220x220x4.dwg -------------------------------------------------------------------------------- /hardware/DXF/bed/plateau-alu_220x220x4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenEdge/Mondrian3/1a14c5ee610820d08efc8ae007812a12f7268a3a/hardware/DXF/bed/plateau-alu_220x220x4.png -------------------------------------------------------------------------------- /hardware/DXF/bed/plateau-alu_220x220x4mm.skp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenEdge/Mondrian3/1a14c5ee610820d08efc8ae007812a12f7268a3a/hardware/DXF/bed/plateau-alu_220x220x4mm.skp -------------------------------------------------------------------------------- /hardware/STL/Dual/PIM30 Entrainement-fil corps.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenEdge/Mondrian3/1a14c5ee610820d08efc8ae007812a12f7268a3a/hardware/STL/Dual/PIM30 Entrainement-fil corps.stl -------------------------------------------------------------------------------- /hardware/STL/Dual/PIM30 Entrainement-fil levier.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenEdge/Mondrian3/1a14c5ee610820d08efc8ae007812a12f7268a3a/hardware/STL/Dual/PIM30 Entrainement-fil levier.stl -------------------------------------------------------------------------------- /hardware/STL/Dual/PIM30-dual Bouchon.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenEdge/Mondrian3/1a14c5ee610820d08efc8ae007812a12f7268a3a/hardware/STL/Dual/PIM30-dual Bouchon.stl -------------------------------------------------------------------------------- /hardware/STL/Dual/PIM30-dual Clip-tube-cables.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenEdge/Mondrian3/1a14c5ee610820d08efc8ae007812a12f7268a3a/hardware/STL/Dual/PIM30-dual Clip-tube-cables.stl -------------------------------------------------------------------------------- /hardware/STL/Dual/PIM30-dual Devidoir-bobine.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenEdge/Mondrian3/1a14c5ee610820d08efc8ae007812a12f7268a3a/hardware/STL/Dual/PIM30-dual Devidoir-bobine.stl -------------------------------------------------------------------------------- /hardware/STL/Dual/PIM30-dual Devidoir-bobine_x2.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenEdge/Mondrian3/1a14c5ee610820d08efc8ae007812a12f7268a3a/hardware/STL/Dual/PIM30-dual Devidoir-bobine_x2.stl -------------------------------------------------------------------------------- /hardware/STL/Dual/PIM30-dual Entrainement-fil capot-2.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenEdge/Mondrian3/1a14c5ee610820d08efc8ae007812a12f7268a3a/hardware/STL/Dual/PIM30-dual Entrainement-fil capot-2.stl -------------------------------------------------------------------------------- /hardware/STL/Mono/PIM30-mono Clip-tube-gaine.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenEdge/Mondrian3/1a14c5ee610820d08efc8ae007812a12f7268a3a/hardware/STL/Mono/PIM30-mono Clip-tube-gaine.stl -------------------------------------------------------------------------------- /hardware/STL/Mono/PIM30-mono Crochet-bobine-70mm.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenEdge/Mondrian3/1a14c5ee610820d08efc8ae007812a12f7268a3a/hardware/STL/Mono/PIM30-mono Crochet-bobine-70mm.stl -------------------------------------------------------------------------------- /hardware/STL/PIM30 Butee-capteur-Z.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenEdge/Mondrian3/1a14c5ee610820d08efc8ae007812a12f7268a3a/hardware/STL/PIM30 Butee-capteur-Z.stl -------------------------------------------------------------------------------- /hardware/STL/PIM30 Capot-tete-dual.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenEdge/Mondrian3/1a14c5ee610820d08efc8ae007812a12f7268a3a/hardware/STL/PIM30 Capot-tete-dual.stl -------------------------------------------------------------------------------- /hardware/STL/PIM30 Chariot-X.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenEdge/Mondrian3/1a14c5ee610820d08efc8ae007812a12f7268a3a/hardware/STL/PIM30 Chariot-X.stl -------------------------------------------------------------------------------- /hardware/STL/PIM30 Chariot-Y-droite.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenEdge/Mondrian3/1a14c5ee610820d08efc8ae007812a12f7268a3a/hardware/STL/PIM30 Chariot-Y-droite.stl -------------------------------------------------------------------------------- /hardware/STL/PIM30 Chariot-Y-gauche.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenEdge/Mondrian3/1a14c5ee610820d08efc8ae007812a12f7268a3a/hardware/STL/PIM30 Chariot-Y-gauche.stl -------------------------------------------------------------------------------- /hardware/STL/PIM30 Chariot-Z.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenEdge/Mondrian3/1a14c5ee610820d08efc8ae007812a12f7268a3a/hardware/STL/PIM30 Chariot-Z.stl -------------------------------------------------------------------------------- /hardware/STL/PIM30 Chariots-Y.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenEdge/Mondrian3/1a14c5ee610820d08efc8ae007812a12f7268a3a/hardware/STL/PIM30 Chariots-Y.stl -------------------------------------------------------------------------------- /hardware/STL/PIM30 Coin-inferieur.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenEdge/Mondrian3/1a14c5ee610820d08efc8ae007812a12f7268a3a/hardware/STL/PIM30 Coin-inferieur.stl -------------------------------------------------------------------------------- /hardware/STL/PIM30 Coin-superieur.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenEdge/Mondrian3/1a14c5ee610820d08efc8ae007812a12f7268a3a/hardware/STL/PIM30 Coin-superieur.stl -------------------------------------------------------------------------------- /hardware/STL/PIM30 Coupelle.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenEdge/Mondrian3/1a14c5ee610820d08efc8ae007812a12f7268a3a/hardware/STL/PIM30 Coupelle.stl -------------------------------------------------------------------------------- /hardware/STL/PIM30 Entrainement-fil capot-1.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenEdge/Mondrian3/1a14c5ee610820d08efc8ae007812a12f7268a3a/hardware/STL/PIM30 Entrainement-fil capot-1.stl -------------------------------------------------------------------------------- /hardware/STL/PIM30 Entrainement-fil corps.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenEdge/Mondrian3/1a14c5ee610820d08efc8ae007812a12f7268a3a/hardware/STL/PIM30 Entrainement-fil corps.stl -------------------------------------------------------------------------------- /hardware/STL/PIM30 Entrainement-fil levier.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenEdge/Mondrian3/1a14c5ee610820d08efc8ae007812a12f7268a3a/hardware/STL/PIM30 Entrainement-fil levier.stl -------------------------------------------------------------------------------- /hardware/STL/PIM30 Loquet-porte-ecrou.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenEdge/Mondrian3/1a14c5ee610820d08efc8ae007812a12f7268a3a/hardware/STL/PIM30 Loquet-porte-ecrou.stl -------------------------------------------------------------------------------- /hardware/STL/PIM30 Loquet-porte-vis.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenEdge/Mondrian3/1a14c5ee610820d08efc8ae007812a12f7268a3a/hardware/STL/PIM30 Loquet-porte-vis.stl -------------------------------------------------------------------------------- /hardware/STL/PIM30 Molette-ecrou-M3.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenEdge/Mondrian3/1a14c5ee610820d08efc8ae007812a12f7268a3a/hardware/STL/PIM30 Molette-ecrou-M3.stl -------------------------------------------------------------------------------- /hardware/STL/PIM30 Support-courroie.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenEdge/Mondrian3/1a14c5ee610820d08efc8ae007812a12f7268a3a/hardware/STL/PIM30 Support-courroie.stl -------------------------------------------------------------------------------- /hardware/STL/PIM30 Support-courroie_x2.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenEdge/Mondrian3/1a14c5ee610820d08efc8ae007812a12f7268a3a/hardware/STL/PIM30 Support-courroie_x2.stl -------------------------------------------------------------------------------- /hardware/STL/PIM30 Support-tête.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenEdge/Mondrian3/1a14c5ee610820d08efc8ae007812a12f7268a3a/hardware/STL/PIM30 Support-tête.stl -------------------------------------------------------------------------------- /source/Mondrian.skp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenEdge/Mondrian3/1a14c5ee610820d08efc8ae007812a12f7268a3a/source/Mondrian.skp --------------------------------------------------------------------------------