Sport shooting #1 – starting equipment

In many areas of photography, you can get nice results with high-end point-and-shoot cameras (such as the Canon G series), and sometimes with a cheaper point-and-shoot.

Sports photography is not one of those. For sports shots, you want:

  1. Short exposure times, so that you can freeze the player’s motion.
  2. Good autofocus, so you can focus on the player.
  3. Telephoto lenses, so you can get close enough to the action.
  4. A decent-sized sensor, so the level of noise is acceptable.

Put those all together, and the answer you get is “SLR”. I’m a Canon guy, so I’ll talk in those terms, but there are equivalent choices in Nikon’s line since the two biggies are always fighting for the top of the heap.

At the entry-level, you need:

  • A DSLR of relatively recent vintage.
  • A lens that goes to 200mm (preferably a zoom, ‘cause it’s easier to use).

That puts you at perhaps $500-$750 at the low end, and that will be enough to get started shooting sports if you are shooting outside during the day.

I will warn you at the outset that sports photography can be an expensive passion. The midrange camera bodies and lenses are on the order of $1K each, and the ones the pros use are in the $4K-$7K range for the bodies or lenses.

I started with a Canon Rebel XT (about $750 at the time), and a Canon 28-135 F4.5-5.6 zoom lens (say, $300).

Sport Shooting

Or, “so you want to take pictures of your kids”…

I’ve spent the fast few years teaching myself how to do sports photography, so I could take pictures of my daughter’s soccer and lacrosse teams. Or, to be more correct, progressing from “really bad at sports photography” to “okay at sports photography”.

I found a few sources on the way to help me out, and I’d like to pass on some of the tips that I’ve either been told or found out along the way, and with a bit of luck – and a lot of practice – you’ll be producing some nice images of your own in no time.

I’m going to talk about things in rough order of complexity – I’ll start out with the things that are more basic and move towards the more complex (and/or expensive) ones.

I hope you find this helpful…

Zoo pictures…

During our summer vacation, we took a trip to the San Francisco zoo.

This was a family vacation, which means that I need to balance the amount of time I spend at a single exhibit trying to get a shot I want with the patience of my family. That means a single lens, which in this case was my 70-200mm F2.8 L lens on my Canon 40D. Because the sensor on the 40D lens is smaller than a 35mm frame, the 70-200mm lens is really a 112-320mm lens (or acts like one), which is enough reach to get as close as I want in most cases. If I’d had more time, I might have brought my 1.4x teleconvertor, giving me a 160mm-440mm lens (or something like that).

One of the things that I’ve learned shooting sports is that it’s all about the eyes. Gorillas are really hard to get eyes on because their fur is so dark that you don’t get much light back there, but I was luck enough to catch this one. The hanging strap is unfortunate, though I might be able to clone it out with a lot of work. The focus itself isn’t perfect.

This one is better technically (though I really wish he took more pride in grooming and got rid of that grass on his shoulder), though the eyes aren’t quite as good. I might be able to pull them out a bit with some work.

Here I got lucky. First of all, both of the lions were active, and second, the SF zoo has this really nice big chain-link fence that’s just the right size for the 4” hood on my zoo lens. This guy was just sitting there, eating grass, and then he got something he didn’t like, and proceeded to lick for about a minute. This shot is nice and sharp – if you look at the original, you can see the papillae on the bottom of the tongue.

Did I mention that I like this lens?

The only thing bad about the shot is the female lion in the upper-right corner.

The zoo had some birds out on perches on a grassy spot, giving me the chance to get this shot, one of my best ones for a long time. The detail around the eyes is great, and it’s pretty much the way it came out of the camera.

Finally, I grabbed a snap of this animal:

Notice the detail of this shot – that’s the strap from my old Rebel XT, which has been repurposed as a camera for my daughter. It’s actually been a lot of fun shooting with her.

All originals (and a few more shots) are here.

Flash snap

