Torklift EcoHitch 2″ Hitch for my 2015 Outback

IMG_0249.jpg

Back in 2015 when I purchased a Subaru Outback, I ordered it with a OE hitch. At the time it was the best (and thanks to IMBA discount the cheapest) option for mounting a bike rack on the back of the car. Due to load limits on what the vehicle can tow there was only a 1-1/4″ receiver available, and while this fit the 1Up USA rack previously used on my Civic it just didn’t provide the stability of a 2″ receiver.

Fast forward to late 2018 and, out of the blue, I was contacted by Torklift, via Reddit, where they offered to send me their Torklift EcoHitch 2″ receiver hitch in exchange for providing feedback to their designers and engineers. After some email back and forth this was all set up, and a few days ago I received the rack: Torklift 2015-2018 Subaru Outback EcoHitch, part number x7266.

Beyond the 2″ receiver, the biggest difference between the EcoHitch and OE hitches is how they mount. While the EcoHitch sandwiches between the bumper beam and the chassis, held in place by the bumper’s eight fasteners (photo 1, 2), the OE hitch both replaces the bumper beam and mounts inside of the frame rails (photo). While it appears that the OE hitch may be a bit more resistant to very high tongue weights, the Torklift seems plenty solid and is made of thicker material, so I’ve got no concerns with the differences. The other significant difference is that the Torklift EcoHitch doesn’t come with a wiring harness, but only ever having bike racks on my car this doesn’t really affect my usage. When the OE hitch was installed on my Outback this included a wiring harness along with a nifty mount to hold it next to the receiver (photo). I considered adapting this mount to the EcoHitch, but instead took some inspiration from Torklift Central’s (frankly overpriced) Eclipse 4-Flat Plug and fit a neodymium magnet to the cable (photo), then stuck the magnet to the back side of the receiver.

Needing to remove the OE hitch my install was bound to be a bit more complicated than someone who is putting the EcoHitch on a new vehicle, but even this ended up being pretty straightforward.

Whole rack, rear view, with installation instructions and parts bundled to the center.

Whole rack, rear view, with installation instructions and parts bundled to the center.

Unboxing the rack revealed a well-packed (photo), nicely powder coated (photo), solid rack that ships with an instruction manual, the eight nuts (for attaching it to the bumper mount bolts), and a piece of rubber trim gasket to cover the cut edges on the underside of the bumper cover (photo).

Besides the printed instructions (which I wish Torklift posted as a PDF on their website), there are two instructional videos (1, 2) which show the installation on everything from 2015 to 2018 models of the vehicle. These do a good job of showing the basics of the installation, but they gloss over what I think is the most difficult part; removing the bumper cover:

  1. Removing the bumper cover itself works best if you push up on the sides from the bottom, then pull out the at top. Going off of just Torklift’s instruction I first thought to pull straight outward, but this wasn’t working well and — per Subaru — can risk breaking retention clips. Thankfully I have access to Subaru’s service manual which described pushing up from the bottom, and with this technique the cover came off easily.
  2. My vehicle has splash guards installed, which had to be removed before all the bumper clips could be accessed. These guards came off via six screws and four push-lock plastic clips, but I had to use a right-angle screwdriver to fit around the tires. (There is a note in the Torklift instructions mentioning these may need to be removed.)
  3. Three out of the myriad push lock clips used to hold the bumper and splash guards on broke during removal. This is likely due to my Outback being nearly four years old. Thankfully replacements are readily available online and at dealerships and can easily be identified via Subaru Parts Online.

For this installation Torklift instructs that the hitch be fitted, then the bumper beam reinstalled. However, during the install of the OE hitch, the bumper beam and foam energy absorber is removed and discarded. Since my Outback came with the OE hitch installed, I didn’t have these pieces. After consulting with both Torklift and some auto engineer friends we concluded that the Torklift hitch will be fine without the bumper beam.

Despite this, I contacted my local dealer (Sellers Subaru) and to my surprise they gave me discarded/scrap bumper beam from an Outback where they’d recently installed a hitch. It’s maroon, but being hidden the color doesn’t matter. With the purchase of a replacement foam energy absorber ($79.95 MSRP) I was all set part-wise to remove the OE hitch and install the EcoHitch to spec. While this likely wasn’t needed, it makes me feel better about the overall install. (Photos 1, 2)

Removing the OE hitch was a bit of a hassle, as getting to two of the hitch bolts required removing the muffler and heat shield. (Another plus for the EcoHitch.) Thankfully none of the bolts were seized and removal this went smoothly. Before long I also had the OE rack completely removed, exhaust re-fitted, and it was time to install the EcoHitch.

Foam cushion over the bumper beam, and hitch installed.

Foam cushion over the bumper beam, and hitch installed.

At this point — just after bumper cover removal on a normal install — installation is very straightforward: folding a thin metal bumper cover mounting tab up against the body, bolting the hitch and bumper back on, torquing some nuts, and cutting a notch out of the bumper cover. After this it’s just a matter of putting the the bumper cover, tail lights, splash guards, and some plastic covers back in place.

From the OE hitch I already had a notch cut in my bumper cover, but it was pretty easy to cut the wider notch required by the EcoHitch. The OE hitch uses a longer notch than the EcoHitch, and thankfully Torklift provides enough trim to cover the extra-large notch present after a bumper’s been cut for both (photo). The cutting itself went easily, as the plastic is pretty soft and can either be scored and folded or cut with anything from a rotary cutter to a jigsaw.

