Add JGAurora A5S and A1 (STM32F103ZET6) (#14291)
- Now compiles and works correctly with changes to HAL timers and watchdog. - Does NOT include awesome work on touch screen function. - Does have working LCD and SD-based EEPROM.
This commit is contained in:
parent
6fb3db1633
commit
3021097888
|
@ -247,6 +247,7 @@
|
|||
#define BOARD_MORPHEUS 1806 // STM32F103C8/STM32F103CB Libmaple based stm32f1 controller
|
||||
#define BOARD_MKS_ROBIN 1808 // MKS Robin / STM32F103ZET6
|
||||
#define BOARD_BIGTREE_SKR_MINI_V1_1 1814 // STM32F103RC
|
||||
#define BOARD_JGAURORA_A5S_A1 1810 // JGAurora A5S A1 / STM32F103ZET6
|
||||
|
||||
//
|
||||
// STM32 ARM Cortex-M4F
|
||||
|
|
|
@ -428,6 +428,8 @@
|
|||
#include "pins_MORPHEUS.h" // STM32F1 env:STM32F1
|
||||
#elif MB(MKS_ROBIN)
|
||||
#include "pins_MKS_ROBIN.h" // STM32F1 env:mks_robin
|
||||
#elif MB(JGAURORA_A5S_A1)
|
||||
#include "pins_JGAURORA_A5S_A1.h" // STM32F1 env:JGAURORA_A5S_A1
|
||||
|
||||
//
|
||||
// STM32 ARM Cortex-M4F
|
||||
|
|
125
Marlin/src/pins/pins_JGAURORA_A5S_A1.h
Normal file
125
Marlin/src/pins/pins_JGAURORA_A5S_A1.h
Normal file
|
@ -0,0 +1,125 @@
|
|||
/**
|
||||
* Marlin 3D Printer Firmware
|
||||
* Copyright (C) 2016 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/>.
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
* 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.
|
||||
*/
|
||||
|
||||
/**
|
||||
* JGAurora A5S A1 Board pin assignments
|
||||
*/
|
||||
|
||||
#ifndef __STM32F1__
|
||||
#error "Oops! Select an STM32F1 board in 'Tools > Board.'"
|
||||
#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
|
||||
|
||||
// // I2C EEPROM with 64K of space - AT24C64
|
||||
// #define I2C_EEPROM
|
||||
// #define E2END 0x7FFF
|
||||
|
||||
// Enable EEPROM Emulation for this board
|
||||
|
||||
//#define FLASH_EEPROM_EMULATION 1
|
||||
//#define E2END 0xFFF //((uint32)(EEPROM_START_ADDRESS + EEPROM_PAGE_SIZE + EEPROM_PAGE_SIZE)) // not 0xFFF
|
||||
//#define EEPROM_CHITCHAT
|
||||
//#define DEBUG_EEPROM_READWRITE
|
||||
|
||||
//
|
||||
// Limit Switches
|
||||
//
|
||||
#define X_STOP_PIN PC6
|
||||
#define Y_STOP_PIN PG8
|
||||
#define Z_STOP_PIN PG7
|
||||
|
||||
//
|
||||
// Steppers
|
||||
//
|
||||
#define X_STEP_PIN PD6
|
||||
#define X_DIR_PIN PD3
|
||||
#define X_ENABLE_PIN PG9
|
||||
|
||||
#define Y_STEP_PIN PG12
|
||||
#define Y_DIR_PIN PG11
|
||||
#define Y_ENABLE_PIN PG13
|
||||
|
||||
#define Z_STEP_PIN PG15
|
||||
#define Z_DIR_PIN PG14
|
||||
#define Z_ENABLE_PIN PB8
|
||||
|
||||
#define E0_STEP_PIN PE2
|
||||
#define E0_DIR_PIN PB9
|
||||
#define E0_ENABLE_PIN PE3
|
||||
|
||||
#define E1_STEP_PIN PE5
|
||||
#define E1_DIR_PIN PE4
|
||||
#define E1_ENABLE_PIN PE6
|
||||
|
||||
//
|
||||
// Temperature Sensors
|
||||
//
|
||||
#define TEMP_0_PIN PC2
|
||||
#define TEMP_BED_PIN PC1
|
||||
|
||||
//
|
||||
// Heaters / Fans
|
||||
//
|
||||
#define HEATER_0_PIN PA2
|
||||
#define HEATER_BED_PIN PA3
|
||||
|
||||
#define FAN_PIN PA1
|
||||
|
||||
#define PS_ON_PIN PA0
|
||||
#define FIL_RUNOUT_PIN PC7
|
||||
|
||||
//
|
||||
// LCD
|
||||
//
|
||||
#define LCD_BACKLIGHT_PIN PF11
|
||||
#define FSMC_CS_PIN PD7
|
||||
#define FSMC_RS_PIN PG0
|
||||
|
||||
//
|
||||
// SD Card
|
||||
//
|
||||
#define SD_DETECT_PIN PF10
|
||||
|
||||
//
|
||||
// Misc.
|
||||
//
|
||||
#define BEEPER_PIN PC3 // use PB7 to shut up if desired
|
||||
#define LED_PIN PC13
|
||||
|
||||
// Touch support
|
||||
#define BTN_ENC PA11 // Real pin is needed to enable encoder's push button functionality used by touch screen. PA11 gives stable value.
|
||||
|
||||
#define TOUCH_CS PA4
|
||||
//#define TOUCH_INTERRUPT PC4 // Not yet implemented
|
||||
|
||||
#define NO_PAUSE_AFTER_PRINT
|
14
buildroot/share/PlatformIO/ldscripts/jgaurora_a5s_a1.ld
Normal file
14
buildroot/share/PlatformIO/ldscripts/jgaurora_a5s_a1.ld
Normal file
|
@ -0,0 +1,14 @@
|
|||
MEMORY
|
||||
{
|
||||
ram (rwx) : ORIGIN = 0x20000C00, LENGTH = 64K - 3K
|
||||
rom (rx) : ORIGIN = 0x0800A000, LENGTH = 512K - 40K
|
||||
}
|
||||
|
||||
/* 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
|
|
@ -0,0 +1,43 @@
|
|||
Import("env")
|
||||
|
||||
# Relocate firmware from 0x08000000 to 0x0800A000
|
||||
env['CPPDEFINES'].remove(("VECT_TAB_ADDR", "0x8000000"))
|
||||
#alternatively, for STSTM <=5.1.0 use line below
|
||||
#env['CPPDEFINES'].remove(("VECT_TAB_ADDR", 134217728))
|
||||
env['CPPDEFINES'].append(("VECT_TAB_ADDR", "0x0800A000"))
|
||||
env.Replace(LDSCRIPT_PATH="buildroot/share/PlatformIO/ldscripts/jgaurora_a5s_a1.ld")
|
||||
|
||||
#append ${PROGNAME}.bin firmware after bootloader and save it as 'jgaurora_firmware.bin'
|
||||
def addboot(source,target,env):
|
||||
import os
|
||||
|
||||
firmware = open(target[0].path, "rb")
|
||||
lengthfirmware = os.path.getsize(target[0].path)
|
||||
bootloader_dir = "buildroot/share/PlatformIO/scripts/jgaurora_bootloader.bin"
|
||||
bootloader = open(bootloader_dir, "rb")
|
||||
lengthbootloader = os.path.getsize(bootloader_dir)
|
||||
firmware_with_boothloader_dir = target[0].dir.path +'/firmware_with_bootloader.bin'
|
||||
if os.path.exists(firmware_with_boothloader_dir):
|
||||
os.remove(firmware_with_boothloader_dir)
|
||||
firmwareimage = open(firmware_with_boothloader_dir, "wb")
|
||||
position = 0
|
||||
while position < lengthbootloader:
|
||||
byte = bootloader.read(1)
|
||||
firmwareimage.write(byte)
|
||||
position += 1
|
||||
position = 0
|
||||
while position < lengthfirmware:
|
||||
byte = firmware.read(1)
|
||||
firmwareimage.write(byte)
|
||||
position += 1
|
||||
bootloader.close()
|
||||
firmware.close()
|
||||
firmwareimage.close()
|
||||
firmware_without_bootloader_dir = target[0].dir.path+'/firmware_for_sd_upload.bin'
|
||||
if os.path.exists(firmware_without_bootloader_dir):
|
||||
os.remove(firmware_without_bootloader_dir)
|
||||
os.rename(target[0].path, firmware_without_bootloader_dir)
|
||||
#os.rename(target[0].dir.path+'/firmware_with_bootloader.bin', target[0].dir.path+'/firmware.bin')
|
||||
|
||||
env.AddPostAction("$BUILD_DIR/${PROGNAME}.bin", addboot);
|
||||
|
BIN
buildroot/share/PlatformIO/scripts/jgaurora_bootloader.bin
Normal file
BIN
buildroot/share/PlatformIO/scripts/jgaurora_bootloader.bin
Normal file
Binary file not shown.
2147
config/examples/JGAurora/A1/Configuration.h
Normal file
2147
config/examples/JGAurora/A1/Configuration.h
Normal file
File diff suppressed because it is too large
Load diff
2514
config/examples/JGAurora/A1/Configuration_adv.h
Normal file
2514
config/examples/JGAurora/A1/Configuration_adv.h
Normal file
File diff suppressed because it is too large
Load diff
2147
config/examples/JGAurora/A5S/Configuration.h
Normal file
2147
config/examples/JGAurora/A5S/Configuration.h
Normal file
File diff suppressed because it is too large
Load diff
2514
config/examples/JGAurora/A5S/Configuration_adv.h
Normal file
2514
config/examples/JGAurora/A5S/Configuration_adv.h
Normal file
File diff suppressed because it is too large
Load diff
|
@ -349,6 +349,28 @@ lib_ignore = c1921b4
|
|||
TMC26XStepper
|
||||
U8glib-HAL
|
||||
|
||||
#
|
||||
# JGAurora A5S A1 (STM32F103ZET6)
|
||||
#
|
||||
[env:JGAURORA_A5S_A1]
|
||||
platform = ststm32@5.3.0
|
||||
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} -DSTM32_XL_DENSITY
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/HAL_STM32F1>
|
||||
lib_deps = ${common.lib_deps}
|
||||
lib_ignore = c1921b4
|
||||
libf3c
|
||||
lib066
|
||||
Adafruit NeoPixel_ID28
|
||||
Adafruit NeoPixel
|
||||
libf3e
|
||||
TMC26XStepper
|
||||
lib_ldf_mode = 1
|
||||
monitor_speed = 250000
|
||||
|
||||
#
|
||||
# STM32F407VET6 with RAMPS-like shield
|
||||
# 'Black' STM32F407VET6 board - http://wiki.stm32duino.com/index.php?title=STM32F407
|
||||
|
|
Loading…
Reference in a new issue