Showing posts with label Wisconsin. Show all posts
Showing posts with label Wisconsin. Show all posts

Saturday, April 4, 2026

Another multimodal adventure: Madison to Chicago by bike and train

A smooth Lake Monona just before sunset

 

Madison doesn't have passenger rail. Over the past year, there have been a lot of news that indicate that that may be changing, sooner than anticipated. But I'm not going to get my hopes up. And "sooner than anticipated" still means 2029 at the earliest. And so to get to Chicago without a car, you have to take a bus. Or bike to the nearest train station, which is in Harvard, IL.*

Water tower in Harvard. It states "Harvard. Home of Milk Day"

 

In 2024 I did that trip for the first time, on my fixie: Bike to Harvard, take the Metra commuter train into downtown Chicago. And for the way back, Amtrak train to Milwaukee and bike back from there. I documented that trip in two videos. 


 





This year there was another opportunity. A grad school friend was going to be in Chicago. My significant other had a hotel room booked already and so I might as well join! The plan: Leave early on Saturday, catch a mid-day train and arrive in Chicago in the afternoon. Have some fun, eat a lot, sleep. Do the reverse the next day.

My bike riding shadow in the morning sun

 

This being March in Wisconsin, the weather is an important variable. March can have days warm enough for shorts and t-shirt. Or a blizzard. Or everything in between. On that spectrum, the weather forecast looked okay-ish: Cold but sunny on Saturday morning, with a predicted low of -7 C/20 F and a high of +7 C/45 F; and much warmer and mostly sunny on Sunday. Good enough for me.

A bike path just outside of Harvard. There is a warning sign about the path narrowing, but it's hanging upside down.

 

One adaptation in response to cold morning was to not aim for the 11:35 am train (which would have necessitated a departure around 5 am) but the 1:35 pm train instead. This was to reduce the amount of time I'd be riding while the sun wasn't up yet or very low. I departed Madison at 6:19 am, half an hour before sunrise. And yes, it was cold! A few degrees warmer than the forecast, but still well below freezing. I wore thick wool socks, neoprene shoe covers, and wool tights on my lower body. A wool baselayer, long sleeve wool jersey, and a softshell jacket on top. A buff to keep the wind out, plus a hat. I knew that my hands would be the weakest link and added a pair of chemical warmers to my gloves. Juust warm enough. 

 

Sunrise over Upper Mud Lake

Aside from the cold, it was a beautiful morning. A clear sky, birds singing, not much wind, the sun just about to rise over the Madison lakes. I managed my effort to balance staying warm enough while not riding too hard. After all, it was 135 kilometers (80 miles) to Harvard, which this early into the season is a considerable distance. Some of the ill effects of the cold were that my contents of my water bottles turned into slush (but not wholly freezing at least!). And the wax on my chain was so hard that it caused my drive train to be noisy and imprecise. 

 

A farm implement on an otherwise large fallow farm field.

The route I had created prioritized short distance and low traffic roads. Scenery, on the other hand, was not a priority. The parts of Wisconsin and Illinois I was riding through are flat and agricultural. In March that means endless shades of brown fields, with the occasional farm house or town in between. 

Road sign for State Line Road, separating Wisconsin and Illinois

 

The riding was going well enough that for a while I thought I may be able to catch the earlier train. It would be tight, but maybe I could increase my effort and cut a few kilometers off the planned route. However, as the sun rose not only did the temperatures go up but so did the wind. And it was not in my favor. So I had to resign to the fact that I would arrive much too early for the 1:35 pm train but had no realistic chance of catching the 11:35 am. Ah well. I dialed my effort back down and arrived in Harvard at 12:08, after 5h 48 minutes. My moving time was only 13 minutes less than that—when it's this cold, you really need to minimize the time stopped! Harvard has a very nice coffee shop, The Mug, one block from the train station, and I slowly warmed myself up with a "golden oat latte."

My pink bicycle in the bike area of a Metra train

The Metra train is great for bringing on your bike: Most cars have a bike rack and no extra ticket is required for the bike. And if you do a Saturday/Sunday trip like I did, you can buy a weekend pass for $10. 