During installation one of the bumper cover mounting tabs is folded out of the way and the mounting hole cut out of the bumper cover during the notching, which eliminates one of the points where the bumper mounts to the chassis. While initially concerning, this part of the cover rests on the top of the receiver after everything’s put back together, so this lack of retention point isn’t a problem.

With everything put back together I’m currently quite happy. The TorkLift EcoHitch looks good and sits nice and close to the underside of the bumper; I don’t think it could go much higher. While the OE hitch had 14.5″ of ground clearance, this drops to 13.5″ with the EcoHitch, an acceptable change for adding 0.75″ to the receiver’s height. This hitch is a great choice for either new installs on an Outback or retrofitting an OE hitch to a 2″ receiver.

I particularly like how the powder coating has a thick, textured look to it, and the end of the receiver has a nice TORKLIFT logo. The whole unit looks like it’ll hold up nicely to Michigan winters (and road salt). Now to wait for a new, matching black 1UP USA 2″ Super Duty Single rack to arrive!

Click here or on the large photo above to see a complete album of photos from the install.

Free Bike Stuff: NYE Edition

Kristen and I have some bike stuff we don’t want, but we’d like to see go to a good home. All of this stuff is free. Please only take this stuff if you have a good use for it.

Please email steve@nuxx.net if you are interested in any of these items. Can meet in Warren or Shelby Township areas. I’d rather see it all go sooner than later. (Strikethrough indicates the item is gone.)

Giro Phase Helmet (Photo)
Black. Size Small / 51-55cm. No damage. Could use a rinse/wash.

LG Robota Helmet (Photo)
White. Size Small / 52-56cm, includes replacement pads. No damage.

Soleus GPS Draft Bike Computer (Photo)
Product website
here. Basic GPS bike computer.

Bell Terrain Helmet (Photo)
Lime Green. Size 53-60cm (Small?). No damage.

Serfas Squishy Saddle (Photo)
Used, good condition. Comfort bike type saddle, standard rail mount.

ANT+ Sensors for iPad / iPhone (Photos: 1, 2)
Garmin and Generic, includes Lightning adaptor. These were given to Kristen, but she no longer needs them. Passing them on.

Oval 310 Bar (Photo)
Nearly-new take-off from CX bike, ergo drop bar. 40cm width. No tape residue.

Giant Contact Handlebar (Photo)
690mm wide, 19mm rise, 6° upsweep, 9° backsweep.

Specialized Bar, New/Take Off (Photo)
New take-off from 2018 Epic Hard Tail. Mini-rise, 6000 alloy, 8-degree backsweep, 6-degree upsweep, 10mm rise, 720mm width, 31.8mm clamp.

Vera EOS CX Tires, New (Photo)
700×33, wire bead. Appear to be new. Looks like a good dirt road / sand / mud tread.

Giro Terraduro HV MTB Shoes (Photos: 1, 2)
Size 46.5. Lightly used, but very good condition. I was given these but don’t need them. Passing them on. Product website
here.

Oval Saddle (Photo)
New, take-off from a CX bike.

Pi-hole and NBC Sports Gold

I use Pi-hole to block some ads on my home network, but I also pay for a NBC Sports Gold Cycling Pass to easily watch cycling events. Unfortunately, the default block list for Pi-hole will keep NBC Sports Gold from working, breaking it in a somewhat odd way: pages load, but the list of events doesn’t display.

So, how do you make it work? Easy! Whitelist these three sites:

  • experience.tinypass.com
  • geo.nbcsports.com
  • nbc.demdex.net

New Gravel Bike Day: 2019 Salsa Warbird Carbon 105 700

It feels like only yesterday, but five years ago I got my hands on a Salsa Vaya 2 which had an unexpected, but significant, impact on how I ride bikes. Prior to this (and despite brief flirtations with a CX bike that didn’t fit me well) whenever I would set out to do longer rides it’d be on a mountain bike. On dirt roads or local neighborhood streets, gravel road races or the Macomb Orchard Trail, I’d be on an MTB. This… worked… but after getting the Vaya things clicked and I found myself routinely doing things like 50+ mile paved rides after work in springtime, gravel road centuries, and fast-paced road rides with buddies. It really showed me how much fun a drop bar, skinnier tire bike—but one still with enough tire to ride off road—can be. By late 2018 I’d racked up over 10,000 miles on the Vaya.

As new gravel-optimized frames came about and components on the Vaya started to wear, I kept looking around for something new. Despite flirting with ideas for everything from a Trek Checkpoint to an ALLIED ALFA ALLROAD, from the Specialized Diverge to the Canyon Grail—all great bikes—nothing really clicked until Salsa announced the Warbird v4. Carbon and a very well designed dampening system, through axles, internal routing for everything, four bottle cage mounts, and overall standard parts it was just what I wanted. While I wasn’t too keen on the color patches on the white frame, the new R7000 105 group is perfect and I figured I could do something creative to change up the coloring.

After a boat load of geometry-checking, email back and forth with the ever-excellent Mike Wirth at Tree Fort Bikes, and some help and information from my friend and Salsa/QBP’s rep Jeff Buerman, a 2019 Warbird Carbon 105 700 was on order just for me. While driving up to Iceman this past weekend, where I raced my beloved Salsa El Mariachi Ti, I got an email notification that the Warbird was in, and I could pick it up! Kristen and I swung by Ypsilanti on the way home, and voilà, I’ve got a new gravel bike!