This past week the parts for my project have shown up. I got a surplus 10A solid-state relay for about $8 on eBay (I’m perplexed why SSRs are so expensive – there are like $2 worth of parts in a $20 part), 12 20W lights, and a substantial 600W transformer from intermatic.

The transformer is actually 2 300W transformers rather than a single 600W one. I wanted to verify that the SSR that I got was working, so I got out one of the lights, carefully wired up the primary of the transformer to an extension cord and the 12V output to the light, and plugged it in.

Flash Snap!

The light got really really bright for a really short period of time, and the snap was circuit breaker tripping.

I’m surprised. It’s pretty hard to mess up hooking up a transformer – there are two AC supply wires, two wires on the transformer, and polarity doesn’t matter. I check my connections and make sure that there are no shorts, and try it again.


No flash this time because the light got toasted the first time. I pull out my Fluke Multimeter, set it to resistance, and put it across the primary, where it reads 0.1 Ohms. Same reading across the primary of the second transformer. Let’s see, 120 Volts across .1 ohm = 1200 amps, which makes it pretty obvious why the circuit tripped.

It’s really not as simple as measuring the resistance, since transformers are inductors, and resistance isn’t the same thing as impedance, so I go upstairs to make a sandwich, and do a little thinking. What I need is a way to do some measurements of the transformer with a low-voltage AC current across it. I remember there’s an old trick where you put a bulb inline with the load – that limits the current to what the bulb will pass.

I hook up a 7watt nightlight bulb I use to debug my light projects in line with the transformer, and plug it in. At 7 watts, it pulls 7 / 120 = 58mA of current, which means that (V = IR), it has a resistance of 120 / 0.058 = about 2100 ohms.

A voltmeter on the transformer shows 0.25 volts. That’s pretty low. If 0.25 volts results in 58mA through the transformer, putting a full 120 volts on it would give us a current of 480 * 0.058A = 28 Amps, or about 3300 watts. That’s a lower-end result – I actually think it’s quite a bit worse since 3300 watts would only be a mild overage on the circuit, and that level of current takes a fair bit of time (say, half a second) to trip a breaker. I think it’s more likely that we’re looking at 100 amps or so.

And guess what – the second transformer is exactly the same as the first. Must be a manufacturing defect with some of the windings shorted together.

It makes a father proud

Last Friday morning, I was sitting at the kitchen table reading the paper, eating breakfast, and listening to music.

My daughter stuck her head around the corner, smiled, looked at me, and said two words:

“Baba O’Reilly”

Which was her way of demonstrating a fairly obscure bit of music knowledge.

Anybody care to explain why I’m proud?

Outdoor lighting project – controller

The requirements of the control system are pretty simple:

  • Be controlled with a single pushbutton.
  • Support on and off.
  • Turn off the light automatically after a suitable period of time

That’s pretty simple – simple enough that you can do it with an 8-pin AVR controller, like the atTiny12. That programs fine in my STK500 development kit, but on the low-pin-count controllers, many of the pins have shared functions related to programming, so you have to attach/detach them each programming cycle. That’s why I’m using one of the attiny861s that I have left over from another project, where I have plenty of pins. The cost difference doesn’t matter at all in a one-off design.

I spend the usual frustrating time remembering how to set up the programmer so it works. The key to remember is that you need a current build of Atmel’s avr studio so that you can look in the help file to see how to do the wiring. I wasted a couple of hours and almost lost the Magic Smoke before I remembered where to find the information.

The next step is to get the controller configured correctly. Even the simpler AVRs have a ton of options. I’m going to be using one of the timers, so I need to set up the timer registers correctly. In this case, I want a 16-bit counter (set bit 7 of TCCR0A to 1), and I want to divide the 8MHz clock by 256 (set bit 3 off TCCR0B to 1), and so on. All the information is in the atmel data sheet (the 236 page data sheet…) for the controller, but it takes a fair bit of work to get it right.