The Chicago River and the skyscrapers surrounding it

 

The way back

A protected bike lane with a pedestrian crossing that has "Look bike" in all-caps stenciled onto it.

 

Our hotel's breakfast room had a large window. With some trepidation I watched a flag across the street: Clearly it was quite windy, and the wind appeared to come from the west. My route back was going northwest overall. I was mentally prepared for this and resisted the temptation to take a closer look at the wind forecast. It's not like I could do anything about the wind. I biked to the train station, and after less than 19 hours in Chicago I was on the train again. I got back on the bike in Harvard at 12:16 pm. 

A bird of prey circling

 

As I had anticipated, it was windy! The wind seemed to be from the south rather than the west, though. Better than expected. My route for the return trip was different. Head west to Beloit, northwest to Orfordville, and then straight north back into Madison. The first segment felt hard. Boring landscape, tired legs, strong crosswinds. I was resigned to the day being a long slog. But hey, the fact that it was much warmer and I had no pressure to catch a train counterbalanced this. And while the crosswind made me feel very slow, I noticed that my actual average speed was pretty decent. And whenever there was a segment of road heading north, the tailwind felt amazing. My mind increasingly focused on the fact that for the last 30 km of my ride the wind would be in my back the whole way! Spoiler: indeed it was. 

My legs, my bike, and a bottle of coke at the Orfordville gas station

 

It is hard to convey how good a strong tailwind feels. You forget your tired legs and butt. It is suddenly quiet, except for the hum of your tires spinning at 22 miles an hour. The distance remaining on your bike computer ticks down rapidly. You no longer care about the featurelessness of the landscape because you just focus on your effortless speed.

A narrow unpaved road

 

I arrived back home after 5h 20 min, in an elated state of mind. These types of ride make me fall in love with biking over and over again. They're ridiculous, hard, easy, fun, memorable. 

The stats

Madison to Harvard:  

  • Strava link 
  • Distance: 134.06 km (83.3 mi)
  • Moving time: 5:35:00
  • Elapsed time: 5:48:06
  • Average speed: 24.0 km/h (14.9 mph)

Harvard to Madison:  

  • Strava link
  • Distance  130.31 km (81.0 mi)
  • Moving time 4:56:51
  • Elapsed time: 5:20:28
  • Average speed: 26.3 km/h (16.3 mph)

 

* Technically, the nearest train station is Columbus, WI, from where you could take the Empire Builder long-distance train to Chicago. But that train runs once a day, is expensive, and (because it comes all the way from the West Coast) is often delayed by many hours. Milwaukee is another option, but you need a reservation and extra bike ticket for the Hiawatha service.

Thursday, November 27, 2025

Coffeeneuring 2025: Six weeks, seven rides

 I used to be a regular Coffeeneur (and have the patches to prove it). For a few years, though, I have been on a break. I'm not sure why. Probably a lack of new destinations, riding indoors more? Anyways, this year I returned. 

Ride 1: Crossroads Coffeehouse

A mostly overcast fall day took me out to Cross Plains. I'd been to Crossroads Coffeehouse before, but it was a long time ago. It's a very nice coffee shop right on the main street and I had an iced coffee (3/5) and a surprisingly good vegan/gluten free brownie. 

65 km / 40 miles 

 



 

 

Ride 2: Bodihow Brewing in Oregon

My favorite coffee shop in Oregon, Firefly, changed their hours last year and is no longer open on weekends. I considered trying a new-to-me place downtown, Kickback Cafe, but eventually landed on Bodihow Brewing. It's a cool place that combines a bike shop, cafe, and brewpub. During previous visits I had had their beers, and I have to say they definitely beat their coffee. Anyways, it was warm enough to sit outside and the overall ride was excellent.

70 km / 43 mi 

 

 

The Trail of Grades


 


Ride 3: Grace Coffee in Verona

The third ride was the first one to take me to a new coffee shop: Grace in Verona. I've been to other Grace locations previously, but this one was new to me. Grace has (had?) a bad reputation among some but I have to say the espresso I had was very good, they have comfortable seats, and staff were friendly.












 

