element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • About Us
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Raspberry Pi
  • Products
  • More
Raspberry Pi
Raspberry Pi Forum RASPBERRY PI PICO DEVICE MSC INCREASE SIZE
  • Blog
  • Forum
  • Documents
  • Quiz
  • Events
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Raspberry Pi to participate - click to join for free!
Featured Articles
Announcing Pi
Technical Specifications
Raspberry Pi FAQs
Win a Pi
Raspberry Pi Wishlist
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • Replies 23 replies
  • Subscribers 660 subscribers
  • Views 5617 views
  • Users 0 members are here
Related

RASPBERRY PI PICO DEVICE MSC INCREASE SIZE

gabofienco
gabofienco over 2 years ago
Hello all,
I am working in a project where I plan to use rp2040 tiny usb device to store some files greater than 5MB in a SDCARD.
My question is.. any ideas how to make the MSC device to point to the address or path generate by rp2040 to the SDCARD??. and if not possible to change the pointing address will be good to know too.
Or how to make the device MSC to look with a size of 128MB in windows just like it does when it is in boot mode?
I had used these references, but I still can't have a good mounted device with a bigger size that is not overflowing flash/ram.
https://github.com/hathach/tinyusb/tree/3ead682af05bee3a275125f3e0384dd9b2882546/examples/device/cdc_msc
github.com/.../pico-bootrom
Thanks for your time.
  • Sign in to reply
  • Cancel
  • mayermakes
    mayermakes over 2 years ago

    the easiest way to get a bigger storage volume as MSC device might be to just use a bigger Flash chip, I don´t know about the limitations in size(if there are any) for the Rp2040.
    if you still want to use an SD card in addition to it then you can connect that as well and copy files between SD and Flash as needed.
    I'm not aware of any method that allows to point the MSC device to any other storage than the Flash default, but maybe someone else knows.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • misaz
    misaz over 2 years ago in reply to mayermakes

    Providing data from other memory is of course possible. At least you can reimplement MSC USB packets handling manually and implement it in whatever way you want. But it requires lot of skils with USB.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • baldengineer
    baldengineer over 2 years ago

    Don't forget that the Pico / RP2040 only runs USB 1.1. Even at 12 megabit/s, 128 megabyte is going to take a very long time to fill.

    You'll probably need to look for examples of projects where people have done what you want, but with other processors.

    The process is not as simple as using the TinyUSB example, changing the max size, and "pointing" to the SD Card. You have write the SD Card handler and figure out how to interface it with the communication that TinyUSB provides.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • mayermakes
    mayermakes over 2 years ago in reply to baldengineer

    oh really, I expected its usb 2.0 like the ESP32S2 has since they both use tinyusb and got released in the same era, I wasn't expecting anything below 2.0
    Good to know!

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • gabofienco
    gabofienco over 2 years ago in reply to baldengineer

    I already manage to send data via VCP, but 4MB file is around 1minute... too much time... that is why I am looking for a way to make it appear as a usb mass storage (MSC the rp2040) and that way copy/paste a file and then copy it at will with my firmware to the SDCARD.. 

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • mayermakes
    mayermakes over 2 years ago in reply to gabofienco

    in that case just using a flash chip that is big enough for the bioggest expected filesize + Firmware might do the trick.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • gabofienco
    gabofienco over 2 years ago in reply to mayermakes

    That is not a good way, flash is not the only problem, I will have to increase RAM as well, so that is not a good option.

    When you set the rp2040 in boot mode to drag and drop the uf2 file, the microcontroller appears as a 128MB size.. virtual size... that is what I want to get, but I haven't had luck yet.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • gabofienco
    gabofienco over 2 years ago in reply to misaz

    Yes, exactly that is what I plan to do, but my files are really big, so.. my only problem right now is to make it look like a 128MB mass storage (just like the system in boot mode when you load the uf2 file).... then redirect that data to SDcard will be ok, I already debug and know where data is being receive.... but getting a bigger size to copy/paste my files is my little problem haha

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • misaz
    misaz over 2 years ago in reply to mayermakes

    Most MCUs have only 12 Mbit USB (Full-Spped). For summary:

    USB Low-Speed (LS) 1.5 Mbps: possible to implemnt with bitband even MCU do not support it. (https://www.obdev.at/products/vusb/index.html). Some MCUs with FS driver can be downgraded to this speed but I do not know any good reason for doing this except supporting very very very old USB hosts.

    USB Full-Speed (FS) 12 Mbps: hard to implement with bitband, HW accelerator included in many nowadays MCUs including RP2040. This is standard in MCU world.

    USB High-Speed (HS): 480 Mbps: requires special driver and PHY, nowadays supported by advanced MCU, but generaly it is rarely supported in embedded world.

    USB Super-Speed (SS): 5 Gbps: no MCU support, very few MPU support it. Usualy done by external controller connected on PCIe bus.

    There are some newer speeds but I have no epxeriences with it.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • baldengineer
    baldengineer over 2 years ago in reply to gabofienco

    The bottleneck is the RP2040's USB 1.1 speed, not the protocol.

    VCP means the RP2040 is using the CDC profile, which does not have a baud rate limit. So you can increase the baud rate to 1 Mbps. (However, your OS is probably already ignoring the baud anyway.)

    If your only goal is to put the data into Flash anyway, then Mayermakes is right, just write directly to Flash.

    There is no benefit to adding an SD Card in this mix. There's no speed benefit because the RP2040 fundamentally cannot transfer data faster than 1 Mbps anyway.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
>
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube