Empirical data meets theoretical

Over the years I’ve read enough citations that I’ve accepted it on faith that solar panel performance degrades about 2% in the first year and then 1% every year thereafter. Today I had a chance to test that.

Yesterday afternoon I hauled 6 new solar panels up onto my roof and wired them up. Today they’re producing so I spot checked against the production of my existing 290W panels from 2016. The rule of thumb above plus math suggests that those 8 year old panels have degraded about 9% and likely produce about 290W * 91% = 264W. The new panels are rated at 405W so I’d expect each old panel to produce 65% as much as a new one.

Today is an overcast day, which may affect production differently on the new versus old panels, but when I average the production of 10 old panels to 210W and divide that by the average of the 6 new ones at 320W, I get 65.6%. I find it very satisfying when reality matches theory so closely.

What is Net Metering?

A question I’m often asked about my solar is, “how exactly does Net Metering work?” Here in the state of Washington, the rules for Net Metering are enshrined in RCW 80.60.030. Go forth and read, if you’re the nerdy type. For everyone else…

Every year on March 31, my Net Metering kWh balance resets to zero. When the sun shines I harvest kWh. I also run the heat pumps, toaster oven, and charge my phone and car, all of which consume kWh. If I consume more than I produce, I pay my utility (Seattle City Light) for the kWh they provide, just as everyone else does. If I produce more kWh than my house and car consume, then SCL adds those surplus kWh to my Net Metering balance.

In practice, each year in April I produce as much energy as I consume. From May to September I generate surpluses and build up kWh credits. As winter progresses my solar production falls off and I start depleting the kWh credits. In most years, I exhaust my credits by January and have to start buying kWh.

On March 31st, if there’s any kWh credit balance, it gets wiped away as a free gift to SCL. Therefore, under net metering it rarely makes economic sense to produce any more kWh than one consumes.

My average consumption for the past couple years has been about 2,000 kWh more than I produce, resulting in bills of about $400 per year. That is why I just spent $900 on 6 new 405W solar panels to grow my array. With a rated capacity of 2,400 kWh, I expect them to produce about 2,000 kWh per year, getting me very very close to my target of Net Zero energy.

A new roof and an SPD in every panel

In the summer of ’24 I replaced my North roof (project info). A complication was that the roof was under my solar array. The following graph explains another complication, the cause of my desire to add more solar panels:

The blue bar is my household energy (all electric) consumption and green is electricity to power our electric vehicles. In most years, I produce enough solar (yellow) to nearly power the house. In the last two years the house power consumption has been less and that extra solar was car fuel. I’ve calculated my Levelized Cost Of Electricity at $0.05/kWh. That’s a substantial discount from grid power so it’s advantageous to buy more panels and produce more fuel for the cars.

As part of the roofing project, I removed and rebuilt my solar array (details here) and upgraded two of my subpanels. What I didn’t know when I did the work in the summer of 2024, was that the soon-to-be-adopted 2023 electrical code requires that all electrical panels have a SPD (Surge Protective Device). By the time I scheduled my final inspection, the newer code was in force and that was the only correction Inspector Friendly required of me.

Despite not being required (grandfathering), I had already installed a SPD in the main panel, since it seemed to me like really cheap insurance. I had also installed a Midnight Solar (MNSPD-300-AC) SPD in my PV combiner box, so now I have 4 SPDs. It feels a tiny bit excessive, until I think about how much it would cost to replace a panel full of AFCI/GFCI combo breakers.

Lectric XP brake upgrade

I have a Lectric XP 2.0 e-bike I purchased in 2022. I ordered it with the cargo package (front and rear racks & baskets), intending to use it to reduce car trips for local errands and grocery shopping. Without any planning I can easily carry home two grocery bags on it. With a couple bungee cords, I can carry home a fair bit more.

The rather basic single-piston brakes with 160mm rotors that came with it are good enough to stop the bike and I on most terrain. However, I live in Seattle and we have good sized hills out here. When riding down a hill with a load of groceries, a fair degree of planning is required to bring the bike to a stop on time. It seems Lectric was made aware of this deficiency because the XP 3.0 has upgraded the brakes to 180mm rotors and hydraulic brakes.