44 km / 27 mi 

 Ride 4: Liv's Drink Emporium in Sun Prairie

I wasn't sure if I'd been here before: I remembered a coffeeneuring ride to this part of Sun Prairie, and how many coffee shops can there be? But the name didn't seem familiar and neither did the interior. Well, after some digging through Strava records, it turns out that I had been in this location, back in 2017, but the shop had a different name and presumably owner back then. The espresso exceeded my expectations and they had a vegan protein bar, which was okay. Notably, I had a blazing tail wind on the way north, which was fun! (And no, I didn't hate the headwind on the way back as much as I had feared.)





 65 km / 40 mi

Ride 5: Alice Good in Verona

Another ride to Verona, but this time to a shop I'd been to before: Alice Good. I really enjoyed my previous visits, but their limited opening hours had prevented me from going there more frequently. I was glad to find out that their hours are much better now and so I headed there on a Friday afternoon. Again, I loved it: Their staff are very friendly, the espresso was excellent, and I also picked up some excellent light roast beans to take home. On the way back I got rained on a little, but that was fine too. 

 



 
45 km / 28 mi

 
 

Ride 6: Fat Cat Coffee Works in New Glarus

Mid November. But warm enough to wear knickers and sit outside, with a cold brew coffee! I spontaneously took the day off and set out for the longest coffeeneuring expedition of the year: Fat Cat Coffee Works in New Glarus is an old favorite, right off the Badger State Trail. I included some detours and new-to-me roads and it was all glorious. The coffee itself was as usual: Fine but nothing to rave about. But I didn't care in the slightest on a day like that. 


 
  

108 km / 67 mi

Ride 7: Barriques in Middleton

My buddy Ben had sold me on a new Zwift race series, schedule at 7:45 am on Sundays. The race was long and extremely hard. But it was also another uncharacteristically warm and sunny day and so Nicole and I headed out to Middleton for the last Coffeeneuring ride. Another destination that I'd been too many times: Barriques. While I don't like their filtered coffees, the espresso is reliably decent. 




 26 km / 16 mi

Saturday, June 25, 2022

Sugar River 200 km Permanent

My randonneuring career started in Montreal. Physically, the idea of riding 200 kilometers seemed feasible. And the start location was just across the St. Lawrence, about 15 kilometers from where I lived. Since moving to Madison in 2015, I have done plenty of long rides. But only one of them was an official brevet. The reason? The local randonneuring club is based in Richland Center, almost 1.5 hours drive from Madison. Being carless, this made the logistics of getting to the start of their rides very challenging. 

An alternative to brevets are permanents: Same distances, same time limits, but you do them at a time of your choosing. When Randonneurs USA, the national organization, revamped their rules for permanents, I decided to finally create my own permanent route, starting right in Madison: The Sugar River 200k.

 

Start and finish are at Pacific Cycle, on the Southwest Commuter Path. You can easily reach the start by bike, and if you arrive by car, it's easy to find parking there. The route heads south, very loosely following the Sugar River downstream into Illinois. You ride on the Badger State Trail (trail pass required) until its paved section ends, and then transfer to quiet rural road. The first control is a gas station in Albany, and shortly after the control the unpaved section of the route, on the Sugar River State Trail begins. The surface is crushed limestone, but because the trail doesn't see a lot of use, grass will often take over a lot of the trail. Generally, the trail is easily rideable even on relatively narrow tires during the summer and fall. In the winter, spring, and after big rainfalls, take an on-road detour.

The trail ends in Brodhead and you're back on roads again. We're getting close to the Illinois border now. The only sign of the border: A sign for "State Line Road," and all the roads now have numbers. You don't go very far into Illinois: The southernmost control is a gas station near Lake Summerset, a gated community around an artificial lake.


 

Overall route is flat, but the terrain around the border has some ups and downs. We now go west and north toward the next control in Footville. The roads here are very sparsely traveled. Evansville is not a control, but if you're tired of gas station food, the route takes you right past a Piggly Wiggly supermarket. 


 

