Caffeine extraction

When we used to live in Broad Ripple I would buy coffee beans from Hubbard & Cravens’ roasting plant on 52nd Street next to the Monon once in a while. Their roast was a little too dark for my preference, and their hours were such that we started calling them Hubbard & Closed, so it wasn’t always at the top of my list of places to buy beans back then.

I was in the neighborhood, loosely speaking, earlier this week to pick up this month’s Bacon of the Month Club treat from Goose the Market, and I was low on coffee, so I stopped in the Carrollton location to pick up some beans.

Caffeine does not usually have much effect on me, but last night I was awake until 2:00. What happened?

When I got home I eagerly flipped on Miss Silvia, the espresso machine, in anticipation of a rich, invigorating beverage. I was immediately distracted by the dog’s silliness and other chores that needed attention. Some time later, I got around to making the shot of espresso that I had been looking forward to. It was good, so maybe I am coming around on my opinion of Hubbard & Cravens’ roast level.

Fast forward to this morning when I was laying in bed, unable to sleep. I had plenty of time to think about the cause of my insomnia.

Silvia’s boiler temperature is controlled by two simple bimetallic thermostats, so temperature regulation is not very precise. Temperature swings of 40° are not unheard of with this type of thermostat. When I brewed my espresso yesterday evening, I noticed that it was extremely hot. The thermostat must have just cycled off at the very top of its 110°C (230°F) range. (I am certain that I had not left the steam switch on, which brings the boiler to 140°C [284°F].) The espresso even appeared to be boiling as it came out of the portafilter.

Wikipedia says that caffeine’s solubility in water increases dramatically with temperature.

Not being a chemist, I have to assume that caffeine’s solubility would continue to increase with temperature. So, it is definitely plausible that if the water was much hotter than normal for that fateful shot, the machine could have extracted much more caffeine than normal into my espresso.

If the solution to this is better temperature control, am I trying to talk myself into joining the ranks of people who have hacked their espresso machines to include a PID controller? Uh-oh.

How a geeky bachelor gets laundry done

Let’s get this out of the way before I even get started: I do the laundry wrong.

That said, I don’t like wasting energy. Our electric company’s website has a tool that estimates your energy usage by category based on your responses to a questionnaire about what type of house you have, how many occupants, and what types of appliances you have. The questionnaire is sufficiently detailed to make me believe it presents a realistic picture of our energy use. It is an eye-opening look into where our electricity dollars go. After heating, water heating and laundry are the largest energy consumers in our house.

Within the category of water heating and laundry, the dryer is the second-largest consumer.

We already set the programmable thermostat to the lowest temperature we can tolerate, and the water heater is already set to the U.S. Department of Energy’s recommended 120°F. In my view, the next item that would have the most bang for the buck is to not run the dryer any more than necessary, so I take the clothes out before they start to get crispy. (Which brings me to my original acknowledgement: I do the laundry wrong. This post isn’t supposed to be about marital issues, so let’s move along.)

I thought, what if there is a happy medium? I know that there are dryers out there with moisture sensors that stop the dryer when the clothes are dry instead of just running until it hits the time you arbitrarily set at the beginning of the cycle. Since our dryer does not have a moisture sensor, perhaps I could build one.

Moisture sensors in fancier dryers have two metal strips in the drum that the clothes touch as they tumble around. Wet clothes are apparently slightly conductive, whereas dry clothes are not. By monitoring the electrodes, the dryer can determine when it is done. Since I do not have access to terminals like this, and I am unlikely to gain permission to hack up the dryer, I thought that a humidity sensor in the exhaust would be a good means to tell when the clothes are dry. I found an inexpensive humidity sensor at Sparkfun, and waited for a chance to experiment with it. With the rest of my family out of town, I have the perfect opportunity this week.

I placed the humidity and temperature sensors behind the dryer’s lint filter and connected them to the good old Arduino as a simple data logger, and then I captured humidity and temperature readings during the first load of laundry I did earlier this week. This is the humidity and temperature profile of a full 60 minute cycle (PDF, 16kB).

