Press "Enter" to skip to content

nuxx.net Posts

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
Leave a Comment

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.

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)

4 Comments

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.
2 Comments

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…

Leave a Comment

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.

Leave a Comment

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)

Leave a Comment

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.

1 Comment

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.

Leave a Comment

Pogie Retention: ODI Aluminum End Plugs and Nylon Spacer

Over the years I’ve gone through a few different iterations of bar end plugs for the elastic found inside of pogies such as Moose Mitts and Relevate Designs’ Williwaws. While many of these pogies can be used with the elastic wrapped around the grip, I find this a bit uncomfortable and these iterations happened as I tried to get to something better. Previously attempts were a couple variations on road-type screw-tight bar end plugs with a stack of washers, but after one of these became stuck in my carbon bars during a crash on ice I went looking for something simpler and more robust. I also wanted to avoid the thin washers, as a glancing blow from one during a fall could easily result in a cut.

Shown above is my latest attempt, made from two off-the-shelf parts:

  1. ODI Aluminum End Plugs (Amazon: $15.67)
  2. .531 x .870 x 3/16 Nylon Flat Washers (Lowes: $1.28, P/N 423512, Photo)

This setup meets the following requirements and should be an improvement on previous designs:

  • Easily removable, such as with a screw to tighten / remove.
  • Resistant to being driven into the bar or bending during a crash or bike falling over in the wind.
  • Must not have a sharp or narrow edge that could cut the rider.
  • Compatible with a variety of bar wall thickness; including thick-walled carbon bars such as the Salsa Salt Flat.

To put it all together I disassembled the ODI plug (photo), slipped the nylon washer over the body of the plug (photo), reassembled the plug, then inserted the plug into the bar and and tightened it down like normal. The washer is perfectly sized to set in the recess in the bar end plug while spacing it out from the end of the grip/bar. This ensures there’s a slight gap left for the elastic (photo), keeps the plug from hammering in during a crash, and the rounded bar edges of the plug should minimize injury. It’s also just large enough that it cannot slip past the expander wedge of the bar end plug, which should make removal extremely simple.

Prior to this I’d tried the ODI plugs without a nylon spacer, leaving them set a little ways out from the bar (photo), but whenever the bar end hit the ground during a fall they’d push in and trap the elastic. An alternative would be the Relevate Designs Pogie Bar End Plugs, but at $10 (plus shipping) per pair they aren’t much cheaper and won’t as easily be removable. Being all plastic and press-fit they seem more likely to pull out or be damaged during a crash.

Leave a Comment

TrainerRoad PowerMatch: Disabled

After getting the CycleOps Hammer smart trainer I’ve been experimenting with how it, my Stages power meter on the Salsa Vaya, and the TrainerRoad PowerMatch function work together. In short, PowerMatch is designed for those who have a power meter on their bike and want to ensure that the resistance and workouts are consistent indoors (with the smart trainer) and out (with just the power meter). While I only use power data for training indoors during the winter (never for outdoor training), I do like to look it over after outdoors rides and thus want to be sure the two are as in line as possible.

To automatically handle differences in power meters, TrainerRoad’s PowerMatch calculates the offset between the power meter and smart trainer, then adjusts the resistance every 10 seconds to accommodate the difference. On its face this makes sense to me, but whenever I’d enable it the resistance would get bit surge-y feeling during harder efforts leading me to think something wasn’t quite right. I suspect this is because of the Stages being single-leg, I likely have a bit of an imbalance between legs, and my recent rides in TrainerRoad have shorter efforts than the sustained stuff that single-leg meters are best at. So, I started to think about if something else was right for me.

In TrainerRoad, on the Power Meter settings, there is a toggle to use the meter for cadence only. In the Smart Trainer setting the options for PowerMatch are Auto, Disabled, or a Manual offset. This results in the following scenarios:

Power Meter Normal, PowerMatch Auto: Displayed power is from meter, with this data used by PowerMatch to determine resistance. Occasional surging feeling, but overall good. While riding it appeared that power data jumped around.