We continue northwest until we get to the next control in Oregon. There are stretches of on state or US highways in this section, but they add to less than a mile total and have paved shoulders. The official control in Oregon is a gas station. My recommended alternative for a stop: Firefly Coffeehouse just across the street. It's a great cafe with delicious baked goods, sandwiches, and cheese boards. They do close at 3pm however, and so depending on your pace, this may not be an option. 


 

Rather than taking the direct route back to Madison, we now head toward McFarland. This involves a beautiful stretch on Rustic Road 20, Dyreson Road. The highlight is a one-lane truss bridge across the Yahara River. McFarland is the last control before the finish. Just where you transition onto the Lower Yahara River Trail, take a photo of the Andrew Larson Park sign. The remainder of the route is all on bike trails, including Wisconsin's longest boardwalk. On weekends, these can be busy with people walking and biking, so be prepared to take it slow. 

If you have any feedback on the route or the cue sheet, please leave a comment here

Monday, August 17, 2020

A 300km DIY brevet to Kettle Moraine

My 200k ride two weeks ago went well. Near the end of the ride I started asking myself, "What would it be like to add another 100k?" I've ridden two 300k brevets before, one going really well, the other less so. Of course, organized brevets have all been cancelled due to COVID, and there are no sanctioned 300k permanent routes starting from Madison. So I figured I'd do a DIY brevet.

The difference between a DIY brevet and just a long ride? I dug up some of my knowledge about how to ride a good time and made a solid plan. The standard reference to this is an article in Bicycle Quarterly, where Jan Heine describes how he created his plan to ride Paris-Brest-Paris, a 1200 km ride, in under 64 hours. One of the keys is to minimize the time off the bike, and to do that you need to specify how much time you're going to spend at each stop. Following the article's suggestion, I created a spreadsheet to help me with the planning. 

 

Based on recent rides and the wind forecast, I figured I should be able to maintain an average moving speed of close to 25 km/h (15.5 mph). I made some adjustments to account for presumed hilliness of the sections and the fatigue in the later parts of the ride. The break schedule was aggressive. A 15 minute break? Sounds long, but it's all to easy to, as the Brits say, faff about and waste half an hour at a gas station. This costs you time while also not really providing much rest.  

 With sunrise a little after 6 am, I aimed for a 5:30 am start to maximize riding time with daylight. I was happy enough that I was on the road by 5:34 but that happiness didn't last long. About 2 km into the ride I saw a face mask in the middle of the road. That triggered an immediate, "Oh shit, I didn't pack a mask!" An additional 5 km and already 17 minutes behind schedule. Sigh.

The ride to the first control was uneventful. My legs felt in okay shape and there was hardly any wind. My route incorporated a tiny detour just before the control to collect two Explorer tiles. I skipped the first control in Newville as I still had plenty of water and wanted to make up some of the lost 17 minutes. At this point an unexpected drizzle had started. But I was making good time and at the next stop, in Whitewater, I was ahead of schedule. The lakefront park I had chosen for a 30-minute rest turned out to be so-so: The restrooms were locked and the lake turned out to be more of a swamp or marsh. But at least it had comfortable benches. I cut the 15 minutes break time down to 10 to account for having to make another gas station stop for water. 

The underwhelming lake view in Whitewater
 

The next section of the ride was my favorite. Kettle Moraine was already in view from just outside Whitewater. Oak trees, pine forests on sandy soil, gentle climbs on windy roads, good views. If this were closer to Madison, I'd ride here all the time. And based on the number of roadies I encountered, I'm not alone in this assessment. 

 




Eventually the moraine ended and the country of giant mansions on private lakes and Donald Trump election signs began. The next control was in the Town of Oconomowoc (population 98.74% white; 2018 vote share Scott Walker: 74%). Nobody at the gas station but me wore a mask, including the staff... I had calculated my arrival time based on a segment speed of 23 km/h, assuming that the hills of the Kettle Moraine would slow me down. But they had been gentle enough for me to arrive at the half-way point or the ride with 30 minutes in the bank. 