I learned a few things by examining the plot.

  • I thought that the heating element cycled on and off more. In reality, the heating element is on continuously for nearly 45 minutes, shown by the constantly rising temperature line. This makes sense, though, since it obviously takes a while to heat several pounds of clothes and all that extra water by 100°. Think about trying to boil a pot of water by pointing a hair dryer at it.
  • Once the load finally reaches the thermostat’s high trip point, apparently 155°, the temperature drops by 35° in 5 minutes to 120°, the thermostat’s low trip point, at which point, the heater comes on again. The difference between the trip points is called hysteresis. (Bonus word for the day. You come across this word a lot in control systems.)
  • I should listen carefully for the pop when the thermostat cycles the heating element off and take the clothes out immediately. This will maximize cat happiness when she lays down on the clothes as I try to fold them. (Using incorrect folding technique, of course. It’s okay, since the cat is fat enough to press out any wrinkles.)
  • The dryer apparently is designed to keep the heat element off during the last 5 minutes of the cycle in order to bring down the temperature of the clothes, presumably so they wrinkle less. You can see that the thermostat wants to turn the heat on at about 53 minutes, but the heater is turned off shortly afterward because the cycle will be ending soon. (By the way, what are wrinkles?)
  • The humidity of the exhaust air goes down as the cycle continues. Surprise! To me, this shows that merely sampling the humidity of the air coming out of the dryer doesn’t exactly say when the clothes are dry. Once the dryer finally got warmed up all the way, the humidity went to about 10% and stayed there. I know the clothes weren’t dry at 45 minutes, because they were just barely dry at 60 when the cycle ended, and the humidity was basically the same at those two points. (Okay, I admit it: I can tell when clothes aren’t fully dry.)
  • When the temperature line is rising, the heat element is on. For this load, the element was on for around 50 minutes. How much did the load cost in electricity use? 5600 W heater × 50 minutes = 4.67 kWh, or 47¢. I’m not sure exactly how big the motor is, probably 1/4 or 1/3 hp, so that probably brought the total to 50¢ for this load.

So, unfortunately, in this round, the humidity sensor I bought looks like it won’t useful in trying to minimize dryer use. But at least I got to teach the Arduino a new trick and to make a graph!

Taking a second look at the project, I noticed some omissions.

  1. I skipped over a detail of the humidity sensor’s datasheet specifying that I needed to place an 80kΩ load across the sensor output, so this may have affected the humidity readings.
  2. The load was really big, and the full 60 minute cycle did not get it completely dry. Perhaps a fully dry load does produce another significant drop in the humidity of the exhaust air.
  3. I should have weighed the laundry before and after running it through the dryer. How much water did it have to remove? Several pounds, or the better part of a gallon, probably.

I will have to try the experiment again later this week after making a couple changes.

David’s Lawn-mowing Efficiency Hierarchy’ — Planet Money Blog : NPR

I’m so glad I’m not the only one who thinks like this.

1. The most efficient way to mow is the spiral: start from the outside and do the border, spiraling in to the middle.

2. Next, you have the long stripes: mow the long edge-the length of the rectangle-and then u‑turn, and go back forth, striping the turf till you’re done.

3. Next, the short stripes: same as long stripes, but this time you’re going back and forth across the short distance.

4. Finally, the diagonal stripes: make strips starting at one corner, and going back and forth across the diagonal of the rectangle.Aesthetically, you’re going to want to dial this one to 45 degrees.

4b. The Old Man “Keep Off My Lawn You Darn Kids” Deluxe Double-Diagonal Stripes: Do method 4, then do it again so the diagonals crisscross. Recommended for baseball outfields.

David’s Lawn-mowing Efficiency Hierarchy’ — Planet Money Blog : NPR.

Regarding the podcast that the letter writer refers to, the “efficiency expert” sounds insufferable. I mean, there are parts of my life that I like to optimize. I take pride in packing the dish washer as tightly as possible. I have favorite lawn mowing patterns. I have a set pattern for the weekly chores. But lining up items in the bathroom in order of their use? At least this guy made a career out of his OCD tendencies.

Did you close the garage door?

When I was growing up, my family had a light in our kitchen that would come on when the garage door was open. It was easy to see when the door had been left open. The light was probably sold as an optional accessory for the opener, because the opener unit had a pair of terminals on it that could be wired to the indoor indicator.

Some time later, the opener had to be replaced, and the replacement opener had no connection for the indoor door-open indicator. They got used to not having the light, but I didn’t, even though I don’t live there any more. As we grow up, we expect that our parents’ houses shouldn’t ever change, don’t we?