Power Meter Normal, PowerMatch Disabled: Displayed power is from meter, resistance set by trainer’s internal meter. Displayed power data appeared low (5-10W) when holding an interval steady.

Power Meter Cadence Only, Power Match Disabled: Displayed power is from trainer, resistance set by trainer’s internal meter. Feels smooth (no surging) but seemed marginally easier than with PowerMatch.

Power Meter Normal, Power Match Manual: Displayed power is from meter, resistance set by trainer offset adding/subtracting manual value; no automatic adjustment of offset done.

With Power Meter Normal, Power Match Manual looking most like what I wanted, I set out to determine the offset between my Stages meter and the CycleOps Hammer. To do this I first ensured the Stages and Hammer were calibrated. TrainerRoad was set to have PowerMatch disabled and the Stages meter to Use Cadence Only. My Garmin Edge 520 recorded power from the Stages meter and TrainerRoad recorded the Hammer’s data. I then rode a custom TrainerRoad workout that has a warmup, then a series of 1 minute intervals at 60%, 70%, 80%, 90%, 100%, and 110% of FTP with 30 second 50% rests between in Erg mode so  trainer resistance adjusted automatically. After this I did a 30 minute Free Ride where I shifted to adjust speed (and thus power), trying to get a good mix of steady state and short/hard intervals, under different situations, to get sane date to compare. To cut down on data misalignment both of these rides were non-stop spins without pausing, doing my best to start and stop the Garmin along with the TrainerRoad workout.

Both of these sets of data were then compared in DC Rainmaker‘s Analyzer tool, with the results visible here:

Comparing the two, I see two notable things, both most visible in the 30 Minute Freeride:

  1. Sudden transitions decreasing power show 0 values when measured by the Hammer, but still some power with the Stages.
  2. Hammer seemed to measure higher, with the variance becoming greater as power output became higher.

I don’t believe the sudden transitions are a concern nor really something that can be accommodated for, and I don’t think they’ll be a problem for the normal Erg mode workouts where the main desire is to have the trainer providing resistance. This is likely a simple side effect of the large flywheel in the trainer taking a while to slow.

For the scaling disparity between the Stages and Hammer, maybe there’s something there… I’m tending to think that the Stages is reading higher on very hard efforts because with these I’m more apt to be standing and shoving down on the pedals versus a smooth spin. Perhaps this is throwing off the strain gauge? Let’s see…

Here’s how the average powers worked out:

Workout Meter Average Power Weighted Average Power
Custom Test Stages 173.50 191.70
Hammer 174.77 194.20
Free Ride 30 Stages 209.87 228.25
Hammer 211.03 234.05

 

Since I’m trying to compare power meters themselves, I’m looking at Average Power. (I don’t want to use Weighted Average, because this gives increasing priority to greater power outputs, since they are harder on one’s body. For example, it’s a way of reflecting how 300 W feels more than 2x as hard as 150 W.)

Across these two rides the two meters are within ~1 W of each other. While I originally went into this investigation looking to see how much of an offset I’d have to set up in Power Match Manual, I’m now thinking that the Hammer is close enough to the Stages to simply use Power Meter Cadence Only, PowerMatch Disabled. It’s possible this could skew a bit more as I do higher power efforts, but I think this will probably still be within sane ranges. It’s rare that I’ll see the 100W difference like in the high power effort of the Free Ride 30 test (700-800 W range), most things will be in the 200W-300W steady state range where alignment seems sane.

This will cut down on the surging that seems to be coming from the single-leg power meter, still provide sufficient correlation between indoor and outdoor efforts, all while having the benefits of an Erg mode smart trainer.

It’d be nice if TrainerRoad offered some sort of percentage correction, but perhaps this is why PowerMatch instead does a frequent reassessment and is turned on my default; better to check the offset and correct vs. attempting to figure out a scale. Being able to see how PowerMatch is working internally would be nice, but I’m not sure this would add any real value to the product.

2 Comments