Today I upgraded my XP 2.0 with a TEKTRO 203mm rotor on the front and I replaced the Zoom single-piston calipers with XTECH HB-100 hydraulic dual-piston calipers. The improvement in stopping power was immediately noticeable and I’m looking forward to testing my next grocery run.

PSA: shun TurboTax and H&R Block

Since I wrote in 2019, the biggest tax prep companies continue to spend tens of millions to prevent making tax filing simple and easy. They’ve been fined for bait-and-switch, hiding the Free File service they were paid to offer, and overcharging Free File eligible taxpayers. Instead of giving Intuit another nickel, use Cash.app taxes, a local preparer, or file paper returns.

haproxy dynamic TLS reloads

Haproxy has a great newer feature that lets one dynamically reload TLS certificates. I explored this today because I’ve had two instances in the past few months where haproxy stopped serving for time, at midnight when the cron job that renews TLS certs kicks off. I think it’s an edge case involving web sockets with a 1 hour timeout and a handful of TLS certs all renewing in close succession. Regardless, not having to reload haproxy at all sounded attractive.

The page above has this example for sending the certificate to haproxy’s admin API:

echo -e "set ssl cert /etc/haproxy/certs/site.pem <<\n$(cat ./new_certificate.pem)\n" | socat tcp-connect:172.25.0.10:9999 -

After exploring the vagaries of echo and echo -e and staring at the output for a few too many times, I finally determined the cause of the failure. The certificate I was attempting to send has a stray newline character. ??‍♂️ The solution is simple, assure your boundary character doesn’t match the data:

echo -e "set ssl cert /etc/haproxy/certs/site.pem <<\n$(grep . ./new_certificate.pem)\n" | socat tcp-connect:172.25.0.10:9999 -

e-cells e-bike brakes

In July of 2020, we purchased a 600 watt dual-motor AWD fat-tire e-bike from ecells.com. The bike has a motor in each wheel. The frame is super beefy and fairly heavy. It has been a hoot. Mostly we ride it on paved urban trails here in town, where the beefy frame and rack lets it excel at hauling home groceries. It’s more at home out at Meany Lodge where we ride it up and down forest roads in the mountains where the low-pressure fat tires provide abundant traction and good suspension. It can really haul on the loose gravel roads.

Last weekend I took it on a ride near Mailbox Peak with a group of friends. The bike did quite well at helping me ride up the mountain like I was 20 years younger and 20 pounds lighter. Where it wasn’t so awesome was blasting down the no-longer-maintained-and-sometimes-washed-out logging roads. I wanted to downhill hard and fast, like on my still-awesome Raleigh M-800 mountain bike. The E-cells brakes need to stop 70# of bike, 10# of gear, and me, while thrashing downhill at 30-35mph. I was experiencing significant brake fade and needing to plan my braking. The brakes lack authority. So I went shopping for upgrades and learned a few things.

Brake Pad Types

  1. metallic – longest life, greatest stopping power, more noisy
  2. organic/resin – quiet, good initial bite, glaze over / fade under heavy braking
  3. semi-metallic – combination of the two

The pads that came with my bike are Tektro A10.11, which is a sintered (semi-metallic) ceramic pad. That pad is no longer listed on the Tektro web site. The nearest OEM replacement is the E10.11 ($15), which is sintered organic. A higher performance metallic pad is the Tektro P20.11 ($24) which I have ordered. They provide a small boost in stopping power, but more importantly, they won’t fade under prolonged heavy braking.

Rotor Size

Bike rotor sizes start at 140mm and go up. The increased diameter of larger rotors provides more mechanical advantage so less friction is required to get the same stopping power. Larger rotors provide more thermal mass to absorb heat and more surface area to dissipate heat. Common e-bike rotor sizes are: 160, 180, and 203mm. Most e-bike forks are set up for 160mm rotors. Cheap ($10-15) adapters enable those forks to work with 180 and 203mm rotors.

