Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ADD FLY MINI BOARD #19185

Merged
merged 6 commits into from
Oct 9, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions Marlin/src/core/boards.h
Original file line number Diff line number Diff line change
Expand Up @@ -320,6 +320,7 @@
#define BOARD_CREALITY_V4 4034 // Creality v4.x (STM32F103RE)
#define BOARD_CREALITY_V427 4035 // Creality v4.2.7 (STM32F103RE)
#define BOARD_TRIGORILLA_PRO 4036 // Trigorilla Pro (STM32F103ZET6)
#define BOARD_FLY_MINI 4037 // FLY MINI (STM32F103RCT6)

//
// ARM Cortex-M4F
Expand Down
2 changes: 2 additions & 0 deletions Marlin/src/pins/pins.h
Original file line number Diff line number Diff line change
Expand Up @@ -569,6 +569,8 @@
#include "stm32f1/pins_CREALITY_V427.h" // STM32F1 env:STM32F103RET6_creality
#elif MB(TRIGORILLA_PRO)
#include "stm32f1/pins_TRIGORILLA_PRO.h" // STM32F1 env:trigorilla_pro
#elif MB(FLY_MINI)
#include "stm32f1/pins_FLY_MINI.h" // STM32F1 env:FLY_MINI

//
// ARM Cortex-M4F
Expand Down
172 changes: 172 additions & 0 deletions Marlin/src/pins/stm32f1/pins_FLY_MINI.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,172 @@
/**
* Marlin 3D Printer Firmware
* Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
#pragma once

#ifndef __STM32F1__
#error "Oops! Select an STM32F1 board in 'Tools > Board.'"
#endif

#define BOARD_INFO_NAME "FLY_MINI"
#define BOARD_WEBSITE_URL "github.com/FLYmaker"
#define DISABLE_JTAG

//
// Flash EEPROM Emulation
//
#define FLASH_EEPROM_EMULATION
#define EEPROM_PAGE_SIZE 0x800 // 2KB
#define EEPROM_START_ADDRESS (0x8000000 + 256 * 1024 - 2 * EEPROM_PAGE_SIZE) // 256K firmware space
#define MARLIN_EEPROM_SIZE EEPROM_PAGE_SIZE

//
// Servos
//
#define SERVO0_PIN PA8

//
// Limit Switches
//
#define X_MIN_PIN PC12
#define X_MAX_PIN PC11
#define Y_MIN_PIN PC10
#define Y_MAX_PIN PA15
#define Z_MIN_PIN PA14
#define Z_MAX_PIN PA13

//
// Steppers
//
#define X_STEP_PIN PB1
#define X_DIR_PIN PB2
#define X_ENABLE_PIN PB10
#ifndef X_CS_PIN
#define X_CS_PIN PB0
#endif

#define Y_STEP_PIN PA2
#define Y_DIR_PIN PC4
#define Y_ENABLE_PIN PC5
#ifndef Y_CS_PIN
#define Y_CS_PIN PA7
#endif

#define Z_STEP_PIN PA3
#define Z_DIR_PIN PA5
#define Z_ENABLE_PIN PA6
#ifndef Z_CS_PIN
#define Z_CS_PIN PA4
#endif

#define E0_STEP_PIN PA1
#define E0_DIR_PIN PC3
#define E0_ENABLE_PIN PA0
#ifndef E0_CS_PIN
#define E0_CS_PIN PC2
#endif

#if ENABLED(TMC_USE_SW_SPI)
#ifndef TMC_SW_MOSI
#define TMC_SW_MOSI PB15
#endif
#ifndef TMC_SW_MISO
#define TMC_SW_MISO PB14
#endif
#ifndef TMC_SW_SCK
#define TMC_SW_SCK PB13
#endif
#endif

#if HAS_TMC_UART
//
// Software serial
//
#define X_SERIAL_TX_PIN PB0
#define X_SERIAL_RX_PIN PB0
#define Y_SERIAL_TX_PIN PA7
#define Y_SERIAL_RX_PIN PA7
#define Z_SERIAL_TX_PIN PA4
#define Z_SERIAL_RX_PIN PA4
#define E0_SERIAL_TX_PIN PC2
#define E0_SERIAL_RX_PIN PC2
#endif

//
// Heaters / Fans
//
#define HEATER_0_PIN PC6
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I really appreciate that you arranged all the fan/heater pins on the channels of a single timer.

#define HEATER_BED_PIN PC7
#ifndef FAN_PIN
#define FAN_PIN PC8
#endif
#define FAN1_PIN PC9

//
// Temperature Sensors
//
#define TEMP_BED_PIN PC0 // Analog Input
#define TEMP_0_PIN PC1 // Analog Input

//
// LCD Pins
//

//
// LCD / Controller
//
#define ENABLE_SPI2
#define SS_PIN PB12
#define SCK_PIN PB13
#define MISO_PIN PB14
#define MOSI_PIN PB15

#define SDSS SS_PIN
#define SD_DETECT_PIN PB11

#define BEEPER_PIN PC14

#define LCD_PINS_RS PB8
#define LCD_PINS_ENABLE PB9
#define LCD_PINS_D4 PB7
#define LCD_PINS_D5 PB6
#define LCD_PINS_D6 PB5
#define LCD_PINS_D7 PB4

#define BTN_EN1 PD2
#define BTN_EN2 PB3
#define BTN_ENC PC13

//
// Filament runout
//

//
// ST7920 Delays
//
#ifndef ST7920_DELAY_1
#define ST7920_DELAY_1 DELAY_NS(96)
#endif
#ifndef ST7920_DELAY_2
#define ST7920_DELAY_2 DELAY_NS(48)
#endif
#ifndef ST7920_DELAY_3
#define ST7920_DELAY_3 DELAY_NS(715)
#endif
14 changes: 14 additions & 0 deletions buildroot/share/PlatformIO/ldscripts/fly_mini.ld
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
MEMORY
{
ram (rwx) : ORIGIN = 0x20000000, LENGTH = 48K - 40
rom (rx) : ORIGIN = 0x08005000, LENGTH = 256K - 20K - 4K
}

/* Provide memory region aliases for common.inc */
REGION_ALIAS("REGION_TEXT", rom);
REGION_ALIAS("REGION_DATA", ram);
REGION_ALIAS("REGION_BSS", ram);
REGION_ALIAS("REGION_RODATA", rom);