The stock build on the Warbird 105 is really well chosen, but like any bike there’s always some things to tweak or add. I added  the usuals like bottle cages, speed/cadence sensors, saddle, seatpost, and pedals, but I also had some spare parts sitting around home (eg: Thomson X4 stem, XT brake rotors) that were a bit nicer than stock so I swapped them on during the build.

I also unexpectedly got a too-good-to-pass-up deal on some DT Swiss wheels (CR 1600 SPLINE 23). While the CR 1600 wheelset has the same rims as the well-chosen stock C 1800 SPLINE 23 wheels, the CR 1600s have DT Swiss’ Star Ratchet in the hub. I prefer this freewheel design over all others, and switching to these wheels also let me upgrade to 54 points of engagement; right in line with all my other bikes. (High engagement is a luxury, sure, but this Warbird is a really nice bike already so why not.) It also doesn’t hurt that the silver and black hubs go wonderfully with the grey Salsa graphics on the frame. Finally, I’ve been wanting to try the well-regarded Panaracer GravelKing SK, so I set up a tubeless-ready 43mm pair of the blackwall tires on the new wheels.

As an experiment I covered the purple/blue/red patches on the seat tube and fork with self-adhesive, black reflective Scotchlite tape. This both serves as a reflector and brings almost the entire bike together in shades of grey. While I’m not completely happy with the tape job, it’s smoothly applied and covers the colors, bringing the entire frame to a very sharp black/white/grey color scheme. It looks good.

The four water bottle cages are all usable, with the super-common 24oz Specialized 1st Generation Big Mouth Water Bottles fitting in three of the cages with a 21oz in the upper downtube cage, giving 93oz of on-bike fluid storage. Without a bottle in the upper downtube cage I can fit an even larger bottle in the lower one, giving plenty of options. Mounting a Revelate Designs Mag-Tank Bolt-On top tube bag behind the stem provides ~65 in3 of storage for food, roughly equal to what I can fit in one jersey pocket. Coupled with or in place of jersey pockets this should be good for carrying food and drink for quite-long rides; a nice upgrade over the Vaya. It’s a tight fit to stand over the bike with this bag attached, but as an optional accessory for longer rides it could work out real well.

I’ve yet to figure how I’ll carry for tools, but with the relatively low pressure tires I’ll put together another Mobo Pocket Air Pump-based setup fit into the Specialized seat bag.

Weight was not a primary concern with this build, but I’m quite happy with 21.08 pounds for the completely bike as pictured above. This includes a Garmin Edge 130, sensors, pedals, rear light, empty saddle bag, and bottle cages. Not bad for a bike capable of everything from pavement to single track. Not bad at all.

Here’s the details of the complete build:

Frame / Fork: 2019 Salsa Warbird Carbon / Salsa Waxwing (White)
Wheelset: DT Swiss CR 1600 SPLINE 23
Ratchets: DT Swiss HWTXXX00NSK54S (54T)
Tires: Panaracer GravelKing SK (RF743-GKSK-B, 700x43c, Black Sidewall)
Group: Shimano 105 (R7000)
Crank:
 Shimano FC-R7000 (50-34T, 172.5mm)
Bottom Bracket: Shimano SM-BB72-41
Cassette:
 Shimano CS-R7000 (11-32)
Shift/Brake Levers:
Shimano ST-R7020 (Left, Right)
Brake Calipers:
Shimano BR-R7070 (Front, Rear)
Brake Rotors: Shimano SM-RT81-S (160mm)
Brake Pads:
Shimano K02S (Resin)
Chain:
Shimano CN-HG601-11
Front Derailleur:
Shimano FD-R7000-F
Rear Derailleur:
Shimano RD-R7000-GS
Bar Tape:
MSW HBT-210 Anti-Slip Gel (Black)
Handlebar: Salsa Cowbell Deluxe (42cm)
Headset: Cane Creek 40 (IS41/28.6/H9 | IS52/40)
Stem: Thomson Elite X4 (SM-E139 10° X 100mm X 31.8 1-1/8 X4 Black)
Spacers: Generic Aluminum
Stem Cap: MASH Donut 2.0
Seatpost: Thomson Elite (SP-E101 27.2 X 330 Black, Straight)
Seatpost Clamp: Salsa Lip Lock
Saddle: Specialized Power Expert (143mm, Black)
Pedals: Crank Brothers Candy 3 (rev. C, Black)
Bottle Cages: Specialized Zee Cage II (2x Left, 2x Right)
Rear Light: Planet Bike Superflash Turbo
Bell: RockBros Bell (Black)
Sensors: Garmin Bike Speed Sensor (Front Wheel), Wahoo RPM Cadence Sensor (Crank)
Reflective Tape: 3m / Scotchlite Black
Mastic Tape: 3M 2228
Mounting Hole Plugs: Heyco 2590
Top Tube Bag: Revelate Designs Mag-Tank Bolt-On
Saddle Bag: Specialized Seat Pack (Medium, Black)
Derailleur Hanger: 465 / QBP FS2322

During assembly I encountered three wrinkles, none of which affected the final build:

