[hackerspaces] Apt-get for Hardware

Bryan Bishop kanzure at gmail.com
Mon Apr 5 20:22:28 CEST 2010

Hey all, [this was originally sent to the Austin Hackerspace mailing list]

I am presenting at Texas Linux Fest 2010 this Saturday (April 10th) on
one of the projects I contribute to, dubbed SKDB. Essentially, it's
apt-get for hardware. Registration for the conference is $40 and it's
up at the Marchesa Event Center in Austin, Texas. Here's the scoop on
the project (but some links first!):

git: http://designfiles.org/skdb.git
irc: #hplusroadmap on irc.freenode.net
irc logs: http://gnusha.org/logs/ and http://gnusha.org/irclogs.txt

And in particular, the talk abstract:

SKDB is a method for sharing hardware over the internet. By "hardware"
we mean not just designs for circuit boards, but also biological
constructs, scientific instruments, machine tools, nuts and bolts, raw
materials, and how to make them.

You don't need to reinvent the wheel every time you begin a new
project. Someone out there has probably already done most or all of
the work for whatever you are trying to do, and then released the
plans on the internet. There are many common tools and parts involved
in making things. If only we could just "get" everything automatically
from the web, DIY manufacturing would be much easier. Essentially we
want to do something like "apt-get" for Debian or "emerge" for Gentoo,
the Linux software package managers. SKDB simplifies the process of
searching for free designs, comparing part compatibility, and building
lists of materials and components and where to get them. You could
even say SKDB is "apt-get but for real stuff".

In SKDB, hardware is organized into packages. Packages are a standard
and consistent way for programs to find data. Packages may contain CAD
files, CAM parameters, computer-readable descriptions of product
specifications, product-specific code, and bill of materials. For each
part in a package there are a number of interface definitions, which
describe how the part can connect with other parts, even parts from
other packages. Each package also lists dependencies which have to be
bought or built in order to successfully carry out a project. For
example a drill press is required to make holes with a certain level
of accuracy. SKDB downloads all of the dependencies automatically and
compares them to your existing inventory, and generates instructions
for your CNC machinery if you have any.

There are some non-technical videos from a presentation I gave last
December located here:
.. Gnusha is an open source hardware co-op that I have working with.
The text on the page is from an update email on 2010-01-12, and more
recently there was a huge update in late March that I haven't sent out
(still editing?).

I also wanted to bring up an idea that I will be focusing on at the
shop w/ Les. I think the linux kernel is a good starting point for
running a fablab, machine shop, hackerspace, techshop, or even a lab.
Essentially what I would love to have is, not only apt-get for
hardware, but also machines hooked up to /dev on a server. So, maybe
the laser cutter is mounted on /dev or otherwise through cupsd with a
printer driver, or some hardware-over-network protocol if a machine is
hooked up to EMC on a dedicated box. I'd also like to build something
like /dev/parts for a vending machine of small parts- imagine calling
up `cat` on a file and pipping it to a vending machine, and out pop
your parts for a quickie project.

For now, part bins are more efficient, but I suspect the (vague) idea
is coming across. Anyway, it would be an interesting way of organizing
a shop. A while back I had some silly shell scripts that I wanted to
eventually, one day, work:

.. but it's easy to spot how that shell script could be improved
significantly (like, wtf is up with the call to `mail`).

- Bryan
1 512 203 0507

More information about the Discuss mailing list