Or, you can buy a copy of codevision AVR. Not only does that let you write in C rather than assembler, it has a program wizard that lets you use human-understandable settings rather than hex values. So, in this case, you can go into the wizard and say that you want timer 0 to run at 31250 Hz, use a 16-bit counter, and call an interrupt when it overflows, and it will generate the source code (with comments) that does just that. Only two annoying things about it:

  1. It puts all the initialization code at the beginning of main and then the main loop at the end, so you’re constantly having to scroll over that code to get to your main loop.
  2. When you want to update the code, you have to run the wizard and then cut & paste the updated code in the proper place – it can’t fill in the areas you want.

Neither of these are more than a little annoyance. As you can tell I’m a big fan of AVR studio.

So, back to the project. First, we need a way to handle the turning the lights off, and for that we need a timebase. We’re going to use 10 Hz (for reasons that will become apparent later), and it would be most convenient to get an interrupt at that rate. Since the interrupt will happen whenever the 16-bit timer overflows, we need a timebase where the count fits in 16bits (ie  65535). Looking at our options, we see that we can get 8 Mhz / 256 = 31250 Hz as our timer frequency. If we can send an interrupt every 3125 counts, we’ll have our 10 Hz. So…. We take 65535 – 3125 = 62410 = F3CA, and initialize the counter to that value after every interrupt.

And that gives us 10Hz. Or, actually, it gives us 10Hz +/- about 10%, which is the factory calibration tolerance of the internal oscillator. It’s possible to get a better calibration than this by writing to the OSCCAL register – Atmel claims you can get +/- 1% through that approach – but it’s not something needed for this application, so we’ll just stick with whatever we get.

Now that we have that, we can write our interrupt service routine.

// Timer 0 overflow interrupt service routine
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
        // Reinitialize Timer 0 value – 1 second timeout…
    if (timeRemainingTenths > 0)
        if ((timeRemainingTenths % 600 == 0) &&
            (timeRemainingTenths <= 3000))
            PORTA.2 = 0;
            PORTA.2 = 1;
        PORTA.2 = 0;

We have a timeRemainingTenths that sets the timeout value. The if condition handles flashing the lights off for 1/10 second the last 5 minutes so that I can turn off the snowblower and walk back over and hit the button again.

That leaves only the button-control handling code to write. As part of this, I need to handle debouncing the switch: when a mechanical switch closes, it doesn’t close fully but instead bounces open and closed a few times. This bouncing is slow enough that it’s easy for a microcontroller to detect it multiple times, so you need to debounce the switch. There is are dedicated debounce ICs to deal with this – such as the Maxim 6816 series – but in most cases you can do it in software. Or you could use a hall-effect switch that doesn’t need debouncing. The downside of debouncing is that it slows the speed of response.

In this case I don’t need the quick response, so the code is pretty simple:

void Wait(int seconds)
    waitCounter = 0;
    while (waitCounter < seconds * 10)

// Declare your global variables here

void main(void)

    while (1)
        if (PINB.0 == 0)
            PORTA.2 = 1;
            timeRemainingTenths = 60 * 60 * 10; // 1 hour 

                // Held down, turn off lights…
            if (PINB.0 == 0)
                timeRemainingTenths = 0;
                PORTA.2 = 0;

If you look back at the interrupt service routine, you’ll see that the waitCounter variable gets updated at 10Hz. The wait routine uses this variable to provide a way for us to wait a specific number of seconds.

The sensing code takes a bit of explanation. In digital electronics, the concepts “0” and “1” refer to voltage ranges. The crossover point depends on particular semiconductor chemistry used in the electronics, but assume that it’s 2.5 volts in this case (ie 50% of the 5 volt supply we’re using). So, any voltage above 2.5 volts is 1, and below 2.5 volts is 0. If we hook a switch up to a digital input and connect it to ground, when we press the button, the input voltage goes to zero, and the input value is 0. Then, we let go of the button, and the input goes to some indeterminate state. It might be zero, it might be 1, it might go back and forth.

We get around that by using what is called a pull-up resistor, which is connected to Vcc (5V in this case). If the button isn’t pressed, that ensures that we get a high voltage (a 1), and then when it is pressed, we still get zero.