For the stop light project I have been working on, I need the controller to know when the door is opened so that it can wake up go into its parking sequence mode. The door-open sensor for the stop light would be nearly identical to what would be needed to replicate the old indicator that my parents used to have in their kitchen, so I bought enough components to build both projects. Not knowing whether they would want indicators, I included two indicator light assemblies in their kit.

The key component is a C&K MPS80WGW magnetic proximity sensor. This sensor comes in two parts, a magnet and a switch. The magnet is mounted to the moving part of the garage door, and as it closes, it moves into the switch’s range. The switch closes, and turns off the indoor indicator light. At 2″, this sensor has the largest active region of the ones available at Digikey. This is handy, because the sensor will be forgiving of misalignment, and it will tolerate the door being left slightly open, as is sometimes done in hot places like Texas in order to allow some air to circulate into and out of the garage. The magnet and switch are mounted on simple steel brackets and secured to the door and the track.

The indicator lights themselves are nice big 10mm SSI-LXH1090SRD LEDs from Lumex Opto. They come installed in bezels that fit neatly in a single gang plate cover drilled with a 1/2″ hole (bored out just a bit with a Dremel tool). The forward voltage of these LEDs is 1.7V, so a 160Ω resistor limits current to 20mA. This is bright enough to be noticed, but I think not so much so that it is distracting.

A simple driver assembly has connections to the indicator LEDs and to the proximity sensor. I used a spare 5V wall transformer from an old cell phone to supply power through a thermal fuse to the LED driver, a common 2N3904 transistor. The driver assembly fits inside a single gang side mount electrical box, intended to be installed in the attic between the garage and the other rooms where the LED indicators would go. I drilled a small hole in the cover plate so that an internal status LED can be seen, as an installation aid.

The LEDs and sensor operate at 5V, so simple phone cord wiring and low voltage wall boxes are sufficient. The inside of the driver is shown below.

A wall box with the LED installed is shown below.

The following schematic shows the components and their connections. (PDF) The components in the shaded box are in the single gang wall box. Having some perf board and screw terminal connectors on hand was helpful to hold everything together and simplify installation. I included these installation suggestions with the kit.

Some shots of the components as installed follow.

This project was nothing fancy, but it was satisfying to put together some simple parts to restore a nice feature to my parents’ house. It was also a nice way to add a fun feature to the stop light controller with some similar components.

After I had wrapped up the project, I found another garage door sensor project that was way more involved, and pretty neat: Ultimate Garage Door Monitor.

2010 Mini-Marathon Training Series 5k

I was not looking forward to the first race of the new year! Weather forecasts promised that it would be very cold, so at least I was prepared for that. This morning as I was getting ready to head out, I received an Indianapolis Knozone email (the first since early last summer) warning about elevated levels of fine particles in the air. Great, so it was going to be 12° and foggy, with the added bonus of hazardous dust. Sounds like a fine morning in the making.

As usual with the Mini and its associated training series, the event was well organized and everything flowed smoothly. Saturn was conspicuously absent as a sponsor, but I suppose being run out of business will have that effect. In the place of the sponsor’s cars was a big American Red Cross van, whose EMTs were hopefully not needed throughout the morning. I appreciated that Ortho Indy was handing out headband/earmuffs to participants who had registered for all three of the training series races. I took advantage of it!

The streets were dry and almost completely free of ice in the travel lanes. Of course there were patches near intersections, but volunteers helpfully yelled out for people to take care in certain places.

Per my usual early season folly, I went out way too fast in the first half mile (hey, it was cold, and I was trying hard to warm up), but then had the good sense to rein it in. My nerd watch tracks are in the map below.

View in Google Earth (12 kB KML)

View in Garmin Connect

View 2010-02-13 Mini-Marathon Training Series 5k in a larger map

When will it end?

The cold weather is turning us into grouchy hermits. Emily is already talking about what to plant in the garden this spring, and I have a pile of projects to get taken care of that will require me to be in the garage without my extremities instantly turning numb. While this winter hasn’t been as cold as last winter, and we haven’t had the torturous snowpocalypse of the east coast, I’m so ready for it to be over.

Turns out that according to our historical average temperatures, we’ll reach above the 24-hour subfreezing rut in just a couple more weeks. Hang in there with us!

Thesis on Arduino users

Among the links passing around the internets lately is a thesis by Alicia Gibb, an art history & museum, library, and information science graduate student (hey, I know some people like that) on the Arduino microcontroller platform and the people who use it to create works of art. The thesis is called New Media Art, Design, and the Arduino Microcontroller: A Malleable Tool.

