├── CR-10s Firmware (Marlin) ├── CR10S-Factory-Thermal-Protection-Enabled │ └── Marlin │ │ ├── Conditionals.h │ │ ├── Configuration.h │ │ ├── Configuration_adv.h │ │ ├── Default_Version.h │ │ ├── M100_Free_Mem_Chk.cpp │ │ ├── Makefile │ │ ├── Marlin.h │ │ ├── Marlin.ino │ │ ├── Marlin.sdf │ │ ├── Marlin.suo │ │ ├── Marlin.vcxproj.user │ │ ├── MarlinSerial.cpp │ │ ├── MarlinSerial.h │ │ ├── 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 │ │ ├── Visual Micro │ │ ├── Compile.vmps.xml │ │ ├── Configuration.Release.vmps.xml │ │ └── Upload.vmps.xml │ │ ├── blinkm.cpp │ │ ├── blinkm.h │ │ ├── boards.h │ │ ├── buzzer.cpp │ │ ├── buzzer.h │ │ ├── cardreader.cpp │ │ ├── cardreader.h │ │ ├── configuration_store.cpp │ │ ├── configuration_store.h │ │ ├── configurator │ │ ├── config │ │ │ ├── Configuration.h │ │ │ ├── Configuration_adv.h │ │ │ ├── _htaccess │ │ │ ├── boards.h │ │ │ └── language.h │ │ ├── css │ │ │ ├── configurator.css │ │ │ └── logo.png │ │ ├── index.html │ │ └── js │ │ │ ├── FileSaver.min.js │ │ │ ├── binaryfileuploader.js │ │ │ ├── binarystring.js │ │ │ ├── configurator.js │ │ │ ├── jcanvas.js │ │ │ ├── jquery-2.1.3.min.js │ │ │ ├── jstepper.js │ │ │ └── jszip.min.js │ │ ├── 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 │ │ ├── example_configurations │ │ ├── Felix │ │ │ ├── Configuration.h │ │ │ ├── Configuration_DUAL.h │ │ │ ├── Configuration_adv.h │ │ │ └── README.md │ │ ├── Hephestos │ │ │ ├── Configuration.h │ │ │ └── Configuration_adv.h │ │ ├── K8200 │ │ │ ├── Configuration.h │ │ │ ├── Configuration_adv.h │ │ │ └── readme.md │ │ ├── RepRapWorld │ │ │ └── Megatronics │ │ │ │ └── Configuration.h │ │ ├── RigidBot │ │ │ ├── Configuration.h │ │ │ └── Configuration_adv.h │ │ ├── SCARA │ │ │ ├── Configuration.h │ │ │ └── Configuration_adv.h │ │ ├── TAZ4 │ │ │ ├── Configuration.h │ │ │ └── Configuration_adv.h │ │ ├── WITBOX │ │ │ ├── Configuration.h │ │ │ └── Configuration_adv.h │ │ ├── adafruit │ │ │ └── ST7565 │ │ │ │ └── Configuration.h │ │ ├── delta │ │ │ ├── biv2.5 │ │ │ │ ├── Configuration.h │ │ │ │ └── Configuration_adv.h │ │ │ ├── generic │ │ │ │ ├── Configuration.h │ │ │ │ └── Configuration_adv.h │ │ │ ├── kossel_mini │ │ │ │ ├── Configuration.h │ │ │ │ └── Configuration_adv.h │ │ │ └── kossel_pro │ │ │ │ ├── Configuration.h │ │ │ │ ├── Configuration_adv.h │ │ │ │ └── README.md │ │ ├── makibox │ │ │ ├── Configuration.h │ │ │ └── Configuration_adv.h │ │ └── tvrrug │ │ │ └── Round2 │ │ │ ├── Configuration.h │ │ │ └── Configuration_adv.h │ │ ├── fastio.h │ │ ├── fonts │ │ ├── HD44780_C.fon │ │ ├── HD44780_J.fon │ │ ├── HD44780_W.fon │ │ ├── ISO10646-1.fon │ │ ├── ISO10646-5_Cyrillic.fon │ │ ├── ISO10646_CN.fon │ │ ├── ISO10646_Kana.fon │ │ ├── Marlin_symbols.fon │ │ ├── README.fonts │ │ └── make_fonts.bat │ │ ├── language.h │ │ ├── language_an.h │ │ ├── language_bg.h │ │ ├── language_ca.h │ │ ├── language_cn.h │ │ ├── language_cz.h │ │ ├── language_da.h │ │ ├── language_de.h │ │ ├── language_en.h │ │ ├── language_es.h │ │ ├── language_eu.h │ │ ├── language_fi.h │ │ ├── language_fr.h │ │ ├── language_gl.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 │ │ ├── macros.h │ │ ├── mesh_bed_leveling.cpp │ │ ├── mesh_bed_leveling.h │ │ ├── multi_language.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_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_K8200.h │ │ ├── pins_LEAPFROG.h │ │ ├── pins_MEGACONTROLLER.h │ │ ├── pins_MEGATRONICS.h │ │ ├── pins_MEGATRONICS_2.h │ │ ├── pins_MEGATRONICS_3.h │ │ ├── pins_MELZI.h │ │ ├── pins_MELZI_MAKR3D.h │ │ ├── pins_MINIRAMBO.h │ │ ├── pins_MINITRONICS.h │ │ ├── pins_MKS_BASE.h │ │ ├── pins_OMCA.h │ │ ├── pins_OMCA_A.h │ │ ├── pins_PRINTRBOARD.h │ │ ├── pins_RAMBO.h │ │ ├── pins_RAMPS_13.h │ │ ├── pins_RAMPS_13_EFB.h │ │ ├── pins_RAMPS_OLD.h │ │ ├── pins_RIGIDBOARD.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 │ │ ├── planner.cpp │ │ ├── planner.h │ │ ├── qr_solve.cpp │ │ ├── qr_solve.h │ │ ├── scripts │ │ ├── createSpeedLookupTable.py │ │ ├── createTemperatureLookupMarlin.py │ │ └── g29_auto.py │ │ ├── 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 ├── CR10S-Factory-Thermal.hex └── Installing PrintedSolid Firmware Marlin.pdf └── README.md /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/Default_Version.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is a placeholder for a file which could be distributed in an archive 3 | * It takes the place of an automatically created "_Version.h" which is generated during the build process 4 | */ 5 | 6 | // #error "You must specify the following parameters related to your distribution" 7 | 8 | #if true 9 | #define SHORT_BUILD_VERSION "" 10 | #define DETAILED_BUILD_VERSION "1.1.0 From Archive" 11 | #define STRING_DISTRIBUTION_DATE "2015-12-01 12:00" 12 | // It might also be appropriate to define a location where additional information can be found 13 | #define SOURCE_CODE_URL "http:// ..." 14 | #endif -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/Marlin.ino: -------------------------------------------------------------------------------- 1 | /** 2 | * Marlin Firmware 3 | * 4 | * 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 | * About Marlin 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 | #if ENABLED(ULTRA_LCD) 37 | #if ENABLED(LCD_I2C_TYPE_PCF8575) 38 | #include 39 | #include 40 | #elif ENABLED(LCD_I2C_TYPE_MCP23017) || ENABLED(LCD_I2C_TYPE_MCP23008) 41 | #include 42 | #include 43 | #elif ENABLED(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 ENABLED(DIGIPOT_I2C) 55 | #include 56 | #endif 57 | 58 | #if ENABLED(HAVE_TMCDRIVER) 59 | #include 60 | #include 61 | #endif 62 | 63 | #if ENABLED(HAVE_L6470DRIVER) 64 | #include 65 | #include 66 | #endif 67 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/Marlin.sdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Creality3DPrinting/CR-10S/e0c5b1cb49a90b703fe86c5f1acc22cc13462382/CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/Marlin.sdf -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/Marlin.suo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Creality3DPrinting/CR-10S/e0c5b1cb49a90b703fe86c5f1acc22cc13462382/CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/Marlin.suo -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/Marlin.vcxproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/MarlinSerial.h: -------------------------------------------------------------------------------- 1 | /* 2 | HardwareSerial.h - Hardware serial library for Wiring 3 | Copyright (c) 2006 Nicholas Zambetti. 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 | Modified 28 September 2010 by Mark Sproul 20 | */ 21 | 22 | #ifndef MarlinSerial_h 23 | #define MarlinSerial_h 24 | #include "Marlin.h" 25 | 26 | #ifndef SERIAL_PORT 27 | #define SERIAL_PORT 0 28 | #endif 29 | 30 | // The presence of the UBRRH register is used to detect a UART. 31 | #define UART_PRESENT(port) ((port == 0 && (defined(UBRRH) || defined(UBRR0H))) || \ 32 | (port == 1 && defined(UBRR1H)) || (port == 2 && defined(UBRR2H)) || \ 33 | (port == 3 && defined(UBRR3H))) 34 | 35 | // These are macros to build serial port register names for the selected SERIAL_PORT (C preprocessor 36 | // requires two levels of indirection to expand macro values properly) 37 | #define SERIAL_REGNAME(registerbase,number,suffix) SERIAL_REGNAME_INTERNAL(registerbase,number,suffix) 38 | #if SERIAL_PORT == 0 && (!defined(UBRR0H) || !defined(UDR0)) // use un-numbered registers if necessary 39 | #define SERIAL_REGNAME_INTERNAL(registerbase,number,suffix) registerbase##suffix 40 | #else 41 | #define SERIAL_REGNAME_INTERNAL(registerbase,number,suffix) registerbase##number##suffix 42 | #endif 43 | 44 | // Registers used by MarlinSerial class (these are expanded 45 | // depending on selected serial port 46 | #define M_UCSRxA SERIAL_REGNAME(UCSR,SERIAL_PORT,A) // defines M_UCSRxA to be UCSRnA where n is the serial port number 47 | #define M_UCSRxB SERIAL_REGNAME(UCSR,SERIAL_PORT,B) 48 | #define M_RXENx SERIAL_REGNAME(RXEN,SERIAL_PORT,) 49 | #define M_TXENx SERIAL_REGNAME(TXEN,SERIAL_PORT,) 50 | #define M_RXCIEx SERIAL_REGNAME(RXCIE,SERIAL_PORT,) 51 | #define M_UDREx SERIAL_REGNAME(UDRE,SERIAL_PORT,) 52 | #define M_UDRx SERIAL_REGNAME(UDR,SERIAL_PORT,) 53 | #define M_UBRRxH SERIAL_REGNAME(UBRR,SERIAL_PORT,H) 54 | #define M_UBRRxL SERIAL_REGNAME(UBRR,SERIAL_PORT,L) 55 | #define M_RXCx SERIAL_REGNAME(RXC,SERIAL_PORT,) 56 | #define M_USARTx_RX_vect SERIAL_REGNAME(USART,SERIAL_PORT,_RX_vect) 57 | #define M_U2Xx SERIAL_REGNAME(U2X,SERIAL_PORT,) 58 | 59 | 60 | #define DEC 10 61 | #define HEX 16 62 | #define OCT 8 63 | #define BIN 2 64 | #define BYTE 0 65 | 66 | 67 | #ifndef USBCON 68 | // Define constants and variables for buffering incoming serial data. We're 69 | // using a ring buffer (I think), in which rx_buffer_head is the index of the 70 | // location to which to write the next incoming character and rx_buffer_tail 71 | // is the index of the location from which to read. 72 | #define RX_BUFFER_SIZE 128 73 | 74 | 75 | struct ring_buffer { 76 | unsigned char buffer[RX_BUFFER_SIZE]; 77 | int head; 78 | int tail; 79 | }; 80 | 81 | #if UART_PRESENT(SERIAL_PORT) 82 | extern ring_buffer rx_buffer; 83 | #endif 84 | 85 | class MarlinSerial { //: public Stream 86 | 87 | public: 88 | MarlinSerial(); 89 | void begin(long); 90 | void end(); 91 | int peek(void); 92 | int read(void); 93 | void flush(void); 94 | 95 | FORCE_INLINE int available(void) { 96 | return (unsigned int)(RX_BUFFER_SIZE + rx_buffer.head - rx_buffer.tail) % RX_BUFFER_SIZE; 97 | } 98 | 99 | FORCE_INLINE void write(uint8_t c) { 100 | while (!TEST(M_UCSRxA, M_UDREx)) 101 | ; 102 | M_UDRx = c; 103 | } 104 | 105 | FORCE_INLINE void checkRx(void) { 106 | if (TEST(M_UCSRxA, M_RXCx)) { 107 | unsigned char c = M_UDRx; 108 | int i = (unsigned int)(rx_buffer.head + 1) % RX_BUFFER_SIZE; 109 | 110 | // if we should be storing the received character into the location 111 | // just before the tail (meaning that the head would advance to the 112 | // current location of the tail), we're about to overflow the buffer 113 | // and so we don't write the character or advance the head. 114 | if (i != rx_buffer.tail) { 115 | rx_buffer.buffer[rx_buffer.head] = c; 116 | rx_buffer.head = i; 117 | } 118 | } 119 | } 120 | 121 | private: 122 | void printNumber(unsigned long, uint8_t); 123 | void printFloat(double, uint8_t); 124 | 125 | public: 126 | FORCE_INLINE void write(const char* str) { while (*str) write(*str++); } 127 | FORCE_INLINE void write(const uint8_t* buffer, size_t size) { while (size--) write(*buffer++); } 128 | FORCE_INLINE void print(const String& s) { for (int i = 0; i < (int)s.length(); i++) write(s[i]); } 129 | FORCE_INLINE void print(const char* str) { write(str); } 130 | 131 | void print(char, int = BYTE); 132 | void print(unsigned char, int = BYTE); 133 | void print(int, int = DEC); 134 | void print(unsigned int, int = DEC); 135 | void print(long, int = DEC); 136 | void print(unsigned long, int = DEC); 137 | void print(double, int = 2); 138 | 139 | void println(const String& s); 140 | void println(const char[]); 141 | void println(char, int = BYTE); 142 | void println(unsigned char, int = BYTE); 143 | void println(int, int = DEC); 144 | void println(unsigned int, int = DEC); 145 | void println(long, int = DEC); 146 | void println(unsigned long, int = DEC); 147 | void println(double, int = 2); 148 | void println(void); 149 | }; 150 | 151 | extern MarlinSerial customizedSerial; 152 | #endif // !USBCON 153 | 154 | // Use the UART for Bluetooth in AT90USB configurations 155 | #if defined(USBCON) && ENABLED(BLUETOOTH) 156 | extern HardwareSerial bluetoothSerial; 157 | #endif 158 | 159 | #endif 160 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/SdFatConfig.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 configuration definitions 23 | */ 24 | #include "Marlin.h" 25 | #if ENABLED(SDSUPPORT) 26 | 27 | #ifndef SdFatConfig_h 28 | #define SdFatConfig_h 29 | #include 30 | //------------------------------------------------------------------------------ 31 | /** 32 | * To use multiple SD cards set USE_MULTIPLE_CARDS nonzero. 33 | * 34 | * Using multiple cards costs 400 - 500 bytes of flash. 35 | * 36 | * Each card requires about 550 bytes of SRAM so use of a Mega is recommended. 37 | */ 38 | #define USE_MULTIPLE_CARDS 0 39 | //------------------------------------------------------------------------------ 40 | /** 41 | * Call flush for endl if ENDL_CALLS_FLUSH is nonzero 42 | * 43 | * The standard for iostreams is to call flush. This is very costly for 44 | * SdFat. Each call to flush causes 2048 bytes of I/O to the SD. 45 | * 46 | * SdFat has a single 512 byte buffer for SD I/O so it must write the current 47 | * data block to the SD, read the directory block from the SD, update the 48 | * directory entry, write the directory block to the SD and read the data 49 | * block back into the buffer. 50 | * 51 | * The SD flash memory controller is not designed for this many rewrites 52 | * so performance may be reduced by more than a factor of 100. 53 | * 54 | * If ENDL_CALLS_FLUSH is zero, you must call flush and/or close to force 55 | * all data to be written to the SD. 56 | */ 57 | #define ENDL_CALLS_FLUSH 0 58 | //------------------------------------------------------------------------------ 59 | /** 60 | * Allow use of deprecated functions if ALLOW_DEPRECATED_FUNCTIONS is nonzero 61 | */ 62 | #define ALLOW_DEPRECATED_FUNCTIONS 1 63 | //------------------------------------------------------------------------------ 64 | /** 65 | * Allow FAT12 volumes if FAT12_SUPPORT is nonzero. 66 | * FAT12 has not been well tested. 67 | */ 68 | #define FAT12_SUPPORT 0 69 | //------------------------------------------------------------------------------ 70 | /** 71 | * SPI init rate for SD initialization commands. Must be 5 (F_CPU/64) 72 | * or 6 (F_CPU/128). 73 | */ 74 | #define SPI_SD_INIT_RATE 5 75 | //------------------------------------------------------------------------------ 76 | /** 77 | * Set the SS pin high for hardware SPI. If SS is chip select for another SPI 78 | * device this will disable that device during the SD init phase. 79 | */ 80 | #define SET_SPI_SS_HIGH 1 81 | //------------------------------------------------------------------------------ 82 | /** 83 | * Define MEGA_SOFT_SPI nonzero to use software SPI on Mega Arduinos. 84 | * Pins used are SS 10, MOSI 11, MISO 12, and SCK 13. 85 | * 86 | * MEGA_SOFT_SPI allows an unmodified Adafruit GPS Shield to be used 87 | * on Mega Arduinos. Software SPI works well with GPS Shield V1.1 88 | * but many SD cards will fail with GPS Shield V1.0. 89 | */ 90 | #define MEGA_SOFT_SPI 0 91 | //------------------------------------------------------------------------------ 92 | /** 93 | * Set USE_SOFTWARE_SPI nonzero to always use software SPI. 94 | */ 95 | #define USE_SOFTWARE_SPI 0 96 | // define software SPI pins so Mega can use unmodified 168/328 shields 97 | /** Software SPI chip select pin for the SD */ 98 | uint8_t const SOFT_SPI_CS_PIN = 10; 99 | /** Software SPI Master Out Slave In pin */ 100 | uint8_t const SOFT_SPI_MOSI_PIN = 11; 101 | /** Software SPI Master In Slave Out pin */ 102 | uint8_t const SOFT_SPI_MISO_PIN = 12; 103 | /** Software SPI Clock pin */ 104 | uint8_t const SOFT_SPI_SCK_PIN = 13; 105 | //------------------------------------------------------------------------------ 106 | /** 107 | * The __cxa_pure_virtual function is an error handler that is invoked when 108 | * a pure virtual function is called. 109 | */ 110 | #define USE_CXA_PURE_VIRTUAL 1 111 | 112 | /** Number of UTF-16 characters per entry */ 113 | #define FILENAME_LENGTH 13 114 | 115 | /** 116 | * Defines for long (vfat) filenames 117 | */ 118 | /** Number of VFAT entries used. Every entry has 13 UTF-16 characters */ 119 | #define MAX_VFAT_ENTRIES (2) 120 | /** Total size of the buffer used to store the long filenames */ 121 | #define LONG_FILENAME_LENGTH (FILENAME_LENGTH*MAX_VFAT_ENTRIES+1) 122 | #endif // SdFatConfig_h 123 | 124 | 125 | #endif 126 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/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 | #if ENABLED(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 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/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 | #if ENABLED(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 -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/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 | #if ENABLED(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 | return SdBaseFile::write(&b, 1); 60 | } 61 | #else 62 | void SdFile::write(uint8_t b) { 63 | SdBaseFile::write(&b, 1); 64 | } 65 | #endif 66 | //------------------------------------------------------------------------------ 67 | /** Write a string to a file. Used by the Arduino Print class. 68 | * \param[in] str Pointer to the string. 69 | * Use writeError to check for errors. 70 | */ 71 | void SdFile::write(const char* str) { 72 | SdBaseFile::write(str, strlen(str)); 73 | } 74 | //------------------------------------------------------------------------------ 75 | /** Write a PROGMEM string to a file. 76 | * \param[in] str Pointer to the PROGMEM string. 77 | * Use writeError to check for errors. 78 | */ 79 | void SdFile::write_P(PGM_P str) { 80 | for (uint8_t c; (c = pgm_read_byte(str)); str++) write(c); 81 | } 82 | //------------------------------------------------------------------------------ 83 | /** Write a PROGMEM string followed by CR/LF to a file. 84 | * \param[in] str Pointer to the PROGMEM string. 85 | * Use writeError to check for errors. 86 | */ 87 | void SdFile::writeln_P(PGM_P str) { 88 | write_P(str); 89 | write_P(PSTR("\r\n")); 90 | } 91 | 92 | 93 | #endif 94 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/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 | #if ENABLED(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 -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/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 | 7 | #if ENABLED(BLINKM) 8 | 9 | #include "blinkm.h" 10 | 11 | void SendColors(byte red, byte grn, byte blu) { 12 | Wire.begin(); 13 | Wire.beginTransmission(0x09); 14 | Wire.write('o'); //to disable ongoing script, only needs to be used once 15 | Wire.write('n'); 16 | Wire.write(red); 17 | Wire.write(grn); 18 | Wire.write(blu); 19 | Wire.endTransmission(); 20 | } 21 | 22 | #endif //BLINKM 23 | 24 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/blinkm.h: -------------------------------------------------------------------------------- 1 | /* 2 | blinkm.h 3 | Library header file for BlinkM library 4 | */ 5 | 6 | #include "Arduino.h" 7 | #include "Wire.h" 8 | 9 | void SendColors(byte red, byte grn, byte blu); 10 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/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 (Power outputs: Extruder, Fan, Bed) 14 | #define BOARD_RAMPS_13_EEB 34 // RAMPS 1.3 (Power outputs: Extruder0, Extruder1, Bed) 15 | #define BOARD_RAMPS_13_EFF 35 // RAMPS 1.3 (Power outputs: Extruder, Fan, Fan) 16 | #define BOARD_RAMPS_13_EEF 36 // RAMPS 1.3 (Power outputs: Extruder0, Extruder1, Fan) 17 | #define BOARD_RAMPS_13_SF 38 // RAMPS 1.3 (Power outputs: Spindle, Controller Fan) 18 | #define BOARD_FELIX2 37 // Felix 2.0+ Electronics Board (RAMPS like) 19 | #define BOARD_RIGIDBOARD 42 // Invent-A-Part RigidBoard 20 | #define BOARD_RAMPS_14_EFB 43 // RAMPS 1.4 (Power outputs: Extruder, Fan, Bed) 21 | #define BOARD_RAMPS_14_EEB 44 // RAMPS 1.4 (Power outputs: Extruder0, Extruder1, Bed) 22 | #define BOARD_RAMPS_14_EFF 45 // RAMPS 1.4 (Power outputs: Extruder, Fan, Fan) 23 | #define BOARD_RAMPS_14_EEF 46 // RAMPS 1.4 (Power outputs: Extruder0, Extruder1, Fan) 24 | #define BOARD_RAMPS_14_SF 48 // RAMPS 1.4 (Power outputs: Spindle, Controller Fan) 25 | #define BOARD_GEN6 5 // Gen6 26 | #define BOARD_GEN6_DELUXE 51 // Gen6 deluxe 27 | #define BOARD_SANGUINOLOLU_11 6 // Sanguinololu < 1.2 28 | #define BOARD_SANGUINOLOLU_12 62 // Sanguinololu 1.2 and above 29 | #define BOARD_MELZI 63 // Melzi 30 | #define BOARD_STB_11 64 // STB V1.1 31 | #define BOARD_AZTEEG_X1 65 // Azteeg X1 32 | #define BOARD_MELZI_MAKR3D 66 // Melzi with ATmega1284 (MaKr3d version) 33 | #define BOARD_AZTEEG_X3 67 // Azteeg X3 34 | #define BOARD_AZTEEG_X3_PRO 68 // Azteeg X3 Pro 35 | #define BOARD_ULTIMAKER 7 // Ultimaker 36 | #define BOARD_ULTIMAKER_OLD 71 // Ultimaker (Older electronics. Pre 1.5.4. This is rare) 37 | #define BOARD_ULTIMAIN_2 72 // Ultimainboard 2.x (Uses TEMP_SENSOR 20) 38 | #define BOARD_3DRAG 77 // 3Drag Controller 39 | #define BOARD_K8200 78 // Vellemann K8200 Controller (derived from 3Drag Controller) 40 | #define BOARD_TEENSYLU 8 // Teensylu 41 | #define BOARD_RUMBA 80 // Rumba 42 | #define BOARD_PRINTRBOARD 81 // Printrboard (AT90USB1286) 43 | #define BOARD_BRAINWAVE 82 // Brainwave (AT90USB646) 44 | #define BOARD_SAV_MKI 83 // SAV Mk-I (AT90USB1286) 45 | #define BOARD_TEENSY2 84 // Teensy++2.0 (AT90USB1286) - CLI compile: DEFINES=AT90USBxx_TEENSYPP_ASSIGNMENTS HARDWARE_MOTHERBOARD=84 make 46 | #define BOARD_BRAINWAVE_PRO 85 // Brainwave Pro (AT90USB1286) 47 | #define BOARD_GEN3_PLUS 9 // Gen3+ 48 | #define BOARD_GEN3_MONOLITHIC 22 // Gen3 Monolithic Electronics 49 | #define BOARD_MEGATRONICS 70 // Megatronics 50 | #define BOARD_MEGATRONICS_2 701 // Megatronics v2.0 51 | #define BOARD_MINITRONICS 702 // Minitronics v1.0/1.1 52 | #define BOARD_MEGATRONICS_3 703 // Megatronics v3.0 53 | #define BOARD_OMCA_A 90 // Alpha OMCA board 54 | #define BOARD_OMCA 91 // Final OMCA board 55 | #define BOARD_RAMBO 301 // Rambo 56 | #define BOARD_MINIRAMBO 302 // Mini-Rambo 57 | #define BOARD_MEGACONTROLLER 310 // Mega controller 58 | #define BOARD_ELEFU_3 21 // Elefu Ra Board (v3) 59 | #define BOARD_5DPRINT 88 // 5DPrint D8 Driver Board 60 | #define BOARD_LEAPFROG 999 // Leapfrog 61 | #define BOARD_MKS_BASE 40 // MKS BASE 1.0 62 | #define BOARD_BAM_DICE 401 // 2PrintBeta BAM&DICE with STK drivers 63 | #define BOARD_BAM_DICE_DUE 402 // 2PrintBeta BAM&DICE Due with STK drivers 64 | 65 | #define BOARD_99 99 // This is in pins.h but...? 66 | 67 | #define MB(board) (MOTHERBOARD==BOARD_##board) 68 | 69 | #endif //__BOARDS_H 70 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/buzzer.cpp: -------------------------------------------------------------------------------- 1 | #include "Marlin.h" 2 | #if HAS_BUZZER 3 | #include "buzzer.h" 4 | #include "ultralcd.h" 5 | 6 | void buzz(long duration, uint16_t freq) { 7 | if (freq > 0) { 8 | #if ENABLED(LCD_USE_I2C_BUZZER) 9 | lcd_buzz(duration, freq); 10 | #elif PIN_EXISTS(BEEPER) // on-board buzzers have no further condition 11 | SET_OUTPUT(BEEPER_PIN); 12 | #if ENABLED(SPEAKER) // a speaker needs a AC ore a pulsed DC 13 | //tone(BEEPER_PIN, freq, duration); // needs a PWMable pin 14 | unsigned int delay = 1000000 / freq / 2; 15 | int i = duration * freq / 1000; 16 | while (i--) { 17 | WRITE(BEEPER_PIN, HIGH); 18 | delayMicroseconds(delay); 19 | WRITE(BEEPER_PIN, LOW); 20 | delayMicroseconds(delay); 21 | } 22 | #else // buzzer has its own resonator - needs a DC 23 | WRITE(BEEPER_PIN, HIGH); 24 | delay(duration); 25 | WRITE(BEEPER_PIN, LOW); 26 | #endif 27 | #else 28 | delay(duration); 29 | #endif 30 | } 31 | else { 32 | delay(duration); 33 | } 34 | } 35 | #endif 36 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/buzzer.h: -------------------------------------------------------------------------------- 1 | #ifndef BUZZER_H 2 | #define BUZZER_H 3 | 4 | #if HAS_BUZZER 5 | void buzz(long duration, uint16_t freq); 6 | #endif 7 | 8 | #endif //BUZZER_H -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/cardreader.h: -------------------------------------------------------------------------------- 1 | #ifndef CARDREADER_H 2 | #define CARDREADER_H 3 | 4 | #if ENABLED(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 | #if ENABLED(SDSUPPORT) && ENABLED(POWEROFF_SAVE_SD_FILE) 24 | void openPowerOffFile(char* name, uint8_t oflag); 25 | void closePowerOffFile(); 26 | bool existPowerOffFile(char* name); 27 | int16_t savePowerOffInfo(const void* data, uint16_t size); 28 | int16_t getPowerOffInfo(void* data, uint16_t size); 29 | void removePowerOffFile(); 30 | #endif 31 | void removeFile(char* name); 32 | void closefile(bool store_location=false); 33 | void release(); 34 | void startFileprint(); 35 | void pauseSDPrint(); 36 | void getStatus(); 37 | void printingHasFinished(); 38 | 39 | #if ENABLED(LONG_FILENAME_HOST_SUPPORT) 40 | void printLongPath(char *path); 41 | #endif 42 | 43 | void getfilename(uint16_t nr, const char* const match=NULL); 44 | uint16_t getnrfilenames(); 45 | 46 | void getAbsFilename(char *t); 47 | 48 | void ls(); 49 | void chdir(const char *relpath); 50 | void updir(); 51 | void setroot(); 52 | 53 | 54 | FORCE_INLINE bool isFileOpen() { return file.isOpen(); } 55 | FORCE_INLINE bool eof() { return sdpos >= filesize; } 56 | FORCE_INLINE int16_t get() { sdpos = file.curPosition(); return (int16_t)file.read(); } 57 | FORCE_INLINE void setIndex(long index) { sdpos = index; file.seekSet(index); } 58 | FORCE_INLINE uint32_t getIndex() { return sdpos; } 59 | //FORCE_INLINE char* getCurrentPrintFileName() { return filenames[file_subcall_ctr]; } 60 | FORCE_INLINE uint8_t percentDone() { return (isFileOpen() && filesize) ? sdpos / ((filesize + 99) / 100) : 0; } 61 | FORCE_INLINE char* getWorkDirName() { workDir.getFilename(filename); return filename; } 62 | 63 | public: 64 | bool saving, logging, sdprinting, cardOK, filenameIsDir; 65 | char filename[FILENAME_LENGTH], longFilename[LONG_FILENAME_LENGTH]; 66 | int autostart_index; 67 | private: 68 | SdFile root, *curDir, workDir, workDirParents[MAX_DIR_DEPTH]; 69 | uint16_t workDirDepth; 70 | Sd2Card card; 71 | SdVolume volume; 72 | SdFile file; 73 | #if ENABLED(SDSUPPORT) && ENABLED(POWEROFF_SAVE_SD_FILE) 74 | SdFile powerOffFile; 75 | #endif 76 | #define SD_PROCEDURE_DEPTH 1 77 | #define MAXPATHNAMELENGTH (FILENAME_LENGTH*MAX_DIR_DEPTH + MAX_DIR_DEPTH + 1) 78 | uint8_t file_subcall_ctr; 79 | uint32_t filespos[SD_PROCEDURE_DEPTH]; 80 | char filenames[SD_PROCEDURE_DEPTH][MAXPATHNAMELENGTH]; 81 | uint32_t filesize; 82 | millis_t next_autostart_ms; 83 | uint32_t sdpos; 84 | 85 | bool autostart_stilltocheck; //the sd start is delayed, because otherwise the serial cannot answer fast enought to make contact with the hostsoftware. 86 | 87 | LsAction lsAction; //stored for recursion. 88 | 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. 89 | char* diveDirName; 90 | void lsDive(const char *prepend, SdFile parent, const char * const match=NULL); 91 | }; 92 | 93 | extern CardReader card; 94 | #if ENABLED(SDSUPPORT) && ENABLED(POWEROFF_SAVE_SD_FILE) 95 | struct power_off_info_t { 96 | /* header (1B + 7B = 8B) */ 97 | uint8_t valid_head; 98 | //uint8_t reserved1[8-1]; 99 | /* Gcode related information. (44B + 20B = 64B) */ 100 | float current_position[NUM_AXIS]; 101 | float feedrate; 102 | float saved_z; 103 | int target_temperature[4]; 104 | int target_temperature_bed; 105 | //uint8_t reserved2[64-44]; 106 | /* print queue related information. (396B + 116B = 512B) */ 107 | int cmd_queue_index_r; 108 | int cmd_queue_index_w; 109 | int commands_in_queue; 110 | char command_queue[BUFSIZE][MAX_CMD_SIZE]; 111 | //uint8_t reserved3[512-396]; 112 | /* SD card related information. (165B + 91B = 256B)*/ 113 | uint32_t sdpos; 114 | millis_t print_job_start_ms; 115 | char sd_filename[MAXPATHNAMELENGTH]; 116 | char power_off_filename[16]; 117 | //uint8_t reserved4[256-166]; 118 | uint8_t valid_foot; 119 | }; 120 | 121 | extern struct power_off_info_t power_off_info; 122 | extern int power_off_commands_count; 123 | extern int power_off_type_yes; 124 | #endif 125 | 126 | #define IS_SD_PRINTING (card.sdprinting) 127 | 128 | #if PIN_EXISTS(SD_DETECT) 129 | #if ENABLED(SD_DETECT_INVERTED) 130 | #define IS_SD_INSERTED (READ(SD_DETECT_PIN) != 0) 131 | #else 132 | #define IS_SD_INSERTED (READ(SD_DETECT_PIN) == 0) 133 | #endif 134 | #else 135 | //No card detect line? Assume the card is inserted. 136 | #define IS_SD_INSERTED true 137 | #endif 138 | 139 | #else 140 | 141 | #define IS_SD_PRINTING (false) 142 | 143 | #endif //SDSUPPORT 144 | 145 | #endif //__CARDREADER_H 146 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/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 | #if DISABLED(DISABLE_M503) 9 | void Config_PrintSettings(bool forReplay=false); 10 | #else 11 | FORCE_INLINE void Config_PrintSettings(bool forReplay=false) {} 12 | #endif 13 | 14 | #if ENABLED(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 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/configurator/config/_htaccess: -------------------------------------------------------------------------------- 1 | Header set Access-Control-Allow-Origin "*" 2 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/configurator/config/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_RAMPS_13_SF 38 // RAMPS 1.3 / 1.4 (Power outputs: Spindle, Controller Fan) 18 | #define BOARD_FELIX2 37 // Felix 2.0+ Electronics Board (RAMPS like) 19 | #define BOARD_RIGIDBOARD 42 // Invent-A-Part RigidBoard 20 | #define BOARD_GEN6 5 // Gen6 21 | #define BOARD_GEN6_DELUXE 51 // Gen6 deluxe 22 | #define BOARD_SANGUINOLOLU_11 6 // Sanguinololu < 1.2 23 | #define BOARD_SANGUINOLOLU_12 62 // Sanguinololu 1.2 and above 24 | #define BOARD_MELZI 63 // Melzi 25 | #define BOARD_STB_11 64 // STB V1.1 26 | #define BOARD_AZTEEG_X1 65 // Azteeg X1 27 | #define BOARD_MELZI_MAKR3D 66 // Melzi with ATmega1284 (MaKr3d version) 28 | #define BOARD_AZTEEG_X3 67 // Azteeg X3 29 | #define BOARD_AZTEEG_X3_PRO 68 // Azteeg X3 Pro 30 | #define BOARD_ULTIMAKER 7 // Ultimaker 31 | #define BOARD_ULTIMAKER_OLD 71 // Ultimaker (Older electronics. Pre 1.5.4. This is rare) 32 | #define BOARD_ULTIMAIN_2 72 // Ultimainboard 2.x (Uses TEMP_SENSOR 20) 33 | #define BOARD_3DRAG 77 // 3Drag Controller 34 | #define BOARD_K8200 78 // Vellemann K8200 Controller (derived from 3Drag Controller) 35 | #define BOARD_TEENSYLU 8 // Teensylu 36 | #define BOARD_RUMBA 80 // Rumba 37 | #define BOARD_PRINTRBOARD 81 // Printrboard (AT90USB1286) 38 | #define BOARD_BRAINWAVE 82 // Brainwave (AT90USB646) 39 | #define BOARD_SAV_MKI 83 // SAV Mk-I (AT90USB1286) 40 | #define BOARD_TEENSY2 84 // Teensy++2.0 (AT90USB1286) - CLI compile: DEFINES=AT90USBxx_TEENSYPP_ASSIGNMENTS HARDWARE_MOTHERBOARD=84 make 41 | #define BOARD_BRAINWAVE_PRO 85 // Brainwave Pro (AT90USB1286) 42 | #define BOARD_GEN3_PLUS 9 // Gen3+ 43 | #define BOARD_GEN3_MONOLITHIC 22 // Gen3 Monolithic Electronics 44 | #define BOARD_MEGATRONICS 70 // Megatronics 45 | #define BOARD_MEGATRONICS_2 701 // Megatronics v2.0 46 | #define BOARD_MINITRONICS 702 // Minitronics v1.0/1.1 47 | #define BOARD_MEGATRONICS_3 703 // Megatronics v3.0 48 | #define BOARD_OMCA_A 90 // Alpha OMCA board 49 | #define BOARD_OMCA 91 // Final OMCA board 50 | #define BOARD_RAMBO 301 // Rambo 51 | #define BOARD_MINIRAMBO 302 // Mini-Rambo 52 | #define BOARD_MEGACONTROLLER 310 // Mega controller 53 | #define BOARD_ELEFU_3 21 // Elefu Ra Board (v3) 54 | #define BOARD_5DPRINT 88 // 5DPrint D8 Driver Board 55 | #define BOARD_LEAPFROG 999 // Leapfrog 56 | #define BOARD_MKS_BASE 40 // MKS BASE 1.0 57 | #define BOARD_BAM_DICE 401 // 2PrintBeta BAM&DICE with STK drivers 58 | #define BOARD_BAM_DICE_DUE 402 // 2PrintBeta BAM&DICE Due with STK drivers 59 | 60 | #define BOARD_99 99 // This is in pins.h but...? 61 | 62 | #define MB(board) (MOTHERBOARD==BOARD_##board) 63 | 64 | #endif //__BOARDS_H 65 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/configurator/css/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Creality3DPrinting/CR-10S/e0c5b1cb49a90b703fe86c5f1acc22cc13462382/CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/configurator/css/logo.png -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/configurator/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Marlin Firmware Configurator 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 |

