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

USB Flash Drive support using native USB Host + MSC #20571

Merged

Conversation

rhapsodyv
Copy link
Member

Requirements

Nano V3, GTR or SKR PRO boards

Description

This PR add support for native USB Flash Drive, using OTG and USB Host.

Stm32duino didn't merge my USB Host PR yet, so I created new envs pointing to my stm32duino PR.

Benefits

Native USB Flash Drive for Marlin.

Configurations

#define USB_FLASH_DRIVE_SUPPORT
#define USE_OTG_USB_HOST

Related Issues

#20299

Copy link
Contributor

@sjasonsmith sjasonsmith left a comment

Choose a reason for hiding this comment

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

I haven't actually looked at all of this yet. These are just a couple thoughts as I skimmed the changes.

platformio.ini Outdated Show resolved Hide resolved
platformio.ini Outdated Show resolved Hide resolved
@rhapsodyv
Copy link
Member Author

I tested all last changes, made a few fixes and everything is working as expected.

@thinkyhead thinkyhead merged commit 84ab088 into MarlinFirmware:bugfix-2.0.x Dec 29, 2020
@rhapsodyv rhapsodyv deleted the usb-flash-drive-support branch December 29, 2020 05:19
TheMichalcinOfficial added a commit to TheMichalcinOfficial/Marlin that referenced this pull request Dec 30, 2020
* MKS WiFi preliminary changes

* More MKS WiFi

* MKS WiFi strings

* Fix Z label