Looking for ways to stay healthy? Wear your f'ing mask
 

Those 30 minutes would come in handy for the next segments. The wind had picked up and came from the northwest. Which way did my route take me? Well, first north, then west. In addition to the cross/head wind, there were constant rolling hills, which I hadn't expected. And the route was dead straight for the most part. So it was a bit of a grind, mentally and physically. 


 

By the time I got to the next control, in Watertown I was a few minutes behind schedule. Or was I? Losing 30 minutes over 44 km seemed like a lot. Trying to claw back time, I skipped the Watertown stop (only 5 minutes anyway) and pressed on toward Waterloo. Once I got close to town and checked the clock, it looked like I would get there ahead of schedule. Weird: I certainly didn't feel any faster between Watertown and -loo, and I wondered if maybe my schedule sheet was wrong (I checked today, and it wasn't). Who knows.


In Waterloo I was scheduled for another "long" break, at half an hour. I bought supplies at a gas station, but it didn't have any seating. By the time I got to the nearby Firemen's Park, only 20 minutes of break time were left. Let me tell you: This break schedule was brutal. But the schedule is the schedule.

From here on I was in semi-familiar territory again. It was nice to recognize some of the road names from previous rides. But the wind had gotten stronger and the grind continued. What helped me get through this was listening to a podcast interview (in German) with Phil, an ultra-cyclist with a very chill-but-intense and inspiring attitude about riding your bike over long distances.

 

I probably was dehydrated and undernourished at this point, despite what I thought to be a decent job of chugging water, Clif Shots and Bars, and (a new addition to the arsenal) Tailwind. My body was in underpowered Diesel engine mode: Fine at constant speed, but slowing down drastically on every uphill. My heart rate for the most part refused to go into Zone 3. 

The last control before Madison was the general store in Keyeser. I had been there once before and wasn't counting on the store actually being open. But it was closed indeed and the faint hope for a Pepsi was squashed. No luck. I was 19 minutes behind schedule now, with 35 km to go. All south from here on, that is, no longer into the wind. Maybe with skipping the 5-minute stop at Keyeser I could make up the remaining 14 minutes and arrive on schedule?

To increase my chances, I followed advice I had just learned from the podcast with Phil. He describes how during ultra races he often catches a second wind in the evening hours. "I'll put on an awesome set on my speakers, real bangers. And then: Kopf aus, Beine an." Brains off, legs on.

The "brains off" part probably worked; the "legs on" less so. And so it was 7:42pm when I rolled in. Twenty-four minutes behind schedule, with a total elapsed time of 14 hours 12 minutes and 12:40 in the saddle. This was faster than any of my 300k brevets (14:26 and 15:12). Of course on an actual brevet you don't have the option to just ride through controls -- you have to stop at least long enough to get your brevet card signed, which can easily cost you 5 to 10 minutes each time. But on the other hand, I didn't benefit from any drafting, and there were the 17 minutes lost to forgetting my mask.

 

Conclusion? Well, I'll just copy and paste the one from my ride report from the previous 300 km (where incidentally my moving average was exactly the same):

My moving average was much lower [than on my first 300k], 24.6 vs. 27.4 km/h, but I spent half an hour less at the stops. This pretty impressively shows that a fast brevet is not so much the result of riding fast but of having efficient stops.

Wednesday, August 5, 2020

Just across the border

Big fake sheep
[content note: Lots of stuff about eating, and not eating]

It's been over a year since I last did a 200 km ride. With the pandemic, there have been no organized brevets, water fountains and restrooms at parks were closed, and I didn't feel comfortable doing my usual gas station stops. With three water bottles this limited me to 120 to 140 km, depending on the heat. With a statewide mask mandate and the research on mask effectiveness, I felt okay embarking on a longer ride and refuel at gas stations when necessary. This Saturday conditions looked perfect. A high of 28°C (80 F), mostly calm winds from the NE, sunny.