Seat Tube Bottle Mount: When using the bottle mount on the seat tube, spacers are needed otherwise the center of the bottle cage will bottom out on the front derailleur mount. Problem Solvers SpaceOut Spacers, left over from the downtube mount on my original Mukluk 2, solved this.

Cadence Sensor Fitment: A typical problem on modern gravel road bikes with large tire clearance and narrow Q factors; there is not much room between the crank arm and the chainstays. The Warbird v4 is no exception, and I was not able to fit the standard Garmin Cadence sensor safely. It fit, but left around 2mm of clearance. This tight clearance may also preclude the use of a Stages-type power meter on the Warbird.

To fit a cadence sensor on the bike I fashioned an aluminum plate which spans two chainring bolts opposite the crank arm, then sticking a self-adhesive Wahoo RPM Cadence Sensor to this plate. It has a look not unlike a power meter, allows for easy battery changes, and is tucked nicely out of the way. (Picture)

Fork Crown Light Mount Screw: I typically replace all unneeded mount screws on my bikes with Heyco 2590 plastic plugs. These small plastic plugs press snugly into M5 bottle/fender/accessory screw mounts, keeping out water and giving a smooth, finished look. At ~$0.10/each (via Mouser) they are much cheaper than bike-specific parts. Compared to aluminum screws this doesn’t save much weight, but I think it’s much more attractive and likely slightly safer than a protruding screw head.

When unscrewing the upper fork light mount screw the head came off, and the screw was stuck in the hole. As I was turning the screw it felt quite stiff, and I suspect it was either cross threaded, or the hole contaminated with paint which locked the soft aluminum screw in place. This was not an issue with any other screw on the bike.

I was unable to drill out the screw, so I carefully ground it flat and painted the remaining end black. I have no intention to use this light mount, but if this ever changes I’ll deal with the problem later. (Unfortunately while attempting to drill it out I slipped with a tool, bumped the fork crown, and put a small, 4mm chip in the paint. This got touched up with some white enamel paint and now blends in nicely, but it was a really frustrating way to get the first chip in the paint. Oops.)

UPDATE: Due to Tree Fort Bikes swapping the fork after a recall affecting a handful of the Waxwing forks, the problems with the crown light mount screw and the chipped paint are gone. So, that solved that!

There’s still a few things left to do, and the inevitable tweaking of things like bar position, steerer length, and all those fun things. But after a lot of work to clone the Vaya’s fit I think it’s good, so hopefully not too much work be needed. That which is probably won’t happen until spring when the weather turns nice and is a bit more conducive to long rides… Exactly what this bike is made for.

Pictures from the unboxing, assembly, and of the complete bike can be found here in my photo gallery: Salsa Warbird 105 (2019)

2018 Marji Gesick 100: #QUITTER

IMG_6420.jpg

After successfully finishing the Marji Gesick 50 in 2017 I got a strange desire to do it again, but this time trying the 100 mile option. Most of my difficulties with MG50 were due to the heat, dehydration, and not being sufficiently familiar with technical trail riding. Having completed Lumberjack 100 numerous times, finished the Barry-Roubaix Psycho-Killer, and done a bunch of not-easy 100+ mile gravel rides I’m no stranger to completing ultra endurance events, and I figured that with the right preparation I’d be able to finish.

From great fat biking to a solid Lumberjack, from long endurance rides to getting a smart trainer, preparation worked out really well this year. I was fortunate to be able to spent a lot of time up in the Marquette area riding bikes, getting plenty of experience with technical sections (both up and down) that I was previously too afraid to ride. I got a lot of climbing in, did a number of long rides, had a solid nutrition plan, had the requisite lighting set up, and was ready to go.

Unfortunately, it didn’t work out. I DNF’d. Why? Fatigue.

And I just didn’t have it in me.

The course wore me out. Whether you are doing it as a race or just to finish, Marji Gesick 100 is a serious event, awarding a beautiful belt buckle to anyone who crosses the finish line in under 12 hours. With only a bit over 12 hours of daylight on race day, and buckles typically only going to elite-level racers, most normal humans (such as myself) who manage to finish will be in for a long day with the most technical of the riding — the end of the route — happening in darkness. I definitely underestimated the toll the first part of the race would take on me. Before starting I roughly figured race day would take ~15 hours, and with the low heart rate I tend to have on these technical routes (compared to long pre-race rides), I thought that I’d be fine. With my longest rides of the last three years being 9-10 hours moving time, about half way through the route I realized I hadn’t had enough long days. As the day wore on and I hit ~11 hours I was feeling pretty cooked.  The first time I reached the bag drop† I was feeling spent, but decided to go back out and see how I felt; clear lenses in my glasses and lights in my pack I kept riding.

While I could still put out power, as I got into the very-technical RAMBA trails I was feeling sleepy and a little light headed at the top of climbs. I didn’t have the focus to climb nor descend well, feeling like I was constantly about to make mistakes, walking much more than the last time on those trails. My upper body was getting sore from handling the bike and I stopped having fun. I kept riding, telling myself that when I reached the Iron Ore Heritage Trail (IOHT) as the course passes through Ishpeming I’d decide what to do.

While I probably could have finished, I stopped half-way up the switchback climbs of Last Bluff, looking out at the setting sun, and decided my day was over. Three miles later, where Partridge Knob splits off from the IOHT I stopped my Garmin, put on arm warmers, chatted with some support folks on an ATV, and texted Kristen to let her know I’d be meeting her in 20 minutes.