I think her thesis does a respectable job of covering the origins of the Arduino platform and why people find it an attractive starting point. I certainly agree with many of her points.

Gibb states that the Arduino was designed for a non-technical audience, people without deep knowledge of engineering or computer science. This design goal explains four factors that differentiate the Arduino platform from many others:

  1. It is inexpensive. An Arduino board costs around $30 (better than half the cost of most other similar microcontroller boards), so it is cheap to pick up and learn. It is also cheap to integrate into a project, leave there, and move on to the next project with a new Arduino board.
  2. It is packaged with an integrated development environment (IDE). The IDE is easy to install and get started with, even for non-technical users.
  3. It is programmed via USB, so additional programming hardware is unnecessary. While most microcontrollers communicate via traditional serial port, the Arduino’s USB port is more useful for communicating with a modern computer that is likely to have no serial port. (I would add the additional point that the USB port supplies power, so no additional power supply is necessary. Even when away from the computer, the USB port can be used for power, thanks to the ubiquity of spare USB wall-wart power supplies and cables.)
  4. It is supported by a community.

However, the Introduction page on the Arduino website adds and expands some other details that have also been important in its success:

  1. The IDE runs under Windows, as do nearly all other microcontroller platforms, but also under Mac OS and Linux, bringing a wider audience
  2. The software is open source and extensible, encouraging sharing, so people can easily add new features and borrow from the work of others
  3. The hardware is also open source and extensible. While there is official hardware that can be purchased, the design is documented and available for anyone to modify, improve, and extend.

Interactive embroidery project by Becky Stern

Gibb goes on to highlight some high-profile Arduino work done by artists and designers, as well as exhibitions that have featured them. She summarizes interviews that she conducted with members of the Arduino community, why they used the platform, and how it enhanced their creative work. There is a lot of artist-talk, and I found myself switching my brain to a more creative mode as I read along.

There are a lot more neat projects that need to be done, especially in workshops where young people can channel their enthusiasm and creativity. I am trying to hint that Emily should think about developing a program like this, though I know it is easy to volunteer someone else for more work. Reading Gibb’s thesis sparks the imagination, and I continue to look forward to seeing the next application that some tinkerer comes up with.

Two new food books

I’ve read books by Michael Pollan and Tom Standage in the past, and they both have new titles available.

Pollan has been writing about the relationships between food, health, culture, economics, and industry. He makes interesting connections in tracing the details of how meals get to our table, and he gives clear, logical explanations for things like the French Paradox. His research process must be fascinating. In his previous book, he famously summarized a wise strategy for smart eating with the rules, “Eat food. Not too much. Mostly plants.”

Last October, the New York Times website had a fun and attractive interactive feature giving more “rules” for eating (I recommend taking a look). A new promotional piece in the New York Times continues the theme. However, not knowing anything other than the title of his new book, Food Rules: An Eater’s Manual, I have to wonder if he is not riding this horse into the ground. I continue to respect his work, so I hope that his latest is as interesting as his other writing. We heard him speak at Butler University some time ago, and I was jealous to learn that some friends are going to hear him speak at Indiana University soon.

As for Tom Standage, I enjoyed his last book, A History of the World in 6 Glasses. While not quite as smooth and quick reading as Pollan, I enjoyed reading about the parallel evolution of culture and the drinks of the times. Standage’s explanation in his new book of how some important turns of history are a result of food cravings should be interesting, as well. As I was catching up on podcasts this morning, I found an interview with him on Tuesday’s Planet Money podcast, where he reminds us that much of the European explorers’ motivation came from a profit motive in the spice trade. I love Standage’s unofficial bio as written by his six-year-old daughter.

And an older beer book

Another book that I just haven’t managed to quite finish yet, Beer in America: the Early Years, similarly tells history through beer goggles. Some of the primary points include the fact that any of the events around the time of the American Revolution were planned at taverns over pints of ale. Thomas Jefferson’s wife, Martha, was an accomplished brewer, along with many other women of the day. Taverns were also critical to the westward expansion of the country, providing a place to conduct business as the sparse infrastructure improved. There are many other interesting points and relationships noted in the book, but they either grew repetitive as the book progressed, or that the author was reaching too far when relating events to beer. I think I would have appreciated a perhaps bit less depth in exchange for a look into the 20th century.