The destination for the ride was a certain retail establishment located just across the Illinois border in South Beloit. The Strava route builder did a good job of suggesting a route, and I didn't have to spend too much time fine-tuning it to collect a couple more Explorer tiles along the way. The total distance was 196 km. Far enough, but I figured I could always add a little detour or two to make it to 200.

Because I would have the wind in my back for the first half of the ride, I didn't want to leave too early. No point in riding with a calm tailwind, only then to ride back when the headwind is strongest. This was fine by me and accommodated my usual slowness in getting ready in the morning. Two coffees and one bowl of oatmeal in me, I was won the road by 7:18am.

My recently repainted Gunnar was in tip top shape (minor rear derailleur indexing issues aside) and I felt great. As predicted, the wind wasn't strong but definitely in my back. At the current speed I calculated that I could be at the turnaround point well before noon.

The Peace Trail follows the Rock River and will eventually connect Janesville and Beloit

One thing I have been struggling with on long rides lately is eating. My glycogen stores were still full of yesterday's pasta and the bowl of oatmeal. I know I should keep eating all throughout the ride, but in the first couple hours into the ride I just didn't feel like it at all. I had had some vague plan to stop in Janesville, about 75 km in, but then of course my route didn't really go through Janesville but around it on the lovely Peace Trail. So by the time I got to the Road Ranger gas station in South Beloit, my turnaround point, I had only had one Clif Bar and one bottle of water. There I bought a bag of dill pickle chips, a bag of actual pickles, and a bottle of V8, but only half the bag of chips and drank the V8. I kindasorta knew that this wasn't going to be sustainable, but bike brain also stopped me from doing something about it.


Well, it did go alright for another hour on the return leg, but then my body started sending some "cough, cough, didn't you forget something??" messages. The first sign was that the lukewarm, slightly plasticky water in my bottle suddenly tasted absolutely amazing! I quickly downed my remaining two water bottles and set my eyes on finding a gas station quickly. It didn't take long until I got to Footville. The gas station looked vaguely familiar from previous rides and I bought a whole gallon of water. So far, so good. But apparently taking care of one bodily need made me lose track of that whole eating thing. I really enjoy sitting down on a nice bench to eat, and neither the gas station nor the Footville Memorial Park offered such amenities. "Ah well, instead of following the signs to Footville Community Park, which would take me slightly off route, I'll just keep going and stop in Evansville! Can't be more than 20k!" Yeah, I know.


Next bodily message, at the bottom of a hill, probably halfway to Evansville: "I'm not going to ride up there unless you feed me. Right. Now." Who's to argue with that. I just stopped on the side of the road and ate both a Clif Bar and a Clif Shot. This was enough to get me to Evansville, where I stopped at Lake Leota Park. I finished the remaining half of the chips and the pickles (note to self: pay attention and don't buy the spicy pickles) and kept drinking more water. This was plenty to console my body and get it ready for the remaining 50 km.

Have I mentioned that I like pickles?

I realized I couldn't make it back home by 4:20. (I'll leave it to my readers to figure out why this is relevant to this report). This provided a welcome excuse to add a couple kilometers and make a pit stop at the Hop Garden in Paoli. This is truly one of my most favorite spots, and a beer and a Pepsi were extremely delicious, 185 km into the ride. Once I got going again I noticed that my average pace had fallen just under 25 km/h. Not that it really mattered, but it provided a boost of motivation to get it back up to 25 and complete the 200 km in under 8 hours riding time. There are a couple minor hills Paoli and Verona -- not exactly conducive to raising the average speed -- and I did what my legs allowed me to do. Once I reached the Military Ridge Trail I was able to push the pace. And indeed, the display of my Wahoo jumped from 24.9 to 25.0 km/h maybe 5 minutes before I reached the 200 km mark, just at the city limits of Madison. Pretty good for a solo ride.


This was a great ride, and despite the eating/drinking issue I felt pretty good the whole time. Nonetheless, I'd like to figure something out about the eating issue. Maybe strictly pre-planned stops? Bring real food like I used to do on brevets? Set up an obnoxious alert on my phone or the Wahoo? Maybe embarking on a 300 km route, or a 200 km with more climbing will force me to come up with a solution.