This was a real good day, and I had a lot of fun for the amount of race route that I did ride. To some extent I think I could possibly have finished, but I don’t think it would have been any fun, and I really didn’t feel like trying. Getting those remaining 20-some miles done would have involved hours of walking in the dark and not riding what’s otherwise super-fun trail. I don’t regret my decision, and even as I quit I was looking forward to coming back and having fun with the MG50 in 2019.

Two days later I ended up back out on the RAMBA trails, starting a ride from where I dropped out of the race. GPS data, memories of last year, and a few lingering signs pointing the way I finished up the race course and realized two things:

  1. I really, really like these trails.
  2. The choice to DNF was the correct one.

So, beyond quitting? It was a great race, and I’m really glad I did it. But I really do think the MG50 is more for me.

Here’s some data on Strava of my race day and the finishing-it-up ride:

My remaining thoughts about the race are best captured as points:

  • Having someone to meet you and help you out with nutrition (the only kind of outside aid you’re allowed to accept) is amazing. Kristen met me at the South Trailhead with a half a burrito and mixed up bottle. Seeing her, eating that burrito, and only having to worry about filling my pack with water was mentally amazing and hugely helpful.
  • Starting off the MG100 is a 0.5 mile run. I was worried this would cause me problems, but I sort of trotted / jogged along and it was fine. Running along with my friend Erik and chatting it sort of just went, and next thing I knew I was at the start area and my bike and it was time to ride.
  • The weather was intimidating at first, but otherwise amazing. It was in the 40s at the start, but most of the day hovered nicely in the 50s and 60s. I mostly had a chilly/cool feeling on my arms, but never felt cold.
  • The route is mostly great. Starting out heading into Harlow Lake strings things out nicely, and by the time we reach the first seriously technical section (Top Of The World) things are fairly spread out.
  • There were two not-very-hard parts of Harlow Lake that I did not enjoy riding, especially in a group. The first was the Lower Hogback single track, which is rocky and wet. The second was the swampy portion through the power line corridor when heading south. The latter soaked my feet, and they remained wet until I changed socks at the bag drop lots of hours later. I’m glad I had good socks.
  • It was clear climbing the back side of Marquette Mountain was going to be tough, but I figured we’d be taking the usual double track to the top. Instead we turned off of the double track and climbed Snake Oil before descending Ezy-Rider. That climb, and seeing only 51 miles on my computer when I reached the top, was when I started to question if I could finish.
  • The mix of folks I ended up near on the MG100 seemed to be a bit more serious / less talkative than those I rode with last year in the MG50. I’ll chalk this up to nerves and lots of people taking the race more seriously than I apparently did.
  • While difficult, the whole route remains great. There’s a good number of parts I can’t yet ride (Gurly, some climbs, a fair number of things in RAMBA-land), but otherwise it’s outstanding.
  • After climbing Lowe’s the race route passes through a box culvert. I was afraid this would be full of water, but no… it was fine. It was just dark. There are far swampier areas within a few miles of the end of the race.
  • There were many, many ad hoc aid stations. At almost every major road crossing or parking area there were folks set up. Beyond what Kristen got me, I also ate a couple granola bars, a banana, and some water. At almost every significant point there was someone offering food, water, and even whisky and beer. These aid stations are MUCH less frequent around the RAMBA trails.

If you are trying to decide if you should try this race, do it. You will need to prepare, those who haven’t ridden in the UP should plan a trip or two to get a sense of the trails before race day, but do it. When registration opens at 12:01am on October 13th, sign up. Consider doing the MG50 as it’s a good bit easier than the full MG100, but do it. It’s worth it. These are phenomenal trails in an amazingly beautiful area. You will struggle and suffer a bit, but you will have fun doing it. And you’ll want to come back again and again.


† While the race is officially unsupported, it passes through a bag drop area at Jackson Mine Park — a de facto aid station — twice. Once around 70 miles in, and a second time at around 95 miles.

‡ The MG100 race is officially 100 miles, most riders who complete it with a wheel sensor see ~110 miles total. I believe the higher number to be correct, based on:

  1. Recording 59 miles for last year’s MG50.
  2. Seeing 51 miles on my bike computer when the 50 and 100 courses converged.
  3. My experience with assessing under recording on GPS-only vs. GPS-and-wheel-sensor setups.
  4. Detailed analysis of the official GPX route files compared to my recordings of the same trails.

defaults on macOS Can Break Otherwise Usable plist Files

Today I learned that the defaults(1) command on macOS can break otherwise-parsable plist files.

I found this when trying to change selectedThrottleIndex in the Arq config (~/Library/Arq/config/app_config.plist) to adjust a bandwidth usage setting. I didn’t have access to the GUI, wanted to change things from CLI, and whoops! After changing this things broke.

Consider this… First I read out the setting with defaults read ~/Library/Arq/config/app_config.plist selectedThrottleIndex, then set it with defaults write ~/Library/Arq/config/app_config.plist selectedThrottleIndex 2, then read it again to verify the change. All looked good, so I figured I was done and I let things bake.

Upon getting physical access to the machine and launching the GUI, I found that Arq was no longer activated, needed my license info again, and then (uggh!) had lost my configuration. This was fixed by first restoring the whole of ~/Library/Arq from Time Machine, launching Arq, browsing to the backup destination, and clearing it’s cache. After rescanning the destination all was good.

