MarlinFirmware / Marlin

Marlin is an optimized firmware for RepRap 3D printers based on the Arduino platform. Many commercial 3D printers come with Marlin installed. Check with your vendor if you need source code for your specific machine.
https://marlinfw.org
GNU General Public License v3.0
16.04k stars 19.15k forks source link

[FR] USB_FLASH_DRIVE_SUPPORT for BTT Octopus Pro 1.1 (STM32H723ZE) #26115

Open smikutsky opened 1 year ago

smikutsky commented 1 year ago

Did you test the latest bugfix-2.1.x code?

Yes, and the problem still exists.

Bug Description

When compiling latest bugfix-2.1.x for BTT Octopus Pro 1.1 with STM32H723ZE, compilation fails if USB_FLASH_DRIVE_SUPPORT is enabled.

By disabling USB_FLASH_DRIVE_SUPPORT, I am able to get a successful build.

Bug Timeline

It started yesterday when configuring for new BTT Octopus Pro 1.1

Expected behavior

Build success: compile success

Actual behavior

Build failed: compile error This is actually all of the errors, they all fit

Steps to Reproduce

  1. Load config
  2. Try to build

Version of Marlin Firmware

bugfix-2.1.x

Printer model

N/A

Electronics

BTT Octopus Pro 1.1

Add-ons

N/A

Bed Leveling

UBL Bilinear mesh

Your Slicer

None

Host Software

None

Don't forget to include

Additional information & file uploads

OctopUBS 1_1 config.zip

thisiskeithb commented 1 year ago

We're missing the *_usb_flash_drive environments for the Octopus Pro V1.1 & Octopus Max EZ V1.0 / STM32H7.

smikutsky commented 12 months ago

Given that I was unable to decifer the compile error in the screenshot, adding a check or warning that STM32H7 USB is not (yet) supported would be helpful to users less familiar with the platform

Hman32 commented 11 months ago

@smikutsky there's no warning because normally you should choose the right environment to being able to compile and currently there is no "_USB" environment for the H7.

For ex. the STM32F4 for the Octopus you have 3 =/= environment for compiling with the USB.

image

@thisiskeithb this is more a feature request than a bug

smikutsky commented 11 months ago

I was under the impression that the -_USB environments were for flashing a board connected over USB rather than producing a binary to be placed on an SD card.

I've used the non-_USB environments to build firmware for both SoC SKUs of the BTT SKR 2 many times over, and the USB host port worked without issue.

If the non-_USB environments indeed aren't supposed to have any USB host support, then there should definitely be at least a warning informing the uninitiated what is wrong and how to fix the issue. Moreover, the SKR 2 environments should be examined because they do not comply with this behavior.

Either way, better user-facing documentation about the -_USB environments would be greatly beneficial and help avoid confusion such as this going forward.

ellensp commented 11 months ago

"_USB environments were for flashing a board connected over USB" no not quite... It allows sdcard to be seen as a usb drive on the computer (can used it to store any data, gcode or firmware updates)

But there ~are~ where two different _USB the other is to enable usb host support on boards that have it. To allow using flash drives.

This is why https://github.com/MarlinFirmware/Marlin/pull/26131 was added and merged, to differentiate them

Now _USB is to allow sdcard to be used as a usb drive And _usb_flash_drive to enable using usb sticks on the controller

smikutsky commented 11 months ago

The changes in #26131 are just for a few environments, SKR2 has USB drive support on its base environments:

image

While standardizing the naming is good, I don't foresee all 200+ environments coming into line quickly. A beginner-friendly error message could still help with ease of use as the USB host feature becomes (hopefully) more popular.

Steppge commented 4 months ago

will there be support for usb flash drive at some point for Octopus Pro 1.1?