* Windows LPC Upload for non-admins (MarlinFirmware#20208)

Co-authored-by: Victor Mateus Oliveira <rhapsodyv@gmail.com>
Co-authored-by: Scott Lahteine <github@thinkyhead.com>

* Fix DAC setDrvPct (MarlinFirmware#20205)

* [cron] Bump distribution date (2020-11-20)

* Longer LK Pro / Alfawise PRO board (MarlinFirmware#20185)

* Missing header to use suicide() on LVGL UI (MarlinFirmware#20214)

* SINGLE_TOUCH_NAVIGATION Follow Up (MarlinFirmware#20213)

* Printrboard labels

* [cron] Bump distribution date (2020-11-21)

* Fix backward Filament (Presence) Sensor pulls (MarlinFirmware#20228)

Co-authored-by: Kurt Haenen <Kurt.Haenen@quintux.com>
Co-authored-by: Scott Lahteine <github@thinkyhead.com>

* Fix bad SET_FAST_PWM_FREQ calls (MarlinFirmware#20227)

* Superscript substitution (MarlinFirmware#20219)

Co-authored-by: Scott Lahteine <github@thinkyhead.com>

* Power-Loss cleanup

* BTN_ENC_EN for many boards (MarlinFirmware#19890)

Enables CHECK_ENCODER_ACTIVE_SIGNAL for many more boards.

Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
Co-authored-by: Jason Smith <jason.inet@gmail.com>

* Skip unnecessary (costly) SW Stepper Enable (MarlinFirmware#20218)

Co-authored-by: Jason Smith <jason.inet@gmail.com>
Co-authored-by: Scott Lahteine <github@thinkyhead.com>

* Fix Load Filament wait (MarlinFirmware#20243)

* Proper pullup/pulldown configurability (MarlinFirmware#20242)

Co-authored-by: Scott Lahteine <github@thinkyhead.com>

* [cron] Bump distribution date (2020-11-22)

* Clear menu history for browse media on insert (MarlinFirmware#20236)

Co-authored-by: Scott Lahteine <github@thinkyhead.com>

* Put "$3" on all tests

* Move core conditionals earlier

* Hide docker droppings

* [cron] Bump distribution date (2020-11-23)

* Fix UBL manual mesh adjust behavior (MarlinFirmware#20248)

* Allow Status Message without LCD (MarlinFirmware#20246)

* Fix dummy thermistors for Bed, Chamber, Probe (MarlinFirmware#20247)

* Fix Z4 in ENABLE/DISABLE_AXIS_Z (MarlinFirmware#20256)

This was accidentally broken in PR MarlinFirmware#20218

* [cron] Bump distribution date (2020-11-24)

* LCD position in current units (MarlinFirmware#20145)

* Set "lcd_move_e" index to fix the label (MarlinFirmware#20263)

* Allow cold Filament Load/Unload with M302 P1 (MarlinFirmware#20262)

Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>

* No Z_MULTI_ENDSTOPS when HOMING_Z_WITH_PROBE (MarlinFirmware#20254)

* Consistent Probe XY offset type

* Cosmetic G29 ABL tweak

* [cron] Bump distribution date (2020-11-25)

* Update TOUCH_UI_LULZBOT_BIO wrappers

* add missing header to use HAS_SD_HOST_DRIVE (MarlinFirmware#20270)

* Fix COLOR_UI without TOUCH_SCREEN_CALIBRATION (MarlinFirmware#20269)

* [cron] Bump distribution date (2020-11-26)

* Probe Offset Wizard improvements (MarlinFirmware#20239)

* Reduce warnings, extern "C" cleanup (MarlinFirmware#20279)

* Retire HAL for STM32F4 / F7 (MarlinFirmware#20153)

* Tweak some pin errors

* MKS Robin E3 / E3D v1.1 (MarlinFirmware#20216)

* Finish HAL/STM32 cpp wrappers

* No auto debug for EEPROM_CHITCHAT

* Optimize emergency parser check

* Level Corners with Probe option (MarlinFirmware#20241)

* [WIP] Fix Probe::offset_xy (MarlinFirmware#20290)

Co-authored-by: Jason Smith <jason.inet@gmail.com>

* [cron] Bump distribution date (2020-11-27)

* M808 Repeat Markers (MarlinFirmware#20084)

* FIX TMC menu message (MarlinFirmware#20294)

* Fix BTT GTR 1.0 endstop/DIAG pins (MarlinFirmware#20296)

* Fix G2/G3 arcs > 180° (MarlinFirmware#20292)

* Group related homing options (MarlinFirmware#20283)

Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>

* Fix M73 LCD code typo (MarlinFirmware#20300)

* [cron] Bump distribution date (2020-11-28)

* [cron] Bump distribution date (2020-11-29)

* Arc Direction followup for circles (MarlinFirmware#20314)

* SKR E3 Turbo Controller Fan (MarlinFirmware#20320)

* Fix STM32F1 'freeMemory()' warnings (MarlinFirmware#20319)

* Leveling Fade Height default setting (MarlinFirmware#20316)

* [cron] Bump distribution date (2020-11-30)

* Adjust axis homed / trusted methods (MarlinFirmware#20323)

* General cleanup

* Increase E3V2 DWIN steps/mm range to 999.9 (MarlinFirmware#20324)

* [cron] Bump distribution date (2020-12-01)

* Prevent Watchdog reset writing Creality 4.x EEPROM (MarlinFirmware#20328)

* Fix E3V2 Control Menu when returning from Info (MarlinFirmware#20338)

* Tweak to EEPROM safe delay

* [cron] Bump distribution date (2020-12-02)

* Level Bed Corners is a sub-menu

* Update to STM32 v10, optimize build (MarlinFirmware#20325)

* Help hosts when password-locked (MarlinFirmware#20348)

* Fix E3V2 DWIN Jerk Menu (MarlinFirmware#20352)

* Fix E3V2 DWIN build without CLASSIC_JERK
* Fix jerk edits applying to wrong index

* Permit SD EEPROM emulation on E3V2 (MarlinFirmware#20353)

* [cron] Bump distribution date (2020-12-03)

* Fix circle arc condition (MarlinFirmware#20322)

* Fix up start, monitor baud (MarlinFirmware#20326)

* Consolidate common pin includes

* Require minimum PlatformIO version (MarlinFirmware#20361)

Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
Co-authored-by: Jason Smith <jason.inet@gmail.com>

* [cron] Bump distribution date (2020-12-04)

* Fix MESH_BED_LEVELING w/o SEGMENT_LEVELED_MOVES (MarlinFirmware#20363)

* Loosen E on pause for fila-manipulation (MarlinFirmware#20346)

Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>

* [cron] Bump distribution date (2020-12-05)

* Don’t use near keyword as variable name (MarlinFirmware#20374)

* Improved Longer3D LKx Pro board (MarlinFirmware#20372)

Co-authored-by: mrv96 <marione96@live.it>

* Fix TMC_HOME_PHASE divide by zero (MarlinFirmware#20368)

* Suspend Servos for STM32+NeoPixel (MarlinFirmware#19963)

* Add Creality 4.5.2 board (MarlinFirmware#20378)

Co-authored-by: Jason Smith <jason.inet@gmail.com>

* [cron] Bump distribution date (2020-12-06)

* Fix FYSETC S6 I2C EEPROM size (MarlinFirmware#20340)

Both V1.2 and V2.0 boards have a 24LC16, which is a 2kB EEPROM.

Co-authored-by: PingWin <kirill@shashlov.ru>
Co-authored-by: Jason Smith <jason.inet@gmail.com>

* Creality 4.5.2 format and fix

* Use 'nearby' for 'near'

* ExtUI homing / leveling additions

* Move G29 3-point startup earlier

* Fix STM32F1 SERIAL_GET_TX_BUFFER_FREE

* G28 tweaks

* G28 followup

* Avoid invalid memory optimizations (MarlinFirmware#20389)

When building for AVR, merge-all-constants can incorrectly combine constants stored in flash with constants stored in RAM. These have different access requirements, leading to undefined behavior during execution.
Co-authored-by: ellensp <ellensp@hotmail.com>

* [cron] Bump distribution date (2020-12-07)

* Fix fileExists, use openFailed

* Watch idle() depth over 5

* More LPC P-string macros

* Fix auto#.g file handling, add NO_SD_AUTOSTART (MarlinFirmware#20071)

* Shorten Filament Load/Unload Strings to Fit on Graphical Displays (MarlinFirmware#20369)

Co-authored-by: ellensp <ellensp@ellensp-HP-ProBook-6470b.fritz.box>
Co-authored-by: Victor Mateus Oliveira <rhapsodyv@gmail.com>

* Allow BTT EXP-MOT be used with Displays that needs only EXP 1 (MarlinFirmware#20396)

Co-authored-by: ellensp <ellensp@ellensp-HP-ProBook-6470b.fritz.box>
Co-authored-by: Victor Mateus Oliveira <rhapsodyv@gmail.com>

* [cron] Bump distribution date (2020-12-08)

* SPI TFT for STM32F4 boards (MarlinFirmware#20384)

* fix pinsDebug for F1 boards

* add MKS Robin PRO V2 board - development board

* tft spi working with F4 boards

* pins formating

* sanity check for TFT on supported cores in STM32

* Fix tabs/spaces in pins file

Co-authored-by: Jason Smith <jason.inet@gmail.com>

* [cron] Bump distribution date (2020-12-09)

* Style, spacing, typo cleanup for recent changes

* Clarify Delta & SCARA config location (MarlinFirmware#20403)

* Allow positive Z nozzle to probe offset (MarlinFirmware#20344)

* Allow a positive value for z offset from nozzle to probe without sanity checks
* Simplify menu_probe_offset.cpp (HOMING_Z_WITH_PROBE)
* Add some more explanation to Configuration Files
* Raise after probe_at_point as if homed

Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
Co-authored-by: Jason Smith <jason.inet@gmail.com>

* Fix Spindle/Laser Control menu (MarlinFirmware#20347)

* Fixes and additions to FTDI EVE Touch UI (MarlinFirmware#20393)

- Fixed name conflict with "SUBSCRIPT_TWO"
- Fixed rendering bugs in "Leveling Menu"
- Only show "Bed Mesh Screen" when UBL is enabled
- Removed CocoaPress code from generic "Main Menu"
- Removed CocoaPress code from LulzBot Bio "Status" screen
- Moved generic "Move Axis" functionality into a base class
- Added CocoaPress custom screens:
   - Status Screen
   - Unload Cartridge
   - Load Chocolate
   - Main Menu
   - Advanced Settings
   - XYZ Move (based on "Move Axis" base class)
   - Extrusion Move (based on "Move Axis" base class)
- CocoaPress tweaks to "Temperature" screen
- Fix FTDI EVE Touch UI compilation errors when not using leveling.

* Move ExtUI ABL mesh edit, limit to bilinear (MarlinFirmware#20381)

* Move ExtUI call

Co-authored-by: Scott Lahteine <github@thinkyhead.com>
Co-authored-by: Victor Mateus Oliveira <rhapsodyv@gmail.com>
Co-authored-by: Sebastiaan Dammann <sebastiaandammann@outlook.com>

* MKS Robin Pins fixes for STM32 and STM32F1 (MarlinFirmware#20404)

Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>

* [cron] Bump distribution date (2020-12-10)

* Clarify "not Interrupt-capable" error message (MarlinFirmware#20419)

* Fix UBL Debug Messages (MarlinFirmware#20423)

Co-authored-by: ellensp <ellensp@hotmsil.com>

* [cron] Bump distribution date (2020-12-11)

* Z_SENSORLESS sanity checks (MarlinFirmware#20421)

Co-authored-by: Jason Smith <jason.inet@gmail.com>

* Probe offset wizard fixes (MarlinFirmware#20414)

* STOW probe, reverting incorrect earlier change from MarlinFirmware#20344
* Adjust soft endstop disables, to ensure travel below bed functions properly

Co-authored-by: FanDjango <FanDjango@users.noreply.github.com>

* SENSORLESS_PROBING sanity check followup (MarlinFirmware#20438)

* [cron] Bump distribution date (2020-12-12)

* Better animated boot screen

* Fix SDCARD_SORT_ALPHA on Ender 3 V2 (MarlinFirmware#20443)

* Add HAS_PIN_27_BOARD for CREALITY_V4 (MarlinFirmware#20446)

Co-authored-by: ellensp <ellensp@hotmsil.com>

* Improve ASSISTED_TRAMMING_WIZARD probe stowing (MarlinFirmware#20437)

* When BLTOUCH_HS_MODE enabled, stow pin before user interaction
* For all probes, ensure probe stows at end of wizard

* [cron] Bump distribution date (2020-12-13)

* Probe Offset Wizard followupBack to PROBE_PT_RAISE/separate STOW, make "PROBING" msg appear (MarlinFirmware#20439)

* Go back to always use PROBE_PT_RAISE with a discrete stow. This ensures a raise above the bed, while stowing prior to exiting the wizard.
* Fix issue preventing text while moving to X/Y position
Co-authored-by: FanDjango <FanDjango@users.noreply.github.com>

* Adjust planner debugging

* SHORT_MANUAL_Z_MOVE => FINE_MANUAL_MOVE

* [cron] Bump distribution date (2020-12-14)

* LPC176x framework update (MarlinFirmware#20469)

* [cron] Bump distribution date (2020-12-15)

* Fix formatting

* Preheat before leveling

* Always enable leveling after G28

* Trust that script -x flags will always be set (MarlinFirmware#20453)

* Fix M1001 auto-check logic (MarlinFirmware#20456)

* Auto-check followup

* Please install the EditorConfig plugin

* Fix RESTORE_LEVELING_AFTER_G28 (MarlinFirmware#20471)

* Creality v4.5.3 (CR-6 SE, CR-6 MAX) (MarlinFirmware#20468)

* Update some pins errors

* Update some LCD includes

* Trust STM32 gcc versions

* [cron] Bump distribution date (2020-12-16)

* Update Italian language (MarlinFirmware#20480)

* Update Hungarian language

Co-Authored-By: Zs.Antal <45710979+AntoszHUN@users.noreply.github.com>

* Update French language (MarlinFirmware#20472)

* [cron] Bump distribution date (2020-12-17)

* Use homing_feedrate function

* Homing feedrates as XYZ array (MarlinFirmware#20426)

Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>

* Fix ZoneStar LCD 2004 buttons (MarlinFirmware#20489)

* Make M220 B / R a standard feature (MarlinFirmware#20355)

* Balance CI tests (MarlinFirmware#20485)

* Fix and optimize MightyBoard (MarlinFirmware#20493)

* [cron] Bump distribution date (2020-12-18)

* MKS Robin Nano V3 and STM32F4x0Vx Variant (MarlinFirmware#20430)

* DOGM: Slow down touchscreen calibration (MarlinFirmware#20454)

* [cron] Bump distribution date (2020-12-19)

* Rename QUIET_PROBING

* Tweaks for pins_BTT_SKR_common.h

* [cron] Bump distribution date (2020-12-20)

* Let boards set Default TMC Slave Addresses (MarlinFirmware#20498)

Co-authored-by: Scott Lahteine <github@thinkyhead.com>

* Minimum temp options for Probing and G12 Nozzle Clean (MarlinFirmware#20383)

Co-authored-by: Jason Smith <jason.inet@gmail.com>
Co-authored-by: Scott Lahteine <github@thinkyhead.com>

* Probe Tare, Probe Activation Switch (MarlinFirmware#20379)

Co-authored-by: Scott Lahteine <github@thinkyhead.com>
Co-authored-by: Victor Mateus Oliveira <rhapsodyv@gmail.com>
Co-authored-by: Jason Smith <jason.inet@gmail.com>

* Fix Creality EEPROM watchdog freq. (MarlinFirmware#20510)

* Migrate Hispeedv1 (QQS-Pro) to HAL/STM32 (MarlinFirmware#20354)

* Languages cleanup

* Update Russian and Ukrainian languages (MarlinFirmware#20508)

* Fix PIO typo

* [cron] Bump distribution date (2020-12-21)

* Get E3V2 DWIN `MACHINE_SIZE` from config (MarlinFirmware#20526)

* Apply HOME_AFTER_DEACTIVATE for 'G28 O' (MarlinFirmware#20525)

* Clean up some pins

* Add BTT SKR CR6 board (MarlinFirmware#20522)

* Fix G34 compile with bed leveling disabled (MarlinFirmware#20537)

* Fix some Russian (MarlinFirmware#20529)

* Robin pins followup

* Tweak FTDI spacing

* Add Tune -> Advanced Settings to FTDI EVE (MarlinFirmware#20532)

* [cron] Bump distribution date (2020-12-22)

* 12-bit ADC resolution for STM32 (MarlinFirmware#20519)

* FTDI EVE custom user menus (MarlinFirmware#20518)

* Improve STM32 timer conflict messages (MarlinFirmware#20544)

* Fix UBL mesh inset Z position (MarlinFirmware#20538)

* Overrides to prevent STM32 timer conflicts (MarlinFirmware#20545)

* Improve Touch Calibration screen (MarlinFirmware#20524)

* Creality v4.3.1 (Ender 6) board (MarlinFirmware#20512)

* Anet ET4 / ET4P and Anet TFT28 / TFT35 (MarlinFirmware#20280)

* STM32F1xx support for TFTGLCD (MarlinFirmware#20515)

* Unify FYSETC F6 1.3 / 1.4 (MarlinFirmware#20507)

Co-authored-by: Scott Lahteine <github@thinkyhead.com>

* Fix G28 leveling state, UBL compile (MarlinFirmware#20499)

* Support RGBW on PCA9632 (MarlinFirmware#20455)

Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>

* [cron] Bump distribution date (2020-12-23)

* Refactor 'Level Corners with Probe' (MarlinFirmware#20460)

Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>

* Improve plan_arc circle detection (MarlinFirmware#20440)

Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>

* FTDI EVE: Cyrillic font, some minor fixes (MarlinFirmware#20517)

* Enhanced Italian language (MarlinFirmware#20551)

* Probe Activation Switch followup (MarlinFirmware#20550)

* Support ANET_FULL_GRAPHICS_LCD_ALT_WIRING on BTT SKR 1.4 (MarlinFirmware#20427)

* Apply ENABLED in ExiUI / FTDI

* Remaining Time for FTDI EVE, bp for ExtUI (MarlinFirmware#20549)

Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>

* Add OPTIMIZED_MESH_STORAGE option (for UBL) (MarlinFirmware#20371)

Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>

* [cron] Bump distribution date (2020-12-24)

* Move BTT_SKR_CR6

* LVGL and Classic UI for STM32 (MarlinFirmware#20552)

* Add "End Repeat Loops" menu item

* Fix DOGM status message scrolling (MarlinFirmware#20557)

* Fix ST7920 timing for Rumba32, Fysetc S6 (MarlinFirmware#20556)

* Fix, clean up FTDI EVE Touch UI (MarlinFirmware#20466)

Co-Authored-By: Marcio T. <mlt4356-github@yahoo.com>

* Apply NO_MOTION_BEFORE_HOMING to joystick motion (MarlinFirmware#20462)

Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>

* Cutter Power in percent format (MarlinFirmware#20410)

Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
Co-authored-by: Jason Smith <jason.inet@gmail.com>
Co-authored-by: Luu Lac <45380455+shitcreek@users.noreply.github.com>

* [cron] Bump distribution date (2020-12-25)

* [cron] Bump distribution date (2020-12-26)

* [cron] Bump distribution date (2020-12-27)

* Fix SPINDLE_LASER_FREQUENCY (MarlinFirmware#20509)

* Fix some comments

* Remove CREALITY_TOUCH

* Add probe_switch_activated

* Init tare pin once

* [cron] Bump distribution date (2020-12-28)

* Validate defined probe points (MarlinFirmware#20572)

* General cleanup

* Allow define HOMING_FEEDRATE_(XY|Z)

* Remove URL scheme

* Small / Large Boot Screen option for TFT_COLOR_UI (MarlinFirmware#20578)

* Better defaults, compatibility for SDIO + STM32 (MarlinFirmware#20570)

* Fix Menu Mixer for Color UI (MarlinFirmware#20566)

* Use ADC_RESOLUTION 12 for all STM32 (MarlinFirmware#20562)

* Fix LVGL_UI G-code preview (MarlinFirmware#20564)

* Fix Change Filament menu actions (MarlinFirmware#20565)

Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>

* Menu item index followup

* [cron] Bump distribution date (2020-12-29)

* Apply SHOW_BOOTSCREEN to TFT_COLOR_UI (MarlinFirmware#20586)

* LVGL G-code preview. Legacy MKS WiFi Cura plugin compatibility (MarlinFirmware#20589)

* Clarify sanity-check for custom status bitmap (MarlinFirmware#20588)

* Pins, comment cleanup

* USB FD via native USB Host + MSC (MarlinFirmware#20571)

* Support 4.3" (480x272) Color UI display (MarlinFirmware#20334)

* [cron] Bump distribution date (2020-12-30)

Co-authored-by: Scott Lahteine <github@thinkyhead.com>
Co-authored-by: Vitaliy <burkut_vit@mail.ru>
Co-authored-by: Victor Mateus Oliveira <rhapsodyv@gmail.com>
Co-authored-by: Orel <37673727+0r31@users.noreply.github.com>
Co-authored-by: thinkyhead <thinkyhead@users.noreply.github.com>
Co-authored-by: Ajtak <ajtak.jakub@gmail.com>
Co-authored-by: Kurt Haenen <Misterke@users.noreply.github.com>
Co-authored-by: Kurt Haenen <Kurt.Haenen@quintux.com>
Co-authored-by: Simone Primarosa <simonepri@outlook.com>
Co-authored-by: Gurmeet Athwal <gurmeet.athwal@gmail.com>
Co-authored-by: Jason Smith <jason.inet@gmail.com>
Co-authored-by: qwewer0 <57561110+qwewer0@users.noreply.github.com>
Co-authored-by: rdhoggattjr <64983896+rdhoggattjr@users.noreply.github.com>
Co-authored-by: ellensp <ellensp@hotmail.com>
Co-authored-by: pseudex <pseudaex@gmail.com>
Co-authored-by: swissnorp <67485708+swissnorp@users.noreply.github.com>
Co-authored-by: mks-viva <1224833100@qq.com>
Co-authored-by: wmariz <11435639+wmariz@users.noreply.github.com>
Co-authored-by: Štěpán Dalecký <36531759+daleckystepan@users.noreply.github.com>
Co-authored-by: BsCmOD <64871957+BsCmOD@users.noreply.github.com>
Co-authored-by: yysh12 <yysh12@users.noreply.github.com>
Co-authored-by: Sergey1560 <53866542+Sergey1560@users.noreply.github.com>
Co-authored-by: Thomas Niccolo Reyes <niccoreyes@gmail.com>
Co-authored-by: Alexander D. Kanevskiy <kad@kad.name>
Co-authored-by: Mathias Rasmussen <mathiasvr@gmail.com>
Co-authored-by: Luu Lac <45380455+shitcreek@users.noreply.github.com>
Co-authored-by: Belin Fieldson <thebelin@gmail.com>
Co-authored-by: Tanguy Pruvot <tpruvot@users.noreply.github.com>
Co-authored-by: mrv96 <marione96@live.it>
Co-authored-by: InsanityAutomation <38436470+InsanityAutomation@users.noreply.github.com>
Co-authored-by: LinFor <linfor@gmail.com>
Co-authored-by: PingWin <kirill@shashlov.ru>
Co-authored-by: ellensp <ellensp@ellensp-HP-ProBook-6470b.fritz.box>
Co-authored-by: Keith Bennett <13375512+thisiskeithb@users.noreply.github.com>
Co-authored-by: Mike La Spina <mike.laspina@shaw.ca>
Co-authored-by: Marcio T <mlt4356-github@yahoo.com>
Co-authored-by: Sebastiaan Dammann <sebastiaandammann@outlook.com>
Co-authored-by: ellensp <ellensp@hotmsil.com>
Co-authored-by: elasticdotventures <35611074+elasticdotventures@users.noreply.github.com>
Co-authored-by: FanDjango <51046875+FanDjango@users.noreply.github.com>
Co-authored-by: FanDjango <FanDjango@users.noreply.github.com>
Co-authored-by: leodoener <leodoener@gmail.com>
Co-authored-by: Chris Pepper <p3p@p3psoft.co.uk>
Co-authored-by: kisslorand <50251547+kisslorand@users.noreply.github.com>
Co-authored-by: JoAnn Manges <joannmanges@gmail.com>
Co-authored-by: Giuliano Zaro <3684609+GMagician@users.noreply.github.com>
Co-authored-by: Zs.Antal <45710979+AntoszHUN@users.noreply.github.com>
Co-authored-by: rafaljot <rafal@jastrzebscy.org>
Co-authored-by: nb-rapidia <43864438+nb-rapidia@users.noreply.github.com>
Co-authored-by: grauerfuchs <42082416+grauerfuchs@users.noreply.github.com>
Co-authored-by: Foxies <Foxies-CSTL@users.noreply.github.com>
Co-authored-by: Serhiy-K <52166448+Serhiy-K@users.noreply.github.com>
Co-authored-by: Dick Streefland <dick@streefland.net>
Co-authored-by: cr20-123 <66994235+cr20-123@users.noreply.github.com>
Co-authored-by: X-Ryl669 <boite.pour.spam@gmail.com>
Co-authored-by: Sean McGroty <sean@darkon.net>
Co-authored-by: Jan Krajdl <spm@spamik.cz>
Co-authored-by: Darren Peter <killallthehumans@gmail.com>
Co-authored-by: ubik2 <ubik2@users.noreply.github.com>
Co-authored-by: Vi B-P <violetbp@eecs.umich.edu>
Co-authored-by: Ashammaru <xgxede@gmail.com>
tharts pushed a commit to tharts/Marlin that referenced this pull request Jan 6, 2021
@jeno007
Copy link

jeno007 commented Jan 13, 2021

@rhapsodyv
Do I understand correctly that enabling USB_FLASH_DRIVE_SUPPORT is mutually exclusive with using the onboard SD card on SKR PRO? (and on every board as it seems to be a marlin limitation)
I just enabled the USB device msc mode with the onboard SD card, but it is slow due to the onboard SD card using software SPI I assume.
So I'm considering using the host msc with a thumb drive as you referenced it in stm32duino/Arduino_Core_STM32/pull/1196.
But I might lose the remote firmware update option if I lose the connection to the onboard SD.

@rhapsodyv
Copy link
Member Author

@rhapsodyv
Do I understand correctly that enabling USB_FLASH_DRIVE_SUPPORT is mutually exclusive with using the onboard SD card on SKR PRO? (and on every board as it seems to be a marlin limitation)

Yes, but it's only temporary. I'm working to support multiples disk at same time on Marlin.

I just enabled the USB device msc mode with the onboard SD card, but it is slow due to the onboard SD card using software SPI I assume.

USB device or usb host?? This PR add support for USB HOST MSC (to use a flash drive), not usb device msc (to share the SD with the computer - it's a ongoing task too)

So I'm considering using the host msc with a thumb drive as you referenced it in stm32duino/Arduino_Core_STM32/pull/1196.

This is my PR and we are using it in Marlin now.

But I might lose the remote firmware update option if I lose the connection to the onboard SD.

Yes, but not because the Marlin, but because on SKR PRO you have to set the jumper to choose between USB host and usb device mode.
Nano V3, for example, you support both, even sharing the usb flash drive with the computer.

@jeno007
Copy link

jeno007 commented Jan 14, 2021

Thank you.
I enabled USB device, to share the SD card with the octopi computer.
I know that this PR is about USB host msc.
The device msc works now, but slow due to the SD card working with software SPI I assume.
Now I understand that on SKR PRO there is now way to use a thumb drive (conencted to host msc) and share it via USB device.
I go back and try to implement hardware SPI.

@rhapsodyv
Copy link
Member Author

Why are you using software spi?

@jeno007
Copy link

jeno007 commented Jan 14, 2021

With standard Marlin, that is the only way. It can handle only one HW SPI bus and on SKR Pro V1.1 the HW SPI bus is connected to LCD's SD card. Also the onboard SD card works in SPI mode 3 due to a HW design mistake, what standard Marlin can not handle.
Thus the onboard SD card is handled by SW SPI in mode3.
@LinoBarreca created a quite complex patch to move all the SPI operations to HAL, thus extend it to handle multibus-multimode operations. With multibus, he also created a multi SD card handling (in a way, that Marlin can look for an SD card in multiple SPI buses).
I now just got his patch working on Marlin 2.0.7.2.
When I'm done with the test print, I will try to combine it with USB device msc, to make the HW SPI connected onboard SD card available to octopi.

@rhapsodyv
Copy link
Member Author

I'm working on that. The main difference, is that we are creating the concept of "SPI Device", that holds all its config. Automatically it will allow multi bus/mode/etc. Soon we will push the changes.

About MSC on USB device mode, I'm working on that too.

@jeno007
Copy link

jeno007 commented Jan 14, 2021

Sounds very good, I'm waiting for the "official" solution. :-)
Currently I'm just hacked together the unmerged PR-s I found.
Now with HW SPI the SD card write speed doubled to 80KB/s. I expected a bit more, but googling it around, it seems reasonable.

dpreed pushed a commit to dpreed/Marlin_2.0.x that referenced this pull request Feb 5, 2021
kpishere pushed a commit to kpishere/Marlin that referenced this pull request Feb 19, 2021
zillarob pushed a commit to zillarob/Marlin that referenced this pull request Feb 25, 2021
W4tel-BiDi pushed a commit to W4tel-BiDi/Marlin that referenced this pull request Apr 5, 2021
thinkyhead pushed a commit to thinkyhead/Marlin that referenced this pull request Apr 29, 2021
thinkyhead pushed a commit that referenced this pull request Apr 30, 2021
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.

4 participants