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

✨ Mellow/Fly RRF E3 V1.0 (STM32F407VG) #27466

Open
wants to merge 14 commits into
base: bugfix-2.1.x
Choose a base branch
from

Conversation

belge96
Copy link

@belge96 belge96 commented Oct 9, 2024

Description

Since the Mellow/Fly RRF E3 V1.0 still wasn't supported i decided to add it myself, i thought, if i do add support i may aswell publish it for other people to have aswell (still had one of those boards around and didn't want to use RRF)

Requirements

Mellow/Fly RRF E3 V1.0 (should work directly with a standard Ender 3 config for another E3* motherboard)

Benefits

Added previously unsupported motherboard (incompatible pinout etc)

Potential issues

This motherboard doesn't seem to have an EEPROM chip so it NEEDS an SD card for EEPROM emulation

@ellensp
Copy link
Contributor

ellensp commented Oct 9, 2024

you have board_build.variant = MARLIN_FLY_RRF_E3_V1

So there should be a folder buildroot/share/PlatformIO/variants/MARLIN_FLY_RRF_E3_V1 to define the new variant

@belge96
Copy link
Author

belge96 commented Oct 9, 2024

you have board_build.variant = MARLIN_FLY_RRF_E3_V1

So there should be a folder buildroot/share/PlatformIO/variants/MARLIN_FLY_RRF_E3_V1 to define the new variant

it uses marlin_STM32F407VGT6_CCM like BigTreeTech E3 RRF (which uses the same CPU/MCU) uses and doesn't have a separate definition either

the only difference between this and the BigTreeTech board is that it has an entirely different pinout and less ports (BTT has more optional ones)

@thisiskeithb thisiskeithb changed the title Added Mellow/Fly RRF E3 V1.0 which was previously unsupported by Marlin and other firmwares than RRF ✨ Mellow/Fly RRF E3 V1.0 (STM32F407VG) Oct 9, 2024
@thisiskeithb
Copy link
Member

This motherboard doesn't seem to have an EEPROM chip so it NEEDS an SD card for EEPROM emulation

Flash-based emulation is preferred since it doesn’t require an SD card to be present.

#error "SD CUSTOM_CABLE is not compatible with Fly RRF E3 V1."
#endif

// TODO ? board has inbuilt WiFi (ESP8266) but probably already runs a version of DuetWebServer if you've ever used it on RRF before and i have no idea what you'd need to flash it with to get it to work
Copy link
Member

Choose a reason for hiding this comment

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

Review how this is done on other boards like the BTT E3 RRF:

#if ENABLED(WIFISUPPORT)
//
// WIFI
//
#define ESP_WIFI_MODULE_COM 3 // Must also set either SERIAL_PORT or SERIAL_PORT_2 to this
#define ESP_WIFI_MODULE_BAUDRATE BAUDRATE // Must use same BAUDRATE as SERIAL_PORT & SERIAL_PORT_2
#define ESP_WIFI_MODULE_RESET_PIN PA4
#define ESP_WIFI_MODULE_ENABLE_PIN PA5
#define ESP_WIFI_MODULE_GPIO0_PIN PA6
#endif

@ellensp
Copy link
Contributor

ellensp commented Oct 10, 2024

look at other examples

[Anet_ET4]
extends                     = stm32_variant
board                       = marlin_STM32F407VGT6_CCM
board_build.variant         = MARLIN_F4x7Vx    <- says to use files in buildroot/share/PlatformIO/variants/MARLIN_F4x7Vx
[env:BTT_E3_RRF]
extends             = stm32_variant
board               = marlin_STM32F407VGT6_CCM
board_build.variant = MARLIN_BTT_E3_RRF <- says to use files buildroot/share/PlatformIO/variants/MARLIN_BTT_E3_RRF

Yours

[env:FLY_RRF_E3_V1]
extends             = stm32_variant
board               = marlin_STM32F407VGT6_CCM
board_build.variant = MARLIN_FLY_RRF_E3_V1 <- says to use files buildroot/share/PlatformIO/variants/MARLIN_FLY_RRF_E3_V1

But you have not provided this variants directory so this line is invalid.

@ellensp
Copy link
Contributor

ellensp commented Oct 10, 2024

the CI error is due to the tight formatting constraints on board pins files.
you need to run "make format-pins -j" or buildroot/share/scripts/pinsformat.py to format your Marlin/src/pins/stm32f4/pins_Fly_RRF_E3_V1.h file.

@thisiskeithb
Copy link
Member

the CI error is due to the tight formatting constraints on board pins files.

We also need this PR merged since it’s used for one of the tests:

belge96 and others added 6 commits October 10, 2024 07:24
added WiFi pinout (but EN is pulled up constantly) according to the schematic
now will pass Marlin CI pin formatting
[env:FLY_RRF_E3_V1]
extends = stm32_variant
board = marlin_STM32F407VGT6_CCM
board_build.variant = MARLIN_FLY_RRF_E3_V1
Copy link
Member

Choose a reason for hiding this comment

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

A custom variant is specified, but there's no MARLIN_FLY_RRF_E3_V1 folder included. Do you have the variant files or know where to get them?

@thinkyhead
Copy link
Member

This is about ready to merge, but we need to resolve the issue with the missing custom variant. If the FLY_RRF_E3_V1 enviroment is truly identical to the BTT_E3_RRF then we can dump the FLY_RRF_E3_V1 environment and just specify BTT_E3_RRF as the build environment for this board.

@thinkyhead
Copy link
Member

This is still missing some pieces. Where is the best place to acquire them?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants