Yep, you bet I do. For starters, what's up with this thingy called
Pearl Biotech?
http://www.pearlbiotech.com/ "Do you dream of engineering biofuels,
creating new species as pets, and exploring your genome? So do we. And
we need new tools for our work, not square pegs cut to fit round
holes. At Pearl Biotech, we make bioengineering accessible by
designing cool, smart equipment for the modern genetic explorer."
Just seems like something you didn't mention when you were saying how
nobody was contributing to the gel box- maybe it's because they feel
left out of the company? I don't know how that works, honestly, so I
can't say much on that I guess.
Why are you using a 64 LED array? Is this for a transilluminator, and
if so, why not a lamp?
I see a lot of photographs of materials being cut or PCBs being
assembled, but I don't see any links to files that contain schematics,
or anything useful like that. It's possible that there is a conflict
of interest in your company and providing schematics, instructions, or
any documentation (other than random photographs). It's also entirely
possible that I have completely missed a link, or something, to where
the information is .. but even with Mike Katsevman on the project, and
no link to his python script that generates gel box designs for
acrylic laser cutting, makes me wonder about this whole operation.
Tito, what's going on? You made it sound completely different last
night.
> The documentation at
> http://openwetware.org/wiki/DIYbio:Notebook/Open_Gel_Box_2.0 is not an RFC;
> you have to follow the instructions in BBF RFC 0 (
> http://dspace.mit.edu/handle/1721.1/44960) to get an RFC number. So you
> can't say the Gel Box began as an RFC or is currently an RFC.
> Thanks,
> Mac
the IETF RFC infrastructure was set up before the internet, obviously.
Why model your standards-making procedure on something that came out of a
completely different context?
list of all authors and email address in plain text? that's ridiculous.
manual intervention required to initiate creation of a document? ridiculous.
assign copyright to biobricks foundation? hmm. what does this have to do
with DIYbio anyway?
Many. Here is an index of relevant discussions on that front:
> Open Hardware in general is still in its infancy, and we have the
> opportunity here to contribute to the general engineering standards in
> a way that electronics-alone projects haven't necessarily envisioned.
Standards have been briefly drafted and discussed frequently; I've
mentioned them on this list and with Tito numerous times, and even
something that partially resembles the ideal of having a file uploaded
or something wouldn't be terrible (in comparison to what he (hardly)
put up). It just feels kind of all done wrong, that's all. This is
also why I was talking about a 'social contract' in one of my earlier
emails re: "what's all this about 'open', anyway", but that might have
been hidden in all of the 'signal'.
Did you read the examples I cited yet?
http://heybryan.org/om.html
specifically, there's a list of OSH projects here:
http://p2pfoundation.net/Product_Hacking
Citations/references on an OSH hardware format-
http://groups.google.com/group/openmanufacturing/browse_frm/thread/8465dc23eb48e332#
http://groups.google.com/group/openmanufacturing/browse_frm/thread/f3904def613e1ce4/f1c75c4b297ced32?lnk=gst&q=zip+files#f1c75c4b297ced32
http://groups.google.com/group/openmanufacturing/browse_frm/thread/3f991441a6860b51/a9c7b0f65a8fde5a?lnk=gst&q=zip+files#a9c7b0f65a8fde5a
In particular, I'd be happy to package up an open source hardware
project for anybody, in particular all that I need are some CAD files,
instructions/README, and maybe some discussion with me so that I can
make sure I know what the hardware is actually doing (i.e., to not do
something stupid). This goes back to the deb/rpm-style packaging of
open source hardware ideas that I was throwing around a few months
ago.
http://en.wikipedia.org/wiki/Package_management
"""
A package management system is a collection of tools to automate the
process of installing, upgrading, configuring, and removing [hardware]
packages from a computer. Linux and other Unix-like systems typically
manage thousands of discrete [hardware] packages.
Packages are distributions of [hardware] and metadata such as the
[part]'s full name, description of its purpose, version number,
vendor, checksum, and a list of dependencies necessary for the
[hardware] to run properly. Upon installation, metadata is stored in a
local package database.
A package management system provides a consistent method of installing
[hardware]. A package management system is sometimes incorrectly
referred to as an installer.
Other formats like IGES, STEP, STL, DXF, SVG, etc., are just as easily
applicable. I don't know anything about COLLADA though, where does it
come from and why do all of the open source CAD packages not support
it?
COLLADA is a graphics format like VRML. Granted, STL and DXF are largely
graphics formats too, in that they don't contain any data such as
tolerances or materials, but they _are_ generally used in CAD systems,
whereas COLLADA is mostly for video game models. it could be extended to
cover tolerances, materials, relational dimensions, etc. but then it
wouldn't exactly be COLLADA anymore would it?
there is no "best" format; STEP claims to do it all but it's an enormous
bloated expensive standard that will be difficult or impossible to ever be
completely implemented by independent open source developers; STL is only
polygons and can only reprepsent one solid; IGES is a freely available
standard and is actually pretty good for many physical objects, but lacks
metadata; SVG is a well defined open standard but only does 2D, and is
too new to have been integrated into a lot of CAD tools yet the way DXF
has.
You're right, that does sound kind of pointless overall.
> there is no "best" format; STEP claims to do it all but it's an enormous
> bloated expensive standard that will be difficult or impossible to ever be
> completely implemented by independent open source developers; STL is only
> polygons and can only reprepsent one solid; IGES is a freely available
> standard and is actually pretty good for many physical objects, but lacks
> metadata; SVG is a well defined open standard but only does 2D, and is
> too new to have been integrated into a lot of CAD tools yet the way DXF
> has.
Right, that's why I think we should be saving models and designs in as
many formats as possible, or at least using some free software that we
can all use to access the same information. Otherwise this is going to
go nowhere fast. Some formats capture information that other formats
don't, so providing multiple saves (from the original design) will
hopefully (for now) provide more information.
Yes, somewhat. On the other hand, if you're going to actively complain
about a lack of participation of others, and you don't even have the
files uploaded anywhere reasonably accessible, then presumably you're
already at a stage where such complaining makes sense, so you should
already have those files up somewhere. I really really encourage
others to start thinking about some sort of open source hardware
social contract when it comes to diybio. What this would mean is that
some technical folks will become 'package maintainers', and they will
package the hardware up into computer-legible formats (and such), and
be subject to the community 'social contract'- to include a package
under the diybio brand (or however you want to say that), it has to
pass a few tests- like being free, open source, or subject to some
particularly useful licensing, or something, What incentives are there
for this? Well, for one, it means that we can be reasonably certain
that everything is packaged in a consistent way and we can all access
it using free tools. And on the other hand, it would help the
community have a process for development and building up labs and so
on in a systematic way.
> Each method has +'s and -'s. It's best to state the method being
> used so everyone knows what's going on. Otherwise others may get the
> idea that the first method is holding back, or the second method is
> sloppy hackwork.
slop slop slop
> By the way the h/w architecture I've been playing with for a
> thermocycler uses Processing.org + Java + USB microcontroller board (<
> $10), where a user would program the cycles via a laptop, so the
> thermocycler itself doesn't have a keypad, display, or etc., yet it
> can manage complex cycles and remember protocols. It's a very
> compatible approach across PC, Mac, Linux, and can be made very user
> friendly. (Some details on my blog.) The usability question is if
> this is a proper approach, given that the user would need to use a
> computer (PC or laptop) to program the thermocycler; what's the
> minimum user interface on the device itself necessary for operation,
> or if it's possible use the end device without any user interface
> except a "go/stop" switch.
May I make a few requests? It would be absolutely awesome if you would
write a shell script to convert the "pcr.xml" file into whatever
details your thermocycler needs to hear about. This way, we can have a
toolchain from protocol XML all the way down to your thermocycler.
Different pcr.xml files could be distributed for different projects.
I'm sure you understand how neat this will be :-). Have you met with
fenn here in Austin yet?
I would gladly do some programming if it means not having to rely on
java. There are many other possible choices that run on multiple
patforms and are either similar to scripts or are interpreted
languages that will do the trick.
> (I'm not a big fan of java however it does get the job done in an easy
> PC-compatible & internet-compatible & graphical interface way.)
Why do you need graphics? Anyway, if you really need them, you could
use gtk, wxWidgets, or something like that, which is cross-compatible.
I think there's even java bindings for them, but I'm not entirely
certain.
> Certainly bio would seem to benefit greatly from more standardization
> (and optimization) on lab protocols across labs and across experiments
> by sharing the raw procedural data. This leads to computer-aided
> design and automation.
Maybe if I yell loudly enough this will happen sooner? (Okay, maybe it
doesn't work like that.)
> Like I mentioned though, one possible bottleneck of this design is
> having to physically connect the device to a laptop with USB to
> configure it (or needing a more costly wireless module to talk to
I don't know if I would mind the USB requirement, especially if I
could just wire up a PCB or breadboard with another USB-compatible
interface and make my own controller if I wanted to. Doesn't sound
like a terribly big deal. Although I do wonder why you're choosing USB
over something like RS232 or LTP or a COM port. Even laptops have some
of these ports. USB is guaranteed to be on everything, but on the
other hand, it's easier to hack at RS232 because you just jam wires
together (more or less).
> it). It's not a problem for repetitive runs however if it has to be
> re-configured often, this might be a bottleneck in the lab. There's a
> commercial thermocycler which allows connection of a palm-pilot (or
> some PDA) for a similar approach, putting the main processing power in
> the PDA, which can be disconnected after device configuration.
That's funny. I don't know anybody who uses a PDA-compatible thermocycler yet.
Yeah, I agree with that, mostly. For selecting a pre-defined program
and running it, a small LCD display and maybe a couple of LEDs is
perfect. Although, for defining the program I am a bit unsatisfied
with my current thermocycler. It has a small 60 character LCD
display, 4 buttons and 2 LEDs (and costs over 2 thousand dollars).
Programming it is not intuitive at all. I've been using it for two
years and I still have to bust out the manual each time. I would love
to be able to write the program on my laptop and then transfer the
program to the machine. Maybe something like the following would be a
good compromise between cost and functionality...
- Use a graphical interface on my laptop to specify the program. It
would write the program to a file, say, hello_world.pcr
- Copy the file to a cheapo flash drive
- Plug the flash drive into the thermocycler
- The thermocycler would then find all of the .pcr files on the disk
- I would scroll through the file names a pick the one that I want to run.
I realize this would require a USB port and more processing power.
But if I'm going to ditch my old thermocycler for a home-brew machine
it needs to actually have better functionality. Also, as Jake said, a
heated lid is a must.
> I think a real challenge would be a real time PCR machine. The prices
> on those are sky high and it can't really be all that complicated to
> make one, can it?
I've partially taken apart a Roche LightCycler 480 (don't tell my
boss). Building one would definitely be more than a weekend project.
There are some serious optics in that machine. It has a mercury arc
lamp shining through a dichroic mirror down to the PCR plate. The
emitted light bounces off the dichroic mirror, passes through a
bandpass filter (attached to a mechanism to rotate in different
filters), two focusing lenses and then hits a CCD. The heating and
cooling mechanism is also much more elaborate than a typical
thermocycler, probably to precisely control the ramp-rate. There's
also a couple of other critical parts that I can't describe in words;
I would have to draw pictures. Anyways, it's definitely do-able but
it would be quite a project. I bet you could do it for a couple
thousand, depending on the quality of the optics you use.
-Cory
> - Use a graphical interface on my laptop to specify the program. It
> would write the program to a file, say, hello_world.pcr
> - Copy the file to a cheapo flash drive
> - Plug the flash drive into the thermocycler
> - The thermocycler would then find all of the .pcr files on the disk
> - I would scroll through the file names a pick the one that I want to run.
it would be much easier (cheaper) to either
- make a device which plugs directly into the usb port in your laptop and
appears to the operating system as a serial port
- use SD (MMC) or microSD cards and a USB adapter
That's more what I had in mind. Automation implies abstraction from
knowing what's really going on inside. Drag & drop functionality for
the equipment. Perhaps the operator doesn't know (or care) how the
machine is actually cycling - if the protocol has been verified, the
task is to run it, get the result & move on.
> I'll add to that an implicit "secure by default" configuration. If we have
> lab equipment shipping with embedded web interfaces that are reachable
> from the outside, it's essential that they don't come with default admin
> passwords, unencrypted communication protocols, etc., by default.
> (Configuration should be part of the setup phase for the ethernet access.)
before adding lots and lots of features and complexity to the device,
perhaps it would be better to agree on a price range. here are some
possible candidates for "the brain" and their costs:
ATmega48 20MHz microcontroller, easy to interface to sensors and relays;
can be configured as an insecure webserver and/or USB device with the
addition of some inexpensive external electronics; intermediate
difficulty to program $2.58 @ digikey
AT91SAM7S256, an ARM system on chip with integrated ethernet and usb
"slave" support, rather advanced programming/development, might be able to
implement encryption protocols if you knew what you were doing
$12.58 @ digikey
makezine controller; same as above but already soldered and comes with a
simple operating system and connectors, fairly easy to program; you'd have
to make sure that the included AES encryption code is actually secure
$109.00 @ http://makezine.com/controller
TS-7200 full blown linux server running debian, in a tiny package, easy to
program, perhaps too easy.. but you can use ssh and ssl for encryption
$149 @ http://embeddedarm.com/products/board-detail.php?product=TS-7200
> before adding lots and lots of features and complexity to the device,
> perhaps it would be better to agree on a price range. here are some
> possible candidates for "the brain" and their costs:
>
> ATmega48 20MHz microcontroller, easy to interface to sensors and relays;
> can be configured as an insecure webserver and/or USB device with the
> addition of some inexpensive external electronics; intermediate
> difficulty to program $2.58 @ digikey
>
> AT91SAM7S256, an ARM system on chip with integrated ethernet and usb
> "slave" support, rather advanced programming/development, might be able to
> implement encryption protocols if you knew what you were doing
> $12.58 @ digikey
>
> makezine controller; same as above but already soldered and comes with a
> simple operating system and connectors, fairly easy to program; you'd have
> to make sure that the included AES encryption code is actually secure
> $109.00 @ http://makezine.com/controller
>
> TS-7200 full blown linux server running debian, in a tiny package, easy to
> program, perhaps too easy.. but you can use ssh and ssl for encryption
> $149 @ http://embeddedarm.com/products/board-detail.php?product=TS-7200
i should add Arduino to this list; basically the same as atmega48 but
already soldered to the board; with usb connector
$30 @ sparkfun + $45 for ethernet module
On Tue, 14 Apr 2009, Thomas Knight wrote:
>
> What about the linux "wall wart?"
> http://www.linuxdevices.com/news/NS9634061300.html
it has no i/o so you're back to square one (equivalent to a laptop with
USB port and ethernet)
all of the above have at least an analog to digital converter and some
kind of easily accessible on/off pins, (GPIO) which you'd need to actually
control anything. i suppose it might be possible to connect some i2c gpio
and temperature sensor chips directly to a computer's i2c bus, but that's
a bit too hackish for me.
On the linux platforms, there is no installation requirements if you
use the proper methods- like the packaging systems. That's the whole
point. Some of this exists for Windows as well- for instance, python
and perl both come with repository systems kind of "hard wired" in
(pypi and CPAN, in particular).
> Graphics are a requirement. End users absolutely don't want to use
> command line or text-based graphics. Having a "pretty" solution
> counts for a lot.
That's fine. Just keep it separated. Give me a shell or give me death.
> If it were to be built on open source libraries only, it would be
> better to use SDL. But that's C. Each O/S would need separate
Wait, what? SDL is more for games than anything else.
> Which languages did you mean? tcl? python?
Tk/Tcl is dead. Python probably. perl would be terrible but less
terrible than java.
What's so graphical about PCR? A progress bar or something? wtf.
I don't see much use for pictures or animations but something similar
to an HTML form might make a lot of biologists happy. Drop down
boxes, text fields, etc. That way I could enter numbers into boxes...
Step 1: "95C" "00:30"
Step 2: "55C" "00:30"
Step 3: "72C" "02:00"
Goto Step1 25 times
Step 4: "4C" forever
I guess a progress bar wouldn't hurt but a count-down timer would
suffice just as well. Anything involving a full QWERTY keyboard would
be a huge improvement over most thermocycler interfaces.
-Cory
java is in my opinion more cross-platform than python (yeah I know it's just a download away), speed is no concern, and the prog doesn't need to be a progress daemon. If you want a progress daemon, maybe python would be better, but I really don't know.
I think an arduino would be fine, or some other tiny controller, or an atmel chip, bx-24, etc... there are even "expensive" options like gumstix. I think RS-232 would be fine to keep costs down, and people could buy a serial to USB converter if they wanted... the USB modules I saw on futurlec.com <http://futurlec.com> were about $25.
Let's start another thread instead of jacking this one. The Gel Box
deserves it's own thread.