Marlin Configurator

20 |

Select presets (coming soon), modify, and download.

21 | 22 |
23 |
24 | 25 |
26 | 27 |
28 | 29 | 30 | 31 | Download Zip 32 | 33 |
34 | Info 35 |
36 | 37 |
38 | Machine 39 | 40 |
41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 |
60 | 61 |
62 | Homing 63 |
64 | 65 |
66 | Temperature 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 |
78 | 79 |
80 | Extruder 81 |
82 | 83 |
84 | LCD / SD 85 |
86 | 87 |
88 | Bed Leveling 89 |
90 | 91 |
92 | FW Retract 93 |
94 | 95 |
96 | TMC 97 |
98 | 99 |
100 | L6470 101 |
102 | 103 |
104 | Extras 105 |
106 | 107 |
108 | More… 109 |
110 | 111 |
112 |

Configuration.h

113 | 114 | Download 115 |

116 |         
117 | 118 |
119 |

Configuration_adv.h

120 | 121 | Download 122 |

123 |         
124 | 125 |
126 |
127 |
128 | 129 | 130 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/configurator/js/FileSaver.min.js: -------------------------------------------------------------------------------- 1 | /*! @source http://purl.eligrey.com/github/FileSaver.js/blob/master/FileSaver.js */ 2 | var saveAs=saveAs||typeof navigator!=="undefined"&&navigator.msSaveOrOpenBlob&&navigator.msSaveOrOpenBlob.bind(navigator)||function(view){"use strict";if(typeof navigator!=="undefined"&&/MSIE [1-9]\./.test(navigator.userAgent)){return}var doc=view.document,get_URL=function(){return view.URL||view.webkitURL||view},save_link=doc.createElementNS("http://www.w3.org/1999/xhtml","a"),can_use_save_link="download"in save_link,click=function(node){var event=doc.createEvent("MouseEvents");event.initMouseEvent("click",true,false,view,0,0,0,0,0,false,false,false,false,0,null);node.dispatchEvent(event)},webkit_req_fs=view.webkitRequestFileSystem,req_fs=view.requestFileSystem||webkit_req_fs||view.mozRequestFileSystem,throw_outside=function(ex){(view.setImmediate||view.setTimeout)(function(){throw ex},0)},force_saveable_type="application/octet-stream",fs_min_size=0,arbitrary_revoke_timeout=500,revoke=function(file){var revoker=function(){if(typeof file==="string"){get_URL().revokeObjectURL(file)}else{file.remove()}};if(view.chrome){revoker()}else{setTimeout(revoker,arbitrary_revoke_timeout)}},dispatch=function(filesaver,event_types,event){event_types=[].concat(event_types);var i=event_types.length;while(i--){var listener=filesaver["on"+event_types[i]];if(typeof listener==="function"){try{listener.call(filesaver,event||filesaver)}catch(ex){throw_outside(ex)}}}},FileSaver=function(blob,name){var filesaver=this,type=blob.type,blob_changed=false,object_url,target_view,dispatch_all=function(){dispatch(filesaver,"writestart progress write writeend".split(" "))},fs_error=function(){if(blob_changed||!object_url){object_url=get_URL().createObjectURL(blob)}if(target_view){target_view.location.href=object_url}else{var new_tab=view.open(object_url,"_blank");if(new_tab==undefined&&typeof safari!=="undefined"){view.location.href=object_url}}filesaver.readyState=filesaver.DONE;dispatch_all();revoke(object_url)},abortable=function(func){return function(){if(filesaver.readyState!==filesaver.DONE){return func.apply(this,arguments)}}},create_if_not_found={create:true,exclusive:false},slice;filesaver.readyState=filesaver.INIT;if(!name){name="download"}if(can_use_save_link){object_url=get_URL().createObjectURL(blob);save_link.href=object_url;save_link.download=name;click(save_link);filesaver.readyState=filesaver.DONE;dispatch_all();revoke(object_url);return}if(view.chrome&&type&&type!==force_saveable_type){slice=blob.slice||blob.webkitSlice;blob=slice.call(blob,0,blob.size,force_saveable_type);blob_changed=true}if(webkit_req_fs&&name!=="download"){name+=".download"}if(type===force_saveable_type||webkit_req_fs){target_view=view}if(!req_fs){fs_error();return}fs_min_size+=blob.size;req_fs(view.TEMPORARY,fs_min_size,abortable(function(fs){fs.root.getDirectory("saved",create_if_not_found,abortable(function(dir){var save=function(){dir.getFile(name,create_if_not_found,abortable(function(file){file.createWriter(abortable(function(writer){writer.onwriteend=function(event){target_view.location.href=file.toURL();filesaver.readyState=filesaver.DONE;dispatch(filesaver,"writeend",event);revoke(file)};writer.onerror=function(){var error=writer.error;if(error.code!==error.ABORT_ERR){fs_error()}};"writestart progress write abort".split(" ").forEach(function(event){writer["on"+event]=filesaver["on"+event]});writer.write(blob);filesaver.abort=function(){writer.abort();filesaver.readyState=filesaver.DONE};filesaver.readyState=filesaver.WRITING}),fs_error)}),fs_error)};dir.getFile(name,{create:false},abortable(function(file){file.remove();save()}),abortable(function(ex){if(ex.code===ex.NOT_FOUND_ERR){save()}else{fs_error()}}))}),fs_error)}),fs_error)},FS_proto=FileSaver.prototype,saveAs=function(blob,name){return new FileSaver(blob,name)};FS_proto.abort=function(){var filesaver=this;filesaver.readyState=filesaver.DONE;dispatch(filesaver,"abort")};FS_proto.readyState=FS_proto.INIT=0;FS_proto.WRITING=1;FS_proto.DONE=2;FS_proto.error=FS_proto.onwritestart=FS_proto.onprogress=FS_proto.onwrite=FS_proto.onabort=FS_proto.onerror=FS_proto.onwriteend=null;return saveAs}(typeof self!=="undefined"&&self||typeof window!=="undefined"&&window||this.content);if(typeof module!=="undefined"&&module.exports){module.exports.saveAs=saveAs}else if(typeof define!=="undefined"&&define!==null&&define.amd!=null){define([],function(){return saveAs})} 3 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/configurator/js/binaryfileuploader.js: -------------------------------------------------------------------------------- 1 | function BinaryFileUploader(o) { 2 | this.options = null; 3 | 4 | 5 | this._defaultOptions = { 6 | element: null, // HTML file element 7 | onFileLoad: function(file) { 8 | console.log(file.toString()); 9 | } 10 | }; 11 | 12 | 13 | this._init = function(o) { 14 | if (!this.hasFileUploaderSupport()) return; 15 | 16 | this._verifyDependencies(); 17 | 18 | this.options = this._mergeObjects(this._defaultOptions, o); 19 | this._verifyOptions(); 20 | 21 | this.addFileChangeListener(); 22 | } 23 | 24 | 25 | this.hasFileUploaderSupport = function() { 26 | return !!(window.File && window.FileReader && window.FileList && window.Blob); 27 | } 28 | 29 | this.addFileChangeListener = function() { 30 | this.options.element.addEventListener( 31 | 'change', 32 | this._bind(this, this.onFileChange) 33 | ); 34 | } 35 | 36 | this.onFileChange = function(e) { 37 | // TODO accept multiple files 38 | var file = e.target.files[0], 39 | reader = new FileReader(); 40 | 41 | reader.onload = this._bind(this, this.onFileLoad); 42 | reader.readAsBinaryString(file); 43 | } 44 | 45 | this.onFileLoad = function(e) { 46 | var content = e.target.result, 47 | string = new BinaryString(content); 48 | this.options.onFileLoad(string); 49 | } 50 | 51 | 52 | this._mergeObjects = function(starting, override) { 53 | var merged = starting; 54 | for (key in override) merged[key] = override[key]; 55 | 56 | return merged; 57 | } 58 | 59 | this._verifyOptions = function() { 60 | if (!(this.options.element && this.options.element.type && this.options.element.type === 'file')) { 61 | throw 'Invalid element param in options. Must be a file upload DOM element'; 62 | } 63 | 64 | if (typeof this.options.onFileLoad !== 'function') { 65 | throw 'Invalid onFileLoad param in options. Must be a function'; 66 | } 67 | } 68 | 69 | this._verifyDependencies = function() { 70 | if (!window.BinaryString) throw 'BinaryString is missing. Check that you\'ve correctly included it'; 71 | } 72 | 73 | // helper function for binding methods to objects 74 | this._bind = function(object, method) { 75 | return function() {return method.apply(object, arguments);}; 76 | } 77 | 78 | this._init(o); 79 | } 80 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/configurator/js/binarystring.js: -------------------------------------------------------------------------------- 1 | function BinaryString(source) { 2 | this._source = null; 3 | this._bytes = []; 4 | this._pos = 0; 5 | this._length = 0; 6 | 7 | this._init = function(source) { 8 | this._source = source; 9 | this._bytes = this._stringToBytes(this._source); 10 | this._length = this._bytes.length; 11 | } 12 | 13 | this.current = function() {return this._pos;} 14 | 15 | this.rewind = function() {return this.jump(0);} 16 | this.end = function() {return this.jump(this.length() - 1);} 17 | this.next = function() {return this.jump(this.current() + 1);} 18 | this.prev = function() {return this.jump(this.current() - 1);} 19 | 20 | this.jump = function(pos) { 21 | if (pos < 0 || pos >= this.length()) return false; 22 | 23 | this._pos = pos; 24 | return true; 25 | } 26 | 27 | this.readByte = function(pos) { 28 | pos = (typeof pos == 'number') ? pos : this.current(); 29 | return this.readBytes(1, pos)[0]; 30 | } 31 | 32 | this.readBytes = function(length, pos) { 33 | length = length || 1; 34 | pos = (typeof pos == 'number') ? pos : this.current(); 35 | 36 | if (pos > this.length() || 37 | pos < 0 || 38 | length <= 0 || 39 | pos + length > this.length() || 40 | pos + length < 0 41 | ) { 42 | return false; 43 | } 44 | 45 | var bytes = []; 46 | 47 | for (var i = pos; i < pos + length; i++) { 48 | bytes.push(this._bytes[i]); 49 | } 50 | 51 | return bytes; 52 | } 53 | 54 | this.length = function() {return this._length;} 55 | 56 | this.toString = function() { 57 | var string = '', 58 | length = this.length(); 59 | 60 | for (var i = 0; i < length; i++) { 61 | string += String.fromCharCode(this.readByte(i)); 62 | } 63 | 64 | return string; 65 | } 66 | 67 | this.toUtf8 = function() { 68 | var inc = 0, 69 | string = '', 70 | length = this.length(); 71 | 72 | // determine if first 3 characters are the BOM 73 | // then skip them in output if so 74 | if (length >= 3 && 75 | this.readByte(0) === 0xEF && 76 | this.readByte(1) === 0xBB && 77 | this.readByte(2) === 0xBF 78 | ) { 79 | inc = 3; 80 | } 81 | 82 | for (; inc < length; inc++) { 83 | var byte1 = this.readByte(inc), 84 | byte2 = 0, 85 | byte3 = 0, 86 | byte4 = 0, 87 | code1 = 0, 88 | code2 = 0, 89 | point = 0; 90 | 91 | switch (true) { 92 | // single byte character; same as ascii 93 | case (byte1 < 0x80): 94 | code1 = byte1; 95 | break; 96 | 97 | // 2 byte character 98 | case (byte1 >= 0xC2 && byte1 < 0xE0): 99 | byte2 = this.readByte(++inc); 100 | 101 | code1 = ((byte1 & 0x1F) << 6) + 102 | (byte2 & 0x3F); 103 | break; 104 | 105 | // 3 byte character 106 | case (byte1 >= 0xE0 && byte1 < 0xF0): 107 | byte2 = this.readByte(++inc); 108 | byte3 = this.readByte(++inc); 109 | 110 | code1 = ((byte1 & 0xFF) << 12) + 111 | ((byte2 & 0x3F) << 6) + 112 | (byte3 & 0x3F); 113 | break; 114 | 115 | // 4 byte character 116 | case (byte1 >= 0xF0 && byte1 < 0xF5): 117 | byte2 = this.readByte(++inc); 118 | byte3 = this.readByte(++inc); 119 | byte4 = this.readByte(++inc); 120 | 121 | point = ((byte1 & 0x07) << 18) + 122 | ((byte2 & 0x3F) << 12) + 123 | ((byte3 & 0x3F) << 6) + 124 | (byte4 & 0x3F) 125 | point -= 0x10000; 126 | 127 | code1 = (point >> 10) + 0xD800; 128 | code2 = (point & 0x3FF) + 0xDC00; 129 | break; 130 | 131 | default: 132 | throw 'Invalid byte ' + this._byteToString(byte1) + ' whilst converting to UTF-8'; 133 | break; 134 | } 135 | 136 | string += (code2) ? String.fromCharCode(code1, code2) 137 | : String.fromCharCode(code1); 138 | } 139 | 140 | return string; 141 | } 142 | 143 | this.toArray = function() {return this.readBytes(this.length() - 1, 0);} 144 | 145 | 146 | this._stringToBytes = function(str) { 147 | var bytes = [], 148 | chr = 0; 149 | 150 | for (var i = 0; i < str.length; i++) { 151 | chr = str.charCodeAt(i); 152 | bytes.push(chr & 0xFF); 153 | } 154 | 155 | return bytes; 156 | } 157 | 158 | this._byteToString = function(byte) { 159 | var asString = byte.toString(16).toUpperCase(); 160 | while (asString.length < 2) { 161 | asString = '0' + asString; 162 | } 163 | 164 | return '0x' + asString; 165 | } 166 | 167 | this._init(source); 168 | } 169 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/digipot_mcp4451.cpp: -------------------------------------------------------------------------------- 1 | #include "Configuration.h" 2 | 3 | #if ENABLED(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 < COUNT(digipot_motor_current); i++) 54 | digipot_i2c_set_current(i, digipot_motor_current[i]); 55 | } 56 | 57 | #endif //DIGIPOT_I2C 58 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/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 | }; 24 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/example_configurations/Felix/README.md: -------------------------------------------------------------------------------- 1 | # Felix 2.0/3.0 Configuration for Marlin Firmware 2 | 3 | Bringing silky smooth prints to Felix. 4 | 5 | ## Build HOWTO 6 | 7 | - Install the latest non-beta Arduino software IDE/toolset: http://www.arduino.cc/en/Main/Software 8 | - Download the Marlin firmware 9 | - [Latest developement version](https://github.com/MarlinFirmware/Marlin/tree/Development) 10 | - [Stable version](https://github.com/MarlinFirmware/Marlin/tree/Development) 11 | - In both cases use the "Download Zip" button on the right. 12 | 13 | ``` 14 | cd Marlin/Marlin 15 | cp example_configurations/Felix/Configuration_adv.h . 16 | ``` 17 | 18 | The next step depends on your setup: 19 | 20 | ### Single Extruder Configuration 21 | 22 | cp example_configurations/Felix/Configuration.h . 23 | 24 | ### Dual Extruder Configuration 25 | 26 | cp example_configurations/Felix/Configuration_DUAL.h Configuration.h 27 | 28 | ### Compile Firmware 29 | 30 | - Start the Arduino IDE. 31 | - Select Tools -> Board -> Arduino Mega 2560 32 | - Select the correct serial port in Tools -> Serial Port (usually /dev/ttyUSB0) 33 | - Open Marlin.pde or .ino 34 | - Click the Verify/Compile button 35 | 36 | ### Flash Firmware 37 | 38 | #### Connected directly via USB 39 | 40 | - Click the Upload button. If all goes well the firmware is uploading 41 | 42 | #### Remote update 43 | 44 | Find the latest Arduino build: 45 | 46 | ls -altr /tmp/ 47 | drwxr-xr-x 5 chrono users 12288 Mar 3 21:41 build6072035599686630843.tmp 48 | 49 | Copy the firmware to your printer host: 50 | 51 | scp /tmp/build6072035599686630843.tmp/Marlin.cpp.hex a.b.c.d:/tmp/ 52 | 53 | Connect to your printer host via ssh, stop Octoprint or any other service that may block your USB device and make sure you have avrdude installed, then run: 54 | 55 | avrdude -C/etc/avrdude.conf -v -v -v -patmega2560 -cwiring -P/dev/ttyUSB0 \ 56 | -b115200 -D -Uflash:w:/tmp/Marlin.cpp.hex:i 57 | 58 | ## Acknowledgements 59 | 60 | Mashed together and tested on https://apollo.open-resource.org/mission:resources:picoprint based on collaborative teamwork of @andrewsil1 and @thinkyhead. 61 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/example_configurations/K8200/readme.md: -------------------------------------------------------------------------------- 1 | # Example Configuration for Vellemann [K8200](http://www.k8200.eu/) 2 | * Configuration files for **Vellemann K8200** (with [VM8201](http://www.vellemanprojects.eu/products/view/?id=416158) - LCD Option for K8200) 3 | * K8200 is a 3Drag clone - configuration should work with 3Drag http://reprap.org/wiki/3drag, too. Please report. 4 | 5 | * updated manually with parameters from genuine Vellemann Firmware "firmware_k8200_marlinv2" based on the recent development branch 6 | 7 | * VM8201 uses "DISPLAY_CHARSET_HD44870_JAPAN" and "ULTIMAKERCONTROLLER" 8 | * german (de) translation with umlaut is supported now - thanks to @AnHardt for the great hardware based umlaut support 9 | 10 | I [@CONSULitAS](https://github.com/CONSULitAS) tested the changes on my K8200 with 20x4-LCD and Arduino 1.6.1 for Windows (SD library added to IDE manually) - everything works well. 11 | 12 | **Source for genuine [Vellemann Firmware](http://www.k8200.eu/support/downloads/)** 13 | * V2.1.1 (for z axis upgrade, date branched: 2013-06-05): [firmware_k8200_v2.1.1.zip](http://www.k8200.eu/downloads/files/downloads/firmware_k8200_v2.1.1.zip) 14 | * see also https://github.com/CONSULitAS/Marlin-K8200/tree/Vellemann_firmware_k8200_v2.1.1.zip 15 | 16 | * V2 (with LCD/SD-Support, date branched: 2013-06-05): [firmware_k8200_marlinv2.zip](http://www.k8200.eu/downloads/files/downloads/firmware_k8200_marlinv2.zip) 17 | * see also https://github.com/CONSULitAS/Marlin-K8200/tree/Vellemann_firmware_k8200_marlinv2.zip 18 | 19 | * V1 (without LCD/SD-Support, date branched: 2012-10-02): [firmware_k8200_marlinv1.zip](http://www.k8200.eu/downloads/files/downloads/firmware_k8200_marlinv1.zip) 20 | * see also https://github.com/CONSULitAS/Marlin-K8200/tree/Vellemann_firmware_k8200_marlinv1.zip 21 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/example_configurations/delta/kossel_pro/README.md: -------------------------------------------------------------------------------- 1 | # Example Configuration for OpenBeam Kossel Pro [BRAINWAVE_PRO](http://www.openbeamusa.com/3d-printers/kossel/) 2 | * Configuration files for the **Openbeam Kossel Pro** as delivered in their KickStarter distribution 3 | 4 | I [@Wackerbarth](https://github.com/Wackerbarth) tested this version on my Kossel Pro and Arduino 1.6.5 for Mac. 5 | This configuration is a transition to merge Terence Tam's configuration with up-to-date Marlin source and a current Arduino IDE 6 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/fonts/HD44780_C.fon: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Creality3DPrinting/CR-10S/e0c5b1cb49a90b703fe86c5f1acc22cc13462382/CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/fonts/HD44780_C.fon -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/fonts/HD44780_J.fon: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Creality3DPrinting/CR-10S/e0c5b1cb49a90b703fe86c5f1acc22cc13462382/CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/fonts/HD44780_J.fon -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/fonts/HD44780_W.fon: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Creality3DPrinting/CR-10S/e0c5b1cb49a90b703fe86c5f1acc22cc13462382/CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/fonts/HD44780_W.fon -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/fonts/ISO10646-1.fon: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Creality3DPrinting/CR-10S/e0c5b1cb49a90b703fe86c5f1acc22cc13462382/CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/fonts/ISO10646-1.fon -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/fonts/ISO10646-5_Cyrillic.fon: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Creality3DPrinting/CR-10S/e0c5b1cb49a90b703fe86c5f1acc22cc13462382/CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/fonts/ISO10646-5_Cyrillic.fon -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/fonts/ISO10646_CN.fon: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Creality3DPrinting/CR-10S/e0c5b1cb49a90b703fe86c5f1acc22cc13462382/CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/fonts/ISO10646_CN.fon -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/fonts/ISO10646_Kana.fon: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Creality3DPrinting/CR-10S/e0c5b1cb49a90b703fe86c5f1acc22cc13462382/CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/fonts/ISO10646_Kana.fon -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/fonts/Marlin_symbols.fon: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Creality3DPrinting/CR-10S/e0c5b1cb49a90b703fe86c5f1acc22cc13462382/CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/fonts/Marlin_symbols.fon -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/fonts/README.fonts: -------------------------------------------------------------------------------- 1 | The fonts are created with Fony.exe (http://hukka.ncn.fi/?fony) because Fontforge didn't do what I want (probably lack of experience). 2 | In Fony export the fonts to bdf-format. Maybe another one can edit them with Fontforge. 3 | Then run make_fonts.bat what calls bdf2u8g.exe with the needed parameters to produce the .h files. 4 | The .h files must be edited to replace '#include "u8g.h"' with '#include ', replace 'U8G_FONT_SECTION' with 'U8G_SECTION', insert '.progmem.' right behind the first '"' and moved to the main directory. 5 | 6 | How to integrate a new font: 7 | Currently we are limited to 256 symbols per font. We use a menu system with 5 lines, on a display with 64 pixel height. That means we have 12 pixel for a line. To have some space in between the lines we can't use more then 10 pixel height for the symbols. For up to 11 pixel set TALL_FONT_CORRECTION 1 when loading the font. 8 | To fit 22 Symbols on the 128 pixel wide screen, the symbols can't be wider than 5 pixel, for the first 128 symbols. 9 | For the second half of the font we now support up to 11x11 pixel. 10 | 11 | * Get 'Fony.exe' 12 | * Copy one of the existing *.fon files and work with this. 13 | * Change the pixels. Don't change width or height. 14 | * Export as *.bdf 15 | * Use 'bdf2u8g.exe' to produce the *.h file. Examples for the existing fonts are in 'make_fonts.bat' 16 | * Edit the produced .h file to match our needs. See hints in 'README.fonts' or the other 'dogm_font_data_.h' files. 17 | * Make a new entry in the font list in 'dogm_lcd_implementation.h' before the '#else // fall back' 18 | #elif ENABLED(DISPLAY_CHARSET_NEWNAME) 19 | #include "dogm_font_data_yourfont.h" 20 | #define FONT_MENU_NAME YOURFONTNAME 21 | #else // fall-back 22 | * Add your font to the list of permitted fonts in 'language_en.h' 23 | ... || ENABLED(DISPLAY_CHARSET_YOUR_NEW_FONT) ... ) 24 | 25 | 26 | Especially the Kana font should be revised by someone who knows what he/she does. I am only a west-European with very little knowledge about this script. 27 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/fonts/make_fonts.bat: -------------------------------------------------------------------------------- 1 | .\bdf2u8g.exe -b 1 -e 9 Marlin_symbols.bdf Marlin_symbols dogm_font_data_Marlin_symbols.h 2 | .\bdf2u8g.exe -b 16 -e 255 HD44780_W.bdf HD44780_W_5x7 dogm_font_data_HD44780_W.h 3 | .\bdf2u8g.exe -b 32 -e 255 HD44780_C.bdf HD44780_C_5x7 dogm_font_data_HD44780_C.h 4 | .\bdf2u8g.exe -b 32 -e 255 HD44780_J.bdf HD44780_J_5x7 dogm_font_data_HD44780_J.h 5 | .\bdf2u8g.exe -b 32 -e 255 ISO10646-1.bdf ISO10646_1_5x7 dogm_font_data_ISO10646_1.h 6 | .\bdf2u8g.exe -b 32 -e 255 ISO10646_5_Cyrillic.bdf ISO10646_5_Cyrillic_5x7 dogm_font_data_ISO10646_5_Cyrillic.h 7 | .\bdf2u8g.exe -b 32 -e 255 ISO10646_Kana.bdf ISO10646_Kana_5x7 dogm_font_data_ISO10646_Kana.h 8 | .\bdf2u8g.exe -b 32 -e 255 ISO10646_CN.bdf ISO10646_CN dogm_font_data_ISO10646_CN.h 9 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/macros.h: -------------------------------------------------------------------------------- 1 | #ifndef MACROS_H 2 | #define MACROS_H 3 | 4 | // Macros for bit masks 5 | #define BIT(b) (1<<(b)) 6 | #define TEST(n,b) (((n)&BIT(b))!=0) 7 | #define SET_BIT(n,b,value) (n) ^= ((-value)^(n)) & (BIT(b)) 8 | 9 | // Macros for maths shortcuts 10 | #define RADIANS(d) ((d)*M_PI/180.0) 11 | #define DEGREES(r) ((r)*180.0/M_PI) 12 | 13 | // Macros to contrain values 14 | #define NOLESS(v,n) do{ if (v < n) v = n; }while(0) 15 | #define NOMORE(v,n) do{ if (v > n) v = n; }while(0) 16 | 17 | // Macros to support option testing 18 | #define _CAT(a, ...) a ## __VA_ARGS__ 19 | #define SWITCH_ENABLED_0 0 20 | #define SWITCH_ENABLED_1 1 21 | #define SWITCH_ENABLED_ 1 22 | #define ENABLED(b) _CAT(SWITCH_ENABLED_, b) 23 | #define DISABLED(b) (!_CAT(SWITCH_ENABLED_, b)) 24 | 25 | #define COUNT(a) (sizeof(a)/sizeof(*a)) 26 | 27 | #endif //__MACROS_H 28 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/mesh_bed_leveling.cpp: -------------------------------------------------------------------------------- 1 | #include "mesh_bed_leveling.h" 2 | 3 | #if ENABLED(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 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/mesh_bed_leveling.h: -------------------------------------------------------------------------------- 1 | #include "Marlin.h" 2 | 3 | #if ENABLED(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 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/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 ENABLED(ULTRA_LCD) && ENABLED(NEWPANEL) 33 | #undef BEEPER_PIN 34 | #define BEEPER_PIN -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_PIN 33 60 | 61 | #endif // ULTRA_LCD && NEWPANEL 62 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/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 LARGE_FLASH true 12 | 13 | #define X_STEP_PIN 0 14 | #define X_DIR_PIN 1 15 | #define X_ENABLE_PIN 23 16 | #define X_STOP_PIN 37 17 | 18 | #define Y_STEP_PIN 2 19 | #define Y_DIR_PIN 3 20 | #define Y_ENABLE_PIN 19 21 | #define Y_STOP_PIN 36 22 | 23 | #define Z_STEP_PIN 4 24 | #define Z_DIR_PIN 5 25 | #define Z_ENABLE_PIN 18 26 | #define Z_STOP_PIN 39 27 | 28 | #define E0_STEP_PIN 6 29 | #define E0_DIR_PIN 7 30 | #define E0_ENABLE_PIN 17 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 | // You may need to change FAN_PIN to 16 because Marlin isn't using fastio.h 37 | // for the fan and Teensyduino uses a different pin mapping. 38 | #define FAN_PIN 16 // Fan 39 | 40 | #define TEMP_0_PIN 1 // Extruder / Analog pin numbering 41 | #define TEMP_BED_PIN 0 // Bed / Analog pin numbering 42 | 43 | #define TEMP_1_PIN -1 44 | #define TEMP_2_PIN -1 45 | 46 | #define SDPOWER -1 47 | #define LED_PIN -1 48 | #define PS_ON_PIN -1 49 | #define KILL_PIN -1 50 | #define ALARM_PIN -1 51 | 52 | // The SDSS pin uses a different pin mapping from file Sd2PinMap.h 53 | #define SDSS 20 54 | 55 | #if DISABLED(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 | // Microstepping pins 63 | // Note that the pin mapping is not from fastio.h 64 | // See Sd2PinMap.h for the pin configurations 65 | 66 | #undef X_MS1_PIN 67 | #undef X_MS2_PIN 68 | #undef Y_MS1_PIN 69 | #undef Y_MS2_PIN 70 | #undef Z_MS1_PIN 71 | #undef Z_MS2_PIN 72 | #undef E0_MS1_PIN 73 | #undef E0_MS2_PIN 74 | #define X_MS1_PIN 25 75 | #define X_MS2_PIN 26 76 | #define Y_MS1_PIN 9 77 | #define Y_MS2_PIN 8 78 | #define Z_MS1_PIN 7 79 | #define Z_MS2_PIN 6 80 | #define E0_MS1_PIN 5 81 | #define E0_MS2_PIN 4 82 | 83 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/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 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/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 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/pins_AZTEEG_X3.h: -------------------------------------------------------------------------------- 1 | /** 2 | * AZTEEG_X3 Arduino Mega with RAMPS v1.3 pin assignments 3 | */ 4 | 5 | #include "pins_RAMPS_13_EFB.h" 6 | 7 | //LCD Pins// 8 | 9 | #if ENABLED(VIKI2) || ENABLED(miniVIKI) 10 | 11 | #define BEEPER_PIN 33 12 | 13 | // Pins for DOGM SPI LCD Support 14 | #define DOGLCD_A0 31 15 | #define DOGLCD_CS 32 16 | #define LCD_SCREEN_ROT_180 17 | 18 | //The encoder and click button 19 | #define BTN_EN1 22 20 | #define BTN_EN2 7 21 | #define BTN_ENC 12 //the click switch 22 | 23 | #define SDSS 53 24 | #define SD_DETECT -1 // Pin 49 if using display sd interface 25 | 26 | #if ENABLED(TEMP_STAT_LEDS) 27 | #define STAT_LED_RED 64 28 | #define STAT_LED_BLUE 63 29 | #endif 30 | 31 | #elif ENABLED(TEMP_STAT_LEDS) 32 | 33 | #define STAT_LED_RED 6 34 | #define STAT_LED_BLUE 11 35 | 36 | #endif 37 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/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_PIN 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 | #if ENABLED(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 | #if ENABLED(Z_MIN_PROBE_ENDSTOP) 38 | //#undef Z_MIN_PIN 39 | //#define Z_MIN_PIN 15 40 | // Define a pin to use as the signal pin on Arduino for the Z probe endstop. 41 | #define Z_MIN_PROBE_PIN 19 42 | #endif 43 | // 44 | #define E2_STEP_PIN 23 45 | #define E2_DIR_PIN 25 46 | #define E2_ENABLE_PIN 40 47 | 48 | #define E3_STEP_PIN 27 49 | #define E3_DIR_PIN 29 50 | #define E3_ENABLE_PIN 41 51 | 52 | #define E4_STEP_PIN 43 53 | #define E4_DIR_PIN 37 54 | #define E4_ENABLE_PIN 42 55 | 56 | #undef HEATER_1_PIN 57 | #undef HEATER_2_PIN 58 | #undef HEATER_3_PIN 59 | #define HEATER_1_PIN 9 60 | #define HEATER_2_PIN 16 61 | #define HEATER_3_PIN 17 62 | #define HEATER_4_PIN 4 63 | #define HEATER_5_PIN 5 64 | #define HEATER_6_PIN 6 65 | #define HEATER_7_PIN 11 66 | 67 | #undef TEMP_2_PIN 68 | #undef TEMP_3_PIN 69 | #define TEMP_2_PIN 12 // ANALOG NUMBERING 70 | #define TEMP_3_PIN 11 // ANALOG NUMBERING 71 | #define TEMP_4_PIN 10 // ANALOG NUMBERING 72 | #define TC1 4 // ANALOG NUMBERING Thermo couple on Azteeg X3Pro 73 | #define TC2 5 // ANALOG NUMBERING Thermo couple on Azteeg X3Pro 74 | 75 | // 76 | //These Servo pins are for when they are defined. Tested for usage with bed leveling 77 | //on a Delta with 1 servo. Running through the Z servo endstop in code. 78 | //Physical wire attachment was done on EXT1 on the GND, 5V, and D47 pins. 79 | // 80 | #define SERVO0_PIN 47 81 | 82 | //LCD Pins// 83 | 84 | #if ENABLED(VIKI2) || ENABLED(miniVIKI) 85 | #define BEEPER_PIN 33 86 | // Pins for DOGM SPI LCD Support 87 | #define DOGLCD_A0 44 88 | #define DOGLCD_CS 45 89 | #define LCD_SCREEN_ROT_180 90 | 91 | //The encoder and click button 92 | #define BTN_EN1 22 93 | #define BTN_EN2 7 94 | #define BTN_ENC 39 //the click switch 95 | 96 | #define SDSS 53 97 | #define SD_DETECT_PIN 49 98 | 99 | #define KILL_PIN 31 100 | #endif 101 | 102 | #if ENABLED(TEMP_STAT_LEDS) 103 | #define STAT_LED_RED 32 104 | #define STAT_LED_BLUE 35 105 | #endif 106 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/pins_BAM_DICE_DUE.h: -------------------------------------------------------------------------------- 1 | /** 2 | * BAM&DICE Due (Arduino Mega) pin assignments 3 | */ 4 | 5 | #include "pins_RAMPS_13_EFB.h" 6 | 7 | #undef TEMP_0_PIN 8 | #undef TEMP_1_PIN 9 | #define TEMP_0_PIN 9 // ANALOG NUMBERING 10 | #define TEMP_1_PIN 11 // ANALOG NUMBERING 11 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/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 X_STEP_PIN 27 13 | #define X_DIR_PIN 29 14 | #define X_ENABLE_PIN 28 15 | #define X_STOP_PIN 7 16 | #define X_ATT_PIN 26 17 | 18 | #define Y_STEP_PIN 31 19 | #define Y_DIR_PIN 33 20 | #define Y_ENABLE_PIN 32 21 | #define Y_STOP_PIN 6 22 | #define Y_ATT_PIN 30 23 | 24 | #define Z_STEP_PIN 17 25 | #define Z_DIR_PIN 19 26 | #define Z_ENABLE_PIN 18 27 | #define Z_STOP_PIN 5 28 | #define Z_ATT_PIN 16 29 | 30 | #define E0_STEP_PIN 21 31 | #define E0_DIR_PIN 23 32 | #define E0_ENABLE_PIN 22 33 | #define E0_ATT_PIN 20 34 | 35 | #define HEATER_0_PIN 4 // Extruder 36 | #define HEATER_1_PIN -1 37 | #define HEATER_2_PIN -1 38 | #define HEATER_BED_PIN 38 // Bed 39 | #define FAN_PIN 3 // Fan 40 | 41 | #define TEMP_0_PIN 7 // Extruder / Analog pin numbering 42 | #define TEMP_1_PIN -1 43 | #define TEMP_2_PIN -1 44 | #define TEMP_BED_PIN 6 // Bed / Analog pin numbering 45 | 46 | #define SDPOWER -1 47 | #define SDSS -1 48 | #define LED_PIN 39 49 | #define PS_ON_PIN -1 50 | #define KILL_PIN -1 51 | #define ALARM_PIN -1 52 | 53 | #if DISABLED(SDSUPPORT) 54 | // these pins are defined in the SD library if building with SD support 55 | #define SCK_PIN 9 56 | #define MISO_PIN 11 57 | #define MOSI_PIN 10 58 | #endif 59 | 60 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/pins_BRAINWAVE_PRO.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Brainwave Pro pin assignments (AT90USB1286) 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 | #include "fastio.h" 13 | 14 | #ifndef AT90USBxx_TEENSYPP_ASSIGNMENTS // use Teensyduino Teensy++2.0 pin assignments instead of Marlin alphabetical. 15 | #error Uncomment #define AT90USBxx_TEENSYPP_ASSIGNMENTS in fastio.h for this config 16 | #endif 17 | 18 | #define LARGE_FLASH true 19 | 20 | #define X_STEP_PIN 33 21 | #define X_DIR_PIN 32 22 | #define X_ENABLE_PIN 11 23 | #define X_STOP_PIN 47 24 | 25 | #define Y_STEP_PIN 31 26 | #define Y_DIR_PIN 30 27 | #define Y_ENABLE_PIN 8 28 | #define Y_STOP_PIN 18 29 | 30 | #define Z_STEP_PIN 29 31 | #define Z_DIR_PIN 28 32 | #define Z_ENABLE_PIN 37 33 | #define Z_MAX_PIN 36 34 | #define Z_MIN_PIN 17 // Bed Z probe 35 | 36 | #define E0_STEP_PIN 35 37 | #define E0_DIR_PIN 34 38 | #define E0_ENABLE_PIN 13 39 | 40 | #define HEATER_0_PIN 15 41 | #define HEATER_1_PIN -1 42 | #define HEATER_2_PIN -1 43 | #define HEATER_BED_PIN 14 // Bed 44 | #define FAN_PIN 16 // Fan, PWM 45 | 46 | #define TEMP_0_PIN 2 // Extruder / Analog pin numbering 47 | #define TEMP_1_PIN 1 // Spare / Analog pin numbering 48 | #define TEMP_2_PIN -1 49 | #define TEMP_BED_PIN 0 // Bed / Analog pin numbering 50 | 51 | #define SDPOWER -1 52 | #define SDSS 20 53 | #define LED_PIN 19 54 | #define PS_ON_PIN -1 55 | #define KILL_PIN -1 56 | #define ALARM_PIN -1 57 | #define SD_DETECT_PIN 12 58 | 59 | #if DISABLED(SDSUPPORT) 60 | // these pins are defined in the SD library if building with SD support 61 | #define SCK_PIN 21 62 | #define MISO_PIN 23 63 | #define MOSI_PIN 22 64 | #endif 65 | 66 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/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 doesn't use this 89 | #define SD_DETECT_PIN -1 90 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/pins_ELEFU_3.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Elefu RA Board 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 X_STEP_PIN 49 10 | #define X_DIR_PIN 13 11 | #define X_ENABLE_PIN 48 12 | #define X_MIN_PIN 35 13 | #define X_MAX_PIN 34 14 | 15 | #define Y_STEP_PIN 11 16 | #define Y_DIR_PIN 9 17 | #define Y_ENABLE_PIN 12 18 | #define Y_MIN_PIN 33 19 | #define Y_MAX_PIN 32 20 | 21 | #define Z_STEP_PIN 7 22 | #define Z_DIR_PIN 6 23 | #define Z_ENABLE_PIN 8 24 | #define Z_MIN_PIN 31 25 | #define Z_MAX_PIN 30 26 | 27 | #define E2_STEP_PIN 43 28 | #define E2_DIR_PIN 47 29 | #define E2_ENABLE_PIN 42 30 | 31 | #define E1_STEP_PIN 18 32 | #define E1_DIR_PIN 19 33 | #define E1_ENABLE_PIN 38 34 | 35 | #define E0_STEP_PIN 40 36 | #define E0_DIR_PIN 41 37 | #define E0_ENABLE_PIN 37 38 | 39 | #define SDPOWER -1 40 | #define LED_PIN -1 //Use +12V Aux port for LED Ring 41 | 42 | #define FAN_PIN 16 //5V PWM 43 | 44 | #define PS_ON_PIN 10 //Set to -1 if using a manual switch on the PWRSW Connector 45 | #define SLEEP_WAKE_PIN 26 //This feature still needs work 46 | 47 | #define HEATER_0_PIN 45 //12V PWM1 48 | #define HEATER_1_PIN 46 //12V PWM2 49 | #define HEATER_2_PIN 17 //12V PWM3 50 | #define HEATER_BED_PIN 44 //DOUBLE 12V PWM 51 | #define TEMP_0_PIN 3 //ANALOG NUMBERING 52 | #define TEMP_1_PIN 2 //ANALOG NUMBERING 53 | #define TEMP_2_PIN 1 //ANALOG NUMBERING 54 | #define TEMP_BED_PIN 0 //ANALOG NUMBERING 55 | 56 | #define BEEPER_PIN 36 57 | 58 | #define KILL_PIN -1 59 | 60 | // M240 Triggers a camera by emulating a Canon RC-1 Remote 61 | // Data from: http://www.doc-diy.net/photo/rc-1_hacked/ 62 | #define PHOTOGRAPH_PIN 29 63 | 64 | #if ENABLED(RA_CONTROL_PANEL) 65 | 66 | #define SDSS 53 67 | #define SD_DETECT_PIN 28 68 | 69 | #define BTN_EN1 14 70 | #define BTN_EN2 39 71 | #define BTN_ENC 15 //the click 72 | 73 | #define BLEN_C 2 74 | #define BLEN_B 1 75 | #define BLEN_A 0 76 | 77 | #endif // RA_CONTROL_PANEL 78 | 79 | #if ENABLED(RA_DISCO) 80 | //variables for which pins the TLC5947 is using 81 | #define TLC_CLOCK_PIN 25 82 | #define TLC_BLANK_PIN 23 83 | #define TLC_XLAT_PIN 22 84 | #define TLC_DATA_PIN 24 85 | 86 | //We also need to define pin to port number mapping for the 2560 to match the pins listed above. If you change the TLC pins, update this as well per the 2560 datasheet! 87 | //This currently only works with the RA Board. 88 | #define TLC_CLOCK_BIT 3 //bit 3 on port A 89 | #define TLC_CLOCK_PORT &PORTA //bit 3 on port A 90 | 91 | #define TLC_BLANK_BIT 1 //bit 1 on port A 92 | #define TLC_BLANK_PORT &PORTA //bit 1 on port A 93 | 94 | #define TLC_DATA_BIT 2 //bit 2 on port A 95 | #define TLC_DATA_PORT &PORTA //bit 2 on port A 96 | 97 | #define TLC_XLAT_BIT 0 //bit 0 on port A 98 | #define TLC_XLAT_PORT &PORTA //bit 0 on port A 99 | 100 | //change this to match your situation. Lots of TLCs takes up the arduino SRAM very quickly, so be careful 101 | //Leave it at at least 1 if you have enabled RA_LIGHTING 102 | //The number of TLC5947 boards chained together for use with the animation, additional ones will repeat the animation on them, but are not individually addressable and mimic those before them. You can leave the default at 2 even if you only have 1 TLC5947 module. 103 | #define NUM_TLCS 2 104 | 105 | //These TRANS_ARRAY values let you change the order the LEDs on the lighting modules will animate for chase functions. 106 | //Modify them according to your specific situation. 107 | //NOTE: the array should be 8 long for every TLC you have. These defaults assume (2) TLCs. 108 | #define TRANS_ARRAY {0, 1, 2, 3, 4, 5, 6, 7, 15, 14, 13, 12, 11, 10, 9, 8} //forwards 109 | //#define TRANS_ARRAY {7, 6, 5, 4, 3, 2, 1, 0, 8, 9, 10, 11, 12, 13, 14, 15} //backwards 110 | #endif // RA_DISCO 111 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/pins_FELIX2.h: -------------------------------------------------------------------------------- 1 | /** 2 | * FELIXprinters v2.0/3.0 (RAMPS v1.3) pin assignments 3 | */ 4 | 5 | #include "pins_RAMPS_13_EFB.h" 6 | 7 | #undef HEATER_1_PIN 8 | #define HEATER_1_PIN 7 // EXTRUDER 2 9 | 10 | #define DISABLE_MAX_ENDSTOPS 11 | 12 | #undef SDPOWER 13 | #define SDPOWER 1 14 | 15 | #define PS_ON_PIN 12 16 | 17 | #if ENABLED(ULTRA_LCD) && ENABLED(NEWPANEL) 18 | 19 | #define BLEN_C 2 20 | #define BLEN_B 1 21 | #define BLEN_A 0 22 | #define SD_DETECT_PIN 6 23 | 24 | #endif // NEWPANEL && ULTRA_LCD 25 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/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 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/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 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/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 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/pins_GEN6_DELUXE.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Gen6 Deluxe pin assignments 3 | */ 4 | 5 | #include "pins_GEN6.h" 6 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/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 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/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 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/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 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/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_PIN -1 60 | #define SD_DETECT_PIN -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 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/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 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/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 SDPOWER -1 36 | #define SDSS 11 37 | #define SD_DETECT_PIN -1 // 10 optional also used as mode pin 38 | #define LED_PIN 13 39 | #define FAN_PIN 7 40 | #define PS_ON_PIN -1 41 | #define KILL_PIN -1 42 | #define SOL1_PIN 16 43 | #define SOL2_PIN 17 44 | 45 | #define HEATER_0_PIN 9 46 | #define HEATER_1_PIN 8 // 12 47 | #define HEATER_2_PIN 11 //-1 // 13 48 | #define TEMP_0_PIN 13 //D27 // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!! 49 | #define TEMP_1_PIN 15 // 1 50 | #define TEMP_2_PIN -1 // 2 51 | #define HEATER_BED_PIN 10 // 14/15 52 | #define TEMP_BED_PIN 14 // 1,2 or I2C 53 | /* 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) */ 54 | 55 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/pins_MEGACONTROLLER.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Mega controller 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 | #if EXTRUDERS > 2 10 | #error Mega Controller supports up to 2 extruders. Comment this line to keep going. 11 | #endif 12 | 13 | #define SERVO0_PIN 30 14 | #define SERVO1_PIN 31 15 | #define SERVO2_PIN 32 16 | #define SERVO3_PIN 33 17 | 18 | #define X_STEP_PIN 62//A8 19 | #define X_DIR_PIN 63//A9 20 | #define X_ENABLE_PIN 61//A7 21 | #define X_MIN_PIN 43 22 | #define X_MAX_PIN 42 //Max endstops default to disabled "-1", set to commented value to enable. 23 | 24 | #define Y_STEP_PIN 65 // A11 25 | #define Y_DIR_PIN 66 // A12 26 | #define Y_ENABLE_PIN 64//A10 27 | #define Y_MIN_PIN 38 28 | #define Y_MAX_PIN 41 29 | 30 | #define Z_STEP_PIN 68 // A14 31 | #define Z_DIR_PIN 69 // A15 32 | #define Z_ENABLE_PIN 67 // A13 33 | #define Z_MIN_PIN 40 34 | #define Z_MAX_PIN 37 35 | 36 | #define E0_STEP_PIN 23 37 | #define E0_DIR_PIN 24 38 | #define E0_ENABLE_PIN 22 39 | 40 | #define E1_STEP_PIN 26 41 | #define E1_DIR_PIN 27 42 | #define E1_ENABLE_PIN 25 43 | 44 | #define SDPOWER -1 45 | #define SDSS 53 46 | #define LED_PIN 13 47 | 48 | #define FAN_PIN 39 49 | #define FAN1_PIN 35 50 | #define FAN2_PIN 36 51 | #define FAN_SOFT_PWM 52 | #define CONTROLLERFAN_PIN 36 53 | #define PS_ON_PIN -1 54 | #define KILL_PIN -1 55 | 56 | #define HEATER_0_PIN 29 // EXTRUDER 1 57 | #define HEATER_1_PIN 34 // EXTRUDER 2 58 | #define HEATER_2_PIN -1 59 | 60 | #if TEMP_SENSOR_0 == -1 61 | #define TEMP_0_PIN 4 // ANALOG NUMBERING 62 | #else 63 | #define TEMP_0_PIN 0 // ANALOG NUMBERING 64 | #endif 65 | 66 | 67 | #if TEMP_SENSOR_1 == -1 68 | #define TEMP_1_PIN 5 // ANALOG NUMBERING 69 | #else 70 | #define TEMP_1_PIN 2 // ANALOG NUMBERING 71 | #endif 72 | 73 | #define TEMP_2_PIN 3 // ANALOG NUMBERING 74 | 75 | #define HEATER_BED_PIN 28 // BED 76 | 77 | #if TEMP_SENSOR_BED == -1 78 | #define TEMP_BED_PIN 6 // ANALOG NUMBERING 79 | #else 80 | #define TEMP_BED_PIN 1 // ANALOG NUMBERING 81 | #endif 82 | 83 | #if ENABLED(MINIPANEL) 84 | #define BEEPER_PIN 46 85 | // Pins for DOGM SPI LCD Support 86 | #define DOGLCD_A0 47 87 | #define DOGLCD_CS 45 88 | #define LCD_PIN_BL 44 // backlight LED on PA3 89 | 90 | #define KILL_PIN 12 91 | // GLCD features 92 | //#define LCD_CONTRAST 190 93 | // Uncomment screen orientation 94 | //#define LCD_SCREEN_ROT_90 95 | //#define LCD_SCREEN_ROT_180 96 | //#define LCD_SCREEN_ROT_270 97 | //The encoder and click button 98 | #define BTN_EN1 48 99 | #define BTN_EN2 11 100 | #define BTN_ENC 10 //the click switch 101 | //not connected to a pin 102 | #define SD_DETECT_PIN 49 103 | #endif //Minipanel 104 | 105 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/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 47 | #define HEATER_1_PIN 8 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 | #endif 55 | 56 | #define TEMP_1_PIN 15 // ANALOG NUMBERING 57 | #define TEMP_2_PIN -1 // ANALOG NUMBERING 58 | #define HEATER_BED_PIN 10 // BED 59 | #define TEMP_BED_PIN 14 // ANALOG NUMBERING 60 | 61 | #define BEEPER_PIN 33 // AUX-4 62 | 63 | #if ENABLED(ULTRA_LCD) && ENABLED(NEWPANEL) 64 | 65 | #define LCD_PINS_RS 16 66 | #define LCD_PINS_ENABLE 17 67 | #define LCD_PINS_D4 23 68 | #define LCD_PINS_D5 25 69 | #define LCD_PINS_D6 27 70 | #define LCD_PINS_D7 29 71 | 72 | // Buttons directly attached using AUX-2 73 | #define BTN_EN1 59 74 | #define BTN_EN2 64 75 | #define BTN_ENC 43 76 | 77 | #define BLEN_C 2 78 | #define BLEN_B 1 79 | #define BLEN_A 0 80 | 81 | #define SD_DETECT_PIN -1 // RAMPS doesn't use this 82 | 83 | #endif // ULTRA_LCD && NEWPANEL 84 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/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_PIN 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 SD_DETECT_PIN -1 // Megatronics doesn't use this 98 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/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 | 12 | #if ENABLED(Z_PROBE_SLED) 13 | #define SLED_PIN -1 14 | #endif 15 | 16 | // Servo support 17 | #define SERVO0_PIN 46 //AUX3-6 18 | #define SERVO1_PIN 47 //AUX3-5 19 | #define SERVO2_PIN 48 //AUX3-4 20 | #define SERVO2_PIN 49 //AUX3-3 21 | 22 | #define X_STEP_PIN 58 23 | #define X_DIR_PIN 57 24 | #define X_ENABLE_PIN 59 25 | #define X_MIN_PIN 37 26 | #define X_MAX_PIN 40 // put to -1 to disable 27 | 28 | #define Y_STEP_PIN 5 29 | #define Y_DIR_PIN 17 30 | #define Y_ENABLE_PIN 4 31 | #define Y_MIN_PIN 41 32 | #define Y_MAX_PIN 38 // put to -1 to disable 33 | 34 | #define Z_STEP_PIN 16 35 | #define Z_DIR_PIN 11 36 | #define Z_ENABLE_PIN 3 37 | #define Z_MIN_PIN 18 38 | #define Z_MAX_PIN 19 // put to -1 to disable 39 | 40 | #define E0_STEP_PIN 28 41 | #define E0_DIR_PIN 27 42 | #define E0_ENABLE_PIN 29 43 | 44 | #define E1_STEP_PIN 25 45 | #define E1_DIR_PIN 24 46 | #define E1_ENABLE_PIN 26 47 | 48 | #define E2_STEP_PIN 22 49 | #define E2_DIR_PIN 60 50 | #define E2_ENABLE_PIN 23 51 | 52 | #define SDPOWER -1 53 | #define SDSS 53 54 | #define LED_PIN 13 55 | 56 | #define PS_ON_PIN 12 57 | #define KILL_PIN -1 58 | 59 | #define HEATER_0_PIN 2 60 | #define HEATER_1_PIN 9 61 | #define HEATER_2_PIN 8 62 | #define HEATER_BED_PIN 10 63 | #define FAN_PIN 6 64 | #define FAN2_PIN 7 65 | 66 | #define TEMP_0_PIN (TEMP_SENSOR_0 == -1 ? 11 : 15) // ANALOG NUMBERING 67 | #define TEMP_1_PIN (TEMP_SENSOR_1 == -1 ? 10 : 13) // ANALOG NUMBERING 68 | #define TEMP_2_PIN (TEMP_SENSOR_2 == -1 ? 9 : 12) // ANALOG NUMBERING 69 | #define TEMP_BED_PIN (TEMP_SENSOR_BED == -1 ? 8 : 14) // ANALOG NUMBERING 70 | 71 | #define BEEPER_PIN 61 72 | 73 | #define LCD_PINS_RS 32 74 | #define LCD_PINS_ENABLE 31 75 | #define LCD_PINS_D4 14 76 | #define LCD_PINS_D5 30 77 | #define LCD_PINS_D6 39 78 | #define LCD_PINS_D7 15 79 | 80 | #define SHIFT_CLK 43 81 | #define SHIFT_LD 35 82 | #define SHIFT_OUT 34 83 | #define SHIFT_EN 44 84 | 85 | // Buttons are directly attached using keypad 86 | #define BTN_EN1 44 87 | #define BTN_EN2 45 88 | #define BTN_ENC 33 // the click 89 | 90 | #define BLEN_C 2 91 | #define BLEN_B 1 92 | #define BLEN_A 0 93 | 94 | #define SD_DETECT_PIN -1 // Megatronics doesn't use this 95 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/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 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/pins_MELZI_MAKR3D.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Melzi with ATmega1284 (MaKr3d version) pin assignments 3 | */ 4 | 5 | #undef MOTHERBOARD 6 | #define MOTHERBOARD MELZI 7 | #define SANGUINOLOLU_V_1_2 8 | 9 | #if defined(__AVR_ATmega1284P__) 10 | #define LARGE_FLASH true 11 | #endif 12 | 13 | #include "pins_SANGUINOLOLU_11.h" 14 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/pins_MINIRAMBO.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Mini-Rambo pin assignments 3 | */ 4 | 5 | #ifndef __AVR_ATmega2560__ 6 | #error Oops! Make sure you have 'Arduino Mega 2560 or Rambo' selected from the 'Tools -> Boards' menu. 7 | #endif 8 | 9 | #define LARGE_FLASH true 10 | 11 | 12 | #undef X_MS1_PIN 13 | #undef X_MS2_PIN 14 | #undef Y_MS1_PIN 15 | #undef Y_MS2_PIN 16 | #undef Z_MS1_PIN 17 | #undef Z_MS2_PIN 18 | #undef E0_MS1_PIN 19 | #undef E0_MS2_PIN 20 | #undef E1_MS1_PIN 21 | #undef E1_MS2_PIN 22 | 23 | #define X_STEP_PIN 37 24 | #define X_DIR_PIN 48 25 | #define X_MIN_PIN 12 26 | #define X_MAX_PIN 30 27 | #define X_ENABLE_PIN 29 28 | #define X_MS1_PIN 40 29 | #define X_MS2_PIN 41 30 | 31 | #define Y_STEP_PIN 36 32 | #define Y_DIR_PIN 49 33 | #define Y_MIN_PIN 11 34 | #define Y_MAX_PIN 24 35 | #define Y_ENABLE_PIN 28 36 | #define Y_MS1_PIN 69 37 | #define Y_MS2_PIN 39 38 | 39 | #define Z_STEP_PIN 35 40 | #define Z_DIR_PIN 47 41 | #define Z_MIN_PIN 10 42 | #define Z_MAX_PIN 23 43 | #define Z_ENABLE_PIN 27 44 | #define Z_MS1_PIN 68 45 | #define Z_MS2_PIN 67 46 | 47 | #define HEATER_BED_PIN 4 48 | #define TEMP_BED_PIN 2 49 | 50 | #define HEATER_0_PIN 3 51 | #define TEMP_0_PIN 0 52 | 53 | #define HEATER_1_PIN 7 54 | #define TEMP_1_PIN 1 55 | 56 | #if ENABLED(BARICUDA) 57 | #define HEATER_2_PIN 6 58 | #else 59 | #define HEATER_2_PIN -1 60 | #endif 61 | 62 | #define TEMP_2_PIN -1 63 | 64 | #define E0_STEP_PIN 34 65 | #define E0_DIR_PIN 43 66 | #define E0_ENABLE_PIN 26 67 | #define E0_MS1_PIN 65 68 | #define E0_MS2_PIN 66 69 | 70 | #define E1_STEP_PIN -1 71 | #define E1_DIR_PIN -1 72 | #define E1_ENABLE_PIN -1 73 | #define E1_MS1_PIN -1 74 | #define E1_MS2_PIN -1 75 | 76 | #define MOTOR_CURRENT_PWM_XY_PIN 46 77 | #define MOTOR_CURRENT_PWM_Z_PIN 45 78 | #define MOTOR_CURRENT_PWM_E_PIN 44 79 | //Motor current PWM conversion, PWM value = MotorCurrentSetting * 255 / range 80 | #define MOTOR_CURRENT_PWM_RANGE 2000 81 | #define DEFAULT_PWM_MOTOR_CURRENT {1300, 1300, 1250} 82 | #define SDPOWER -1 83 | #define SDSS 53 84 | #define LED_PIN 13 85 | #define FAN_PIN 8 86 | #define FAN_1_PIN 6 87 | #define PS_ON_PIN -1 88 | #define KILL_PIN -1 // 80 with Smart Controller LCD 89 | #define SUICIDE_PIN -1 // PIN that has to be turned on right after start, to keep power flowing. 90 | 91 | #if ENABLED(ULTRA_LCD) 92 | 93 | #define KILL_PIN 32 94 | 95 | #if ENABLED(NEWPANEL) 96 | 97 | #define BEEPER_PIN 84 // Beeper on AUX-4 98 | #define LCD_PINS_RS 82 99 | #define LCD_PINS_ENABLE 18 100 | #define LCD_PINS_D4 19 101 | #define LCD_PINS_D5 70 102 | #define LCD_PINS_D6 85 103 | #define LCD_PINS_D7 71 104 | 105 | //buttons are directly attached using AUX-2 106 | #define BTN_EN1 14 107 | #define BTN_EN2 72 108 | #define BTN_ENC 9 // the click 109 | 110 | #define SD_DETECT_PIN 15 111 | 112 | #endif //NEWPANEL 113 | #endif //ULTRA_LCD 114 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/pins_MINITRONICS.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Minitronics v1.0/1.1 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 39 // A6 18 | #define Y_DIR_PIN 40 // A0 19 | #define Y_ENABLE_PIN 38 20 | #define Y_MIN_PIN 2 21 | #define Y_MAX_PIN 15 22 | 23 | #define Z_STEP_PIN 42 // A2 24 | #define Z_DIR_PIN 43 // A6 25 | #define Z_ENABLE_PIN 41 // A1 26 | #define Z_MIN_PIN 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_PIN -1 63 | 64 | #define LCD_PINS_RS -1 65 | #define LCD_PINS_ENABLE -1 66 | #define LCD_PINS_D4 -1 67 | #define LCD_PINS_D5 -1 68 | #define LCD_PINS_D6 -1 69 | #define LCD_PINS_D7 -1 70 | 71 | 72 | // Buttons are directly attached using keypad 73 | #define BTN_EN1 -1 74 | #define BTN_EN2 -1 75 | #define BTN_ENC -1 // the click 76 | 77 | #define BLEN_C 2 78 | #define BLEN_B 1 79 | #define BLEN_A 0 80 | 81 | #define SD_DETECT_PIN -1 // Minitronics doesn't use this 82 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/pins_MKS_BASE.h: -------------------------------------------------------------------------------- 1 | /** 2 | * MKS BASE 1.0 – Arduino Mega2560 with RAMPS v1.4 pin assignments 3 | */ 4 | 5 | #include "pins_RAMPS_13_EFB.h" 6 | 7 | #undef HEATER_1_PIN 8 | #define HEATER_1_PIN 7 9 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/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 SD_DETECT_PIN -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 | 93 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/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 SD_DETECT_PIN -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 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/pins_PRINTRBOARD.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Printrboard 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 | #if ENABLED(AT90USBxx_TEENSYPP_ASSIGNMENTS) // use Teensyduino Teensy++2.0 pin assignments instead of Marlin traditional. 13 | #error These Printrboard assignments depend on traditional Marlin assignments, not AT90USBxx_TEENSYPP_ASSIGNMENTS in fastio.h 14 | #endif 15 | 16 | #define LARGE_FLASH true 17 | 18 | #define X_STEP_PIN 0 19 | #define X_DIR_PIN 1 20 | #define X_ENABLE_PIN 39 21 | 22 | #define Y_STEP_PIN 2 23 | #define Y_DIR_PIN 3 24 | #define Y_ENABLE_PIN 38 25 | 26 | #define Z_STEP_PIN 4 27 | #define Z_DIR_PIN 5 28 | #define Z_ENABLE_PIN 23 29 | 30 | #define E0_STEP_PIN 6 31 | #define E0_DIR_PIN 7 32 | #define E0_ENABLE_PIN 19 33 | 34 | #define HEATER_0_PIN 21 // Extruder 35 | #define HEATER_1_PIN 46 36 | #define HEATER_2_PIN 47 37 | #define HEATER_BED_PIN 20 38 | 39 | // If soft or fast PWM is off then use Teensyduino pin numbering, Marlin 40 | // fastio pin numbering otherwise 41 | #if ENABLED(FAN_SOFT_PWM) || ENABLED(FAST_PWM_FAN) 42 | #define FAN_PIN 22 43 | #else 44 | #define FAN_PIN 16 45 | #endif 46 | 47 | #define X_STOP_PIN 35 48 | #if ENABLED(SDSUPPORT) 49 | #define Y_STOP_PIN 37 // Move Ystop to Estop socket 50 | #else 51 | #define Y_STOP_PIN 8 // Ystop in Ystop socket 52 | #endif 53 | #define Z_STOP_PIN 36 54 | #define TEMP_0_PIN 1 // Extruder / Analog pin numbering 55 | #define TEMP_BED_PIN 0 // Bed / Analog pin numbering 56 | 57 | #if ENABLED(FILAMENT_SENSOR) 58 | #define FILWIDTH_PIN 2 59 | #endif 60 | 61 | #define TEMP_1_PIN -1 62 | #define TEMP_2_PIN -1 63 | 64 | ////LCD Pin Setup//// 65 | 66 | #define SDPOWER -1 67 | #define SDSS 8 68 | #define LED_PIN -1 69 | #define PS_ON_PIN -1 70 | #define KILL_PIN -1 71 | #define ALARM_PIN -1 72 | 73 | #if DISABLED(SDSUPPORT) 74 | // these pins are defined in the SD library if building with SD support 75 | #define SCK_PIN 9 76 | #define MISO_PIN 11 77 | #define MOSI_PIN 10 78 | #endif 79 | 80 | #if ENABLED(ULTRA_LCD) && ENABLED(NEWPANEL) 81 | //we have no buzzer installed 82 | #define BEEPER_PIN -1 83 | //LCD Pins 84 | #if ENABLED(LCD_I2C_PANELOLU2) 85 | #define BTN_EN1 27 //RX1 - fastio.h pin mapping 27 86 | #define BTN_EN2 26 //TX1 - fastio.h pin mapping 26 87 | #define BTN_ENC 43 //A3 - fastio.h pin mapping 43 88 | #define SDSS 40 //use SD card on Panelolu2 (Teensyduino pin mapping) 89 | #endif // LCD_I2C_PANELOLU2 90 | //not connected to a pin 91 | #define SD_DETECT_PIN -1 92 | #endif // ULTRA_LCD && NEWPANEL 93 | 94 | #if ENABLED(VIKI2) || ENABLED(miniVIKI) 95 | #define BEEPER_PIN 32 //FastIO 96 | // Pins for DOGM SPI LCD Support 97 | #define DOGLCD_A0 42 //Non-FastIO 98 | #define DOGLCD_CS 43 //Non-FastIO 99 | #define LCD_SCREEN_ROT_180 100 | 101 | //The encoder and click button (FastIO Pins) 102 | #define BTN_EN1 26 103 | #define BTN_EN2 27 104 | #define BTN_ENC 47 //the click switch 105 | 106 | #define SDSS 45 107 | #define SD_DETECT_PIN -1 // FastIO (Manual says 72 I'm not certain cause I can't test) 108 | 109 | #if ENABLED(TEMP_STAT_LEDS) 110 | #define STAT_LED_RED 12 //Non-FastIO 111 | #define STAT_LED_BLUE 10 //Non-FastIO 112 | #endif 113 | #endif 114 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/pins_RAMBO.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Rambo 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 LARGE_FLASH true 10 | 11 | // Servo support 12 | #define SERVO0_PIN 22 // Motor header MX1 13 | #define SERVO1_PIN 23 // Motor header MX2 14 | #define SERVO2_PIN 24 // Motor header MX3 15 | #define SERVO2_PIN 5 // PWM header pin 5 16 | 17 | #if ENABLED(Z_PROBE_SLED) 18 | #define SLED_PIN -1 19 | #endif 20 | 21 | #undef X_MS1_PIN 22 | #undef X_MS2_PIN 23 | #undef Y_MS1_PIN 24 | #undef Y_MS2_PIN 25 | #undef Z_MS1_PIN 26 | #undef Z_MS2_PIN 27 | #undef E0_MS1_PIN 28 | #undef E0_MS2_PIN 29 | #undef E1_MS1_PIN 30 | #undef E1_MS2_PIN 31 | 32 | #define X_STEP_PIN 37 33 | #define X_DIR_PIN 48 34 | #define X_MIN_PIN 12 35 | #define X_MAX_PIN 24 36 | #define X_ENABLE_PIN 29 37 | #define X_MS1_PIN 40 38 | #define X_MS2_PIN 41 39 | 40 | #define Y_STEP_PIN 36 41 | #define Y_DIR_PIN 49 42 | #define Y_MIN_PIN 11 43 | #define Y_MAX_PIN 23 44 | #define Y_ENABLE_PIN 28 45 | #define Y_MS1_PIN 69 46 | #define Y_MS2_PIN 39 47 | 48 | #define Z_STEP_PIN 35 49 | #define Z_DIR_PIN 47 50 | #define Z_MIN_PIN 10 51 | #define Z_MAX_PIN 30 52 | #define Z_ENABLE_PIN 27 53 | #define Z_MS1_PIN 68 54 | #define Z_MS2_PIN 67 55 | 56 | #define HEATER_BED_PIN 3 57 | #define TEMP_BED_PIN 2 58 | 59 | #define HEATER_0_PIN 9 60 | #define TEMP_0_PIN 0 61 | 62 | #define HEATER_1_PIN 7 63 | #define TEMP_1_PIN 1 64 | 65 | #if ENABLED(BARICUDA) 66 | #define HEATER_2_PIN 6 67 | #else 68 | #define HEATER_2_PIN -1 69 | #endif 70 | 71 | #define TEMP_2_PIN -1 72 | 73 | #define E0_STEP_PIN 34 74 | #define E0_DIR_PIN 43 75 | #define E0_ENABLE_PIN 26 76 | #define E0_MS1_PIN 65 77 | #define E0_MS2_PIN 66 78 | 79 | #define E1_STEP_PIN 33 80 | #define E1_DIR_PIN 42 81 | #define E1_ENABLE_PIN 25 82 | #define E1_MS1_PIN 63 83 | #define E1_MS2_PIN 64 84 | 85 | #undef DIGIPOTSS_PIN 86 | #define DIGIPOTSS_PIN 38 87 | #define DIGIPOT_CHANNELS {4,5,3,0,1} // X Y Z E0 E1 digipot channels to stepper driver mapping 88 | 89 | #define SDPOWER -1 90 | #define SDSS 53 91 | #define LED_PIN 13 92 | #define FAN_PIN 8 93 | 94 | /********************************************************** 95 | Fan Pins 96 | Fan_0 8 97 | Fan_1 6 98 | Fan_2 2 99 | ***********************************************************/ 100 | #define PS_ON_PIN 4 101 | #define KILL_PIN -1 //80 with Smart Controller LCD 102 | #define SUICIDE_PIN -1 //PIN that has to be turned on right after start, to keep power flowing. 103 | 104 | #if ENABLED(ULTRA_LCD) 105 | 106 | #define KILL_PIN 80 107 | 108 | #if ENABLED(NEWPANEL) 109 | 110 | #define BEEPER_PIN 79 // Beeper on AUX-4 111 | 112 | #define LCD_PINS_RS 70 113 | #define LCD_PINS_ENABLE 71 114 | #define LCD_PINS_D4 72 115 | #define LCD_PINS_D5 73 116 | #define LCD_PINS_D6 74 117 | #define LCD_PINS_D7 75 118 | 119 | //buttons are directly attached using AUX-2 120 | #define BTN_EN1 76 121 | #define BTN_EN2 77 122 | #define BTN_ENC 78 //the click 123 | 124 | #define BLEN_C 2 125 | #define BLEN_B 1 126 | #define BLEN_A 0 127 | 128 | #define SD_DETECT_PIN 81 // Ramps doesn't use this 129 | 130 | #else //!NEWPANEL - old style panel with shift register 131 | 132 | #define BEEPER_PIN 33 // No Beeper added 133 | 134 | //buttons are attached to a shift register 135 | // Not wired yet 136 | //#define SHIFT_CLK 38 137 | //#define SHIFT_LD 42 138 | //#define SHIFT_OUT 40 139 | //#define SHIFT_EN 17 140 | 141 | #define LCD_PINS_RS 75 142 | #define LCD_PINS_ENABLE 17 143 | #define LCD_PINS_D4 23 144 | #define LCD_PINS_D5 25 145 | #define LCD_PINS_D6 27 146 | #define LCD_PINS_D7 29 147 | 148 | //bits in the shift register that carry the buttons for: 149 | // left up center down right red 150 | #define BL_LE 7 151 | #define BL_UP 6 152 | #define BL_MI 5 153 | #define BL_DW 4 154 | #define BL_RI 3 155 | #define BL_ST 2 156 | #define BLEN_B 1 157 | #define BLEN_A 0 158 | 159 | #endif // !NEWPANEL 160 | 161 | #endif // ULTRA_LCD 162 | 163 | #if ENABLED(VIKI2) || ENABLED(miniVIKI) 164 | #define BEEPER_PIN 44 165 | // Pins for DOGM SPI LCD Support 166 | #define DOGLCD_A0 70 167 | #define DOGLCD_CS 71 168 | #define LCD_SCREEN_ROT_180 169 | 170 | //The encoder and click button 171 | #define BTN_EN1 85 172 | #define BTN_EN2 84 173 | #define BTN_ENC 83 //the click switch 174 | 175 | #define SD_DETECT_PIN -1 // Pin 72 if using easy adapter board 176 | 177 | #if ENABLED(TEMP_STAT_LEDS) 178 | #define STAT_LED_RED 22 179 | #define STAT_LED_BLUE 32 180 | #endif 181 | #endif // VIKI2/miniVIKI 182 | 183 | #if ENABLED(FILAMENT_SENSOR) 184 | //Filip added pin for Filament sensor analog input 185 | #define FILWIDTH_PIN 3 186 | #endif 187 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/pins_RAMPS_13_EFB.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Arduino Mega with RAMPS v1.3 pin assignments 3 | * 4 | * RAMPS_13_EFB (Extruder, Fan, Bed) 5 | */ 6 | 7 | #define IS_RAMPS_EFB 8 | 9 | #include "pins_RAMPS_13.h" -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/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 | #if ENABLED(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 | #if DISABLED(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 | #if DISABLED(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 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/pins_RIGIDBOARD.h: -------------------------------------------------------------------------------- 1 | /** 2 | * RIGIDBOARD Arduino Mega with RAMPS v1.3 pin assignments 3 | */ 4 | 5 | #include "pins_RAMPS_13.h" 6 | 7 | #if ENABLED(Z_MIN_PROBE_ENDSTOP) 8 | #define Z_MIN_PROBE_PIN 19 9 | #endif 10 | 11 | #undef HEATER_0_PIN 12 | #undef HEATER_1_PIN 13 | #define HEATER_0_PIN 9 // EXTRUDER 1 14 | #define HEATER_1_PIN 12 // EXTRUDER 2 (FAN On Sprinter) 15 | 16 | #undef TEMP_0_PIN 17 | #undef TEMP_1_PIN 18 | #define TEMP_0_PIN 14 // ANALOG NUMBERING 19 | #define TEMP_1_PIN 13 // ANALOG NUMBERING 20 | 21 | // LCD Panel options for the RigidBoard 22 | 23 | #if ENABLED(RIGIDBOT_PANEL) 24 | 25 | #undef BEEPER_PIN 26 | #define BEEPER_PIN -1 27 | 28 | #undef SD_DETECT_PIN 29 | #define SD_DETECT_PIN 22 30 | 31 | // Extra button definitions, substitute for EN1 / EN2 32 | #define BTN_UP 37 // BTN_EN1 33 | #define BTN_DWN 35 // BTN_EN2 34 | #define BTN_LFT 33 35 | #define BTN_RT 32 36 | 37 | // Marlin can respond to UP/DOWN by default 38 | // #undef BTN_EN1 39 | // #undef BTN_EN2 40 | //#define BTN_EN1 -1 41 | //#define BTN_EN2 -1 42 | 43 | #undef BTN_ENC 44 | #define BTN_ENC 31 45 | 46 | #undef SD_DETECT_PIN 47 | #define SD_DETECT_PIN 22 48 | 49 | #elif ENABLED(REPRAP_DISCOUNT_SMART_CONTROLLER) 50 | 51 | #undef BEEPER_PIN 52 | #define BEEPER_PIN -1 53 | 54 | #undef SD_DETECT_PIN 55 | #define SD_DETECT_PIN 22 56 | 57 | #undef KILL_PIN 58 | #define KILL_PIN 32 59 | 60 | #endif 61 | 62 | // SPI for Max6675 Thermocouple 63 | #undef MAX6675_SS 64 | #if ENABLED(SDSUPPORT) 65 | #define MAX6675_SS 49 // Don't use pin 49 as this is tied to the switch inside the SD card socket to detect if there is an SD card present 66 | #else 67 | #define MAX6675_SS 53 // Don't use pin 53 if there is even the remote possibility of using Display/SD card 68 | #endif 69 | 70 | // RigidBot swaps E0 / E1 plugs vs RAMPS 1.3 71 | 72 | #undef E0_STEP_PIN 73 | #undef E0_DIR_PIN 74 | #undef E0_ENABLE_PIN 75 | #define E0_STEP_PIN 36 76 | #define E0_DIR_PIN 34 77 | #define E0_ENABLE_PIN 30 78 | 79 | #undef E1_STEP_PIN 80 | #undef E1_DIR_PIN 81 | #undef E1_ENABLE_PIN 82 | #define E1_STEP_PIN 26 83 | #define E1_DIR_PIN 28 84 | #define E1_ENABLE_PIN 24 85 | 86 | #undef FAN_PIN 87 | #define FAN_PIN 8 // Same as RAMPS_13_EEF 88 | 89 | #undef PS_ON_PIN 90 | #define PS_ON_PIN -1 91 | 92 | #undef HEATER_BED_PIN 93 | #define HEATER_BED_PIN 10 94 | 95 | #undef TEMP_BED_PIN 96 | #define TEMP_BED_PIN 15 // ANALOG NUMBERING 97 | 98 | #define STEPPER_RESET_PIN 41 // Stepper drivers have a reset on RigidBot 99 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/pins_RUMBA.h: -------------------------------------------------------------------------------- 1 | /** 2 | * RUMBA 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 | #if EXTRUDERS > 3 10 | #error RUMBA supports up to 3 extruders. Comment this line to keep going. 11 | #endif 12 | 13 | #define X_STEP_PIN 17 14 | #define X_DIR_PIN 16 15 | #define X_ENABLE_PIN 48 16 | #define X_MIN_PIN 37 17 | #define X_MAX_PIN 36 18 | 19 | #define Y_STEP_PIN 54 20 | #define Y_DIR_PIN 47 21 | #define Y_ENABLE_PIN 55 22 | #define Y_MIN_PIN 35 23 | #define Y_MAX_PIN 34 24 | 25 | #define Z_STEP_PIN 57 26 | #define Z_DIR_PIN 56 27 | #define Z_ENABLE_PIN 62 28 | #define Z_MIN_PIN 33 29 | #define Z_MAX_PIN 32 30 | 31 | #if ENABLED(Z_MIN_PROBE_ENDSTOP) 32 | // Define a pin to use as the signal pin on Arduino for the Z probe endstop. 33 | #define Z_MIN_PROBE_PIN 33 34 | #endif 35 | 36 | #define E0_STEP_PIN 23 37 | #define E0_DIR_PIN 22 38 | #define E0_ENABLE_PIN 24 39 | 40 | #define E1_STEP_PIN 26 41 | #define E1_DIR_PIN 25 42 | #define E1_ENABLE_PIN 27 43 | 44 | #define E2_STEP_PIN 29 45 | #define E2_DIR_PIN 28 46 | #define E2_ENABLE_PIN 39 47 | 48 | #define LED_PIN 13 49 | 50 | #define FAN_PIN 7 51 | #define FAN1_PIN 8 52 | 53 | #define PS_ON_PIN 45 54 | #define KILL_PIN 46 55 | 56 | #if TEMP_SENSOR_0 == 0 57 | #define TEMP_0_PIN -1 58 | #define HEATER_0_PIN -1 59 | #else 60 | #define HEATER_0_PIN 2 // EXTRUDER 1 61 | #if TEMP_SENSOR_0 == -1 62 | #define TEMP_0_PIN 6 // ANALOG NUMBERING - connector *K1* on RUMBA thermocouple ADD ON is used 63 | #else 64 | #define TEMP_0_PIN 15 // ANALOG NUMBERING - default connector for thermistor *T0* on rumba board is used 65 | #endif 66 | #endif 67 | 68 | #if TEMP_SENSOR_1 == 0 69 | #define TEMP_1_PIN -1 70 | #define HEATER_1_PIN -1 71 | #else 72 | #define HEATER_1_PIN 3 // EXTRUDER 2 73 | #if TEMP_SENSOR_1 == -1 74 | #define TEMP_1_PIN 5 // ANALOG NUMBERING - connector *K2* on RUMBA thermocouple ADD ON is used 75 | #else 76 | #define TEMP_1_PIN 14 // ANALOG NUMBERING - default connector for thermistor *T1* on rumba board is used 77 | #endif 78 | #endif 79 | 80 | #if TEMP_SENSOR_2 == 0 81 | #define TEMP_2_PIN -1 82 | #define HEATER_2_PIN -1 83 | #else 84 | #define HEATER_2_PIN 6 // EXTRUDER 3 85 | #if TEMP_SENSOR_2 == -1 86 | #define TEMP_2_PIN 7 // ANALOG NUMBERING - connector *K3* on RUMBA thermocouple ADD ON is used <-- this can not be used when TEMP_SENSOR_BED is defined as thermocouple 87 | #else 88 | #define TEMP_2_PIN 13 // ANALOG NUMBERING - default connector for thermistor *T2* on rumba board is used 89 | #endif 90 | #endif 91 | 92 | //optional for extruder 4 or chamber: #define TEMP_X_PIN 12 // ANALOG NUMBERING - default connector for thermistor *T3* on rumba board is used 93 | //optional FAN1 can be used as 4th heater output: #define HEATER_3_PIN 8 // EXTRUDER 4 94 | 95 | #if TEMP_SENSOR_BED == 0 96 | #define TEMP_BED_PIN -1 97 | #define HEATER_BED_PIN -1 98 | #else 99 | #define HEATER_BED_PIN 9 // BED 100 | #if TEMP_SENSOR_BED == -1 101 | #define TEMP_BED_PIN 7 // ANALOG NUMBERING - connector *K3* on RUMBA thermocouple ADD ON is used <-- this can not be used when TEMP_SENSOR_2 is defined as thermocouple 102 | #else 103 | #define TEMP_BED_PIN 11 // ANALOG NUMBERING - default connector for thermistor *THB* on rumba board is used 104 | #endif 105 | #endif 106 | 107 | #define SDPOWER -1 108 | #define SDSS 53 109 | #define SD_DETECT_PIN 49 110 | #define BEEPER_PIN 44 111 | #define LCD_PINS_RS 19 112 | #define LCD_PINS_ENABLE 42 113 | #define LCD_PINS_D4 18 114 | #define LCD_PINS_D5 38 115 | #define LCD_PINS_D6 41 116 | #define LCD_PINS_D7 40 117 | #define BTN_EN1 11 118 | #define BTN_EN2 12 119 | #define BTN_ENC 43 120 | 121 | #define SERVO0_PIN 5 122 | 123 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/pins_SANGUINOLOLU_11.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Sanguinololu board 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 21 11 | #define X_STOP_PIN 18 12 | 13 | #define Y_STEP_PIN 22 14 | #define Y_DIR_PIN 23 15 | #define Y_STOP_PIN 19 16 | 17 | #define Z_STEP_PIN 3 18 | #define Z_DIR_PIN 2 19 | #define Z_STOP_PIN 20 20 | 21 | #define E0_STEP_PIN 1 22 | #define E0_DIR_PIN 0 23 | 24 | #define LED_PIN -1 25 | #define FAN_PIN -1 26 | 27 | #if MB(AZTEEG_X1) || MB(STB_11) || MB(MELZI) 28 | #define FAN_PIN 4 // Works for Panelolu2 too 29 | #if MB(MELZI) 30 | #define LED_PIN 27 // On some broken versions of the Sanguino libraries the pin definitions are wrong, so LED_PIN needs to be 28. But you should upgrade your Sanguino libraries! See #368. 31 | #elif MB(STB_11) 32 | #define LCD_PIN_BL 17 // LCD backlight LED 33 | #endif 34 | #endif 35 | 36 | #if ENABLED(Z_PROBE_SLED) 37 | #define SLED_PIN -1 38 | #endif 39 | 40 | #define PS_ON_PIN -1 41 | #define KILL_PIN -1 42 | 43 | #define HEATER_0_PIN 13 // (extruder) 44 | #define HEATER_1_PIN -1 45 | #define HEATER_2_PIN -1 46 | 47 | #if ENABLED(SANGUINOLOLU_V_1_2) 48 | 49 | #define HEATER_BED_PIN 12 // (bed) 50 | #define X_ENABLE_PIN 14 51 | #define Y_ENABLE_PIN 14 52 | #define Z_ENABLE_PIN 26 53 | #define E0_ENABLE_PIN 14 54 | 55 | #if ENABLED(LCD_I2C_PANELOLU2) 56 | #define FAN_PIN 4 // Uses Transistor1 (PWM) on Panelolu2's Sanguino Adapter Board to drive the fan 57 | #endif 58 | 59 | #else 60 | 61 | #define HEATER_BED_PIN 14 // (bed) 62 | #define X_ENABLE_PIN -1 63 | #define Y_ENABLE_PIN -1 64 | #define Z_ENABLE_PIN -1 65 | #define E0_ENABLE_PIN -1 66 | 67 | #endif 68 | 69 | #define TEMP_0_PIN 7 // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!! (pin 33 extruder) 70 | #define TEMP_1_PIN -1 71 | #define TEMP_2_PIN -1 72 | #define TEMP_BED_PIN 6 // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!! (pin 34 bed) 73 | #define SDPOWER -1 74 | #define SDSS 31 75 | 76 | /** 77 | * On some broken versions of the Sanguino libraries the pin definitions are wrong, 78 | * which then needs SDSS as pin 24. But you should upgrade your Sanguino libraries! See #368. 79 | */ 80 | //#define SDSS 24 81 | 82 | #if ENABLED(ULTRA_LCD) && ENABLED(NEWPANEL) 83 | 84 | // No buzzer installed 85 | #define BEEPER_PIN -1 86 | 87 | // LCD Pins 88 | #if ENABLED(DOGLCD) 89 | 90 | #if ENABLED(U8GLIB_ST7920) //SPI GLCD 12864 ST7920 ( like [www.digole.com] ) For Melzi V2.0 91 | 92 | #if MB(MELZI) // Melzi board 93 | #define LCD_PINS_RS 30 //CS chip select /SS chip slave select 94 | #define LCD_PINS_ENABLE 29 //SID (MOSI) 95 | #define LCD_PINS_D4 17 //SCK (CLK) clock 96 | #define BEEPER_PIN 27 // Pin 27 is taken by LED_PIN, but Melzi LED does nothing with Marlin so this can be used for BEEPER_PIN. You can use this pin with M42 instead of BEEPER_PIN. 97 | #else // Sanguinololu 1.3 98 | #define LCD_PINS_RS 4 99 | #define LCD_PINS_ENABLE 17 100 | #define LCD_PINS_D4 30 101 | #define LCD_PINS_D5 29 102 | #define LCD_PINS_D6 28 103 | #define LCD_PINS_D7 27 104 | #endif 105 | 106 | #else // DOGM SPI LCD Support 107 | 108 | #define DOGLCD_A0 30 109 | #define DOGLCD_CS 29 110 | #define LCD_CONTRAST 1 111 | 112 | #endif 113 | 114 | // Uncomment screen orientation 115 | #define LCD_SCREEN_ROT_0 116 | //#define LCD_SCREEN_ROT_90 117 | //#define LCD_SCREEN_ROT_180 118 | //#define LCD_SCREEN_ROT_270 119 | 120 | #else // !DOGLCD - Standard Hitachi LCD controller 121 | 122 | #define LCD_PINS_RS 4 123 | #define LCD_PINS_ENABLE 17 124 | #define LCD_PINS_D4 30 125 | #define LCD_PINS_D5 29 126 | #define LCD_PINS_D6 28 127 | #define LCD_PINS_D7 27 128 | 129 | #endif // !DOGLCD 130 | 131 | //The encoder and click button 132 | #define BTN_EN1 11 133 | #define BTN_EN2 10 134 | #if ENABLED(LCD_I2C_PANELOLU2) 135 | #if MB(MELZI) 136 | #define BTN_ENC 29 137 | #define LCD_SDSS 30 // Panelolu2 SD card reader rather than the Melzi 138 | #else 139 | #define BTN_ENC 30 140 | #endif 141 | #else 142 | #define BTN_ENC 16 143 | #define LCD_SDSS 28 // Smart Controller SD card reader rather than the Melzi 144 | #endif //Panelolu2 145 | 146 | #define SD_DETECT_PIN -1 147 | 148 | #elif ENABLED(MAKRPANEL) 149 | 150 | #define BEEPER_PIN 29 151 | 152 | // Pins for DOGM SPI LCD Support 153 | #define DOGLCD_A0 30 154 | #define DOGLCD_CS 17 155 | #define LCD_PIN_BL 28 // backlight LED on PA3 156 | // GLCD features 157 | #define LCD_CONTRAST 1 158 | // Uncomment screen orientation 159 | #define LCD_SCREEN_ROT_0 160 | //#define LCD_SCREEN_ROT_90 161 | //#define LCD_SCREEN_ROT_180 162 | //#define LCD_SCREEN_ROT_270 163 | //The encoder and click button 164 | #define BTN_EN1 11 165 | #define BTN_EN2 10 166 | #define BTN_ENC 16 167 | 168 | #define SD_DETECT_PIN -1 169 | 170 | #endif // MAKRPANEL 171 | 172 | // #if FAN_PIN == 12 || FAN_PIN ==13 173 | //#define FAN_SOFT_PWM 174 | // #endif 175 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/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_MAKR3D 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 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/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 LARGE_FLASH true 13 | 14 | #define X_STEP_PIN 0 15 | #define X_DIR_PIN 1 16 | #define X_ENABLE_PIN 39 17 | 18 | #define Y_STEP_PIN 2 19 | #define Y_DIR_PIN 3 20 | #define Y_ENABLE_PIN 38 21 | 22 | #define Z_STEP_PIN 4 23 | #define Z_DIR_PIN 5 24 | #define Z_ENABLE_PIN 23 25 | 26 | #define E0_STEP_PIN 6 27 | #define E0_DIR_PIN 7 28 | #define E0_ENABLE_PIN 19 29 | 30 | #define HEATER_0_PIN 21 // Extruder 31 | #define HEATER_1_PIN -1 32 | #define HEATER_2_PIN -1 33 | #define HEATER_BED_PIN 20 // Bed 34 | #define FAN_PIN 16 // Fan -- from Teensyduino environment. 35 | // For the fan and Teensyduino uses a different pin mapping. 36 | 37 | #define X_STOP_PIN 13 38 | #define Y_STOP_PIN 14 39 | //#define Z_STOP_PIN 15 40 | #define Z_STOP_PIN 36 // For inductive sensor. 41 | 42 | #define TEMP_0_PIN 7 // Extruder / Analog pin numbering 43 | #define TEMP_BED_PIN 6 // Bed / Analog pin numbering 44 | 45 | #define TEMP_1_PIN -1 46 | #define TEMP_2_PIN -1 47 | 48 | #if DISABLED(SDSUPPORT) 49 | // these pins are defined in the SD library if building with SD support 50 | #define SCK_PIN 9 51 | #define MISO_PIN 11 52 | #define MOSI_PIN 10 53 | #endif 54 | #define SDSS 20 // PB0 - 8 in marlin env. 55 | 56 | // Extension header pin mapping 57 | // ---------------------------- 58 | // SCL (I2C)-D0 A0 (An), IO 59 | // SDA (I2C)-D1 A1 (An), IO 60 | // RX1-D2 A2 (An), IO 61 | // TX1-D3 A3 (An), IO 62 | // PWM-D24 A4 (An), IO 63 | // 5V GND 64 | // 12V GND 65 | #define EXT_AUX_SCL_D0 0 // 0 (teensy), 24 (marlin) 66 | #define EXT_AUX_SDA_D1 1 // 1 (teensy), 25 (marlin) 67 | #define EXT_AUX_RX1_D2 26 // 2 (teensy), 26 (marlin) 68 | #define EXT_AUX_TX1_D3 27 // 3 (teensy), 27 (marlin) 69 | #define EXT_AUX_PWM_D24 12 // 24 (teensy), 12 (marlin) 70 | #define EXT_AUX_A0 0 // Analog 71 | #define EXT_AUX_A0_IO 40 // Digital IO, 38 (teensy), 40 (marlin) 72 | #define EXT_AUX_A1 1 // Analog 73 | #define EXT_AUX_A1_IO 41 // Digital IO, 39 (teensy), 41 (marlin) 74 | #define EXT_AUX_A2 2 // Analog 75 | #define EXT_AUX_A2_IO 42 // Digital IO, 40 (teensy), 42 (marlin) 76 | #define EXT_AUX_A3 3 // Analog 77 | #define EXT_AUX_A3_IO 43 // Digital IO, 41 (teensy), 43 (marlin) 78 | #define EXT_AUX_A4 4 // Analog 79 | #define EXT_AUX_A4_IO 44 // Digital IO, 42 (teensy), 44 (marlin) 80 | 81 | 82 | #define SDPOWER -1 83 | #define LED_PIN -1 84 | #define PS_ON_PIN -1 85 | #define ALARM_PIN -1 86 | #define SD_DETECT_PIN -1 87 | 88 | #define BEEPER_PIN -1 89 | #define LCD_PINS_RS -1 90 | #define LCD_PINS_ENABLE -1 91 | #define LCD_PINS_D4 -1 92 | #define LCD_PINS_D5 -1 93 | #define LCD_PINS_D6 -1 94 | #define LCD_PINS_D7 -1 95 | 96 | #if ENABLED(SAV_3DLCD) 97 | // For LCD SHIFT register LCD 98 | #define SR_DATA_PIN EXT_AUX_SDA_D1 99 | #define SR_CLK_PIN EXT_AUX_SCL_D0 100 | #endif // SAV_3DLCD 101 | 102 | #if ENABLED(SAV_3DLCD) || ENABLED(SAV_3DGLCD) 103 | #define BTN_EN1 EXT_AUX_A1_IO 104 | #define BTN_EN2 EXT_AUX_A0_IO 105 | #define BTN_ENC EXT_AUX_PWM_D24 106 | 107 | #define KILL_PIN EXT_AUX_A2_IO 108 | #define HOME_PIN EXT_AUX_A4_IO 109 | #endif // SAV_3DLCD || SAV_3DGLCD 110 | 111 | #define SERVO0_PIN 41 // In teensy's pin definition for pinMode (in servo.cpp) 112 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/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 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/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 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/pins_TEENSY2.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Teensy++ 2.0 Breadboard 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 | * CLI build: DEFINES=AT90USBxx_TEENSYPP_ASSIGNMENTS HARDWARE_MOTHERBOARD=84 make 8 | * 9 | * DaveX plan for Teensylu/printrboard-type pinouts for a TeensyBreadboard: 10 | * (ref teensylu & sprinter) 11 | * 12 | * USB 13 | * GND GND |-----#####-----| +5V ATX +5SB 14 | * ATX PS_ON PWM 27 |b7 ##### b6| 26 PWM* Stepper Enable 15 | * PWM 0 |d0 b5| 25 PWM* 16 | * PWM 1 |d1 b4| 24 PWM 17 | * X_MIN 2 |d2 b3| 23 MISO_PIN 18 | * Y_MIN 3 |d3 b2| 22 MOSI_PIN 19 | * Z_MIN 4 |d4 * * b1| 21 SCK_PIN 20 | * 5 |d5 e e b0| 20 SDSS 21 | * LED 6 |d6 5 4 e7| 19 22 | * 7 |d7 e6| 18 23 | * LCD RS 8 |e0 | GND 24 | * LCD EN 9 |e1 a4 a0 R| AREF 25 | * LCD D4 10 |c0 a5 a1 f0| 38 A0 ENC_1 26 | * LCD D5 11 |c1 a6 a2 f1| 39 A1 ENC_2 27 | * LCD D6 12 |c2 a7 a3 f2| 40 A2 ENC_CLK 28 | * LCD D6 13 |c3 f3| 41 A3 29 | * Bed Heat PWM 14 |c4 V G R f4| 42 A4 30 | * Extruder Heat PWM 15 |c5 c n S f5| 43 A5 31 | * Fan PWM 16 |c6 c d T f6| 44 A6 Bed TC 32 | * 17 |c7 * * * f7| 45 A7 Extruder TC * 4.7k * +5 33 | * ----------------- 34 | * 35 | * Interior E4: 36, INT4 36 | * Interior E5: 37, INT5 37 | * Interior PA0-7: 28-35 -- Printrboard and Teensylu use these pins for step & direction: 38 | * T++ PA Signal Marlin 39 | * 40 | * Z STEP 32 a4 a0 28 X STEP 41 | * Z DIR 33 a5 a1 29 X DIR 42 | * E STEP 34 a6 a2 30 Y STEP 43 | * E DIR 35 a7 a3 31 Y DIR 44 | */ 45 | 46 | #ifndef __AVR_AT90USB1286__ 47 | #error Oops! Make sure you have 'Teensy++ 2.0' selected from the 'Tools -> Boards' menu. 48 | #endif 49 | 50 | #ifndef AT90USBxx_TEENSYPP_ASSIGNMENTS // use Teensyduino Teensy++2.0 pin assignments instead of Marlin alphabetical. 51 | #error Uncomment #define AT90USBxx_TEENSYPP_ASSIGNMENTS in fastio.h for this config 52 | // (or build from command line) 53 | #endif 54 | 55 | #define LARGE_FLASH true 56 | 57 | #define X_STEP_PIN 28 // 0 Marlin 58 | #define X_DIR_PIN 29 // 1 Marlin 59 | #define X_ENABLE_PIN 26 60 | 61 | #define Y_STEP_PIN 30 // 2 Marlin 62 | #define Y_DIR_PIN 31 // 3 63 | #define Y_ENABLE_PIN 26 // Shared w/x 64 | 65 | #define Z_STEP_PIN 32 // 4 66 | #define Z_DIR_PIN 33 // 5 67 | #define Z_ENABLE_PIN 26 // Shared w/x 68 | 69 | #define E0_STEP_PIN 34 // 6 70 | #define E0_DIR_PIN 35 // 7 71 | #define E0_ENABLE_PIN 26 // Shared w/x 72 | 73 | #define HEATER_0_PIN 15 // 21 // Extruder 74 | #define HEATER_1_PIN -1 75 | #define HEATER_2_PIN -1 76 | #define HEATER_BED_PIN 14 // 20 // Bed 77 | #define FAN_PIN 16 // 22 // Fan 78 | 79 | #define X_STOP_PIN 2 80 | #define Y_STOP_PIN 3 81 | #define Z_STOP_PIN 4 82 | 83 | #define TEMP_0_PIN 7 // Extruder / Analog pin numbering 84 | #define TEMP_BED_PIN 6 // Bed / Analog pin numbering 85 | #define TEMP_1_PIN -1 86 | #define TEMP_2_PIN -1 87 | 88 | #define SDPOWER -1 89 | #define SD_DETECT_PIN -1 90 | #define SDSS 20 // 8 91 | #define LED_PIN 6 92 | #define PS_ON_PIN 27 93 | #define KILL_PIN -1 94 | #define ALARM_PIN -1 95 | 96 | #if DISABLED(SDSUPPORT) 97 | // these pins are defined in the SD library if building with SD support 98 | #define SCK_PIN 21 // 9 99 | #define MISO_PIN 23 // 11 100 | #define MOSI_PIN 22 // 10 101 | #endif 102 | 103 | #if ENABLED(ULTIPANEL) 104 | #define LCD_PINS_RS 8 105 | #define LCD_PINS_ENABLE 9 106 | #define LCD_PINS_D4 10 107 | #define LCD_PINS_D5 11 108 | #define LCD_PINS_D6 12 109 | #define LCD_PINS_D7 13 110 | #define BTN_EN1 38 111 | #define BTN_EN2 39 112 | #define BTN_ENC 40 113 | #endif 114 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/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 | #if ENABLED(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 LARGE_FLASH true 17 | 18 | #define X_STEP_PIN 0 19 | #define X_DIR_PIN 1 20 | #define X_ENABLE_PIN 39 21 | 22 | #define Y_STEP_PIN 2 23 | #define Y_DIR_PIN 3 24 | #define Y_ENABLE_PIN 38 25 | 26 | #define Z_STEP_PIN 4 27 | #define Z_DIR_PIN 5 28 | #define Z_ENABLE_PIN 23 29 | 30 | #define E0_STEP_PIN 6 31 | #define E0_DIR_PIN 7 32 | #define E0_ENABLE_PIN 19 33 | 34 | #define HEATER_0_PIN 21 // Extruder 35 | #define HEATER_1_PIN 46 36 | #define HEATER_2_PIN 47 37 | #define HEATER_BED_PIN 20 38 | 39 | // If soft or fast PWM is off then use Teensyduino pin numbering, Marlin 40 | // fastio pin numbering otherwise 41 | #if ENABLED(FAN_SOFT_PWM) || ENABLED(FAST_PWM_FAN) 42 | #define FAN_PIN 22 43 | #else 44 | #define FAN_PIN 16 45 | #endif 46 | 47 | #define X_STOP_PIN 13 48 | #define Y_STOP_PIN 14 49 | #define Z_STOP_PIN 15 50 | #define TEMP_0_PIN 7 // Extruder / Analog pin numbering 51 | #define TEMP_BED_PIN 6 // Bed / Analog pin numbering 52 | 53 | #define TEMP_1_PIN -1 54 | #define TEMP_2_PIN -1 55 | 56 | #define SDPOWER -1 57 | #define SDSS 8 58 | #define LED_PIN -1 59 | #define PS_ON_PIN -1 60 | #define KILL_PIN -1 61 | #define ALARM_PIN -1 62 | 63 | #if DISABLED(SDSUPPORT) 64 | // these pins are defined in the SD library if building with SD support 65 | #define SCK_PIN 9 66 | #define MISO_PIN 11 67 | #define MOSI_PIN 10 68 | #endif 69 | 70 | #if ENABLED(ULTRA_LCD) && ENABLED(NEWPANEL) 71 | 72 | #define BEEPER_PIN -1 73 | 74 | #if ENABLED(LCD_I2C_PANELOLU2) 75 | #define BTN_EN1 27 //RX1 - fastio.h pin mapping 27 76 | #define BTN_EN2 26 //TX1 - fastio.h pin mapping 26 77 | #define BTN_ENC 43 //A3 - fastio.h pin mapping 43 78 | #define SDSS 40 //use SD card on Panelolu2 (Teensyduino pin mapping) 79 | #endif // LCD_I2C_PANELOLU2 80 | 81 | #define SD_DETECT_PIN -1 82 | 83 | #endif // ULTRA_LCD && NEWPANEL 84 | 85 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/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 | #define BEEPER_PIN 18 62 | 63 | #define LCD_PINS_RS 20 64 | #define LCD_PINS_ENABLE 15 65 | #define LCD_PINS_D4 14 66 | #define LCD_PINS_D5 21 67 | #define LCD_PINS_D6 5 68 | #define LCD_PINS_D7 6 69 | 70 | //buttons are directly attached 71 | #define BTN_EN1 40 72 | #define BTN_EN2 41 73 | #define BTN_ENC 19 //the click 74 | 75 | #define BLEN_C 2 76 | #define BLEN_B 1 77 | #define BLEN_A 0 78 | 79 | #define SD_DETECT_PIN 39 80 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/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 SERVO0_PIN 13 // untested 12 | 13 | #define X_STEP_PIN 25 14 | #define X_DIR_PIN 23 15 | #define X_MIN_PIN 22 16 | #define X_MAX_PIN 24 17 | #define X_ENABLE_PIN 27 18 | 19 | #define Y_STEP_PIN 31 20 | #define Y_DIR_PIN 33 21 | #define Y_MIN_PIN 26 22 | #define Y_MAX_PIN 28 23 | #define Y_ENABLE_PIN 29 24 | 25 | #define Z_STEP_PIN 37 26 | #define Z_DIR_PIN 39 27 | #define Z_MIN_PIN 30 28 | #define Z_MAX_PIN 32 29 | #define Z_ENABLE_PIN 35 30 | 31 | #define HEATER_BED_PIN 4 32 | #define TEMP_BED_PIN 10 33 | 34 | #define HEATER_0_PIN 2 35 | #define TEMP_0_PIN 8 36 | 37 | #define HEATER_1_PIN 3 38 | #define TEMP_1_PIN 9 39 | 40 | #define HEATER_2_PIN -1 41 | #define TEMP_2_PIN -1 42 | 43 | #define E0_STEP_PIN 43 44 | #define E0_DIR_PIN 45 45 | #define E0_ENABLE_PIN 41 46 | 47 | #define E1_STEP_PIN 49 48 | #define E1_DIR_PIN 47 49 | #define E1_ENABLE_PIN 48 50 | 51 | #define SDPOWER -1 52 | #define SDSS 53 53 | #define LED_PIN 13 54 | #define FAN_PIN 7 55 | #define PS_ON_PIN 12 56 | #define KILL_PIN -1 57 | #define SUICIDE_PIN 54 //PIN that has to be turned on right after start, to keep power flowing. 58 | 59 | #if ENABLED(ULTRA_LCD) 60 | 61 | #define BEEPER_PIN 18 62 | 63 | #if ENABLED(NEWPANEL) 64 | 65 | #define LCD_PINS_RS 20 66 | #define LCD_PINS_ENABLE 17 67 | #define LCD_PINS_D4 16 68 | #define LCD_PINS_D5 21 69 | #define LCD_PINS_D6 5 70 | #define LCD_PINS_D7 6 71 | 72 | //buttons are directly attached 73 | #define BTN_EN1 40 74 | #define BTN_EN2 42 75 | #define BTN_ENC 19 76 | 77 | #define SD_DETECT_PIN 38 78 | 79 | #else //!NEWPANEL - Old style panel with shift register 80 | 81 | //buttons are attached to a shift register 82 | #define SHIFT_CLK 38 83 | #define SHIFT_LD 42 84 | #define SHIFT_OUT 40 85 | #define SHIFT_EN 17 86 | 87 | #define LCD_PINS_RS 16 88 | #define LCD_PINS_ENABLE 5 89 | #define LCD_PINS_D4 6 90 | #define LCD_PINS_D5 21 91 | #define LCD_PINS_D6 20 92 | #define LCD_PINS_D7 19 93 | 94 | #define SD_DETECT_PIN -1 95 | 96 | #endif // !NEWPANEL 97 | 98 | #endif // ULTRA_LCD 99 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/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 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/qr_solve.h: -------------------------------------------------------------------------------- 1 | #include "Configuration.h" 2 | 3 | #if ENABLED(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 | void qr_solve(double x[], int m, int n, double a[], double b[]); 21 | 22 | #endif 23 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/scripts/createSpeedLookupTable.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | """ Generate the stepper delay lookup table for Marlin firmware. """ 4 | 5 | import argparse 6 | 7 | __author__ = "Ben Gamari " 8 | __copyright__ = "Copyright 2012, Ben Gamari" 9 | __license__ = "GPL" 10 | 11 | parser = argparse.ArgumentParser(description=__doc__) 12 | parser.add_argument('-f', '--cpu-freq', type=int, default=16, help='CPU clockrate in MHz (default=16)') 13 | parser.add_argument('-d', '--divider', type=int, default=8, help='Timer/counter pre-scale divider (default=8)') 14 | args = parser.parse_args() 15 | 16 | cpu_freq = args.cpu_freq * 1000000 17 | timer_freq = cpu_freq / args.divider 18 | 19 | print "#ifndef SPEED_LOOKUPTABLE_H" 20 | print "#define SPEED_LOOKUPTABLE_H" 21 | print 22 | print '#include "Marlin.h"' 23 | print 24 | 25 | print "const uint16_t speed_lookuptable_fast[256][2] PROGMEM = {" 26 | a = [ timer_freq / ((i*256)+(args.cpu_freq*2)) for i in range(256) ] 27 | b = [ a[i] - a[i+1] for i in range(255) ] 28 | b.append(b[-1]) 29 | for i in range(32): 30 | print " ", 31 | for j in range(8): 32 | print "{%d, %d}," % (a[8*i+j], b[8*i+j]), 33 | print 34 | print "};" 35 | print 36 | 37 | print "const uint16_t speed_lookuptable_slow[256][2] PROGMEM = {" 38 | a = [ timer_freq / ((i*8)+(args.cpu_freq*2)) for i in range(256) ] 39 | b = [ a[i] - a[i+1] for i in range(255) ] 40 | b.append(b[-1]) 41 | for i in range(32): 42 | print " ", 43 | for j in range(8): 44 | print "{%d, %d}," % (a[8*i+j], b[8*i+j]), 45 | print 46 | print "};" 47 | print 48 | 49 | print "#endif" 50 | 51 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/scripts/g29_auto.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python3 2 | 3 | # This file is for preprocessing gcode and the new G29 Autobedleveling from Marlin 4 | # It will analyse the first 2 Layer and return the maximum size for this part 5 | # After this it will replace with g29_keyword = ';MarlinG29Script' with the new G29 LRFB 6 | # the new file will be created in the same folder. 7 | 8 | # your gcode-file/folder 9 | folder = './' 10 | my_file = 'test.gcode' 11 | 12 | # this is the minimum of G1 instructions which should be between 2 different heights 13 | min_g1 = 3 14 | 15 | # maximum number of lines to parse, I don't want to parse the complete file 16 | # only the first plane is we are interested in 17 | max_g1 = 100000000 18 | 19 | # g29 keyword 20 | g29_keyword = 'g29' 21 | g29_keyword = g29_keyword.upper() 22 | 23 | # output filename 24 | output_file = folder + 'g29_' + my_file 25 | # input filename 26 | input_file = folder + my_file 27 | 28 | # minimum scan size 29 | min_size = 40 30 | probing_points = 3 # points x points 31 | 32 | # other stuff 33 | min_x = 500 34 | min_y = min_x 35 | max_x = -500 36 | max_y = max_x 37 | last_z = 0.001 38 | 39 | layer = 0 40 | lines_of_g1 = 0 41 | 42 | gcode = [] 43 | 44 | 45 | # return only g1-lines 46 | def has_g1(line): 47 | return line[:2].upper() == "G1" 48 | 49 | 50 | # find position in g1 (x,y,z) 51 | def find_axis(line, axis): 52 | found = False 53 | number = "" 54 | for char in line: 55 | if found: 56 | if char == ".": 57 | number += char 58 | elif char == "-": 59 | number += char 60 | else: 61 | try: 62 | int(char) 63 | number += char 64 | except ValueError: 65 | break 66 | else: 67 | found = char.upper() == axis.upper() 68 | try: 69 | return float(number) 70 | except ValueError: 71 | return None 72 | 73 | 74 | # save the min or max-values for each axis 75 | def set_mima(line): 76 | global min_x, max_x, min_y, max_y, last_z 77 | 78 | current_x = find_axis(line, 'x') 79 | current_y = find_axis(line, 'y') 80 | 81 | if current_x is not None: 82 | min_x = min(current_x, min_x) 83 | max_x = max(current_x, max_x) 84 | if current_y is not None: 85 | min_y = min(current_y, min_y) 86 | max_y = max(current_y, max_y) 87 | 88 | return min_x, max_x, min_y, max_y 89 | 90 | 91 | # find z in the code and return it 92 | def find_z(gcode, start_at_line=0): 93 | for i in range(start_at_line, len(gcode)): 94 | my_z = find_axis(gcode[i], 'Z') 95 | if my_z is not None: 96 | return my_z, i 97 | 98 | 99 | def z_parse(gcode, start_at_line=0, end_at_line=0): 100 | i = start_at_line 101 | all_z = [] 102 | line_between_z = [] 103 | z_at_line = [] 104 | # last_z = 0 105 | last_i = -1 106 | 107 | while len(gcode) > i: 108 | try: 109 | z, i = find_z(gcode, i + 1) 110 | except TypeError: 111 | break 112 | 113 | all_z.append(z) 114 | z_at_line.append(i) 115 | temp_line = i - last_i -1 116 | line_between_z.append(i - last_i - 1) 117 | # last_z = z 118 | last_i = i 119 | if 0 < end_at_line <= i or temp_line >= min_g1: 120 | # print('break at line {} at heigth {}'.format(i, z)) 121 | break 122 | 123 | line_between_z = line_between_z[1:] 124 | return all_z, line_between_z, z_at_line 125 | 126 | 127 | # get the lines which should be the first layer 128 | def get_lines(gcode, minimum): 129 | i = 0 130 | all_z, line_between_z, z_at_line = z_parse(gcode, end_at_line=max_g1) 131 | for count in line_between_z: 132 | i += 1 133 | if count > minimum: 134 | # print('layer: {}:{}'.format(z_at_line[i-1], z_at_line[i])) 135 | return z_at_line[i - 1], z_at_line[i] 136 | 137 | 138 | with open(input_file, 'r') as file: 139 | lines = 0 140 | for line in file: 141 | lines += 1 142 | if lines > 1000: 143 | break 144 | if has_g1(line): 145 | gcode.append(line) 146 | file.close() 147 | 148 | start, end = get_lines(gcode, min_g1) 149 | for i in range(start, end): 150 | set_mima(gcode[i]) 151 | 152 | print('x_min:{} x_max:{}\ny_min:{} y_max:{}'.format(min_x, max_x, min_y, max_y)) 153 | 154 | # resize min/max - values for minimum scan 155 | if max_x - min_x < min_size: 156 | offset_x = int((min_size - (max_x - min_x)) / 2 + 0.5) # int round up 157 | # print('min_x! with {}'.format(int(max_x - min_x))) 158 | min_x = int(min_x) - offset_x 159 | max_x = int(max_x) + offset_x 160 | if max_y - min_y < min_size: 161 | offset_y = int((min_size - (max_y - min_y)) / 2 + 0.5) # int round up 162 | # print('min_y! with {}'.format(int(max_y - min_y))) 163 | min_y = int(min_y) - offset_y 164 | max_y = int(max_y) + offset_y 165 | 166 | 167 | new_command = 'G29 L{0} R{1} F{2} B{3} P{4}\n'.format(min_x, 168 | max_x, 169 | min_y, 170 | max_y, 171 | probing_points) 172 | 173 | out_file = open(output_file, 'w') 174 | in_file = open(input_file, 'r') 175 | 176 | for line in in_file: 177 | if line[:len(g29_keyword)].upper() == g29_keyword: 178 | out_file.write(new_command) 179 | print('write G29') 180 | else: 181 | out_file.write(line) 182 | 183 | file.close() 184 | out_file.close() 185 | 186 | print('auto G29 finished') 187 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/stepper.h: -------------------------------------------------------------------------------- 1 | /* 2 | stepper.h - stepper motor driver: executes motion plans of planner.c using the stepper motors 3 | Part of Grbl 4 | 5 | Copyright (c) 2009-2011 Simen Svale Skogsrud 6 | 7 | Grbl 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 | Grbl 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 Grbl. If not, see . 19 | */ 20 | 21 | #ifndef stepper_h 22 | #define stepper_h 23 | 24 | #include "planner.h" 25 | #include "stepper_indirection.h" 26 | 27 | #if EXTRUDERS > 3 28 | #define E_STEP_WRITE(v) { if(current_block->active_extruder == 3) { E3_STEP_WRITE(v); } else { if(current_block->active_extruder == 2) { E2_STEP_WRITE(v); } else { if(current_block->active_extruder == 1) { E1_STEP_WRITE(v); } else { E0_STEP_WRITE(v); }}}} 29 | #define NORM_E_DIR() { if(current_block->active_extruder == 3) { E3_DIR_WRITE( !INVERT_E3_DIR); } else { if(current_block->active_extruder == 2) { E2_DIR_WRITE(!INVERT_E2_DIR); } else { if(current_block->active_extruder == 1) { E1_DIR_WRITE(!INVERT_E1_DIR); } else { E0_DIR_WRITE(!INVERT_E0_DIR); }}}} 30 | #define REV_E_DIR() { if(current_block->active_extruder == 3) { E3_DIR_WRITE(INVERT_E3_DIR); } else { if(current_block->active_extruder == 2) { E2_DIR_WRITE(INVERT_E2_DIR); } else { if(current_block->active_extruder == 1) { E1_DIR_WRITE(INVERT_E1_DIR); } else { E0_DIR_WRITE(INVERT_E0_DIR); }}}} 31 | #elif EXTRUDERS > 2 32 | #define E_STEP_WRITE(v) { if(current_block->active_extruder == 2) { E2_STEP_WRITE(v); } else { if(current_block->active_extruder == 1) { E1_STEP_WRITE(v); } else { E0_STEP_WRITE(v); }}} 33 | #define NORM_E_DIR() { if(current_block->active_extruder == 2) { E2_DIR_WRITE(!INVERT_E2_DIR); } else { if(current_block->active_extruder == 1) { E1_DIR_WRITE(!INVERT_E1_DIR); } else { E0_DIR_WRITE(!INVERT_E0_DIR); }}} 34 | #define REV_E_DIR() { if(current_block->active_extruder == 2) { E2_DIR_WRITE(INVERT_E2_DIR); } else { if(current_block->active_extruder == 1) { E1_DIR_WRITE(INVERT_E1_DIR); } else { E0_DIR_WRITE(INVERT_E0_DIR); }}} 35 | #elif EXTRUDERS > 1 36 | #if DISABLED(DUAL_X_CARRIAGE) 37 | #define E_STEP_WRITE(v) { if(current_block->active_extruder == 1) { E1_STEP_WRITE(v); } else { E0_STEP_WRITE(v); }} 38 | #define NORM_E_DIR() { if(current_block->active_extruder == 1) { E1_DIR_WRITE(!INVERT_E1_DIR); } else { E0_DIR_WRITE(!INVERT_E0_DIR); }} 39 | #define REV_E_DIR() { if(current_block->active_extruder == 1) { E1_DIR_WRITE(INVERT_E1_DIR); } else { E0_DIR_WRITE(INVERT_E0_DIR); }} 40 | #else 41 | extern bool extruder_duplication_enabled; 42 | #define E_STEP_WRITE(v) { if(extruder_duplication_enabled) { E0_STEP_WRITE(v); E1_STEP_WRITE(v); } else if(current_block->active_extruder == 1) { E1_STEP_WRITE(v); } else { E0_STEP_WRITE(v); }} 43 | #define NORM_E_DIR() { if(extruder_duplication_enabled) { E0_DIR_WRITE(!INVERT_E0_DIR); E1_DIR_WRITE(!INVERT_E1_DIR); } else if(current_block->active_extruder == 1) { E1_DIR_WRITE(!INVERT_E1_DIR); } else { E0_DIR_WRITE(!INVERT_E0_DIR); }} 44 | #define REV_E_DIR() { if(extruder_duplication_enabled) { E0_DIR_WRITE(INVERT_E0_DIR); E1_DIR_WRITE(INVERT_E1_DIR); } else if(current_block->active_extruder == 1) { E1_DIR_WRITE(INVERT_E1_DIR); } else { E0_DIR_WRITE(INVERT_E0_DIR); }} 45 | #endif 46 | #else 47 | #define E_STEP_WRITE(v) E0_STEP_WRITE(v) 48 | #define NORM_E_DIR() E0_DIR_WRITE(!INVERT_E0_DIR) 49 | #define REV_E_DIR() E0_DIR_WRITE(INVERT_E0_DIR) 50 | #endif 51 | 52 | #if ENABLED(ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLED) 53 | extern bool abort_on_endstop_hit; 54 | #endif 55 | 56 | // Initialize and start the stepper motor subsystem 57 | void st_init(); 58 | 59 | // Block until all buffered steps are executed 60 | void st_synchronize(); 61 | 62 | // Set current position in steps 63 | void st_set_position(const long& x, const long& y, const long& z, const long& e); 64 | void st_set_e_position(const long& e); 65 | 66 | // Get current position in steps 67 | long st_get_position(uint8_t axis); 68 | 69 | // Get current position in mm 70 | float st_get_position_mm(AxisEnum axis); 71 | 72 | // The stepper subsystem goes to sleep when it runs out of things to execute. Call this 73 | // to notify the subsystem that it is time to go to work. 74 | void st_wake_up(); 75 | 76 | 77 | void checkHitEndstops(); //call from somewhere to create an serial error message with the locations the endstops where hit, in case they were triggered 78 | void endstops_hit_on_purpose(); //avoid creation of the message, i.e. after homing and before a routine call of checkHitEndstops(); 79 | 80 | void enable_endstops(bool check); // Enable/disable endstop checking 81 | 82 | void checkStepperErrors(); //Print errors detected by the stepper 83 | 84 | void finishAndDisableSteppers(); 85 | 86 | extern block_t* current_block; // A pointer to the block currently being traced 87 | 88 | void quickStop(); 89 | 90 | void digitalPotWrite(int address, int value); 91 | void microstep_ms(uint8_t driver, int8_t ms1, int8_t ms2); 92 | void microstep_mode(uint8_t driver, uint8_t stepping); 93 | void digipot_init(); 94 | void digipot_current(uint8_t driver, int current); 95 | void microstep_init(); 96 | void microstep_readings(); 97 | 98 | #if ENABLED(Z_DUAL_ENDSTOPS) 99 | void In_Homing_Process(bool state); 100 | void Lock_z_motor(bool state); 101 | void Lock_z2_motor(bool state); 102 | #endif 103 | 104 | #if ENABLED(BABYSTEPPING) 105 | void babystep(const uint8_t axis, const bool direction); // perform a short step with a single stepper motor, outside of any convention 106 | #endif 107 | 108 | #endif 109 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/temperature.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Creality3DPrinting/CR-10S/e0c5b1cb49a90b703fe86c5f1acc22cc13462382/CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/temperature.cpp -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/temperature.h: -------------------------------------------------------------------------------- 1 | /* 2 | temperature.h - temperature controller 3 | Part of Marlin 4 | 5 | Copyright (c) 2011 Erik van der Zalm 6 | 7 | Grbl 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 | Grbl 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 Grbl. If not, see . 19 | */ 20 | 21 | #ifndef TEMPERATURE_H 22 | #define TEMPERATURE_H 23 | 24 | #include "Marlin.h" 25 | #include "planner.h" 26 | #if ENABLED(PID_ADD_EXTRUSION_RATE) 27 | #include "stepper.h" 28 | #endif 29 | 30 | // public functions 31 | void tp_init(); //initialize the heating 32 | void manage_heater(); //it is critical that this is called periodically. 33 | 34 | #if ENABLED(FILAMENT_SENSOR) 35 | // For converting raw Filament Width to milimeters 36 | float analog2widthFil(); 37 | 38 | // For converting raw Filament Width to an extrusion ratio 39 | int widthFil_to_size_ratio(); 40 | #endif 41 | 42 | // low level conversion routines 43 | // do not use these routines and variables outside of temperature.cpp 44 | extern int target_temperature[4]; 45 | extern float current_temperature[4]; 46 | #if ENABLED(SHOW_TEMP_ADC_VALUES) 47 | extern int current_temperature_raw[4]; 48 | extern int current_temperature_bed_raw; 49 | #endif 50 | extern int target_temperature_bed; 51 | extern float current_temperature_bed; 52 | #if ENABLED(TEMP_SENSOR_1_AS_REDUNDANT) 53 | extern float redundant_temperature; 54 | #endif 55 | 56 | #if HAS_CONTROLLERFAN 57 | extern unsigned char soft_pwm_bed; 58 | #endif 59 | 60 | #if ENABLED(PIDTEMP) 61 | 62 | #if ENABLED(PID_PARAMS_PER_EXTRUDER) 63 | extern float Kp[EXTRUDERS], Ki[EXTRUDERS], Kd[EXTRUDERS], Kc[EXTRUDERS]; // one param per extruder 64 | #define PID_PARAM(param,e) param[e] // use macro to point to array value 65 | #else 66 | extern float Kp, Ki, Kd, Kc; // one param per extruder - saves 20 or 36 bytes of ram (inc array pointer) 67 | #define PID_PARAM(param, e) param // use macro to point directly to value 68 | #endif // PID_PARAMS_PER_EXTRUDER 69 | float scalePID_i(float i); 70 | float scalePID_d(float d); 71 | float unscalePID_i(float i); 72 | float unscalePID_d(float d); 73 | 74 | #endif 75 | 76 | #if ENABLED(PIDTEMPBED) 77 | extern float bedKp, bedKi, bedKd; 78 | #endif 79 | 80 | #if ENABLED(BABYSTEPPING) 81 | extern volatile int babystepsTodo[3]; 82 | #endif 83 | 84 | //high level conversion routines, for use outside of temperature.cpp 85 | //inline so that there is no performance decrease. 86 | //deg=degreeCelsius 87 | 88 | FORCE_INLINE float degHotend(uint8_t extruder) { return current_temperature[extruder]; } 89 | FORCE_INLINE float degBed() { return current_temperature_bed; } 90 | 91 | #if ENABLED(SHOW_TEMP_ADC_VALUES) 92 | FORCE_INLINE float rawHotendTemp(uint8_t extruder) { return current_temperature_raw[extruder]; } 93 | FORCE_INLINE float rawBedTemp() { return current_temperature_bed_raw; } 94 | #endif 95 | 96 | FORCE_INLINE float degTargetHotend(uint8_t extruder) { return target_temperature[extruder]; } 97 | FORCE_INLINE float degTargetBed() { return target_temperature_bed; } 98 | 99 | #if ENABLED(THERMAL_PROTECTION_HOTENDS) 100 | void start_watching_heater(int e = 0); 101 | #endif 102 | 103 | FORCE_INLINE void setTargetHotend(const float& celsius, uint8_t extruder) { 104 | target_temperature[extruder] = celsius; 105 | #if ENABLED(THERMAL_PROTECTION_HOTENDS) 106 | start_watching_heater(extruder); 107 | #endif 108 | } 109 | FORCE_INLINE void setTargetBed(const float& celsius) { target_temperature_bed = celsius; } 110 | 111 | FORCE_INLINE bool isHeatingHotend(uint8_t extruder) { return target_temperature[extruder] > current_temperature[extruder]; } 112 | FORCE_INLINE bool isHeatingBed() { return target_temperature_bed > current_temperature_bed; } 113 | 114 | FORCE_INLINE bool isCoolingHotend(uint8_t extruder) { return target_temperature[extruder] < current_temperature[extruder]; } 115 | FORCE_INLINE bool isCoolingBed() { return target_temperature_bed < current_temperature_bed; } 116 | 117 | #define HOTEND_ROUTINES(NR) \ 118 | FORCE_INLINE float degHotend##NR() { return degHotend(NR); } \ 119 | FORCE_INLINE float degTargetHotend##NR() { return degTargetHotend(NR); } \ 120 | FORCE_INLINE void setTargetHotend##NR(const float c) { setTargetHotend(c, NR); } \ 121 | FORCE_INLINE bool isHeatingHotend##NR() { return isHeatingHotend(NR); } \ 122 | FORCE_INLINE bool isCoolingHotend##NR() { return isCoolingHotend(NR); } 123 | HOTEND_ROUTINES(0); 124 | #if EXTRUDERS > 1 125 | HOTEND_ROUTINES(1); 126 | #else 127 | #define setTargetHotend1(c) do{}while(0) 128 | #endif 129 | #if EXTRUDERS > 2 130 | HOTEND_ROUTINES(2); 131 | #else 132 | #define setTargetHotend2(c) do{}while(0) 133 | #endif 134 | #if EXTRUDERS > 3 135 | HOTEND_ROUTINES(3); 136 | #else 137 | #define setTargetHotend3(c) do{}while(0) 138 | #endif 139 | 140 | int getHeaterPower(int heater); 141 | void disable_all_heaters(); 142 | void updatePID(); 143 | 144 | void PID_autotune(float temp, int extruder, int ncycles); 145 | 146 | void setExtruderAutoFanState(int pin, bool state); 147 | void checkExtruderAutoFans(); 148 | 149 | FORCE_INLINE void autotempShutdown() { 150 | #if ENABLED(AUTOTEMP) 151 | if (autotemp_enabled) { 152 | autotemp_enabled = false; 153 | if (degTargetHotend(active_extruder) > autotemp_min) 154 | setTargetHotend(0, active_extruder); 155 | } 156 | #endif 157 | } 158 | 159 | #endif // TEMPERATURE_H 160 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/ultralcd.h: -------------------------------------------------------------------------------- 1 | #ifndef ULTRALCD_H 2 | #define ULTRALCD_H 3 | 4 | #include "Marlin.h" 5 | #if ENABLED(ULTRA_LCD) 6 | #include "buzzer.h" 7 | 8 | int lcd_strlen(char* s); 9 | int lcd_strlen_P(const char* s); 10 | void lcd_update(); 11 | void lcd_init(); 12 | bool lcd_hasstatus(); 13 | void lcd_setstatus(const char* message, const bool persist=false); 14 | void lcd_setstatuspgm(const char* message, const uint8_t level=0); 15 | void lcd_setalertstatuspgm(const char* message); 16 | void lcd_reset_alert_level(); 17 | bool lcd_detected(void); 18 | 19 | #if ENABLED(LCD_USE_I2C_BUZZER) 20 | void lcd_buzz(long duration, uint16_t freq); 21 | #endif 22 | 23 | #if ENABLED(LCD_PROGRESS_BAR) && PROGRESS_MSG_EXPIRE > 0 24 | void dontExpireStatus(); 25 | #endif 26 | 27 | #if ENABLED(DOGLCD) 28 | extern int lcd_contrast; 29 | void lcd_setcontrast(uint8_t value); 30 | #endif 31 | 32 | #define LCD_MESSAGEPGM(x) lcd_setstatuspgm(PSTR(x)) 33 | #define LCD_ALERTMESSAGEPGM(x) lcd_setalertstatuspgm(PSTR(x)) 34 | 35 | #define LCD_UPDATE_INTERVAL 100 36 | #define LCD_TIMEOUT_TO_STATUS 120000 37 | #define led_off_time 180000 38 | 39 | #if ENABLED(ULTIPANEL) 40 | void lcd_buttons_update(); 41 | extern volatile uint8_t buttons; //the last checked buttons in a bit array. 42 | #if ENABLED(REPRAPWORLD_KEYPAD) 43 | extern volatile uint8_t buttons_reprapworld_keypad; // to store the keypad shift register values 44 | #endif 45 | #else 46 | FORCE_INLINE void lcd_buttons_update() {} 47 | #endif 48 | 49 | extern int plaPreheatHotendTemp; 50 | extern int plaPreheatHPBTemp; 51 | extern int plaPreheatFanSpeed; 52 | extern int absPreheatHotendTemp; 53 | extern int absPreheatHPBTemp; 54 | extern int absPreheatFanSpeed; 55 | 56 | extern bool cancel_heatup; 57 | 58 | #if ENABLED(FILAMENT_LCD_DISPLAY) 59 | extern millis_t previous_lcd_status_ms; 60 | #endif 61 | void lcd_quick_feedback(); // Audible feedback for a button click - could also be visual 62 | bool lcd_clicked(); 63 | 64 | void lcd_ignore_click(bool b=true); 65 | 66 | #if ENABLED(NEWPANEL) 67 | #define EN_C BIT(BLEN_C) 68 | #define EN_B BIT(BLEN_B) 69 | #define EN_A BIT(BLEN_A) 70 | 71 | #define LCD_CLICKED (buttons&EN_C) 72 | #if ENABLED(REPRAPWORLD_KEYPAD) 73 | #define EN_REPRAPWORLD_KEYPAD_F3 (BIT(BLEN_REPRAPWORLD_KEYPAD_F3)) 74 | #define EN_REPRAPWORLD_KEYPAD_F2 (BIT(BLEN_REPRAPWORLD_KEYPAD_F2)) 75 | #define EN_REPRAPWORLD_KEYPAD_F1 (BIT(BLEN_REPRAPWORLD_KEYPAD_F1)) 76 | #define EN_REPRAPWORLD_KEYPAD_UP (BIT(BLEN_REPRAPWORLD_KEYPAD_UP)) 77 | #define EN_REPRAPWORLD_KEYPAD_RIGHT (BIT(BLEN_REPRAPWORLD_KEYPAD_RIGHT)) 78 | #define EN_REPRAPWORLD_KEYPAD_MIDDLE (BIT(BLEN_REPRAPWORLD_KEYPAD_MIDDLE)) 79 | #define EN_REPRAPWORLD_KEYPAD_DOWN (BIT(BLEN_REPRAPWORLD_KEYPAD_DOWN)) 80 | #define EN_REPRAPWORLD_KEYPAD_LEFT (BIT(BLEN_REPRAPWORLD_KEYPAD_LEFT)) 81 | 82 | #define LCD_CLICKED ((buttons&EN_C) || (buttons_reprapworld_keypad&EN_REPRAPWORLD_KEYPAD_F1)) 83 | #define REPRAPWORLD_KEYPAD_MOVE_Z_UP (buttons_reprapworld_keypad&EN_REPRAPWORLD_KEYPAD_F2) 84 | #define REPRAPWORLD_KEYPAD_MOVE_Z_DOWN (buttons_reprapworld_keypad&EN_REPRAPWORLD_KEYPAD_F3) 85 | #define REPRAPWORLD_KEYPAD_MOVE_X_LEFT (buttons_reprapworld_keypad&EN_REPRAPWORLD_KEYPAD_LEFT) 86 | #define REPRAPWORLD_KEYPAD_MOVE_X_RIGHT (buttons_reprapworld_keypad&EN_REPRAPWORLD_KEYPAD_RIGHT) 87 | #define REPRAPWORLD_KEYPAD_MOVE_Y_DOWN (buttons_reprapworld_keypad&EN_REPRAPWORLD_KEYPAD_DOWN) 88 | #define REPRAPWORLD_KEYPAD_MOVE_Y_UP (buttons_reprapworld_keypad&EN_REPRAPWORLD_KEYPAD_UP) 89 | #define REPRAPWORLD_KEYPAD_MOVE_HOME (buttons_reprapworld_keypad&EN_REPRAPWORLD_KEYPAD_MIDDLE) 90 | 91 | #define MIDDLE_BUTTON (buttons_reprapworld_keypad&EN_REPRAPWORLD_KEYPAD_MIDDLE) 92 | 93 | 94 | #endif //REPRAPWORLD_KEYPAD 95 | #else 96 | //atomic, do not change 97 | #define B_LE BIT(BL_LE) 98 | #define B_UP BIT(BL_UP) 99 | #define B_MI BIT(BL_MI) 100 | #define B_DW BIT(BL_DW) 101 | #define B_RI BIT(BL_RI) 102 | #define B_ST BIT(BL_ST) 103 | #define EN_B BIT(BLEN_B) 104 | #define EN_A BIT(BLEN_A) 105 | 106 | #define LCD_CLICKED ((buttons&B_MI)||(buttons&B_ST)) 107 | #endif//NEWPANEL 108 | 109 | #else //no LCD 110 | FORCE_INLINE void lcd_update() {} 111 | FORCE_INLINE void lcd_init() {} 112 | FORCE_INLINE bool lcd_hasstatus() { return false; } 113 | FORCE_INLINE void lcd_setstatus(const char* message, const bool persist=false) {UNUSED(message); UNUSED(persist);} 114 | FORCE_INLINE void lcd_setstatuspgm(const char* message, const uint8_t level=0) {UNUSED(message); UNUSED(level);} 115 | FORCE_INLINE void lcd_buttons_update() {} 116 | FORCE_INLINE void lcd_reset_alert_level() {} 117 | FORCE_INLINE bool lcd_detected(void) { return true; } 118 | 119 | #define LCD_MESSAGEPGM(x) do{}while(0) 120 | #define LCD_ALERTMESSAGEPGM(x) do{}while(0) 121 | 122 | #endif //ULTRA_LCD 123 | 124 | char* itostr2(const uint8_t& x); 125 | char* itostr31(const int& xx); 126 | char* itostr3(const int& xx); 127 | char* itostr3left(const int& xx); 128 | char* itostr4(const int& xx); 129 | char* itostr4sign(const int& x); 130 | 131 | char* ftostr3(const float& x); 132 | char* ftostr4sign(const float& x); 133 | char* ftostr31ns(const float& x); // float to string without sign character 134 | char* ftostr31(const float& x); 135 | char* ftostr32(const float& x); 136 | char* ftostr43(const float& x); 137 | char* ftostr12ns(const float& x); 138 | char* ftostr32sp(const float& x); // remove zero-padding from ftostr32 139 | char* ftostr5(const float& x); 140 | char* ftostr51(const float& x); 141 | char* ftostr52(const float& x); 142 | 143 | #endif //ULTRALCD_H 144 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/ultralcd_st7920_u8glib_rrd.h: -------------------------------------------------------------------------------- 1 | #ifndef ULCDST7920_H 2 | #define ULCDST7920_H 3 | 4 | #include "Marlin.h" 5 | 6 | #if ENABLED(U8GLIB_ST7920) 7 | 8 | //set optimization so ARDUINO optimizes this file 9 | #pragma GCC optimize (3) 10 | 11 | #define ST7920_CLK_PIN LCD_PINS_D4 12 | #define ST7920_DAT_PIN LCD_PINS_ENABLE 13 | #define ST7920_CS_PIN LCD_PINS_RS 14 | 15 | //#define PAGE_HEIGHT 8 //128 byte framebuffer 16 | //#define PAGE_HEIGHT 16 //256 byte framebuffer 17 | #define PAGE_HEIGHT 32 //512 byte framebuffer 18 | 19 | #define LCD_PIXEL_WIDTH 128 20 | #define LCD_PIXEL_HEIGHT 64 21 | 22 | #include 23 | 24 | static void ST7920_SWSPI_SND_8BIT(uint8_t val) { 25 | uint8_t i; 26 | for (i = 0; i < 8; i++) { 27 | WRITE(ST7920_CLK_PIN,0); 28 | #if F_CPU == 20000000 29 | __asm__("nop\n\t"); 30 | #endif 31 | WRITE(ST7920_DAT_PIN,val&0x80); 32 | val<<=1; 33 | WRITE(ST7920_CLK_PIN,1); 34 | #if F_CPU == 20000000 35 | __asm__("nop\n\t""nop\n\t"); 36 | #endif 37 | } 38 | } 39 | 40 | #define ST7920_CS() {WRITE(ST7920_CS_PIN,1);u8g_10MicroDelay();} 41 | #define ST7920_NCS() {WRITE(ST7920_CS_PIN,0);} 42 | #define ST7920_SET_CMD() {ST7920_SWSPI_SND_8BIT(0xf8);u8g_10MicroDelay();} 43 | #define ST7920_SET_DAT() {ST7920_SWSPI_SND_8BIT(0xfa);u8g_10MicroDelay();} 44 | #define ST7920_WRITE_BYTE(a) {ST7920_SWSPI_SND_8BIT((uint8_t)((a)&0xf0u));ST7920_SWSPI_SND_8BIT((uint8_t)((a)<<4u));u8g_10MicroDelay();} 45 | #define ST7920_WRITE_BYTES(p,l) {uint8_t i;for(i=0;idev_mem); 79 | y = pb->p.page_y0; 80 | ptr = (uint8_t*)pb->buf; 81 | 82 | ST7920_CS(); 83 | for (i = 0; i < PAGE_HEIGHT; i ++) { 84 | ST7920_SET_CMD(); 85 | if (y < 32) { 86 | ST7920_WRITE_BYTE(0x80 | y); //y 87 | ST7920_WRITE_BYTE(0x80); //x=0 88 | } 89 | else { 90 | ST7920_WRITE_BYTE(0x80 | (y - 32)); //y 91 | ST7920_WRITE_BYTE(0x80 | 8); //x=64 92 | } 93 | ST7920_SET_DAT(); 94 | ST7920_WRITE_BYTES(ptr, LCD_PIXEL_WIDTH / 8); //ptr is incremented inside of macro 95 | y++; 96 | } 97 | ST7920_NCS(); 98 | } 99 | break; 100 | } 101 | #if PAGE_HEIGHT == 8 102 | return u8g_dev_pb8h1_base_fn(u8g, dev, msg, arg); 103 | #elif PAGE_HEIGHT == 16 104 | return u8g_dev_pb16h1_base_fn(u8g, dev, msg, arg); 105 | #else 106 | return u8g_dev_pb32h1_base_fn(u8g, dev, msg, arg); 107 | #endif 108 | } 109 | 110 | uint8_t u8g_dev_st7920_128x64_rrd_buf[LCD_PIXEL_WIDTH * (PAGE_HEIGHT / 8)] U8G_NOCOMMON; 111 | u8g_pb_t u8g_dev_st7920_128x64_rrd_pb = {{PAGE_HEIGHT, LCD_PIXEL_HEIGHT, 0, 0, 0}, LCD_PIXEL_WIDTH, u8g_dev_st7920_128x64_rrd_buf}; 112 | u8g_dev_t u8g_dev_st7920_128x64_rrd_sw_spi = {u8g_dev_rrd_st7920_128x64_fn, &u8g_dev_st7920_128x64_rrd_pb, &u8g_com_null_fn}; 113 | 114 | class U8GLIB_ST7920_128X64_RRD : public U8GLIB { 115 | public: 116 | U8GLIB_ST7920_128X64_RRD(uint8_t dummy) : U8GLIB(&u8g_dev_st7920_128x64_rrd_sw_spi) {} 117 | }; 118 | 119 | 120 | #endif //U8GLIB_ST7920 121 | #endif //ULCDST7920_H 122 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/vector_3.cpp: -------------------------------------------------------------------------------- 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 | #include 20 | #include "Marlin.h" 21 | 22 | #if ENABLED(AUTO_BED_LEVELING_FEATURE) 23 | #include "vector_3.h" 24 | 25 | vector_3::vector_3() : x(0), y(0), z(0) { } 26 | 27 | vector_3::vector_3(float x_, float y_, float z_) : x(x_), y(y_), z(z_) { } 28 | 29 | vector_3 vector_3::cross(vector_3 left, vector_3 right) { 30 | return vector_3(left.y * right.z - left.z * right.y, 31 | left.z * right.x - left.x * right.z, 32 | left.x * right.y - left.y * right.x); 33 | } 34 | 35 | vector_3 vector_3::operator+(vector_3 v) { return vector_3((x + v.x), (y + v.y), (z + v.z)); } 36 | vector_3 vector_3::operator-(vector_3 v) { return vector_3((x - v.x), (y - v.y), (z - v.z)); } 37 | 38 | vector_3 vector_3::get_normal() { 39 | vector_3 normalized = vector_3(x, y, z); 40 | normalized.normalize(); 41 | return normalized; 42 | } 43 | 44 | float vector_3::get_length() { return sqrt((x * x) + (y * y) + (z * z)); } 45 | 46 | void vector_3::normalize() { 47 | float length = get_length(); 48 | x /= length; 49 | y /= length; 50 | z /= length; 51 | } 52 | 53 | void vector_3::apply_rotation(matrix_3x3 matrix) { 54 | float resultX = x * matrix.matrix[3 * 0 + 0] + y * matrix.matrix[3 * 1 + 0] + z * matrix.matrix[3 * 2 + 0]; 55 | float resultY = x * matrix.matrix[3 * 0 + 1] + y * matrix.matrix[3 * 1 + 1] + z * matrix.matrix[3 * 2 + 1]; 56 | float resultZ = x * matrix.matrix[3 * 0 + 2] + y * matrix.matrix[3 * 1 + 2] + z * matrix.matrix[3 * 2 + 2]; 57 | x = resultX; 58 | y = resultY; 59 | z = resultZ; 60 | } 61 | 62 | void vector_3::debug(const char title[]) { 63 | SERIAL_PROTOCOL(title); 64 | SERIAL_PROTOCOLPGM(" x: "); 65 | SERIAL_PROTOCOL_F(x, 6); 66 | SERIAL_PROTOCOLPGM(" y: "); 67 | SERIAL_PROTOCOL_F(y, 6); 68 | SERIAL_PROTOCOLPGM(" z: "); 69 | SERIAL_PROTOCOL_F(z, 6); 70 | SERIAL_EOL; 71 | } 72 | 73 | void apply_rotation_xyz(matrix_3x3 matrix, float& x, float& y, float& z) { 74 | vector_3 vector = vector_3(x, y, z); 75 | vector.apply_rotation(matrix); 76 | x = vector.x; 77 | y = vector.y; 78 | z = vector.z; 79 | } 80 | 81 | matrix_3x3 matrix_3x3::create_from_rows(vector_3 row_0, vector_3 row_1, vector_3 row_2) { 82 | //row_0.debug("row_0"); 83 | //row_1.debug("row_1"); 84 | //row_2.debug("row_2"); 85 | matrix_3x3 new_matrix; 86 | new_matrix.matrix[0] = row_0.x; new_matrix.matrix[1] = row_0.y; new_matrix.matrix[2] = row_0.z; 87 | new_matrix.matrix[3] = row_1.x; new_matrix.matrix[4] = row_1.y; new_matrix.matrix[5] = row_1.z; 88 | new_matrix.matrix[6] = row_2.x; new_matrix.matrix[7] = row_2.y; new_matrix.matrix[8] = row_2.z; 89 | //new_matrix.debug("new_matrix"); 90 | return new_matrix; 91 | } 92 | 93 | void matrix_3x3::set_to_identity() { 94 | matrix[0] = 1; matrix[1] = 0; matrix[2] = 0; 95 | matrix[3] = 0; matrix[4] = 1; matrix[5] = 0; 96 | matrix[6] = 0; matrix[7] = 0; matrix[8] = 1; 97 | } 98 | 99 | matrix_3x3 matrix_3x3::create_look_at(vector_3 target) { 100 | vector_3 z_row = target.get_normal(); 101 | vector_3 x_row = vector_3(1, 0, -target.x / target.z).get_normal(); 102 | vector_3 y_row = vector_3::cross(z_row, x_row).get_normal(); 103 | 104 | // x_row.debug("x_row"); 105 | // y_row.debug("y_row"); 106 | // z_row.debug("z_row"); 107 | 108 | // create the matrix already correctly transposed 109 | matrix_3x3 rot = matrix_3x3::create_from_rows(x_row, y_row, z_row); 110 | 111 | // rot.debug("rot"); 112 | return rot; 113 | } 114 | 115 | matrix_3x3 matrix_3x3::transpose(matrix_3x3 original) { 116 | matrix_3x3 new_matrix; 117 | new_matrix.matrix[0] = original.matrix[0]; new_matrix.matrix[1] = original.matrix[3]; new_matrix.matrix[2] = original.matrix[6]; 118 | new_matrix.matrix[3] = original.matrix[1]; new_matrix.matrix[4] = original.matrix[4]; new_matrix.matrix[5] = original.matrix[7]; 119 | new_matrix.matrix[6] = original.matrix[2]; new_matrix.matrix[7] = original.matrix[5]; new_matrix.matrix[8] = original.matrix[8]; 120 | return new_matrix; 121 | } 122 | 123 | void matrix_3x3::debug(const char title[]) { 124 | SERIAL_PROTOCOLLN(title); 125 | int count = 0; 126 | for (int i = 0; i < 3; i++) { 127 | for (int j = 0; j < 3; j++) { 128 | if (matrix[count] >= 0.0) SERIAL_PROTOCOLCHAR('+'); 129 | SERIAL_PROTOCOL_F(matrix[count], 6); 130 | SERIAL_PROTOCOLCHAR(' '); 131 | count++; 132 | } 133 | SERIAL_EOL; 134 | } 135 | } 136 | 137 | #endif // AUTO_BED_LEVELING_FEATURE 138 | 139 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/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 | #if ENABLED(AUTO_BED_LEVELING_FEATURE) 23 | class matrix_3x3; 24 | 25 | struct vector_3 { 26 | float x, y, z; 27 | 28 | vector_3(); 29 | vector_3(float x, float y, float z); 30 | 31 | static vector_3 cross(vector_3 a, vector_3 b); 32 | 33 | vector_3 operator+(vector_3 v); 34 | vector_3 operator-(vector_3 v); 35 | void normalize(); 36 | float get_length(); 37 | vector_3 get_normal(); 38 | 39 | void debug(const char title[]); 40 | 41 | void apply_rotation(matrix_3x3 matrix); 42 | }; 43 | 44 | struct matrix_3x3 { 45 | float matrix[9]; 46 | 47 | static matrix_3x3 create_from_rows(vector_3 row_0, vector_3 row_1, vector_3 row_2); 48 | static matrix_3x3 create_look_at(vector_3 target); 49 | static matrix_3x3 transpose(matrix_3x3 original); 50 | 51 | void set_to_identity(); 52 | 53 | void debug(const char title[]); 54 | }; 55 | 56 | 57 | void apply_rotation_xyz(matrix_3x3 rotationMatrix, float& x, float& y, float& z); 58 | #endif // AUTO_BED_LEVELING_FEATURE 59 | 60 | #endif // VECTOR_3_H 61 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/watchdog.cpp: -------------------------------------------------------------------------------- 1 | #include "Marlin.h" 2 | 3 | #if ENABLED(USE_WATCHDOG) 4 | 5 | #include "watchdog.h" 6 | 7 | // Initialize watchdog with a 4 sec interrupt time 8 | void watchdog_init() { 9 | #if ENABLED(WATCHDOG_RESET_MANUAL) 10 | // We enable the watchdog timer, but only for the interrupt. 11 | // Take care, as this requires the correct order of operation, with interrupts disabled. See the datasheet of any AVR chip for details. 12 | wdt_reset(); 13 | _WD_CONTROL_REG = _BV(_WD_CHANGE_BIT) | _BV(WDE); 14 | _WD_CONTROL_REG = _BV(WDIE) | WDTO_4S; 15 | #else 16 | wdt_enable(WDTO_4S); 17 | #endif 18 | } 19 | 20 | //=========================================================================== 21 | //=================================== ISR =================================== 22 | //=========================================================================== 23 | 24 | // Watchdog timer interrupt, called if main program blocks >1sec and manual reset is enabled. 25 | #if ENABLED(WATCHDOG_RESET_MANUAL) 26 | ISR(WDT_vect) { 27 | SERIAL_ERROR_START; 28 | SERIAL_ERRORLNPGM("Something is wrong, please turn off the printer."); 29 | kill(PSTR("ERR:Please Reset")); //kill blocks //16 characters so it fits on a 16x2 display 30 | while (1); //wait for user or serial reset 31 | } 32 | #endif //WATCHDOG_RESET_MANUAL 33 | 34 | #endif //USE_WATCHDOG 35 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/CR10S-Factory-Thermal-Protection-Enabled/Marlin/watchdog.h: -------------------------------------------------------------------------------- 1 | #ifndef WATCHDOG_H 2 | #define WATCHDOG_H 3 | 4 | #include "Marlin.h" 5 | #include 6 | 7 | // Initialize watchdog with a 4 second interrupt time 8 | void watchdog_init(); 9 | 10 | // Reset watchdog. MUST be called at least every 4 seconds after the 11 | // first watchdog_init or AVR will go into emergency procedures. 12 | inline void watchdog_reset() { wdt_reset(); } 13 | 14 | #endif 15 | -------------------------------------------------------------------------------- /CR-10s Firmware (Marlin)/Installing PrintedSolid Firmware Marlin.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Creality3DPrinting/CR-10S/e0c5b1cb49a90b703fe86c5f1acc22cc13462382/CR-10s Firmware (Marlin)/Installing PrintedSolid Firmware Marlin.pdf -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # CR-10S 2 | The famous, large build area, all-metal 3D printer from Creality3D 3 | 4 | --------------------------------------------------------------------------------