The E-cells 600 comes with Tektro Aries mechanical disc brakes on 160mm rotors (front and rear) with adapters. Because the front wheel provides ~70% of the stopping power, it’s quite common to use larger front rotors: eg. 203mm on the front and 180mm on the rear. The higher spec E-cells 700 and 1000 models have exactly that setup with hydraulic calipers.

Disc Brake Types

• Mechanical disc brakes are inexpensive, reliable, and solidly better than rim and other brakes of yesteryear. Like legacy brake systems, they are cable actuated. They have a single moving piston which warps the brake disc into the other pad, compressing it and providing braking power.

• Hydraulic disc brakes replace the wire cable with hydraulic fluid (DOT or mineral oil) which provides equal force on two opposing pistons. The reduced friction and doubling of pistons provides more braking power with less effort. Testing (varies a LOT based on bike and system) shows a 40-70% reduction in braking distance with hydraulic disc brakes.

• Hydraulic 4-piston disc brakes are fairly new, fairly rare, and expensive. They are the go-to option for higher speed (22+ mph) and cargo eBikes. The piston engagement is progressive: you initially get two pistons braking and as the rider pulls harder, all 4 engage for massive stopping power. That much braking power would be dangerous on lighter bikes, but it’s needed for fast downhills on heavy bikes. ? ? ? 

• Hybrid: there exists a hybrid, the Juin Tech M1 cable actuated hydraulic brake. They’re intriguing, promising substantially better stopping power than mechanical disc brakes for a modest upgrade ($160) price and a very simple install. The only “not paid” review data I found is that they are an incremental improvement upon mechanical disc brakes, not a step-change improvement like going from mechanical to hydraulic.

e-bike brakes

Another layer of complexity added to e-bike brakes is that the brake levers need cutout switches that disengage the motor when braking. The vast majority of bicycle brake systems don’t have this feature.

Combine the newness of 4-piston brakes with the much smaller ecosystem of brake levers with cutoffs for e-bikes and the choices get very narrow. As in, the full list is: Tektro E-725, Magura MT-5, Magura MT-7. I opted for the Tektro because the Magura’s have plastic fluid reservoirs.

The switch to metallic pads and 4-piston brakes should suffice. If not, my next move will be upsizing the front rotor to 203mm, for another ~12% increase in braking power.

2021 Michigan Road Trip

This summer we drove to Michigan to visit my dad and celebrate his 75th birthday. Because I’m still playing the Superchargers Visited game (2019 trip, 2020 trip), I had to choose routes that didn’t overlap with previous ones. Fortunately, that left lots of fresh ground to cover and we spent a lot more of this trip on highways and less time on the interstates.

The slower pace and smaller roads made road tripping more fun as I got to experience that joy of discovery that is rare on freeways. Sometimes the discoveries are, “huh, this route through Kansas is every bit as interesting as every other route through Kansas.” Other times, like driving through northern Wisconsin and Indiana, we stumbled through some lovely little towns and cities that were well kept and seem to have avoided the fate of so many rustbelt towns.

This trips haul was 86 unique superchargers visited over 9 days of driving.

PodSwap

A year ago I gave my old AirPods to Kayla because the batteries didn’t last very long. Now they’ve reached the point where they only last 5 minutes on a charge. I’m pretty handy at replacing batteries in iPhones and  Watches so I looked up info on how to do it for AirPods. And then I looked at how much Apple charges to replace the batteries ($49 per Airpod, $98 for the pair). And then I found PodSwap. So I ordered a swap for $60. If you have an old pair of AirPods needing new batteries, try them and save 10%.

Superchargers Visited

Superchargers Visited is a silly and fun Tesla owners game I’m playing. I have a Tableau page showing the Superchargers I have, and have not (default view) visited.

The game might be one of the reasons I drove to Tampa for a meeting instead of flying. Fun facts: about 8k miles driven, 146 Superchargers visited, 11 days, and $409.23 in electricity.

Note to my future self: with two drivers tag team driving, keeping the wheels in motion when not refueling, expect to cover about 1,000 miles per day in fair weather.