Hello, creative people-- I work in a lab at the Field Museum of Natural History in Chicago, where we house (and study) one of the world’s largest collections of meteorites. One of the ways which chondritic meteorites -- ones composed of little bits of different materials embedded in a matrix -- are prepared for analysis is by repeatedly freezing and thawing samples, to fracture apart the different components. (These are the types of meteorites which sometimes contain amino acids and other complex organics, and often contain grains of material which are older than our solar system itself.) We currently do this process manually; freezing a container of material in liquid nitrogen, and then thawing it in a warm water bath. This might continue for one or two hundred (boring) cycles, monitoring temperature along the way. It seems to me that this is prime for automation. I have good skills with the lathe, drill & mill, and have a basic plan in mind of how to engineer a setup with a Peltier cooler, to alternately freeze and thaw a small sample. But I don’t have any experience with Arduino controllers, nor, to be honest, the time right now to learn from scratch. Would anybody (with appropriate Arduino experience) be interested in teaming up on this project? It would be “for the good of science” -- i.e., no pay involved. I’ll purchase any needed materials (and do already have fairly well stocked parts boxes), and do the actual construction, but I’d need help with designing the circuitry, and doing the programming. (If a partner in the project was located somewhere around Chicagoland, I could arrange for a behind-the-scenes tour at the Museum, if we successfully get a working apparatus going there.) If you are interested, I’d be happy to start a conversation offline; just post here with your thoughts, and we’ll take it from there. Drew
This should probably be in Gigs and Collaboration. What kind of circuitry do you envision? Turning a Peltier cooler on and off requires nothing more than a relay. Assuming, of course, that the Peltier cooler gets cold enough, which I have my doubts about.
I'd be willing to help with/do the programming, if there is any to be done.
The freeze cycle just calls for 0°C; I have achieved that with thermoelectric coolers in other uses. (We just use liquid nitrogen in the lab for speed, while manually cycling thru freeze/thaw.) The unit would need to monitor at least sample temperature and/or heatsink temperature (the sample container would probably be plugged into a copper heatsink, which would then be heated & cooled by the thermoelectric unit). There is no real minimum temperature value allowed, but definite maximum temperatures; ideally, the maximum temp could be set for each batch (although I could manage with one maximum setpoint). The cycling would need to be initially set, and then counted -- hopefully both values displayed (cycles set / cycles remaining); displaying current sample temp would be handy, too. A large Peltier unit is a pretty crude device; no doubt run thru a relay, it might well have to be throttled by pulsing power to it as the set point temperatures are being approached. To achieve thorough freezing & thawing of a sample, the set point temps might have to be held for a certain period -- i.e., ramp the heatsink temp up to the desired thaw temp, then hold it for a prescribed period, then reverse to freeze cycle. Importantly, the unit would need to be easy to use, as in insert sample, set number of desired cycles, hit Run. (Perhaps maximum and minimum temps would be a sub menu, to be accessed as needed, but not if "default" is okay.) At the end of the set number of cycles, a signal light could be activated, but there is generally not a problem with a sample just sitting at room temperature.
So, the programming involves a menu, an LCD to display the menu, a temperature sensor, a switch, a relay or MOSFET to control the thermoelectric unit, and an LED or two.
Do you have a link to the thermoelectric unit you will be using? Pulsing power to DC devices is possible. Pulsing power to AC devices is pretty much meaningless. Toggling a relay often is not good for the relay, but toggling it on or off every 10 seconds would be OK. How often it needs to be toggled depends on how fast the temperature changes, and how fast the temperature can be observed to change.
Might optimize the setup with two thermistors, but if it works with just monitoring the heatsink, that would be easiest (rather than having to insert a sensor in the sample container, which it is preferable to keep sealed; also such sensors would need thorough cleaning between batches to prevent cross contamination from one sample to the next). What ever kind of switch(es)/keypad needed to program the number of desired cycles for a given run (besides, obviously, a main power switch). Haven't picked out a thermoelectric unit yet; I was planning on experimenting a bit, but think that considering our sample size, probably something around 20W. But they are available much larger; here is just one source: http://www.customthermoelectric.com/tecs_imax.html and one of their 18W units: http://www.customthermoelectric.com/tecs/pdf/12711-5L31-02CK_spec_sht.pdf In any case, definitely a DC unit, which can be "reversed" (hot side and cool side flip) by reversing the polarity of the power supply. You'll note on the spec sheet that these units vary their power handling (the amount of heat they transfer) with the input voltage; that, instead of pulsing, would be a way of throttling, but I didn't know if achieving a voltage throttling (on a fairly high current draw) would be as easy to achieve with an Arduino controller as an intermittent on/off pulse of, say, fixed 12VDC.
Thankfully, the thermal masses of various samples will be similar. I'm sure some programming tweaks would need to be done, especially as far as the ramping of the power to the thermoelectric unit (to not overshoot the maximum temperature) and the hold times at the freeze and thaw set points. Also thankfully, the unit will be run in a lab with a constant ambient temp; at least that won't be a variable. Once it is calibrated via a few test runs, where the actual freezing and thawing are monitored, I'd think it would be good to go.
The charts on the second link show the current and voltage needed to achieve different amounts of heating/cooling, but they say nothing about how long it takes to achieve that temperature change.
If the rate of change is high, then the possibility of overshoot is great. If the rate of change is low, then that is a lot less likely.
In either case, determining the appropriate on/off times would probably require the use of PID.
Is there any possibility of (at least initially) having a PC near the Arduino, to provide the graphic interface for setting/seeing temperature and cycle iteration and count?
There would be no problem with having a PC on hand during the build/calibrate stage. It would be best if one wasn't needed during subsequent operation. Came to my mind that in the list of hardware/connections, there will need to be a relay (or equivalent) to switch the polarity of the power to the thermoelectric unit -- to switch it back and forth from heating to cooling. (I'd think that might be separate from the on/off/throttling relay.) Also, perhaps to set the number of desired cycles in a given run, a simple button could add multiples -- say, 25 per push; in other words, you could select 25, 50, 75, etc. cycles. Obviously, you'd want a display of what you selected. The Peltier units I've worked with tend to have a low thermal mass, and change temp VERY fast -- getting below freezing on one side and above boiling on the other in a flash. The mass of the item they are attached to (the heat exchanger block housing the sample on one side, and a heat sink on the other) will obviously slow down the temperature change. But overshooting, especially in the heating cycle, is definitely possible.
When you're doing this manually, how do you decide when the sample has been through sufficient cycles? Visual inspection? Does it matter if you run extra cycles after it's "done"?
The cycling doesn't need to be precise to the single event. Way too many cycles would degrade the sample (breaking up bits that we don't want broken up); too little means more manual separation left to do (picking things apart under the microscope). Visual inspection would be the determination. Often, we're talking about multiple batches of one sample; in theory, you'd see how many cycles it took to fracture one sample to the desired level, and then just do the others that number of cycles. That's why I suggested perhaps setting the number of cycles in multiples of one number, like 20 or 25. If 73 did the trick, 80 wouldn't be the end of the world. Certainly wouldn't want to slow the freeze/thaw process by stopping to inspect frequently (we don't even do that when manually cycling).
So please tell us, How did this turn out ???
Photos ??? Website ???
I am very new to Arduino, So I don’t think I can be of much use.
I have been to the Field Museum of Natural History in Chicago
many times years ago when I lived out in the south suburbs …
If you ever visit Chicago, do spend a day here, well worth it…
I've sketched out a prototype fairly well, but since I didn't get someone to jump on board to help design the interfaces for the controller and the programming, the project will wait until my schedule allows time for me to work that stuff out myself. (Do-able, I'm sure, but pushing the project further down my job list, now after "learn to speak Arduino".)
What does "design the interfaces for the controller and the programming" mean?
I've sketched out a prototype fairly well
Can you share that?
The programming of the Arduino could be fairly simple, if there is a PC that manages the UI portion that allows the user to define temperatures, cycles, etc. It's a bit more complicated if the Arduino needs to present a UI, too.
The UI could be pretty simple - LCD display and three pots - one for number of cycles, one for min temp, one for max. Switch to start & stop.
PaulS wrote: What does "design the interfaces for the controller and the programming" mean? Quote I've sketched out a prototype fairly well Can you share that?
Two separate things: by "interfaces" I was referring to circuitry; I'm not up to speed on how to connect a controller to switches, relays, thermistors, etc. Programming would be just that; the code to make it all run.
Controller would have a few inputs: Switch or switches to set the number of desired cycles (probably in multiples of 20 -- i.e., one push sets it to 20, two to 40, etc.), to start the cycling, and probably a cancel/reset. Thermistor input to monitor when sample reaches a certain pre-programmed high temperature, and to hold it there. Outputs would be: a display to show the number of cycles set/remaining an output to switch a control relay from "cool" (its default position) to "heat" (i.e., an i/o output) an output to run another power relay (actually controlling the power to the thermoelectric unit -- another i/o)
Programmed cycle would be something like: user - set desired number of cycles user - start first cycle controller: apply power to "cool" themoelectric unit, hold for programmed time switch to "heat" function monitor temperature as programmed temperature is approached (within perhaps 5°C), pulse heat control at 50% cycle as programmed temperature is approached closer (perhaps within 2°C), pulse heat control at 25% cycle when programmed temp is reached, begin timer, shut off heat monitor temperature during programmed hold time, throttle heat control as above (if it drops 2°, pulse heat at 25%, etc.) after programmed hold time is complete, step down one cycle count, and begin the next cooling phase continue cycling until counter reaches zero, then shut off.
I figure that all the calibration and programming of the cycle parameters would be done using a PC hookup, then the unit could function on its own during normal operation. I've looked a little more at the actual operation of specific thermoelectric units, and considered some power supply and mechanical setups, but that is all within my skill set, and won't lay out all the details unless someone asks. What I need to add to my repertoire is how to stick an Arduino on top of it all and make it run itself!
Having the UI include the ability to change the temperature settings or hold times might be "fun", but I have the feeling that our sample thermal masses will usually be similar, so one successful programming while the machine was being set up will probably suffice.
by "interfaces" I was referring to circuitry; I'm not up to speed on how to connect a controller to switches, relays, thermistors, etc.
That will depend on the specific relays, switches, thermistors, etc.
Switches are pretty simple. Connect one side to ground. Connect the other side to a digital pin. Set the pin to INPUT, and enable the pullup resistor. Use digitalRead() to see if the switch is pressed (the value will be LOW) or released (the value will be HIGH).
Relays generally draw more current than the Arduino can provide, so a transistor is needed. Wiring the transistor to the relay, the power supply, and the Arduino is pretty straight-forward. I even managed to do it.
A thermistor typically has just two wires. One side connects to +V. The other side connects to an analog pin.
As for the programming, I volunteered in reply #1 to help. PM me, if you want.
Interesting project. PaulS - any progress?
Haven’t heard anything more from OP.
I've been contacted by a Forum reader in this neck of the woods, who is interested in collaborating on the project. We need to discuss the possibilities more, and then post if we're still short on know-how. Drew, with the Field Museum
Wow, this looks like so much fun in its simplicity yet it could be so clever.
I used to work with furnaces that worked in a basic eight steps with times on each set (also ignore time till setpoint option). Maybe
Step 1 - Start (Any initial settings before really beginning) Step 2 - Purge (Any process gases you may want, for this extra moisture could help) Step 3 - Ramp Down (to setpoint or just time) Step 4 - Hold (Sustain setpoint and time) Step 5 - Ramp Up (to setpoint or just time) Step 6 - Hold (Sustain setpoint and time) Step 7 - Purge to external ambient Step 8 - End or Repeat (Check cycle counter = 0)
Options - Safety Interlocks, Abort Purge...