From d98b9d54f112e9a66cf372ffcee165b799479f31 Mon Sep 17 00:00:00 2001 From: pinchies Date: Wed, 31 Jul 2019 08:08:11 +1000 Subject: [PATCH] JGAurora A5S & A1 touch support (#14768) --- .../HAL/HAL_STM32/pinsDebug_STM32GENERIC.h | 2 + .../src/HAL/HAL_STM32F1/HAL_sdio_STM32F1.cpp | 2 + .../HAL/HAL_STM32F1/HAL_timers_STM32F1.cpp | 2 +- .../dogm/u8g_com_stm32duino_fsmc.cpp | 12 ++-- Marlin/src/feature/touch/xpt2046.cpp | 17 +++-- Marlin/src/feature/touch/xpt2046.h | 4 +- Marlin/src/pins/pins.h | 2 +- Marlin/src/pins/stm32/pins_JGAURORA_A5S_A1.h | 43 +++++++------ config/examples/JGAurora/A1/Configuration.h | 17 +++-- .../examples/JGAurora/A1/Configuration_adv.h | 60 +++++++++--------- config/examples/JGAurora/A5S/Configuration.h | 18 ++++-- .../examples/JGAurora/A5S/Configuration_adv.h | 62 +++++++++---------- platformio.ini | 5 +- 13 files changed, 131 insertions(+), 115 deletions(-) diff --git a/Marlin/src/HAL/HAL_STM32/pinsDebug_STM32GENERIC.h b/Marlin/src/HAL/HAL_STM32/pinsDebug_STM32GENERIC.h index 8281a7a07..3e66fda65 100644 --- a/Marlin/src/HAL/HAL_STM32/pinsDebug_STM32GENERIC.h +++ b/Marlin/src/HAL/HAL_STM32/pinsDebug_STM32GENERIC.h @@ -89,6 +89,8 @@ static inline bool GET_ARRAY_IS_DIGITAL(const int16_t array_pin) { ); } +#include "../../inc/MarlinConfig.h" // Allow pins/pins.h to set density + static inline void pwm_details(const pin_t pin) { if (PWM_PIN(pin)) { timer_dev * const tdev = PIN_MAP[pin].timer_device; diff --git a/Marlin/src/HAL/HAL_STM32F1/HAL_sdio_STM32F1.cpp b/Marlin/src/HAL/HAL_STM32F1/HAL_sdio_STM32F1.cpp index 24cf6c767..d2d59811a 100644 --- a/Marlin/src/HAL/HAL_STM32F1/HAL_sdio_STM32F1.cpp +++ b/Marlin/src/HAL/HAL_STM32F1/HAL_sdio_STM32F1.cpp @@ -25,6 +25,8 @@ #include +#include "../../inc/MarlinConfig.h" // Allow pins/pins.h to set density + #if defined(STM32_HIGH_DENSITY) || defined(STM32_XL_DENSITY) #include "HAL_sdio_STM32F1.h" diff --git a/Marlin/src/HAL/HAL_STM32F1/HAL_timers_STM32F1.cpp b/Marlin/src/HAL/HAL_STM32F1/HAL_timers_STM32F1.cpp index 5313064a3..faff842eb 100644 --- a/Marlin/src/HAL/HAL_STM32F1/HAL_timers_STM32F1.cpp +++ b/Marlin/src/HAL/HAL_STM32F1/HAL_timers_STM32F1.cpp @@ -57,7 +57,7 @@ void HAL_timer_start(const uint8_t timer_num, const uint32_t frequency) { case 3: irq_num = NVIC_TIMER3; break; case 4: irq_num = NVIC_TIMER4; break; case 5: irq_num = NVIC_TIMER5; break; - #ifdef STM32_HIGH_DENSITY + #if ENABLED(STM32_HIGH_DENSITY) // 6 & 7 are basic timers, avoid them case 8: irq_num = NVIC_TIMER8_CC; break; #endif diff --git a/Marlin/src/HAL/HAL_STM32F1/dogm/u8g_com_stm32duino_fsmc.cpp b/Marlin/src/HAL/HAL_STM32F1/dogm/u8g_com_stm32duino_fsmc.cpp index de1e42ddf..35b10a2a5 100644 --- a/Marlin/src/HAL/HAL_STM32F1/dogm/u8g_com_stm32duino_fsmc.cpp +++ b/Marlin/src/HAL/HAL_STM32F1/dogm/u8g_com_stm32duino_fsmc.cpp @@ -119,7 +119,7 @@ __attribute__((always_inline)) __STATIC_INLINE void __DSB(void) { #define FSMC_CS_NE1 PD7 -#ifdef STM32_XL_DENSITY +#if ENABLED(STM32_XL_DENSITY) #define FSMC_CS_NE2 PG9 #define FSMC_CS_NE3 PG10 #define FSMC_CS_NE4 PG12 @@ -151,7 +151,7 @@ __attribute__((always_inline)) __STATIC_INLINE void __DSB(void) { #define FSMC_RS_A22 PE6 #define FSMC_RS_A23 PE2 -#ifdef STM32_XL_DENSITY +#if ENABLED(STM32_XL_DENSITY) #define FSMC_RS_A24 PG13 #define FSMC_RS_A25 PG14 #endif @@ -173,7 +173,7 @@ void LCD_IO_Init(uint8_t cs, uint8_t rs) { switch (cs) { case FSMC_CS_NE1: controllerAddress = (uint32_t)FSMC_NOR_PSRAM_REGION1; break; - #ifdef STM32_XL_DENSITY + #if ENABLED(STM32_XL_DENSITY) case FSMC_CS_NE2: controllerAddress = (uint32_t)FSMC_NOR_PSRAM_REGION2; break; case FSMC_CS_NE3: controllerAddress = (uint32_t)FSMC_NOR_PSRAM_REGION3; break; case FSMC_CS_NE4: controllerAddress = (uint32_t)FSMC_NOR_PSRAM_REGION4; break; @@ -184,7 +184,7 @@ void LCD_IO_Init(uint8_t cs, uint8_t rs) { #define _ORADDR(N) controllerAddress |= (_BV32(N) - 2) switch (rs) { - #ifdef STM32_XL_DENSITY + #if ENABLED(STM32_XL_DENSITY) case FSMC_RS_A0: _ORADDR( 1); break; case FSMC_RS_A1: _ORADDR( 2); break; case FSMC_RS_A2: _ORADDR( 3); break; @@ -210,7 +210,7 @@ void LCD_IO_Init(uint8_t cs, uint8_t rs) { case FSMC_RS_A21: _ORADDR(22); break; case FSMC_RS_A22: _ORADDR(23); break; case FSMC_RS_A23: _ORADDR(24); break; - #ifdef STM32_XL_DENSITY + #if ENABLED(STM32_XL_DENSITY) case FSMC_RS_A24: _ORADDR(25); break; case FSMC_RS_A25: _ORADDR(26); break; #endif @@ -242,7 +242,7 @@ void LCD_IO_Init(uint8_t cs, uint8_t rs) { gpio_set_mode(PIN_MAP[cs].gpio_device, PIN_MAP[cs].gpio_bit, GPIO_AF_OUTPUT_PP); //FSMC_CS_NEx gpio_set_mode(PIN_MAP[rs].gpio_device, PIN_MAP[rs].gpio_bit, GPIO_AF_OUTPUT_PP); //FSMC_RS_Ax - #ifdef STM32_XL_DENSITY + #if ENABLED(STM32_XL_DENSITY) FSMC_NOR_PSRAM4_BASE->BCR = FSMC_BCR_WREN | FSMC_BCR_MTYP_SRAM | FSMC_BCR_MWID_16BITS | FSMC_BCR_MBKEN; FSMC_NOR_PSRAM4_BASE->BTR = (FSMC_DATA_SETUP_TIME << 8) | FSMC_ADDRESS_SETUP_TIME; #else // PSRAM1 for STM32F103V (high density) diff --git a/Marlin/src/feature/touch/xpt2046.cpp b/Marlin/src/feature/touch/xpt2046.cpp index a080e880c..747659dc7 100644 --- a/Marlin/src/feature/touch/xpt2046.cpp +++ b/Marlin/src/feature/touch/xpt2046.cpp @@ -63,9 +63,9 @@ void XPT2046::init(void) { uint8_t XPT2046::read_buttons() { int16_t tsoffsets[4] = { 0 }; - static uint32_t timeout = 0; - if (PENDING(millis(), timeout)) return 0; - timeout = millis() + 250; + static uint32_t touchtimeout = 0; + if (PENDING(millis(), touchtimeout)) return 0; + touchtimeout = millis() + 80; // ideally want to set this lower for the games... 30 or 40. if (tsoffsets[0] + tsoffsets[1] == 0) { // Not yet set, so use defines as fallback... @@ -82,12 +82,11 @@ uint8_t XPT2046::read_buttons() { y = uint16_t(((uint32_t(getInTouch(XPT2046_Y))) * tsoffsets[2]) >> 16) + tsoffsets[3]; if (!isTouched()) return 0; // Fingers must still be on the TS for a valid read. - if (y < 185 || y > 224) return 0; - - if (WITHIN(x, 21, 98)) encoderDiff = -(ENCODER_STEPS_PER_MENU_ITEM) * ENCODER_PULSES_PER_STEP; - else if (WITHIN(x, 121, 198)) encoderDiff = ENCODER_STEPS_PER_MENU_ITEM * ENCODER_PULSES_PER_STEP; - else if (WITHIN(x, 221, 298)) return EN_C; + if (y < 175 || y > 234) return 0; + if (WITHIN(x, 11, 109)) encoderDiff = -(ENCODER_STEPS_PER_MENU_ITEM) * ENCODER_PULSES_PER_STEP; + else if (WITHIN(x, 111, 209)) encoderDiff = ENCODER_STEPS_PER_MENU_ITEM * ENCODER_PULSES_PER_STEP; + else if (WITHIN(x, 211, 309)) return EN_C; return 0; } @@ -96,7 +95,7 @@ bool XPT2046::isTouched() { #if PIN_EXISTS(TOUCH_INT) READ(TOUCH_INT_PIN) != HIGH #else - getInTouch(XPT2046_Z1) >= XPT2046_Z1_TRESHHOLD + getInTouch(XPT2046_Z1) >= XPT2046_Z1_THRESHOLD #endif ); } diff --git a/Marlin/src/feature/touch/xpt2046.h b/Marlin/src/feature/touch/xpt2046.h index 901c3c4a4..aea840576 100644 --- a/Marlin/src/feature/touch/xpt2046.h +++ b/Marlin/src/feature/touch/xpt2046.h @@ -34,7 +34,9 @@ enum XPTCoordinate : uint8_t { XPT2046_Z2 = 0x40 }; -#define XPT2046_Z1_TRESHHOLD 10 +#ifndef XPT2046_Z1_THRESHOLD + #define XPT2046_Z1_THRESHOLD 10 +#endif class XPT2046 { public: diff --git a/Marlin/src/pins/pins.h b/Marlin/src/pins/pins.h index aed4bf1f0..0a3c16291 100644 --- a/Marlin/src/pins/pins.h +++ b/Marlin/src/pins/pins.h @@ -463,7 +463,7 @@ #elif MB(BIGTREE_SKR_E3_DIP) #include "stm32/pins_BIGTREE_SKR_E3_DIP.h" // STM32F1 env:BIGTREE_SKR_MINI #elif MB(JGAURORA_A5S_A1) - #include "stm32/pins_JGAURORA_A5S_A1.h" // STM32F1 env:JGAURORA_A5S_A1 + #include "stm32/pins_JGAURORA_A5S_A1.h" // STM32F1 env:jgaurora_a5s_a1 #elif MB(FYSETC_AIO_II) #include "stm32/pins_FYSETC_AIO_II.h" // STM32F1 env:fysetc_STM32F1 #elif MB(FYSETC_CHEETAH) diff --git a/Marlin/src/pins/stm32/pins_JGAURORA_A5S_A1.h b/Marlin/src/pins/stm32/pins_JGAURORA_A5S_A1.h index 27c7986da..6bc993845 100644 --- a/Marlin/src/pins/stm32/pins_JGAURORA_A5S_A1.h +++ b/Marlin/src/pins/stm32/pins_JGAURORA_A5S_A1.h @@ -22,35 +22,30 @@ #pragma once /** - * 2017 Victor Perez Marlin for stm32f1 test - * 2018 Modified by Pablo Crespo for Morpheus Board (https://github.com/pscrespo/Morpheus-STM32) - * 2019 Modified by Roberto Mariani & Samuel Pinches for JGAurora A5S & A1 Board. + * ╦╔═╗╔═╗┬ ┬┬─┐┌─┐┬─┐┌─┐╔═╗┌─┐┬─┐┬ ┬┌┬┐ ┌─┐┌─┐┌┬┐ + * ║║ ╦╠═╣│ │├┬┘│ │├┬┘├─┤╠╣ │ │├┬┘│ ││││ │ │ ││││ + * ╚╝╚═╝╩ ╩└─┘┴└─└─┘┴└─┴ ┴╚ └─┘┴└─└─┘┴ ┴o└─┘└─┘┴ ┴ + * Pin assignments for 32-bit JGAurora A5S & A1 */ -/** - * JGAurora A5S A1 Board pin assignments - */ - #ifndef __STM32F1__ #error "Oops! Select an STM32F1 board in 'Tools > Board.'" +#elif HOTENDS > 1 || E_STEPPERS > 1 + #error "JGAurora 32-bit board only supports 1 hotend / E-stepper. Comment out this line to continue." #endif - #define BOARD_NAME "JGAurora A5S A1 board" -// #define STM32_XL_DENSITY // required, but should be set by platformio flags, not here! (why? not sure.) - -//#define MCU_STM32F103ZE // not yet required +#define STM32_XL_DENSITY +// #define MCU_STM32F103ZE // not yet required +// Enable EEPROM Emulation for this board, so that we don't overwrite factory data // #define I2C_EEPROM // AT24C64 // #define E2END 0x7FFF // 64KB - -// Enable EEPROM Emulation for this board - -//#define FLASH_EEPROM_EMULATION 1 -//#define E2END 0xFFF // 4KB -//#define E2END uint32(EEPROM_START_ADDRESS + (EEPROM_PAGE_SIZE * 2) - 1) -//#define EEPROM_CHITCHAT -//#define DEBUG_EEPROM_READWRITE +// #define FLASH_EEPROM_EMULATION 1 +// #define E2END 0xFFF // 4KB +// #define E2END uint32(EEPROM_START_ADDRESS + (EEPROM_PAGE_SIZE * 2) - 1) +// #define EEPROM_CHITCHAT +// #define DEBUG_EEPROM_READWRITE // // Limit Switches @@ -58,6 +53,9 @@ #define X_STOP_PIN PC6 #define Y_STOP_PIN PG8 #define Z_STOP_PIN PG7 +//#define X_MAX_PIN PC5 +//#define Y_MAX_PIN PC4 +//#define Z_MAX_PIN PB0 // // Steppers @@ -96,7 +94,6 @@ #define FAN_PIN PA1 -#define PS_ON_PIN PA0 #define FIL_RUNOUT_PIN PC7 // @@ -106,6 +103,10 @@ #define FSMC_CS_PIN PD7 #define FSMC_RS_PIN PG0 +#define LCD_USE_DMA_FSMC // Use DMA transfers to send data to the TFT +#define FSMC_DMA_DEV DMA2 +#define FSMC_DMA_CHANNEL DMA_CH5 + // // SD Card // @@ -125,5 +126,3 @@ #define TOUCH_CS_PIN PA4 #define TOUCH_INT_PIN PC4 #endif - -#define NO_PAUSE_AFTER_PRINT diff --git a/config/examples/JGAurora/A1/Configuration.h b/config/examples/JGAurora/A1/Configuration.h index e7e3bf887..cdcabd30e 100644 --- a/config/examples/JGAurora/A1/Configuration.h +++ b/config/examples/JGAurora/A1/Configuration.h @@ -73,9 +73,14 @@ // User-specified version info of this build to display in [Pronterface, etc] terminal window during // startup. Implementation of an idea by Prof Braino to inform user that any changes made to this // build by the user have been successfully uploaded into firmware. + +// ╦╔═╗╔═╗┬ ┬┬─┐┌─┐┬─┐┌─┐╔═╗┌─┐┬─┐┬ ┬┌┬┐ ┌─┐┌─┐┌┬┐ +// ║║ ╦╠═╣│ │├┬┘│ │├┬┘├─┤╠╣ │ │├┬┘│ ││││ │ │ ││││ +// ╚╝╚═╝╩ ╩└─┘┴└─└─┘┴└─┴ ┴╚ └─┘┴└─└─┘┴ ┴o└─┘└─┘┴ ┴ + #define STRING_CONFIG_H_AUTHOR "(Roberto Mariani & Samuel Pinches)" // Who made the changes. #define SHOW_BOOTSCREEN -#define STRING_SPLASH_LINE1 "Marlin 2b6 (10/6/19)" // will be shown during bootup in line 1 +#define STRING_SPLASH_LINE1 "JG-A1 v2.0 (29-7-19)" // will be shown during bootup in line 1 #define STRING_SPLASH_LINE2 "JGAuroraForum.com" // will be shown during bootup in line 2 /** @@ -725,7 +730,7 @@ * Override with M203 * X, Y, Z, E0 [, E1[, E2[, E3[, E4[, E5]]]]] */ -#define DEFAULT_MAX_FEEDRATE { 360, 150, 15, 25 } +#define DEFAULT_MAX_FEEDRATE { 360, 150, 30, 40 } /** * Default Max Acceleration (change/s) change = mm/s @@ -921,7 +926,7 @@ #define Z_PROBE_SPEED_FAST HOMING_FEEDRATE_Z // Feedrate (mm/m) for the "accurate" probe of each point -#define Z_PROBE_SPEED_SLOW (Z_PROBE_SPEED_FAST / 2) +#define Z_PROBE_SPEED_SLOW (Z_PROBE_SPEED_FAST / 4) /** * Multiple Probing @@ -1330,7 +1335,7 @@ #endif // Homing speeds (mm/m) -#define HOMING_FEEDRATE_XY (50*60) +#define HOMING_FEEDRATE_XY (90*60) #define HOMING_FEEDRATE_Z (12*60) // Validate that endstops are triggered on homing moves @@ -2036,6 +2041,7 @@ // FSMC display (MKS Robin, Alfawise U20, JGAurora A5S, A1, etc.) // #define FSMC_GRAPHICAL_TFT +//#define PRINTER_EVENT_LEDS //============================================================================= //============================ Other Controllers ============================ @@ -2044,12 +2050,13 @@ // // ADS7843/XPT2046 ADC Touchscreen such as ILI9341 2.8 // -//#define TOUCH_BUTTONS +#define TOUCH_BUTTONS #if ENABLED(TOUCH_BUTTONS) #define XPT2046_X_CALIBRATION 12316 #define XPT2046_Y_CALIBRATION -8981 #define XPT2046_X_OFFSET -43 #define XPT2046_Y_OFFSET 257 + #define XPT2046_Z1_THRESHOLD 1 #endif // diff --git a/config/examples/JGAurora/A1/Configuration_adv.h b/config/examples/JGAurora/A1/Configuration_adv.h index c594dc5fc..49058c3f1 100644 --- a/config/examples/JGAurora/A1/Configuration_adv.h +++ b/config/examples/JGAurora/A1/Configuration_adv.h @@ -306,7 +306,7 @@ * * Define one or both of these to override the default 0-255 range. */ -//#define FAN_MIN_PWM 50 +#define FAN_MIN_PWM 30 //#define FAN_MAX_PWM 128 /** @@ -522,9 +522,9 @@ #define X_HOME_BUMP_MM 5 #define Y_HOME_BUMP_MM 5 #define Z_HOME_BUMP_MM 2 -#define HOMING_BUMP_DIVISOR { 2, 2, 4 } // Re-Bump Speed Divisor (Divides the Homing Feedrate) -//#define QUICK_HOME // If homing includes X and Y, do a diagonal move initially -//#define HOMING_BACKOFF_MM { 2, 2, 2 } // (mm) Move away from the endstops after homing +#define HOMING_BUMP_DIVISOR { 5, 5, 5 } // Re-Bump Speed Divisor (Divides the Homing Feedrate) +#define QUICK_HOME // If homing includes X and Y, do a diagonal move initially +#define HOMING_BACKOFF_MM { 1, 1, 0 } // (mm) Move away from the endstops after homing // When G28 is called, this option will make Y home before X //#define HOME_Y_BEFORE_X @@ -654,7 +654,7 @@ // @section lcd #if EITHER(ULTIPANEL, EXTENSIBLE_UI) - #define MANUAL_FEEDRATE { 50*60, 50*60, 4*60, 60 } // Feedrates for manual moves along X, Y, Z, E from panel + #define MANUAL_FEEDRATE { 60*60, 60*60, 10*60, 10*60 } // Feedrates for manual moves along X, Y, Z, E from panel #define SHORT_MANUAL_Z_MOVE 0.025 // (mm) Smallest manual Z move (< 0.1mm) #if ENABLED(ULTIPANEL) #define MANUAL_E_MOVES_RELATIVE // Display extruder move distance rather than "position" @@ -862,13 +862,13 @@ #endif // Scroll a longer status message into view -//#define STATUS_MESSAGE_SCROLLING +#define STATUS_MESSAGE_SCROLLING // On the Info Screen, display XY with one decimal place when possible -//#define LCD_DECIMAL_SMALL_XY +#define LCD_DECIMAL_SMALL_XY // The timeout (in ms) to return to the status screen from sub-menus -//#define LCD_TIMEOUT_TO_STATUS 15000 +#define LCD_TIMEOUT_TO_STATUS 15000 // Add an 'M73' G-code to set the current percentage //#define LCD_SET_PROGRESS_MANUALLY @@ -892,12 +892,12 @@ #if ENABLED(LED_CONTROL_MENU) #define LED_COLOR_PRESETS // Enable the Preset Color menu option #if ENABLED(LED_COLOR_PRESETS) - #define LED_USER_PRESET_RED 0 // User defined RED value - #define LED_USER_PRESET_GREEN 255 // User defined GREEN value - #define LED_USER_PRESET_BLUE 255 // User defined BLUE value + #define LED_USER_PRESET_RED 255 // User defined RED value + #define LED_USER_PRESET_GREEN 128 // User defined GREEN value + #define LED_USER_PRESET_BLUE 0 // User defined BLUE value #define LED_USER_PRESET_WHITE 255 // User defined WHITE value #define LED_USER_PRESET_BRIGHTNESS 255 // User defined intensity - #define LED_USER_PRESET_STARTUP // Have the printer display the user preset color on startup + //#define LED_USER_PRESET_STARTUP // Have the printer display the user preset color on startup #endif #endif // LED_CONTROL_MENU @@ -908,7 +908,7 @@ // as SD_DETECT_PIN in your board's pins definitions. // This setting should be disabled unless you are using a push button, pulling the pin to ground. // Note: This is always disabled for ULTIPANEL (except ELB_FULL_GRAPHIC_CONTROLLER). - //#define SD_DETECT_INVERTED + #define SD_DETECT_INVERTED #define SD_FINISHED_STEPPERRELEASE true // Disable steppers when SD Print is finished #define SD_FINISHED_RELEASECOMMAND "M84 X Y Z E" // You might want to keep the Z enabled so your bed stays in place. @@ -982,10 +982,10 @@ #endif // This allows hosts to request long names for files and folders with M33 - //#define LONG_FILENAME_HOST_SUPPORT + #define LONG_FILENAME_HOST_SUPPORT // Enable this option to scroll long filenames in the SD card menu - //#define SCROLL_LONG_FILENAMES + #define SCROLL_LONG_FILENAMES // Leave the heaters on after Stop Print (not recommended!) //#define SD_ABORT_NO_COOLDOWN @@ -1081,13 +1081,13 @@ */ #if HAS_GRAPHICAL_LCD // Show SD percentage next to the progress bar - //#define DOGM_SD_PERCENT + #define DOGM_SD_PERCENT // Enable to save many cycles by drawing a hollow frame on the Info Screen - #define XYZ_HOLLOW_FRAME + //#define XYZ_HOLLOW_FRAME // Enable to save many cycles by drawing a hollow frame on Menu Screens - #define MENU_HOLLOW_FRAME + //#define MENU_HOLLOW_FRAME // A bigger font is available for edit items. Costs 3120 bytes of PROGMEM. // Western only. Not available for Cyrillic, Kana, Turkish, Greek, or Chinese. @@ -1137,7 +1137,7 @@ //#define STATUS_ALT_BED_BITMAP // Use the alternative bed bitmap //#define STATUS_ALT_FAN_BITMAP // Use the alternative fan bitmap //#define STATUS_FAN_FRAMES 3 // :[0,1,2,3,4] Number of fan animation frames - //#define STATUS_HEAT_PERCENT // Show heating in a progress bar + #define STATUS_HEAT_PERCENT // Show heating in a progress bar //#define BOOT_MARLIN_LOGO_SMALL // Show a smaller Marlin logo on the Boot Screen (saving 399 bytes of flash) // Frivolous Game Options @@ -1184,14 +1184,14 @@ #if ENABLED(DOUBLECLICK_FOR_Z_BABYSTEPPING) #define DOUBLECLICK_MAX_INTERVAL 1250 // Maximum interval between clicks, in milliseconds. // Note: Extra time may be added to mitigate controller latency. - //#define BABYSTEP_ALWAYS_AVAILABLE // Allow babystepping at all times (not just during movement). - #define MOVE_Z_WHEN_IDLE // Jump to the move Z menu on doubleclick when printer is idle. + #define BABYSTEP_ALWAYS_AVAILABLE // Allow babystepping at all times (not just during movement). + //#define MOVE_Z_WHEN_IDLE // Jump to the move Z menu on doubleclick when printer is idle. #if ENABLED(MOVE_Z_WHEN_IDLE) #define MOVE_Z_IDLE_MULTIPLICATOR 10 // Multiply 1mm by this factor for the move step size. #endif #endif - //#define BABYSTEP_DISPLAY_TOTAL // Display total babysteps since last G28 + #define BABYSTEP_DISPLAY_TOTAL // Display total babysteps since last G28 //#define BABYSTEP_ZPROBE_OFFSET // Combine M851 Z and Babystepping #if ENABLED(BABYSTEP_ZPROBE_OFFSET) @@ -1491,23 +1491,23 @@ * Requires NOZZLE_PARK_FEATURE. * This feature is required for the default FILAMENT_RUNOUT_SCRIPT. */ -//#define ADVANCED_PAUSE_FEATURE +#define ADVANCED_PAUSE_FEATURE #if ENABLED(ADVANCED_PAUSE_FEATURE) #define PAUSE_PARK_RETRACT_FEEDRATE 60 // (mm/s) Initial retract feedrate. #define PAUSE_PARK_RETRACT_LENGTH 2 // (mm) Initial retract. // This short retract is done immediately, before parking the nozzle. - #define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // (mm/s) Unload filament feedrate. This can be pretty fast. + #define FILAMENT_CHANGE_UNLOAD_FEEDRATE 40 // (mm/s) Unload filament feedrate. This can be pretty fast. #define FILAMENT_CHANGE_UNLOAD_ACCEL 25 // (mm/s^2) Lower acceleration may allow a faster feedrate. - #define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // (mm) The length of filament for a complete unload. + #define FILAMENT_CHANGE_UNLOAD_LENGTH 820 // (mm) The length of filament for a complete unload. // For Bowden, the full length of the tube and nozzle. // For direct drive, the full length of the nozzle. // Set to 0 for manual unloading. - #define FILAMENT_CHANGE_SLOW_LOAD_FEEDRATE 6 // (mm/s) Slow move when starting load. - #define FILAMENT_CHANGE_SLOW_LOAD_LENGTH 0 // (mm) Slow length, to allow time to insert material. + #define FILAMENT_CHANGE_SLOW_LOAD_FEEDRATE 40 // (mm/s) Slow move when starting load. + #define FILAMENT_CHANGE_SLOW_LOAD_LENGTH 730 // (mm) Slow length, to allow time to insert material. // 0 to disable start loading and skip to fast load only #define FILAMENT_CHANGE_FAST_LOAD_FEEDRATE 6 // (mm/s) Load filament feedrate. This can be pretty fast. #define FILAMENT_CHANGE_FAST_LOAD_ACCEL 25 // (mm/s^2) Lower acceleration may allow a faster feedrate. - #define FILAMENT_CHANGE_FAST_LOAD_LENGTH 0 // (mm) Load length of filament, from extruder gear to nozzle. + #define FILAMENT_CHANGE_FAST_LOAD_LENGTH 75 // (mm) Load length of filament, from extruder gear to nozzle. // For Bowden, the full length of the tube and nozzle. // For direct drive, the full length of the nozzle. //#define ADVANCED_PAUSE_CONTINUOUS_PURGE // Purge continuously up to the purge length until interrupted. @@ -1528,10 +1528,10 @@ #define FILAMENT_CHANGE_ALERT_BEEPS 10 // Number of alert beeps to play when a response is needed. #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable for XYZ steppers to stay powered on during filament change. - //#define PARK_HEAD_ON_PAUSE // Park the nozzle during pause and filament change. + #define PARK_HEAD_ON_PAUSE // Park the nozzle during pause and filament change. //#define HOME_BEFORE_FILAMENT_CHANGE // Ensure homing has been completed prior to parking for filament change - //#define FILAMENT_LOAD_UNLOAD_GCODES // Add M701/M702 Load/Unload G-codes, plus Load/Unload in the LCD Prepare menu. + #define FILAMENT_LOAD_UNLOAD_GCODES // Add M701/M702 Load/Unload G-codes, plus Load/Unload in the LCD Prepare menu. //#define FILAMENT_UNLOAD_ALL_EXTRUDERS // Allow M702 to unload all extruders above a minimum target temp (as set by M302) #endif diff --git a/config/examples/JGAurora/A5S/Configuration.h b/config/examples/JGAurora/A5S/Configuration.h index 2aae34475..0e17405c1 100644 --- a/config/examples/JGAurora/A5S/Configuration.h +++ b/config/examples/JGAurora/A5S/Configuration.h @@ -73,9 +73,14 @@ // User-specified version info of this build to display in [Pronterface, etc] terminal window during // startup. Implementation of an idea by Prof Braino to inform user that any changes made to this // build by the user have been successfully uploaded into firmware. + +// ╦╔═╗╔═╗┬ ┬┬─┐┌─┐┬─┐┌─┐╔═╗┌─┐┬─┐┬ ┬┌┬┐ ┌─┐┌─┐┌┬┐ +// ║║ ╦╠═╣│ │├┬┘│ │├┬┘├─┤╠╣ │ │├┬┘│ ││││ │ │ ││││ +// ╚╝╚═╝╩ ╩└─┘┴└─└─┘┴└─┴ ┴╚ └─┘┴└─└─┘┴ ┴o└─┘└─┘┴ ┴ + #define STRING_CONFIG_H_AUTHOR "(Roberto Mariani & Samuel Pinches)" // Who made the changes. #define SHOW_BOOTSCREEN -#define STRING_SPLASH_LINE1 "Marlin 2b6 (10/6/19)" // will be shown during bootup in line 1 +#define STRING_SPLASH_LINE1 "JG-A5S v2.0 (29-7-19)" // will be shown during bootup in line 1 #define STRING_SPLASH_LINE2 "JGAuroraForum.com" // will be shown during bootup in line 2 /** @@ -725,7 +730,7 @@ * Override with M203 * X, Y, Z, E0 [, E1[, E2[, E3[, E4[, E5]]]]] */ -#define DEFAULT_MAX_FEEDRATE { 360, 150, 15, 25 } +#define DEFAULT_MAX_FEEDRATE { 360, 150, 30, 40 } /** * Default Max Acceleration (change/s) change = mm/s @@ -921,7 +926,7 @@ #define Z_PROBE_SPEED_FAST HOMING_FEEDRATE_Z // Feedrate (mm/m) for the "accurate" probe of each point -#define Z_PROBE_SPEED_SLOW (Z_PROBE_SPEED_FAST / 2) +#define Z_PROBE_SPEED_SLOW (Z_PROBE_SPEED_FAST / 4) /** * Multiple Probing @@ -1330,7 +1335,7 @@ #endif // Homing speeds (mm/m) -#define HOMING_FEEDRATE_XY (50*60) +#define HOMING_FEEDRATE_XY (90*60) #define HOMING_FEEDRATE_Z (12*60) // Validate that endstops are triggered on homing moves @@ -2036,7 +2041,7 @@ // FSMC display (MKS Robin, Alfawise U20, JGAurora A5S, A1, etc.) // #define FSMC_GRAPHICAL_TFT -#define PRINTER_EVENT_LEDS +//#define PRINTER_EVENT_LEDS //============================================================================= //============================ Other Controllers ============================ @@ -2045,12 +2050,13 @@ // // ADS7843/XPT2046 ADC Touchscreen such as ILI9341 2.8 // -//#define TOUCH_BUTTONS +#define TOUCH_BUTTONS #if ENABLED(TOUCH_BUTTONS) #define XPT2046_X_CALIBRATION 12316 #define XPT2046_Y_CALIBRATION -8981 #define XPT2046_X_OFFSET -43 #define XPT2046_Y_OFFSET 257 + #define XPT2046_Z1_THRESHOLD 1 #endif // diff --git a/config/examples/JGAurora/A5S/Configuration_adv.h b/config/examples/JGAurora/A5S/Configuration_adv.h index ce4d09004..49058c3f1 100644 --- a/config/examples/JGAurora/A5S/Configuration_adv.h +++ b/config/examples/JGAurora/A5S/Configuration_adv.h @@ -306,7 +306,7 @@ * * Define one or both of these to override the default 0-255 range. */ -//#define FAN_MIN_PWM 50 +#define FAN_MIN_PWM 30 //#define FAN_MAX_PWM 128 /** @@ -522,9 +522,9 @@ #define X_HOME_BUMP_MM 5 #define Y_HOME_BUMP_MM 5 #define Z_HOME_BUMP_MM 2 -#define HOMING_BUMP_DIVISOR { 2, 2, 4 } // Re-Bump Speed Divisor (Divides the Homing Feedrate) -//#define QUICK_HOME // If homing includes X and Y, do a diagonal move initially -//#define HOMING_BACKOFF_MM { 2, 2, 2 } // (mm) Move away from the endstops after homing +#define HOMING_BUMP_DIVISOR { 5, 5, 5 } // Re-Bump Speed Divisor (Divides the Homing Feedrate) +#define QUICK_HOME // If homing includes X and Y, do a diagonal move initially +#define HOMING_BACKOFF_MM { 1, 1, 0 } // (mm) Move away from the endstops after homing // When G28 is called, this option will make Y home before X //#define HOME_Y_BEFORE_X @@ -654,7 +654,7 @@ // @section lcd #if EITHER(ULTIPANEL, EXTENSIBLE_UI) - #define MANUAL_FEEDRATE { 50*60, 50*60, 4*60, 60 } // Feedrates for manual moves along X, Y, Z, E from panel + #define MANUAL_FEEDRATE { 60*60, 60*60, 10*60, 10*60 } // Feedrates for manual moves along X, Y, Z, E from panel #define SHORT_MANUAL_Z_MOVE 0.025 // (mm) Smallest manual Z move (< 0.1mm) #if ENABLED(ULTIPANEL) #define MANUAL_E_MOVES_RELATIVE // Display extruder move distance rather than "position" @@ -862,13 +862,13 @@ #endif // Scroll a longer status message into view -//#define STATUS_MESSAGE_SCROLLING +#define STATUS_MESSAGE_SCROLLING // On the Info Screen, display XY with one decimal place when possible -//#define LCD_DECIMAL_SMALL_XY +#define LCD_DECIMAL_SMALL_XY // The timeout (in ms) to return to the status screen from sub-menus -//#define LCD_TIMEOUT_TO_STATUS 15000 +#define LCD_TIMEOUT_TO_STATUS 15000 // Add an 'M73' G-code to set the current percentage //#define LCD_SET_PROGRESS_MANUALLY @@ -888,16 +888,16 @@ * LED Control Menu * Enable this feature to add LED Control to the LCD menu */ -#define LED_CONTROL_MENU +//#define LED_CONTROL_MENU #if ENABLED(LED_CONTROL_MENU) #define LED_COLOR_PRESETS // Enable the Preset Color menu option #if ENABLED(LED_COLOR_PRESETS) - #define LED_USER_PRESET_RED 0 // User defined RED value - #define LED_USER_PRESET_GREEN 255 // User defined GREEN value - #define LED_USER_PRESET_BLUE 255 // User defined BLUE value + #define LED_USER_PRESET_RED 255 // User defined RED value + #define LED_USER_PRESET_GREEN 128 // User defined GREEN value + #define LED_USER_PRESET_BLUE 0 // User defined BLUE value #define LED_USER_PRESET_WHITE 255 // User defined WHITE value #define LED_USER_PRESET_BRIGHTNESS 255 // User defined intensity - #define LED_USER_PRESET_STARTUP // Have the printer display the user preset color on startup + //#define LED_USER_PRESET_STARTUP // Have the printer display the user preset color on startup #endif #endif // LED_CONTROL_MENU @@ -908,7 +908,7 @@ // as SD_DETECT_PIN in your board's pins definitions. // This setting should be disabled unless you are using a push button, pulling the pin to ground. // Note: This is always disabled for ULTIPANEL (except ELB_FULL_GRAPHIC_CONTROLLER). - //#define SD_DETECT_INVERTED + #define SD_DETECT_INVERTED #define SD_FINISHED_STEPPERRELEASE true // Disable steppers when SD Print is finished #define SD_FINISHED_RELEASECOMMAND "M84 X Y Z E" // You might want to keep the Z enabled so your bed stays in place. @@ -982,10 +982,10 @@ #endif // This allows hosts to request long names for files and folders with M33 - //#define LONG_FILENAME_HOST_SUPPORT + #define LONG_FILENAME_HOST_SUPPORT // Enable this option to scroll long filenames in the SD card menu - //#define SCROLL_LONG_FILENAMES + #define SCROLL_LONG_FILENAMES // Leave the heaters on after Stop Print (not recommended!) //#define SD_ABORT_NO_COOLDOWN @@ -1081,13 +1081,13 @@ */ #if HAS_GRAPHICAL_LCD // Show SD percentage next to the progress bar - //#define DOGM_SD_PERCENT + #define DOGM_SD_PERCENT // Enable to save many cycles by drawing a hollow frame on the Info Screen - #define XYZ_HOLLOW_FRAME + //#define XYZ_HOLLOW_FRAME // Enable to save many cycles by drawing a hollow frame on Menu Screens - #define MENU_HOLLOW_FRAME + //#define MENU_HOLLOW_FRAME // A bigger font is available for edit items. Costs 3120 bytes of PROGMEM. // Western only. Not available for Cyrillic, Kana, Turkish, Greek, or Chinese. @@ -1137,7 +1137,7 @@ //#define STATUS_ALT_BED_BITMAP // Use the alternative bed bitmap //#define STATUS_ALT_FAN_BITMAP // Use the alternative fan bitmap //#define STATUS_FAN_FRAMES 3 // :[0,1,2,3,4] Number of fan animation frames - //#define STATUS_HEAT_PERCENT // Show heating in a progress bar + #define STATUS_HEAT_PERCENT // Show heating in a progress bar //#define BOOT_MARLIN_LOGO_SMALL // Show a smaller Marlin logo on the Boot Screen (saving 399 bytes of flash) // Frivolous Game Options @@ -1184,14 +1184,14 @@ #if ENABLED(DOUBLECLICK_FOR_Z_BABYSTEPPING) #define DOUBLECLICK_MAX_INTERVAL 1250 // Maximum interval between clicks, in milliseconds. // Note: Extra time may be added to mitigate controller latency. - //#define BABYSTEP_ALWAYS_AVAILABLE // Allow babystepping at all times (not just during movement). - #define MOVE_Z_WHEN_IDLE // Jump to the move Z menu on doubleclick when printer is idle. + #define BABYSTEP_ALWAYS_AVAILABLE // Allow babystepping at all times (not just during movement). + //#define MOVE_Z_WHEN_IDLE // Jump to the move Z menu on doubleclick when printer is idle. #if ENABLED(MOVE_Z_WHEN_IDLE) #define MOVE_Z_IDLE_MULTIPLICATOR 10 // Multiply 1mm by this factor for the move step size. #endif #endif - //#define BABYSTEP_DISPLAY_TOTAL // Display total babysteps since last G28 + #define BABYSTEP_DISPLAY_TOTAL // Display total babysteps since last G28 //#define BABYSTEP_ZPROBE_OFFSET // Combine M851 Z and Babystepping #if ENABLED(BABYSTEP_ZPROBE_OFFSET) @@ -1491,23 +1491,23 @@ * Requires NOZZLE_PARK_FEATURE. * This feature is required for the default FILAMENT_RUNOUT_SCRIPT. */ -//#define ADVANCED_PAUSE_FEATURE +#define ADVANCED_PAUSE_FEATURE #if ENABLED(ADVANCED_PAUSE_FEATURE) #define PAUSE_PARK_RETRACT_FEEDRATE 60 // (mm/s) Initial retract feedrate. #define PAUSE_PARK_RETRACT_LENGTH 2 // (mm) Initial retract. // This short retract is done immediately, before parking the nozzle. - #define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // (mm/s) Unload filament feedrate. This can be pretty fast. + #define FILAMENT_CHANGE_UNLOAD_FEEDRATE 40 // (mm/s) Unload filament feedrate. This can be pretty fast. #define FILAMENT_CHANGE_UNLOAD_ACCEL 25 // (mm/s^2) Lower acceleration may allow a faster feedrate. - #define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // (mm) The length of filament for a complete unload. + #define FILAMENT_CHANGE_UNLOAD_LENGTH 820 // (mm) The length of filament for a complete unload. // For Bowden, the full length of the tube and nozzle. // For direct drive, the full length of the nozzle. // Set to 0 for manual unloading. - #define FILAMENT_CHANGE_SLOW_LOAD_FEEDRATE 6 // (mm/s) Slow move when starting load. - #define FILAMENT_CHANGE_SLOW_LOAD_LENGTH 0 // (mm) Slow length, to allow time to insert material. + #define FILAMENT_CHANGE_SLOW_LOAD_FEEDRATE 40 // (mm/s) Slow move when starting load. + #define FILAMENT_CHANGE_SLOW_LOAD_LENGTH 730 // (mm) Slow length, to allow time to insert material. // 0 to disable start loading and skip to fast load only #define FILAMENT_CHANGE_FAST_LOAD_FEEDRATE 6 // (mm/s) Load filament feedrate. This can be pretty fast. #define FILAMENT_CHANGE_FAST_LOAD_ACCEL 25 // (mm/s^2) Lower acceleration may allow a faster feedrate. - #define FILAMENT_CHANGE_FAST_LOAD_LENGTH 0 // (mm) Load length of filament, from extruder gear to nozzle. + #define FILAMENT_CHANGE_FAST_LOAD_LENGTH 75 // (mm) Load length of filament, from extruder gear to nozzle. // For Bowden, the full length of the tube and nozzle. // For direct drive, the full length of the nozzle. //#define ADVANCED_PAUSE_CONTINUOUS_PURGE // Purge continuously up to the purge length until interrupted. @@ -1528,10 +1528,10 @@ #define FILAMENT_CHANGE_ALERT_BEEPS 10 // Number of alert beeps to play when a response is needed. #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable for XYZ steppers to stay powered on during filament change. - //#define PARK_HEAD_ON_PAUSE // Park the nozzle during pause and filament change. + #define PARK_HEAD_ON_PAUSE // Park the nozzle during pause and filament change. //#define HOME_BEFORE_FILAMENT_CHANGE // Ensure homing has been completed prior to parking for filament change - //#define FILAMENT_LOAD_UNLOAD_GCODES // Add M701/M702 Load/Unload G-codes, plus Load/Unload in the LCD Prepare menu. + #define FILAMENT_LOAD_UNLOAD_GCODES // Add M701/M702 Load/Unload G-codes, plus Load/Unload in the LCD Prepare menu. //#define FILAMENT_UNLOAD_ALL_EXTRUDERS // Allow M702 to unload all extruders above a minimum target temp (as set by M302) #endif diff --git a/platformio.ini b/platformio.ini index 2c8942e70..18fc81279 100644 --- a/platformio.ini +++ b/platformio.ini @@ -478,13 +478,13 @@ lib_ignore = c1921b4 # # JGAurora A5S A1 (STM32F103ZET6) # -[env:JGAURORA_A5S_A1] +[env:jgaurora_a5s_a1] platform = ststm32 framework = arduino board = genericSTM32F103ZE extra_scripts = buildroot/share/PlatformIO/scripts/jgaurora_a5s_a1_with_bootloader.py build_flags = !python Marlin/src/HAL/HAL_STM32F1/STM32F1_flag_script.py - ${common.build_flags} -std=gnu++14 + ${common.build_flags} -DSTM32F1xx -std=gnu++14 build_unflags = -std=gnu++11 src_filter = ${common.default_src_filter} + lib_deps = ${common.lib_deps} @@ -495,7 +495,6 @@ lib_ignore = c1921b4 Adafruit NeoPixel libf3e TMC26XStepper -lib_ldf_mode = chain monitor_speed = 250000 #