So, why did it happen? Well, it turns out that Arq uses a headerless XML-ish text file with the suffix .plist. Even though it’s not in the same format as plutil(1) outputs, defaults(1) will still read it and modify it… But the resulting file is a plist binary! It seems that Arq only likes to parse its format (note: I did not exhaustively test this — plutil(1)‘s xml1 format may work), so upon seeing the binary version it the program presumed no config and started over. Whoops! Interestingly, the defaults(1), plutil(1), and pl(1) commands will all happily parse the Arq format file.

Note that after launching Arq with the broken config and re-adding the license, restoring just the app_config.plist file didn’t make things better, which is why I jumped right to restoring the whole ~/Library/Arq directory. There must be some config caching somewhere or so…

Garmin Edge 130 (vs Edge 520) First Impressions

IMG_0027.jpg

Back in 2011, when I was thinking about trying Lumberjack 100 for the first time, I bought a Garmin Edge 500 so I could log data and use heart rate zones for training. This worked out very well, and over the years I’ve iterated through of other Garmin units, including the Edge 510, 520, and now the new Edge 130. After years of acquiring increasingly complex units I recently switched to the less-featured unit (the Edge 130), finding that it covers everything I need, with some nice upsides over the 520. It’s a great computer for my mixed mountain / gravel / dirt / road riding, including the same, basic, line-following breadcrump route support that’s gotten me through self-navigated events like Barry-Roubaix and Marji Gesick.

First, the upsides. This unit has a higher resolution black and white screen which looks remarkably good in direct sunlight; much better than the color 520. The unit itself is quite a bit smaller (41 x 63 x 16 mm) than the Edge 520 (49 x 73 x 21 mm) which fits better on my stem mounts. I think the all-dark-grey color of the housing blends in with a bike better. The unit also feels like it responds faster to button presses. While this may just be the faster-updating display, it’s nicer when flipping through data pages.

Now, the downsides. While there are fewer features (no base map, can’t have as many data fields on screen at once — all well covered elsewhere), none affect my general use of the unit, but are worth mentioning. All are as of v2.20 firmware, and the software quirks will be changed:

  1. Zones (heart rate and power) must be defined using Garmin Connect; they cannot be configured in the unit itself.
  2. It is not possible to rename sensors. This means I can’t name a bike’s speed/cadence senors after the bike, which can make things a bit confusing if I have multiple sensors active in an area and I want to be sure the unit is currently listening to the right one.
  3. The rubber cover for the microUSB connector feels a little flimsy. It effectively rotates on a small piece of rubber and as someone who plugs in my Garmin after every use I have concerns for how long it’ll last.
  4. Some of the fonts seem a bit small, leaving a bunch of extra white space (particularly Heading as seen above). They are still readable, just small.
  5. The unit prompts for ride type (Mountain, Road, etc) after each ride. You can’t select a ride type by default, although it does default to the last option. (Just something more to choose when saving.)

Outside of the display and size, the biggest difference between the 130 and 520 is the data fields each can display. While both units will record from the usual speed/power/heart rate sensors, they vary quite a bit in what each will display. Here are the data fields that the 130 and 520 will display (some names edited from official Edge 130 documentation so they’d align with the Edge 520 names):

Battery Level · Battery Status · Beam Angle Status · Cadence · Cadence – Avg. · Cadence – Lap · Calories · Dist. – Lap · Dist. to Dest. · Dist. to Next · Distance · ETA at Destination · ETA at Next · Elevation · Grade · HR – %Max. · HR – Avg. · HR – Lap · HR Zone · Heading · Heart Rate · Laps · Location at Dest. · Location at Next · Odometer · Power – 3s Avg. · Power – Avg. · Power – Lap · Power – Max. · Power – kJ · Power Zone · Speed · Speed – Avg. · Speed – Lap · Speed – Max. · Sunrise · Sunset · Time · Time – Avg. Lap · Time – Elapsed · Time – Lap · Time of Day · Time to Dest. · Time to Next · Total Ascent · Total Descent

Here’s the additional fields the Edge 520 will display:

Balance · Balance – 10s Avg. · Balance – 30s Avg. · Balance – 3s Avg. · Balance – Avg. · Balance – Lap · Course Pt. Dist. · Dist. – Last Lap · Dist. to Go · Front Gear · GPS Accuracy · GPS Signal Strength · Gear Battery · Gear Combo · Gear Ratio · Gears · HR – %HRR · HR – Last Lap · HR Graph · HR to Go · Light Mode · Lights Connected · PCO · PCO – Avg. · PCO – Lap · Pedal Smoothness · Power · Power – %FTP · Power – 10s Avg. · Power – 30s Avg. · Power – IF · Power – Last Lap · Power – NP · Power – NP Lap · Power – NP Last Lap · Power – TSS · Power – watts/kg · Power Phase – L. · Power Phase – L. Avg. · Power Phase – L. Lap · Power Phase – L. Peak · Power Phase – L. Peak Avg. · Power Phase – L. Peak Lap · Power Phase – R. · Power Phase – R. Avg. · Power Phase – R. Lap · Power Phase – R. Peak · Power Phase – R. Peak Avg. · Power Phase – R. Peak Lap · Rear Gear · Reps to Go · Target Power · Temperature · Torque Effectiveness · Trainer Resistance · VS – 30s Avg. · Workout Step

