New Project Proposal + Request for help in getting started
I would like to start a project with my Omega2. "Camera Auto Backup" - Working title.
The idea is as follows:
- I hookup a hard drive or large capacity SSD.
- Each microSD (one by one) will be automatically copied, and stored on the large drive in a separate folder for backup.
The project will be open source and available for forking for anyone wishing to develop to other hardware/languages.
Please advice what tools I should use, or point me in the general direction.
If there is already a device or software that can do such a thing - please reply with a link.
Obviously this project is for fun. Anyone wishing to join forces with me is welcome.
My initial guess: USB for the HDD/SSDs, and the native µSD slot for copying.
Connecting a hard-drive / SSD is not directly possible via SATA, since the Omega2 doesn't have any SATA (m.2) ports.
You can buy a USB harddrive docking station, so attaching SSDs and HDDs will work out-of-the-box and appear as mountable devices. The only programming you'd have to do is a shell script or python script which looks for µSD cards to be copied and hard drive targets. A simple
ddcommand might be enough.
Since the Omega2 only has one USB 2.0 port (not USB3.0), speed might limited when writing to the harddrives, depending on what is slower (USB or µSD card accss)
If you buy an Omega2+, you have one native µSD card slot. Just put your program /shell script on the main embedded flash and insert the µSD card in the native slot you want to copy from.
For extra gimmicks you might also add LEDs controlled via GPIOs to start blinking/flashing whenever a µSD card is inserted or a copy process starts.
Appendix: Might be cooler if you'd use an Omega2+ expansion board + OLED expansion for the user interface? So that you can get user input via buttons (for menu navigation or a big red "copy now" button) and display a live progress bar on the OLED display every few seconds.
@Maximilian-Gerhardt I agree on your idea for laying this out. USB for the disk, the built-in µSD card slot for the µSD card. Add some LEds, buttons, and/or expansion boards for a physical user interface if you want one.
USB 2.0 will be limited to ~60 megabytes per second, but that might be fast enough for many uses, like if you just want to leave the µSD card in this auto-backup-dock-thing whenever it's not in use. If you want more speed, it's probably time to use a more powerful device with USB 3.0 or native SATA. That might be an old laptop, or a faster single-board computer (some have USB 3.0).
As to software, I bet this will be possible using some combination of scripts or programs that do the actual sync, and something to start it when a new card is inserted, probably procd. For copying, I'd consider rsync, as I bet there's some combination of flags that will make sure that your data only gets copied off once, not multiple copies of the same data.
Assuming you want to delete the files off of the uSD card once they're copied, you could mount the µSD card once as "read-only", copy the data off, then remount it as "read-write" for just a few seconds to delete the files, then unmount. This is pretty safe, as you can safely yank the µSD card out at any point in time except during that time when it's mounted "read-write".