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

Index Motherboard rev03 #22647

Merged
merged 8 commits into from
Sep 5, 2021
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 .github/workflows/test-builds.yml
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,7 @@ jobs:
- REMRAM_V1
- BTT_SKR_SE_BX
- chitu_f103
- Index_Mobo_Rev03

# Put lengthy tests last

Expand Down
1 change: 1 addition & 0 deletions Marlin/src/core/boards.h
Original file line number Diff line number Diff line change
Expand Up @@ -394,6 +394,7 @@
#define BOARD_ANET_ET4P 4230 // ANET ET4P V1.x (STM32F407VGT6)
#define BOARD_FYSETC_CHEETAH_V20 4231 // FYSETC Cheetah V2.0
#define BOARD_TH3D_EZBOARD_LITE_V2 4232 // TH3D EZBoard Lite v2.0
#define BOARD_INDEX_REV03 4233 // Index PnP Controller REV03 (STM32F407VET6/VGT6)

//
// ARM Cortex M7
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 @@ -643,6 +643,8 @@
#include "stm32f4/pins_MKS_MONSTER8.h" // STM32F4 env:mks_monster8 env:mks_monster8_usb_flash_drive env:mks_monster8_usb_flash_drive_msc
#elif MB(TH3D_EZBOARD_LITE_V2)
#include "stm32f4/pins_TH3D_EZBOARD_LITE_V2.h" // STM32F4 env:TH3D_EZBoard_Lite_V2
#elif MB(INDEX_REV03)
#include "stm32f4/pins_INDEX_REV03.h" // STM32F4 env:Index_Mobo_Rev03

//
// ARM Cortex M7
Expand Down
157 changes: 157 additions & 0 deletions Marlin/src/pins/stm32f4/pins_INDEX_REV03.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,157 @@
/**
* 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 <https://www.gnu.org/licenses/>.
*
*/
#pragma once

/**
* STM32F407VET6 on Index PnP Mobo Rev03
* Website - https://indexmachines.io/
*/

#define ALLOW_STM32DUINO
#include "env_validate.h"

#define BOARD_INFO_NAME "Index Mobo Rev03"
#define DEFAULT_MACHINE_NAME "Index Pick and Place"

/**
* By default, the extra stepper motor configuration is:
* I = Left Head
* J = Right Head
* K = Auxiliary (Conveyor belt)
*/

#define SRAM_EEPROM_EMULATION
#define MARLIN_EEPROM_SIZE 0x2000 // 8KB

//
// Servos
//
#define SERVO0_PIN PB10
#define SERVO1_PIN PB11

//
// Limit Switches
//
#define X_STOP_PIN PC6
#define Y_STOP_PIN PD15
#define Z_STOP_PIN PD14

// None of these require limit switches by default, so we leave these commented
// here for your reference.
// #define I_MIN_PIN PA8
// #define I_MAX_PIN PA8
// #define J_MIN_PIN PD13
// #define J_MAX_PIN PD13
// #define K_MIN_PIN PC9
// #define K_MAX_PIN PC9

//
// Steppers
//
#define X_STEP_PIN PB15
#define X_DIR_PIN PB14
#define X_ENABLE_PIN PD9
#define X_SERIAL_TX_PIN PD8
#define X_SERIAL_RX_PIN PD8

#define Y_STEP_PIN PE15
#define Y_DIR_PIN PE14
#define Y_ENABLE_PIN PB13
#define Y_SERIAL_TX_PIN PB12
#define Y_SERIAL_RX_PIN PB12

#define Z_STEP_PIN PE7
#define Z_DIR_PIN PB1
#define Z_ENABLE_PIN PE9
#define Z_SERIAL_TX_PIN PE8
#define Z_SERIAL_RX_PIN PE8

#define I_STEP_PIN PC4
#define I_DIR_PIN PA4
#define I_ENABLE_PIN PB0
#define I_SERIAL_TX_PIN PC5
#define I_SERIAL_RX_PIN PC5

#define J_STEP_PIN PE11
#define J_DIR_PIN PE10
#define J_ENABLE_PIN PE13
#define J_SERIAL_TX_PIN PE12
#define J_SERIAL_RX_PIN PE12
#define K_SERIAL_TX_PIN PA2
#define K_SERIAL_RX_PIN PA2

#define K_STEP_PIN PD6
#define K_DIR_PIN PD7
#define K_ENABLE_PIN PA3

// Reduce baud rate to improve software serial reliability
#define TMC_BAUD_RATE 19200