Most of these are around in-depth training with power, leg balance, support for electronic shifting, and other metrics that I don’t use. Therefore, nothing is lost moving away from the 520. Temperature — which is still recorded — is the only one that might be handy, but in my experience Garmin’s temperature readings seemed to be a bit off and didn’t really map to how it feels, and I definitely didn’t need it as an on-device data point during rides. (See the Edge 130 Manual Appendix and Edge 520 Manual Appendix for more information on what each field means.)

All said, I’ve had no problem configuring the Edge 130 to display the same screens as my Edge 520, resulting in the same functionality. Even nicer, on the 130 I can choose to not show the elevation chart; something that I’ve never found myself using and had to flip past on previous units. Here’s how I have the different display pages set up:

Page 1: / Six Fields: Timer, Speed, Distance, Time of Day, HR Zone, Heading

Page 2: / Four Fields: HR Zone, Cadence, Timer, Heading

Page 3 / Three Fields: Timer, Time of Day, Sunset

Page 4 / Map: No Fields (Map only, shows breadcrumb / loaded course.)

Thus far I’m happy with the unit; happy enough that I’ve sold my Edge 520.

For more specifics on the Edge 130, please check out both the excellent Garmin Edge 130 In-Depot Review by DC Rainmaker and the Garmin Edge 130 product page.

Titanium Frame Caused Garmin Speed Sensor Issues?

IMG_8944.jpg

For a couple of years my main XC bike (2014 Salsa El Mariachi Ti) has had issues with my Garmin bike computers (Edge 510, 520, and 130) pausing mid-ride when I wasn’t actually stopped. This shows up as the head unit briefly flipping to a paused symbol (⏸), before returning to recording. Post-ride, when reviewing data in rubiTrack, the red callouts on the route indicate the pause locations and show they’d last for a couple of seconds. While I couldn’t reliably reproduce the pauses, they seemed to happen whenever I’d stop pedaling. It seemed to be more common when on tight/twisty trails where GPS positioning is spotty, but it’d also happen while moving at 10-20 MPH on straight, clear-sky areas. It almost seemed like the Garmin was choosing to pause when I stopped pedaling, an indicator that maybe the computer wasn’t aware the speed sensor was still moving.

On all of my bikes I have the Garmin Bike Speed Sensor fit around the rear hub and computer set to autopause when stopped, but the problem only happened on the El Mariachi Ti. It did not happen when using the older Garmin GSC 10 magnet/reed switch speed sensor which mounts to a chainstay. It also doesn’t happen on either of the steel (El Mariachi SS or Vaya) or carbon fiber (Mukluk or Camber) bikes, so I accepted it and figured the problem to be the wheel speed sensor. After acquiring an Edge 130 bundle I tried the new wheel speed sensor, but the problem persisted and got me thinking…

The solution ended up being simple: move the speed sensor to the front wheel. On an A/B test at River Bends Park where I did one lap with the sensor on the rear wheel, then another two with it on the front, the issue didn’t stopped appearing when the sensor was on the front.

Thinking it through I can only conclude that the problem was caused by the frame material. The sensor is detected by the head unit and seems to work fine the time, but perhaps the signal is sufficiently degraded that connectivity is sometimes lost. I suspect that then the unit falls back to pausing based on GPS signal + pedaling.

garmin_speed_sensor_el_mariachi_ti_rear_wheel.png

Sensor on Rear Wheel (Problems)

garmin_speed_sensor_el_mariachi_ti_front_wheel.png

Sensor on Front Wheel (Problem Solved)

A Surprising Little Pump

Wanting to reduce the size of the tools carried on the Vaya I went looking for a new pump, and what I found surprised me: the diminutive Mobo Pocket Air Pump (4″). Despite being marketed by a company that seems otherwise known for low-cost and kid-branded recumbents, this seems to be a quality pump for MTB and gravel road emergency use.

Looking for a small emergency pump my primary requirements were functionality and size, followed by the amount of time it’d take to inflate a tire. I have tubeless setups on all my bikes, which tends to be pretty reliable. Flats are pretty rare, so when they do happen I’m okay with taking my time installing and inflating a tube. Being something that’ll be packed away for non-routine use I’d prefer the emergency gear to be small and reasonably light. The Mobo pump seemed like it might be too cheap to work well, but just about $20 (via Amazon) I figured I’d give it a go.

Ideally I’d like to be able to fit a tube, multi-tool (including chain tool), pump, and a car key inside of a small seat bag. With this pump I think I’m on the way, as it had no problems fitting into a slightly-older, small-sized Timbuk2 saddle bag along side a Crankbrothers M17 multi-tool, with plenty of room to spare. Along with a bottle cage mount it ships with a nice brass Presta to Schrader adapter and sports ball inflation needle. The inclusion of an adapter is good, because the pump itself is Schrader-only. Thankfully packing either the stock adapter or an aluminum one into the bag isn’t a big deal.

Inside the expectedly cheesy (but well packed) box is a solid-feeling pump that measures in at 3-7/8″ long, 7/8″ diameter at the body, and 1-1/2″ across the pump head. At 56g it’s lighter than a 16g CO2 cartridge, and right about the same size as a cartridge + valve head. Somewhat to my surprise it has a very nice, light, smooth pumping action and check valve sound. Basic tests in my basement showed to work reasonably well.