In the past – say in 1980 – you’d use a kind of logic known as TTL, and you had to be really careful how you hooked things up and what values you used, since TTL was a pretty rough approximation of the term “digital”. These days, most logic families are a lot easier to deal with, and in fact on the AVR microcontrollers have built-in switchable pullup resistors.

All of that is a long way of explaining why the code looks for a low value to determine when a switch is pressed rather than a high one.

The code itself is simple. As soon as the button is pressed, we set the time remaining to an hour, and then we wait a second to debounce. If the button is still pressed after a second, we turn off the switch, and then wait 2 seconds to debounce after that press.

That’s about it.



So, we look at pin 0 on the B port, and if it’s zero (pulled to

Eric vs. the Blend Door

About 10 days ago I was heading down to my Tue/Thu night ride in my truck. It was about 75 degrees out, so I turned down the heat on my Ranger, but it didn’t work – I was stuck on hot, which is pretty darn hot. I had to go on Max AC to get it tolerable.

After a bit of research, I found that the problem was likely to be the mix door. Ford uses a potentiometer to detect the position of the dial in the dash, and then a microcontroller sends the door to the proper position. It’s a fairly elegant design, except that the code self-detects the limits of the door by moving the door and sensing that it slows down. That would be fine, except that the shaft on the door is plastic, and it’s not up to the torque of the actuator, so it breaks. And then, if you want to fix it, you have to pull the whole dash apart to get to it.

This is so common that there are companies that specialize in aftermarket replacements. I bought mine from, and put it in yesterday. It’s a very elegant hack. You take out the actuator, cut the bottom out of the duct with a dremel, vandalize the door so it will come out, and clean out all the shavings. The new door fits in and then you pull a pin so that the spring-loaded shaft seats in the pivot, put the actuator back on, verify that things work, and then close things up with some foil tape.

It would be easy to do if the part of the duct you have to cut wasn’t facing down right up to the firewall. As it was, I had to fall back on my car stereo installation skilz and lie backwards on the seat with my head under the dash.

About 2 hours later, it was done.

Outdoor Lighting Project

I have a lighting issue at my ski place that I need to solve.

If the weather’s good, we just drive up, unlock the gate (in the car’s headlight), and wait for the motion detector lights to kick on.

If there’s a little bit of snow – say, 3″ or so – the Outback handles it fine, and I get out the snowblowblower and clean off the driveway. Except once I get about 50′ away from the house, I can’t see anything any more, and snowblowing in the dark isn’t a lot of fun.

If there’s more snow, we can’t get into the driveway, and have to park out in front, unload in the dark, and then walk across the meadow and through the woods to the house. In the dark.

Seems like we need some lights.

The first choice is whether to go with line voltage or low voltage. Really simple in this case – I need to get the power to two locations about 150′ from the house, and I need to get the lights up into the air. That means a whole lot of trenching through the woods and putting up poles to attach the lights to. Or, it’s running some zip cord through the woods and then mounting some lights up in the trees. So, we’re going the low voltage route.

Which has some problems of it’s own. One of resistance.

The transformer for the system will mount in the house, and that means about 150′ of wire to each of two remote locations. Let’s say we buy 12 gauge wire, just to make it easy. We have 300′ of wire total, and if we look up the resistance, we find that it’s 1.588 ohms/1000 ft, putting us right about 0.5 ohms for the 300′ of wire.

That doesn’t seem like a lot of resistance, so let’s look at some numbers. If we want to run two 20 Watt lights, that will take 40 / 12 = 3.3 amps, so we’ll lose 0.5 * 3.3 or 1.6 volts. With 12 volts running into the run at the start, that means we have 10.4 volts into the lights. If they’re halogen lights, they don’t like that – halogens require full voltage or their lives are reduced considerably. If we bump up to 2 50 watt lights, it’s much worse – we’re pulling 8 amps and losing a full 4 volts in the wire.

The professional low voltage transformers have taps at higher voltages, so we’d hook up the 14 volt tap for the 20W lights, and the 16 volt tap for 50W lights. Unfortunately, the pro transformers are fair bit more expensive than the ones I’d like to buy. Another option would be to go with thicker wire 10 gauge only has about 2/3 of the resistance, but it’s also half again as much copper, so it’s a lot pricier.

As an alternative, let’s consider a system with LED bulbs instead of halogen ones. You can now find 3-5W LED MR16 lamps that in the $20 range, producing the same amount of light as a 20W (ish) halogen. It’s about 5 times more efficient, which means that if you put two of those out, you are only pulling 1 amp, and you only lose 0.5 V. I can probably step down to a smaller wire gauge with the right transformer.

Not sure which way I’m going to go yet. But I do have the control system designed. That’s up next…


Ths is blog #3 for me.

There’s my work blog, which over the years has had lots of non-work stuff on it, but I’ve been writing less work-related stuff there and don’t want to overwhelm it with other stuff.

There’s RiderX, my bicycle blog.

And now there’s this blog, which will have everything else on it.

RAMROD 2009 Ride Report

RAMROD is a yearly stage ride that is held in Washington state, involving a circumnavigation of the state’s highest peak, Mt. Rainier. It attracts a large variety of riders from throughout the state and other areas, drawn to the ride for its challenge and pain potential.

Two days before the ride, I get up and notice that my back is hurting, but it gets better as the day goes on. The day before, I wake up and it hurts more, so I head off to the gym to spend 15 minutes on the exercise bike and do a few stretches. This quite effective – by the time I get back to the locker room to take a shower, my lower right back is totally in spasm, and I can barely take my shoes off. A soak in the hot tub and the shower makes it a bit better, so I resolve to ignore it and hope it doesn’t cause problems.

On the day of the ride, I arise at 2:45, eat a bagel, get dressed (slathering on SPF 50 sunscreen), and grab my bag of stuff. It contains a bagel, 7 snack bags of accelerade (actually, my custom mix of 3/4 accelerade and 1/4 maltodextrin to increase the glucose content and reduce the sweetness a bit), a bag of salt pills and ibuprofen, and a couple of bottles (one water, one ‘ade). And 6 newtons, and some jerky. When I leave the house I glance at the thermometer, which reads 78 degrees, considerably cooler than yesterday’s high of 107.

The drive to Enumclaw is uneventful. I’m pretty tired and it’s pretty dark, but I find my way into Enumclaw and grope my way to the school. I park, get out, put my stuff on the bike, and put on my gear. Normally at this point, I’d be debating what to wear for the weather, but since it’s still in the mid 70’s, the choice is pretty simple. I stuff my pockets full of food, and ride towards the starting line.

I run into a few friends at my pit stop inside the very warm (“why are they heating the school?”) building, and head out. I generally ride by myself on hilly rides as the downside of riding with people who are faster than you is significant, and I believe in that area I have learned my lesson. I roll to the starting area, and make one final check.

It’s 147 miles back to Enumclaw. I have one bagel, half a bag of beef jerky, it’s dark, and I’m wearing sunglasses.

(If you don’t recognize the quote, please rectify the deficiency in your education before continuing)


 Stage 1: Enumclaw to Eatonville

Distance: 32 miles (about the distance from Anacortes to Coupeville)

I stop by the volunteers at the start line so they can pull off my start tag (so they know who’s on the course) and ride through. Down the road, then right onto the highway, then a quick left/right onto a side street.

At which point I’m alone – I can’t see anybody in front, and I can’t see anybody behind. Which is a bit weird, but it’s not possible for me to have gotten lost this early. It doesn’t last for very long, as I catch up with a few people and few people come by. I hook up with a small group for about 20 minutes, but I don’t want to push early i the morning, so I drop off the back and ride by myself. As I spin along, my only company is the beauteous scenery, my own thoughts, and 12,000 dual-trailer gravel trucks, the whine of their turbochargers spooling up bidding a happy “good morning” to all they pass.

A few minutes later I get passed by a group of 20 riders or so, including my nutcase (but in a good way) friend Joe, who says hi. He’s taking it easy today because he has a mountain bike race this weekend, and will still finish hours before I do. He’s only behind now because he wanted to wait until it was light to leave.

I slow down to ride next to a lone rider who I’ll call “Frank” (on account of forgetting his name), who is up from Portland to ride in his first Ramrod. We talk for a while, and then ride off ahead. At his pace, I think he’s in for a long hot day. My legs feel good and my back doesn’t hurt at all, so I’m doing better than expected.

About 10 minutes out of Eatonville I hear my name, and my friends Tristan and Alan come by with two other riders (Vladimir? Alphonso? Julie? – their names have vanished into a haze of exhaustion), and I break my rule (apparently, more of a guideline than a rule) and ride to the next stop with them. We get off the bikes, I refill my water and ‘ade bottles, and grab a small muffin (I’m trying to eat more on this ride), and we head back out.







31.5 miles

17.5 mph


981 kcal

Stage 2: Eatonville to Packwood

Distance: 46.1 miles (about the distance from Cheney to Davenport)

We start climbing immediately outside of Eatonville, on a couple of steep pitches that bump my heart rate up to the low 150s. I drop my cadence down to the 80s and my heart rate goes down a bit and things get easier (interestingly, 140 BPM at 80 RPM is a lot easier for me than 140BPM at 95 RPM) and I decide to stay with the group for a while. We pass some people up the hills, and then ease by a few groups on the flats. A quick stop for a “nature break” (just like on the tour!), and we roll into the Ashford food stop. I refill my ‘ade and water bottles and grab a big handfull of cheese-its (glad they have the underrated “its” rather than the thoroughly pedestrian “nips”), and say hello to my friend Bret, who is waiting in line.

We roll out, and almost immediately turn right onto Skate Creek road, amid many warnings from the volunteers about the rough road 11 miles in, and immediately start climbing again. The natural order of things is upset when I find myself riding either with Tristan (who weights in at about 28 pounds) or Alan (at around 25 pounds) and chatting comfortably (or, as the rest of the group will likely protest, excessively), or, even more surprisingly, riding off the front of the group because they aren’t going fast enough. At my size (6’2″ and 175 pounds), I don’t tend to be the first one up the hill, though the slope of this one is more in tune with my talents as it’s only in the 3-5% range, and being tall is less of a disadvantage if the slope is flatter. I’m apparently channeling Big ole’ George Hincapie. A bit.

In short, I’m having a great time. The conditions can only be described as “delightful” – it’s in the low 80s and the climb is nicely shaded. We top out the climb and start looking for the promised rough road on the descent. We find a lot of uneven road and small sinkholes that are fairly easily avoided (if you’re riding 25 rather than 40) and then we find out that the “rough road” is really “missing road” – there are sections where the entire road has been sliced out and replaced with gravel. The first few of these aren’t that bad – they’re only about 5-10′ long – but the last one is about 30′ long with a lot of loose gravel – an excess of fun on a road bike with 23mm tires on it. We all make it through fine, finish the descent, and as we roll into Packwood, we feel the heat – it’s somewhere in the 90s. Or 900s. One of those.

A quick nature break, and some ice in a ziploc bag with slits in it to go inside my underarmour on the back of my neck. A bottle of ‘ade and one of water, and another salt tablet (I’ve been taking one every 30 minutes), and we head out into the heat.







46.1 miles

17.1 mph


1933 kcal

  Stage 3: Packwood to Cayuse base

Distance: 7.1 miles (about the distance from Richland to Kennewick)

On paper, this looks like a pretty easy section, but it’s a lot harder than I expected. It’s a series of climbs followed by flatish sections, and I’m noticing the heat. They have officers and volunteers out to make sure we get from the right shoulder of the highway over to the left side, and they are batching up riders to do so. In front of us we see one rider overbalance to the right and only save it through a miracle leg move. When we get to this point, I’ve decide to make things interesting and stay in a middle gear, and nearly fall over when we need to ride across the road to rest stop. As does everybody else.

We drop our bikes, and get in line for food and ice. The wait here is probably 15 minutes, mostly because of the time to get ice socks. I skip the ice sock (for some stupid reason) and fill my ziplocs with ice for the front and back, and that helps a little. I try to eat, but the heat makes it difficult so I don’t each much. I do get two bottles of water.

I know the grade here is steeper and I won’t be riding with the rest of the group, so I roll out a little early.







7.1 miles

15.6 mph


327 kcal


 Stage 4: Cayuse Pass to Deli stop

Distance: 25 miles (about the distance from Renton to Tacoma)

Now, we’ve gotten to the meat of the ride. 17 miles of uphill, followed by 8 miles of downhill, followed by sandwiches and soft drinks.

The early part of the pass is a surprise – it’s (yet another) set of climbs and flatish parts, but it has reasonable amounts of shade, so I’m feeling okay. I do kick down to my granny gear on the front, and figure I’ll be in it all the way to the top. This continues for the first 9 miles of the climb, during which we climb about 800′.

Then something happens to the road. I don’t know if there were budgetary concerns or the upper pass was done by a different group than the lower pass, but at the 9 mile mark, some nameless highway engineer gets out his 7% grade ruler, and that’s what we will follow all the way to the top. Take a look at the profile and you’ll see what I mean. I settle into a pattern:

Each minute I turn the cranks over about 70 times, progress a tenth of a mile forward, and climb 170′. Just do that 80 times, and I’ll be at the top.

After about 10 minutes of this, I pass a waterfall on the side of the road, and see a rider climbing down to it. I get off the bike, climb down, and wet down my face, head, and body. The water tastes salty – not from dissolved minerals in it, but from the salt that is dissolving off my head as I rinse down. I get back on the bike, and then it’s back to my unhappy place as I progress upwards.

Every 15 minutes or so I pass somebody, and every 15 minutes or so somebody passes me, but generally all the riders are progressing at the same slow pace, a steady 6MPH.

Did I mention it’s hot? At the same time we hopped on the 7% treadmill, we lost most of our shade, and it’s above 90 (my guess is that it’s well above 90) at this point.

At just over 98 miles, I hit the water stop, which is good, because I’ve been riding 15 minutes without any water. It’s taken me 80 minutes to ride the last 13 miles and climb 2000′. As I’m waiting for the facilities, I run into Bret again, and give him some of the extra food that I have. We refill our bottles, and ride onward. The sign at the stop says “4.8 miles” to go, and we do it without any stops, except for the time we stop in a thin slice of shade for a couple of minutes, and the time we join a horde (perhaps 1.5 hordes) of riders on the opposite shoulder in a thin slice of shade about a mile from the top. I’m out of water with about 3 miles left. We finish the remaining 1000′ of the climb in around 40 minutes, get some water, and then scream (personally, I say “whee!”, though I don’t have much voice left because of heat and dryness) down the north side of the pass, dropping 2000′ in about 18 minutes.

We roll into the deli stop, and a volunteer hands me an icy Diet Coke (can’t drink the HFCS stuff when I’m riding) as we wait in line. One of the things that RAMROD does so well.

We are done, not in actuality, but done in the sense that there is no longer any doubt that we will finish. I get a ramrod special sandwich (meat/cheese/tomato/lettuce on whole wheat), and we grab a couple of camp chairs in the shade, and relax, at least as much as one can relax with a couple of hours of riding left.







25.7 miles

10.7 mph


1540 kcal


Stage 4B: Crystal Mountain

Distance: 12 miles (about the distance from Aberdeen to Montesano)

At this point, there is a “out-and-back” climb up to the base of Crystal Mountain ski area and back, a special section for the faster yet stupider riders who are unable to figure out what “RA” means. It’s like a snipe hunt – a sort of hazing thing. Even if the “out and back” part wasn’t enough, the fact that the pavement on Skate Creek is wonderful compared to the pavement on the crystal climb (and descent) should make the hazing part obvious. And yet many still do the climb…

As wily college graduates, we take a pass on this one. As we get ready to leave the deli stop, we run into Alan and Tristan who are down from climbing up Crystal Mountain. We don’t let them in on the joke and I resist the temptation to ask them to find me some elbow grease for my bike.

 Stage 5: Deli stop to done

Distance: 36 miles (about the distance from Ellensburg to Yakima)

This appears to be the easiest section of the ride – a steady downhill nearly all the way back, with a drop of 1900′ and only a few short climbs. But those who have ridden this in the past know that, almost without exception, there is a headwind the whole way down.

Today is an exception of the rule. We don’t have a headwind, we have a intense and hot headwind. Bret thinks the result is a bit like riding in a toaster oven, while I think it’s more like riding into a hair dryer, and we are unable to reach a consensus. We are riding by ourselves and we alternate on the front every 3 minutes. We’re going fairly slowly, in the hope that a paceline will pass us and we can hook up with them. We don’t find any pacelines, but we do pass a number of riders who are hurting units. One of them tries to draft us but drops off – I hope he makes it back okay.

Eventually, we come into Greenwater, and spend a while riding through the sprinkler that’s been set out for us, and I especially enjoy the way the sprinkler hits Bret right in the face. We skip the store and therefore don’t pick up any water. Which is a tactical error.

This takes us into my least favorite section of the ride. The headwinds are worse, and there are a few real climbs in this section as well. As we get into the meat of it, a paceline catches up with us. We do our turns on the front, and drop to the back to wheelsuck. The 4 guys at the front are pretty well organized but don’t understand the concept of “constant effort” (when you’re at the front of a paceline you should slow down a bit on the uphills so the group can stay together), so they keep breaking the group up. That makes our effort in the back higher than it should be, and the result is that we’re working harder in the group than we were by ourselves, so at the next break we just stay behind the group, along with another woman from the group. We trade off pulls and I go through the last of my water.

We finally get to the Mud mountain dam turnoff and fly down the descent (usually a bit cold, but today just a bit less hot), and then ride the last 4 miles back to the school, where we are greeted by well-wishers, have our tags pulled off, and partake in frozen confections (I have a orange/vanilla bar).







36.3 miles

19.1 MPH


1139 cal


Distance: 147 miles, about the distance from Chehalis to Yakima

I’m pretty happy about this – I hadn’t thought that I’d be up for that kind of speed on a ride as long and as hot as this one. The diluted ‘ade worked well as did the salt tablets, but I think I should have taken in more calories before the Cayuse climb (hard to remember to do so when it’s that hot). I’m not sorry that we did a different route, as my guess is that the climb up to Paradise would have been much hotter than the skate creek one.

Ramrod support is second to none – they have lots of volunteers, the food is good and has variety, and things are well-though-out. It’s also nice to be in a more hardcore group of riders, though being passed so much can be a bit hard on my ego at times.

I’m very happy about my condition. My legs felt strong the whole day, and my back didn’t hurt at all.

The overall amount of climbing has me scratching my head. Different ways of measuring elevation gain lead to vastly different results (livestrong was either 4500′ or 8000′ depending on what you look at), but most routes have traditionally been measured with the Polar watches because they were the first ones there. Even if I added in the 1600′ of crystal, I’d only be at 8000′ of climbing overall.

Our route substituted the skate creek climb (about 700′) and the base of cayuse (about 1000′) for paradise and steven’s canyon. That puts the base elevation gain at around 4700′ without the Paradise section, and if you add in the paradise climb (at 3150′) and stevens canyon (1000′) the total you get is only 8800′, which is a bit less than the advertised 10K. Not that I’m complaining, I just find it perplexing.

However, if you are thinking of doing RAMROD, the fact that you need to get into the lottery so early and do a bunch of training without knowing if you’ll be in the ride means that I think you shouldn’t try to do it. Better to leave it to those of us who are really interested in it.






Elapsed Time


147 miles

15.8 mph


6157 kcal