// Not required for this board. Fails to compile otherwise.
// PD0 is not connected on this board.
#define TEMP_0_PIN PD0

// General use mosfets, useful for things like pumps and solenoids
#define FAN_PIN PE2
#define FAN1_PIN PE3
#define FAN2_PIN PE4
#define FAN3_PIN PE5

// Neopixel Rings
#define NEOPIXEL_PIN PC7
#define NEOPIXEL2_PIN PC8

// SPI
#define MISO_PIN PB4
#define MOSI_PIN PB5
#define SCK_PIN PB3

// I2C
#define I2C_SDA_PIN PB7
#define I2C_SCL_PIN PB6

/**
* The index mobo rev03 has 3 aux ports. We define them here so they may be used
* in other places and to make sure someone doesn't have to go look up the pinout
* in the board files. Each 12 pin aux port has this pinout:
*
* VDC 1 2 GND
* 3.3V 3 4 SCL (I2C_SCL_PIN)
* PWM1 5 6 SDA (I2C_SDA_PIN)
* PWM2 7 8 CIPO (MISO_PIN)
* A1 9 10 COPI (MOSI_PIN)
* A2 11 12 SCK (SCK_PIN)
*/
#define INDEX_AUX1_PWM1 PA15
#define INDEX_AUX1_PWM2 PA5
#define INDEX_AUX1_A1 PC0
#define INDEX_AUX1_A2 PC1

#define INDEX_AUX2_PWM1 PA6
#define INDEX_AUX2_PWM2 PA7
#define INDEX_AUX2_A1 PC2
#define INDEX_AUX2_A2 PC3

#define INDEX_AUX3_PWM1 PB8
#define INDEX_AUX3_PWM2 PB9
#define INDEX_AUX3_A1 PA0
#define INDEX_AUX3_A2 PA1
51 changes: 51 additions & 0 deletions buildroot/share/PlatformIO/boards/marlin_index_mobo_rev03.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
{
"build": {
"core": "stm32",
"cpu": "cortex-m4",
"extra_flags": "-DSTM32F407xx",
"f_cpu": "168000000L",
"hwids": [
[
"0x1EAF",
"0x0003"
],
[
"0x0483",
"0x3748"
],
[
"0x0483",
"0xdf11"
]
],
"mcu": "stm32f407vet6",
"variant": "MARLIN_F407VE"
},
"debug": {
"jlink_device": "STM32F407VE",
"openocd_target": "stm32f4x",
"svd_path": "STM32F40x.svd"
},
"frameworks": [
"arduino",
"stm32cube"
],
"name": "STM32F407VE (192k RAM. 512k Flash)",
"upload": {
"disable_flushing": false,
"maximum_ram_size": 131072,
"maximum_size": 524288,
"protocol": "stlink",
"protocols": [
"stlink",
"dfu",
"jlink",
"blackmagic"
],
"require_upload_port": true,
"use_1200bps_touch": false,
"wait_for_upload_port": false
},
"url": "https://www.st.com/en/microcontrollers-microprocessors/stm32f407ve.html",
"vendor": "Generic"
}
13 changes: 13 additions & 0 deletions buildroot/tests/Index_Mobo_Rev03
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#!/usr/bin/env bash
#
# Build tests for Index_Mobo_Rev03
#

# exit on first failure
set -e

use_example_configs Index/REV_03
exec_test $1 $2 "Index REV03 Pick and Place" "$3"

# cleanup
restore_configs
12 changes: 12 additions & 0 deletions ini/stm32f4.ini
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,18 @@ board = marlin_blackSTM32F407VET6
build_flags = ${stm32_variant.build_flags}
-DUSBD_USE_CDC_COMPOSITE -DUSE_USB_FS

#
# STM32F407VET6 Index Mobo Rev 03
#
[env:Index_Mobo_Rev03]
platform = ${common_stm32.platform}
extends = stm32_variant
board = marlin_index_mobo_rev03
build_flags = ${stm32_variant.build_flags}
-DARDUINO_BLACK_F407VE
-DUSBD_USE_CDC_COMPOSITE -DUSE_USB_FS
extra_scripts = ${stm32_variant.extra_scripts}

#
# Anet ET4-MB_V1.x/ET4P-MB_V1.x (STM32F407VGT6 ARM Cortex-M4)
# For use with with davidtgbe's OpenBLT bootloader https://github.com/davidtgbe/openblt/releases
Expand Down