Git Product home page Git Product logo

isopod's Introduction

Isopod

Isopod is a Linux daemon that watches an optical disc drive, rips the discs inserted into it, and then rsyncs the resulting ISOs to remote storage in the background. While it works on any system with the required dependencies, it's designed for use on a Raspberry Pi with a special E-Ink status display, to support easy operation by non-technical users.

For technical reasons, Isopod cannot rip audio CDs or copy-protected media. With discs that Isopod does support, you are fully responsible for ensuring that your use of Isopod complies with all laws, regulations, etc. that you may be subject to.

Isopod is a personal project created to back up family videos that currently exist on DVD-Rs, before the discs rot away. The v1.0.0 release is the version initially shipped (literally, by mail) in support of this use case, and all continued development activity will be driven by direct feedback from this production setting. The project will be considered complete after these discs are transferred, and this repo (TODOs and all) will remain available with no promise of future maintenance in the hope that it may inspire future work.

Arrakis teaches the attitude of the knife—chopping off what's incomplete and saying: "Now, it's complete because it's ended here."

— from "Collected Sayings of Muad'Dib" by the Princess Irulan

(actually from Dune by Frank Herbert)

Requirements

Isopod has been tested on Arch Linux ARM and Raspbian 12 ("bookworm").

Optional E-Ink Status Display

Isopod optionally integrates with the Adafruit 2.13" E-Ink Bonnet for Raspberry Pi models with a 2x20 GPIO connector. To enable this support:

  • Install the Raspbian (Debian) packages i2c-tools, libgpiod-dev, python3-libgpiod, and python3-pil.
  • Enable the required Raspberry Pi features with raspi-config.
  • Create a virtualenv with the --system-site-packages option.
  • Install the adafruit-circuitpython-epd package into the virtualenv alongside Isopod.

(For the record, I mostly chose E-Ink based on Adafruit's inventory at the time of the project. It was probably for the best, though. A "live" display could have been more interesting, but also harder to set up and use.)

Terminal Hardware Notes

The "Isopod Terminal" is a Raspberry Pi-based system fitted with the above E-Ink display, which provides a simple user experience for ripping a series of discs.

I'm intentionally omitting a formal parts list for the terminal device, to help actively encourage the reuse of parts you already have or can acquire secondhand in order to assemble one. In general, the key elements are:

  • A Raspberry Pi, optionally with the E-Ink Bonnet linked above
  • A USB optical drive
  • A powered USB hub (to give the drive more current than the Pi can source)
  • A way to connect to the Internet (e.g. a Linux-compatible USB WiFi adapter if your Pi doesn't have built-in WiFi and you don't want to use Ethernet)

The above being said, I will share two specific hardware-related notes:

  • For the Pi models that it fits, Adafruit's case is perfectly compatible with their E-Ink Bonnet.
  • Plugable's USB hub can safely power both the Pi and a USB optical drive at the same time, and sticks nicely on the bottom of the Adafruit case with some foam tape. The powered hub I originally had on hand could not do this, and was only safe to use when plugged in separately from the Pi. The eLinux wiki page on this is worth a read.

isopod's People

Contributors

ahamlinman avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.