ovaris
Raspberry Zero W as USB mass storage drive
Hi, I’m new to Nerves and as a first project I was planning to create project where Zero is used as “smart” USB drive. Host would be storing video files on the drive and I would have some sort of file watcher on Nerves and it would react (upload to some cloud storage) when new files appears on the drive etc. And maybe running Phoenix web server for browsing files by connecting to Zero wifi.
Any pointers that could get me started on right track?
Most Liked
lucaong
You might want to look into ConfigFS. Check out this article for a start on how to configure different USB gadgets, especially the “Mass Storage” section: Composite USB Gadgets on the Raspberry Pi Zero | iSticktoit.net
The article is written with Raspbian in mind, but you can do the same in Nerves. You can take inspiration from this proof-of-concept repo where I setup the RPi4 USB-C as a USB Keyboard gadget: GitHub - lucaong/nerves_rpi4_hid_gadget_poc: Proof of concept of enabling USB-C gadget mode on Raspberry Pi 4 with Nerves · GitHub
My repo is based on a RPi4, but it shows one possible approach to do what the article says on Nerves. In the case of the RPi Zero, the USB port is already configured in OTG mode, but you might to do something similar to this pull request to enable ConfigFS: Switch to ConfigFS for USB Gadgets by GregMefford · Pull Request #62 · nerves-project/nerves_system_rpi0 · GitHub
One thing: most Nerves systems do not include the Debian version of common command line utilities, and use BusyBox instead. For this reason, things like echo -n ... or ln do not work exactly like in Raspbian. Pay attention to that when porting the scripts in the article ![]()
Popular in Questions
Other popular topics
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #deployment
- #library
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #channels
- #elixirconf
- #exunit
- #discussion
- #code-sync
- #javascript
- #podcasts
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixir-ls
- #phoenix_html
- #iex
- #blog-post
- #graphql
- #genstage
- #ai
- #websockets
- #supervisor
- #advent-of-code
- #elixirconf-us
- #distillery
- #processes
- #forms
- #api
- #metaprogramming
- #security
- #performance