/* Let common.inc handle the real work. */
INCLUDE common.inc
16 changes: 16 additions & 0 deletions buildroot/share/PlatformIO/scripts/fly_mini.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import os
Import("env")

# Relocate firmware from 0x08000000 to 0x08005000
for define in env['CPPDEFINES']:
if define[0] == "VECT_TAB_ADDR":
env['CPPDEFINES'].remove(define)
env['CPPDEFINES'].append(("VECT_TAB_ADDR", "0x08005000"))

custom_ld_script = os.path.abspath("buildroot/share/PlatformIO/ldscripts/fly_mini.ld")
for i, flag in enumerate(env["LINKFLAGS"]):
if "-Wl,-T" in flag:
env["LINKFLAGS"][i] = "-Wl,-T" + custom_ld_script
elif flag == "-T":
env["LINKFLAGS"][i + 1] = custom_ld_script

Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,7 @@ WEAK const PinMap PinMap_PWM[] = {
{PE_5, TIM9, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM9, 1, 0)}, // TIM9_CH1
{PE_6, TIM9, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM9, 2, 0)}, // TIM9_CH2
//{PE_11, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 2, 0)}, // TIM1_CH2
{PE_13, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 3, 0)}, // TIM1_CH3
//{PE_13, TIM1, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 3, 0)}, // TIM1_CH3
{PF_6, TIM10, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM10, 1, 0)}, // TIM10_CH1
{PF_7, TIM11, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM11, 1, 0)}, // TIM11_CH1
{PF_8, TIM13, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_TIM13, 1, 0)}, // TIM13_CH1
Expand Down
13 changes: 13 additions & 0 deletions platformio.ini
Original file line number Diff line number Diff line change
Expand Up @@ -1125,6 +1125,19 @@ build_flags = ${common_stm32.build_flags}
extra_scripts = ${common.extra_scripts}
pre:buildroot/share/PlatformIO/scripts/generic_create_variant.py

#
# FLY MINI(stm32f103rct6)
#
[env:FLY_MINI]
platform = ${common_stm32f1.platform}
extends = common_stm32f1
board = genericSTM32F103RC
platform_packages = tool-stm32duino
extra_scripts = ${common.extra_scripts}
buildroot/share/PlatformIO/scripts/fly_mini.py
build_flags = ${common_stm32f1.build_flags}
-DDEBUG_LEVEL=0 -DSS_TIMER=4

#
# FYSETC S6 (STM32F446VET6 ARM Cortex-M4)
#
Expand Down