Adventures in Gnucash on the Mac

Why use Gnucash?

I switched away from Quicken about seven years ago because of Intuit’s greedy annual upgrade ransom fee and its insane crashiness. The final straw came when it managed to corrupt all the backups one day while I tried to recover from an error. I had it set to maintain its maximum of 8 automatic backup copies, but I apparently restarted the application at least that many times in the process of figuring out what had happened. My data vanished, trying to re-import from backups wasn’t working properly, and I was ready for a fresh start.

So, after doing some research into the available alternatives, I switched to Gnucash and have used it ever since then. It’s free and quite powerful, doing as much as I need it to, and then some. It’s open source, and it runs on Linux and the Mac, providing a bit of security against obsolescence. That becomes very important once you build a history with an application, as will happen with a financial package.

There are a number of other reasons why I switched, but they mostly boil down to trust. I lost faith in Quicken’s ability to reliably keep me organized. Conversely, I trust that Gnucash will be around for the foreseeable future, and that my data will continue to be useable without having to keep throwing money away for upgrades that don’t bring me bug fixes or any useful new features.

How to try it for yourself

Two projects distribute Gnucash for Mac OS: MacPorts and the Fink Project. I have used both distributions, and when they work, they work equally well. During the recent transition to Mac OS 10.6 (Snow Leopard), the Fink folks were quicker to get get Gnucash operational under the new operating system, so I also moved to Fink when upgrading to Snow Leopard. Gnucash earned a reputation in its early days as being very difficult to install, but thanks to the work of the Gnucash developers, as well as the MacPorts and Fink teams, installation is no longer difficult, only time-consuming. Set it up to run overnight, and you shouldn’t expect any hitches.

Twice I have been caught by upgrades to Mac OS causing Gnucash not to run, while its maintainers worked to support changes to the operating system. Fortunately, this was not a large problem, because I just used Gnucash on the Linux computer in the mean time.

In the the four months that passed since I started writing this post, there is now a Mac-“native” version that is can be downloaded as a regular disk image and dragged to the Applications folder. This simple installation scheme will hopefully enable easier adoption by more Mac people. As of this writing, the 2.2.9 version that is available has an apparent bug that prevents the help system from functioning. All the help documentation is present, but it is hidden. The following links should make it easier to get to the documentation after Gnucash is installed in the Applications folder.

If those links are not helpful, locate the Gnucash application. Right-click on it, and choose “Show Package Contents.” Then navigate to Contents→Resources→English.lproj. You will see folders for “GnuCash Guide” and “GnuCash help.” The main page of the Guide is index.html. The main page of the Help is help.html.

The help files actually do a pretty decent at explaining how the double-entry style of bookkeeping works, and how to help Gnucash work for you. I have picked up a lot of hints over the years, and I’ll try to share some of them in the future as they come to me.


Emily heard NPR’s Tech Monday story on The Geek Group in Kalamazoo. She thought that this was an interesting concept. I found the story the next day in their online archive, and this place was exactly what I thought it was when she mentioned it yesterday. It’s like a do-it-yourself children’s museum and project workspace for grownups. I wish that there was a place like that around these parts, but the only listing near Indianapolis in the Hackerspaces registry looks like a dead end.

Other hacker spaces are more like workshop space for rent, with tools and supplies for its members to use in exchange for paying regular dues. I mean, who wouldn’t want access to welding supplies, circuit board etching chemicals, and 3D printers? As an added benefit, your wife wouldn’t have to get on your case about taking over the garage workbench once in a while. It’s a place for sharing ideas, and for geeks to get excited about doing geeky stuff.

I went to a couple summer camps at a place kind of like this called Discovery Hall in a warehouse by the railroad tracks near the old power plant downtown. It was sort of like a children’s museum, but there was a lot more junk lying around that people were tinkering with in unstructured ways. Rather than formal exhibits, there were areas with chemistry stuff, electronics stuff to take apart, etc. I have tried to find information about Discovery Hall before, but the place disappeared somewhere around 1991. I’m sure that the people who ran it were total sketchy college dweebs, but as a second grader, I wanted to be just like them when I grew up.

I’m sure that simply posting an entry on an obscure blog will stir up enough interest for one to spring up in Fishers overnight, of course. Because I’d absolutely be there trying Dangerous Things.