My first test was inflating a 700 x 35-43c Kenda tube from flat to shape, as one would do before fitting it into a tire. This took 42 pumps — none of which required any notable effort — and took well under a minute. The second test was inflating the front wheel from my Specialized Camber, a 30mm internal width rim fitted with a 29 x 2.3 Specialized Purgatory tire, from atmospheric pressure. After pumping for four minutes the tire had 22 PSI, which is my normal front tire pressure for rocky trails. Finally, the third test was re-inflating the Vaya’s front wheel — a WTB KOM i23 rim and 700 x 38c Specialized Trigger tire set up tubeless — from atmospheric pressure to 43 PSI. This took a total of around six minutes, with some pauses sprinkled in as my arm got tired. Nearing the final pressure the pump got fairly hard to press, leading me to believe that the claimed 100 PSI maximum is probably more a technical than functional limit. Getting a wheel to 100 PSI with this pump would be… a challenge.

Sure, four minutes for an MTB wheel and six minutes for my road bike is a while, and the low volume won’t be re-seating any tubeless tires, but as an emergency pump this should be fine to get one rolling again. While some folks prefer CO2, as a one-shot item I’d want to carry a pump as a backup… Being small enough to tuck in a saddle bag with other parts, and right about the same size and weight as a CO2 cartridge, but multi-use. It’s what I plan to pack into a seat bag on future rides. While I hope it works when I need it — and seems like it will — needing to use a pump in the middle of a ride is something no one wants.

What’s In My Pack? (2018 Edition)

Back in 2012 I wrote What Do I Carry When Riding My Bicycle? to show what I carry to be prepared for long mountain bike rides with a pack. Six years and some refinement and reduction later, it’s time for an update.

I like to do longer — but single day — rides, summer and winter, on any kind of MTB from XC to trail to fat bikes. My gear tends to stay the same for everything from an endurance race to a long day on dirt roads linking together parks, back country rides during a road trip to the typical after-work roll around a suburban park. None of these require the bike packer-level of supplies, but feeling assured that a surprise situation will be manageable does require a bit of planning. Since water and primary food (typically ERG! Energy bars and Infinit Nutrition mix) varies by ride I won’t be covering it here, but my pack and pockets have plenty of room for extra drink mix and food.

Almost everything I carry is because it was needed at some point in the past, and I like knowing that my gear is consistent between rides. When doing MTB rides I almost always wear a pack, only leaving it behind during shorter races where I’m trying to be competitive or rides where I’m okay with walking out should something happen.

My current pack is an Osprey SYNCRO 10 in Velocity Green color, M/L size. This is a high vis yellow/green that I chose because it both helps me be seen and it stays cool in the sun. Having a thin metal frame and mesh back keeps the pack away from my body which keeps me cooler in summer avoids a sweaty back in winter. A replacement badge from the Sport model Road ID is slipped over the elastic on the upper part of the left strap near my head, providing easily-visible identification and emergency contact info.

While many folks are moving to frame bags and waist packs, I’ve stuck to a pack because it allows me to carry a lot of water, easily transition gear between bikes, and it doesn’t rub on the frame. Frame packs seem like a great option and work out well for many folks, but as of now they just aren’t for me.

Here’s the two setups, summer and winter, tiered to show how things are packed:

Default / Summer MTB Pack:

  • 6″ x 5″ Nylon Zippered Pouch (Amazon Link)
    • Cable (Zip) Ties: 4x each thin/short and wide/long.
    • Nitrile Gloves: 2x, in small plastic bag.
    • Spare Derailleur Hanger(s): One for each bike style.
    • Cash: 1x $20, 1x $10, 2x $5, 3x $1, in small plastic bag.
    • Glue-Type Patch Kit: In plastic storage box.
      • Tick Key
      • Quick Links: 3x 11 speed, 1x 10 speed, 1x 9 speed, 1 link single speed chain.
      • Folded Paper Towel: Prevents rattling and rubbing, for cleaning tube before patching.
    • Presta to Schrader Adapter
  • Lezyne Sport Drive HP Pump
    • 4′ of 3″ wide black Gaffer Tape: Wrapped around pump body.
  • Tools in Cotton Sock: Prevents rattling and rubbing, doubles as rag.
  • Spare Tube(s) in Cotton Sock / Rag: Prevents rubbing, doubles as rag.
    • Q-Tubes Super Light: 29 x 1.9″-2.3″ for XC/trail bikes, 26 x 2.4″-2.7″ for fat bike.
  • LOKSAK aLOKSAK: 4″ x 7″
    • Phone: Google Pixel 2
    • Driver’s License / Credit Card
    • Toilet Paper
  • Fox 40 Micro Whistle: Pealess, won’t freeze in winter.
  • CamelBak Antidote Reservoir: 3L, aka bladder.
  • Emergency Food in Plastic Zip Top Bag, about 500 calories.
  • House/Car Keys

Winter-Time Changes from Default:

  • No bladder for water; it freezes. Insulated bottles on bike instead.
  • Remove derailleur hanger and tubes for summer bikes.
  • Mylar Emergency Blanket
  • Little Hotties Adhesive Toe Warmers (2x)
  • Extra gloves, head covering, and jacket, depending on conditions, planned length and effort of ride, location, etc.

This all has worked out well for me, being able to handle situations from cut tire sidewalls to puncture flats, broken chains and derailleurs to detached front brake cables.