Designing a 3-Inch HD Micro FPV Quadcopter Frame

| Comments

What the heck is up with this blog post? Did I already write about designing my HD micro quadcopter frame? Isn’t it already finished and nearly ready for production?

Yes. This is all true, but I was thinking about creating a video talking about all the early design decisions that shaped the layout of the Kestrel. I don’t know if I could do a good job talking about all this stuff without at least a loose script.

My 4-inch Kestrel build

I don’t know how to write a script. I have a decade of experience writing blog posts. So here we are!

Everything goes back to McMaster-Carr

I like simple sandwich frames. Four arms with a bottom plate and a top plate separated by aluminum standoffs. It is a simple design. It works quite well. It is versatile—if your stack doesn’t fit, you can just use taller standoffs!

There are dozens upon dozens of sandwich-style micro quad frames. I don’t need to design one. They’re already everywhere!

The most innovative 3” frame I know of is the Ummagawd Acrobrat. The Acrobrat isn’t the frame for me, though. I wanted something lighter. I wanted individual, replaceable arms. I wanted arms for both 3” and 4” props. I also wanted to design something myself, so why not design exactly what I want to fly?

The Grommet Hole in the Kestrel FPV Frame

I needed rubber bushings for my suspension. I thought about buying some Acrobrat bushing kits, but they seemed expensive, and they would make it difficult to sell my own frame kits. So I went to McMaster-Carr.

I found a rubber grommet with reasonable dimensions. It would plug a hole in a piece of material 1/8” thick. That’s just barely thicker than a 3 mm piece of carbon fiber.

This is where the design work began. If my grommets fit into a 3 mm sheet of carbon, then the Kestrel’s side plates are going to be 3 mm thick.

When the grommets arrived, I reached for my 3D printer. Carbon fiber is thin, so you need to turn that round bushing into an oval. How tall and wide is does that oval need to be? I printed a variety of holes and tabs to get an idea of where to start. It wasn’t perfect. It needs to be snug, but not tight. The grommet needs to absorb vibrations, but not jiggle around.

This testing made it obvious that I needed to use 2 mm carbon for the Kestrel’s bottom plate. Any thinner, and my bottom plate would be too weak. Any thicker, and my soft suspension wouldn’t work very well!

Mounting your electronics

I wanted to make room on the bottom plate for three 20x20 stacks. Running your motor wires is easier if your 4-in-1 ESC board is in the center, so I knew I would have a stack right in the middle.

To keep the props out of view, the FPV camera needs to be way out in front. That left me plenty of room for a second 20x20 stack up front.

I’m trying to maintain balance, so why not stick a third stack in the rear and have a long fuselage? That might help offset the weight of the camera that has to stick out so far in the front.

That was enough thinking to get me through my first two prototypes. When I wanted to build my first 4” Kestrel, I realized that some ESC boards with 20x20 mounting holes are huge, so I needed to move the front and rear stacks farther away from the center.

I’m jumping ahead a bit, but I also realized that four of the bolts I was using to attach the Kestrel’s arms were quite close to being spaced correctly for mounting 30.5x30.5 parts from 5” and larger quads.

I haven’t used this option in any of my builds yet, but it was a simple change to make! The Kestrel has room for a 20x20 stack in the front and rear, and either a 20x20 or 30.5x30.5 stack in the center.

From 8 screws to 4 screws for mounting the arms

Using replaceable arms was a must. The Kestrel is open source, and the OpenSCAD source code makes it easy to configure arms in any way that you’d like. Do you want stubby arms for 2” props? Do you want ridiculous 6” arms? All you have to do is input different lengths and angles for the arms, and you’ll be all set to have a fresh set of arms cut!

My goal is to have the fuselage of the Kestrel be as static as possible. So far, I have cut 3” and 4” compatible arms, and those same arms will fit any of my Kestrel fuselages. I expect there will be a 5” experiment in the near future, too!

On the first few prototypes, I took the easy way out. Each arm was attached to the frame with a pair of M3 screws and lock nuts. This worked just fine, but when I decided that I wanted room for a full-size stack in the center, half of those screws were going to be in the way.

I eliminated one screw from each arm, and I replaced it with an I-shaped piece of carbon fiber—the wedge. The wedge keeps the arms from rotating forward and backward around the M3 mounting screws, and the 2 mm bottom plate and 1 mm bottom bracing plate keep the wedge from falling out.

This saved nearly three grams of weight, made the arms easier to replace when they break, and the arms are just as solid and sturdy as they were before!

My first broken arm

I’m trying to save weight wherever I can. If there’s material that serves no useful purpose, it needs to go. There are two round cutouts near the base of each arm. One of those cutouts leaves you room to put M2 or M3 screws into your center stack.

The other cutout is to save the tiniest amount of weight. It seemed like a great idea. In a crash, most of the stress on the arm will be at the M3 mounting screw, right? How much stress could there be on that tiny length of material from the M3 screw to the wedge?!

This mistake seems so obvious with the benefit of hindsight. In some crashes, most of the force will be pushing the arm against the bottom plate or the brace plate. If you hit an arm while traveling parallel to the bottom plate, though, the arm acts as a lever around the M3 screw.

I broke an arm on my 4” Kestrel right at that weak spot.

It was easy to fix the design. If you’d like to watch, I walked through the design process on YouTube. All I had to do was put that piece of material back in. I imagine the arm is going to break somewhere completely different next time!

Everything is a tradeoff

Most of the time, I expect the tradeoff to be related to cost or time. With a quadcopter, the design decisions are almost always trading weight for durability. Carbon is cheap. Weight is problematic.

The first fuselage that I cut on my Shapeoko was fat. The side plates are 3 mm wide, because that’s how thick the material is. How thick do they need to be? I took a guess. It looked reasonable on my screen. That first prototype was so sturdy that I couldn’t flex the assembled fuselage at all!

The first fat Kestrel prototype fuselage

The goal is to make the Kestrel just sturdy enough to survive most impacts, but no sturdier. I knew after assembling that first fuselage that my instinct to err on the side of being too sturdy would be a mistake. I don’t have fancy software to analyze the weak points of the Kestrel. I have to built it, fly it, and see where it breaks. That’s the best way for me to find the weak spots!

Convenience is also important

I imagine there’s quite a bit of weight to be saved by eliminating the rear 20x20 stack. Sure, I’d have to make the fuselage a little taller. The side plates are extremely long, so they have to be rather durable to resist flexing.

Is saving five or six grams worthwhile? For my builds, I don’t think it is. Spreading out the components makes the Kestrel easier to work on. That long body gives me plenty of room to mount a tiny GPS module up high in the back. I wind up putting the ESC and FC in the center and the Caddx Turtle board up front.

I can save weight by mounting a 200mw 20x20 VTX in the back, but there’s plenty of room back there for a 1,000 mW RaceDayQuads Mach3 VTX back there. Even with the GPS module.

More than a year ago, I help Brian build a 3” micro quad with a Runcam Split. It was awful to work on. It only had one stack with an ESC, FC, VTX, and both Runcam Split boards all piled up on top of each other. Then we had to find room to fit the R-XSR. Not only that, but all these boards had to be wired to each other. It was a mess.

Spreading things out makes maintenance so much easier!

What’s next? Why haven’t I ordered a batch of these so I can sell them?!

I have absolutely no idea how many frames to order. I’m not a store. I’ve never had anything manufactured for me before. I have no idea what I’m doing.

I was talking to Brian last night and today. We’ve run three quadcopter build classes at our local makerspace. The first time, the class built five or six 450 mm quads. At the second, we built six of my PH145 quadcopters. At the last class, we built six 5” FPV freestyle quads.

Things have come a long way since our last build class, and we think we can help get people started even more cleanly than before. Buy a Taranis radio. Practice in the simulator. Buy a Tinyhawk. Have fun. If you’re enjoying yourself, and you want to go farther, we’ll help you build a 3” Kestrel with an HD camera.

Outside of the parts list, we haven’t really hammered out any details. Maybe I’ll cut the frames for the class in my garage. That sort of thing is cool if the class is being held at a makerspace! Maybe the class will use the first batch of production Kestrel frames from CNC Madness. We’ll see!


All our Kestrels are flying great, except for my poor 3” Kestrel. She’s needed lots of extra filtering ever since the crash that burned out her first Caddx Turtle. I’m thankful that this isn’t the fault of the frame! I expect to upgrade her to the same parts we use in our upcoming Kestrel build class!

The arms are stronger than ever, and I think she’s just about ready to go into production. What do you think? Should I send the CAD files off to CNC Madness and have a batch of frames cut? How many do you think I need to order? Let me know in the comments, or stop by the Butter, What?! Discord server to chat with me about it!

Three Months With The Osmo Pocket: The Perfect Vlogging Camera?

| Comments

I’ve been using my DJI Osmo Pocket for three months. I’m almost willing to say that I couldn’t be happier with this thing. There’s always something that could be improved, but the Osmo Pocket is definitely the only product on the market that so perfectly fits my portability, ease of use, and comfort needs while still producing video of acceptable quality.

I bought the Osmo Pocket for vlogging

Before the Osmo Pocket, I was using my smartphone on a Zhiyun Smooth 4 gimbal. It works quite well. I could get a nice, steady shot of myself while I’m walking. The Smooth 4 wasn’t all that heavy, so it wasn’t difficult to hold it up in front of my face for extended periods.

What is the upgrade path from a smartphone on a $120 gimbal? I’ve used my enormous Canon 6D paired with my Zoom H1 mic to record here at my desk. That’s just about the only place I’d ever record myself with this setup. The camera and lens weigh just over 4 pounds. It doesn’t autofocus while recording, and the screen doesn’t flip around, so there’s no way to tell if I’m even in focus.

The upgrade that was in my sights before the Osmo Pocket was announced would have been the Sony a6400 or a6500. The screen on the a6400 flips around, it is just light enough to hold in front of my face, and the quality is definitely close enough to what I can get out of my Canon 6D. Not quite as good, but it would do the job!

The best vlogging camera is the one you have with you

Vlogging with your phone is smart. You always have your phone in your pocket. Sure, the guy hauling around a Sony a7ii with a giant gimbal is going to capture much better footage, but he has to carry that setup around with him. When I crash my quadcopter, am I going to remember to pick up that camera to take it with me? I rarely remembered to pick up my Smooth 4 gimbal when I crashed!

The Osmo Pocket literally fits comfortably in your pocket. The form factor is a bit different, but it is comparable in size and weight to your smartphone. I designed a little 3D-printed cover that I stick on mine, and I put it in my front pocket with my cell phone. The Osmo Pocket is smaller and weighs less than my Zhiyun Smooth 4 gimbal, and the Osmo Pocket has a camera built right in! Not only that, but the Osmo Pocket’s camera is definitely an upgrade over my budget Android phone.

When I crash my quadcopter, and I have to take the walk of shame to hunt for the wreckage, my Osmo Pocket is already with me. Since it is small enough to fit in my pocket, I don’t have to remember to pick it up. I can have it out of my pocket and recording in roughly five seconds. This is fantastic!

Vlogging in the car with the Osmo Pocket

This is my favorite thing to do with my Osmo Pocket. We have a little gravity-assisted phone holder in the car. I kludged together an Osmo Pocket stand thing from Thingiverse with a simple rectangle. This lets me drop the Osmo Pocket right into the phone holder in the car.

It works quite well! The angle is a bit lower than I’d prefer, but it isn’t too far off. I enjoy the Osmo Pocket’s face tracking. People talk to the camera in the car quite often, but their journeys are more static than mine. As I turn corners, the Osmo Pocket attempts to stabilize things while also attempting to track my face. That makes for a slightly more dynamic experience for the viewer.

I expected road noise to be a huge problem. In our box of a tiny SUV, wind noise is a huge problem at 70 MPH on the highway, so I don’t vlog on those longer trips. The speed limit on the country road out to Brian’s house is 55 MPH, and that doesn’t cause problems at all. Somewhere between these two speeds, the noise in our SUV increases dramatically. Your mileage may vary, of course!

Vlogging at home

I vlog at my desk with the Osmo Pocket. I’ve even been using the Osmo’s internal microphone for that, too. I have a Zoom H1 mic, and I’ve thought about recording the audio on there, but I’m almost pleased enough with the quality of the Osmo Pocket’s mic. The increase in quality when using the Zoom H1 isn’t big enough for me to justify the extra step of synchronizing separate audio and video tracks in post!

In the car, I have the Osmo Pocket set to fully automatic with D-Cinelike enabled. At my desk, I manually control all the settings. These are the settings I use.

  • 1080p30
  • D-Cinelike
  • 4500K white balance (approximately)
  • 1/30 or 1/40 shutter speed
  • ISO 400

My office has three light sources: two lamps with 150-watt equivalent daylight LED bulbs, and a fixture on the ceiling with a 175-watt equivalent daylight CFL. I can’t use the light on the ceiling, because it just makes the top of my head glow.

My Canon 6D has me spoiled. Video recorded on the Osmo Pocket at ISO 400 has nearly as much noise as the Canon at ISO 1600 or 3200. This is to be expected. The full-frame Canon’s sensor dwarfs the sensor in the Osmo Pocket.

I would say the Osmo Pocket’s video is acceptable at ISO 400, but it isn’t ideal. I’d like to add more lighting to my office so I can bring the ISO down to 200 or even 100.

Just like in the car, I enjoy the Osmo Pocket’s face tracking in the office. It makes the vlog just a little more dynamic. It is almost like I have a cameraman in the room with me.

With a lot of manual work, my Canon 6D with my Tamron 28-75 f/2.8 lens can capture video that rivals just about anyone’s vlog. It is just too much work for me to record with the Canon 6D. If I had a Sony a6300 or a Canon 6D mk2, I would definitely use them for vlogging at my desk. Attempting to manually focus my first- generation Canon 6D from the wrong end of the lens is just too difficult!

I wish the Osmo Pocket had WiFi

Yes, I am aware that I can spend $100 or so for the WiFi module. So far, though, I only have one use case where I’d like to actually make use of the WiFi, and I could just run a cable to my phone.

I have a webcam attached to an arm taken from an IKEA arm lamp. It is affixed to my dual-monitor mount. I learned that I can strap my Osmo Pocket to this arm, and it has no trouble holding the extra weight! I plan to use this to record things from directly above my desk in the future.

Looking up at this rigging to see what’s in focus requires some terrible gymnastics. It would be nice if I could mirror the Osmo Pocket’s screen to my smartphone over WiFi for this. I will probably just run a cable when I do this instead.

What about the DJI Osmo Action?

When I saw the Osmo Action announced last month, I was worried that I made a mistake in buying the Osmo Pocket. The Osmo Action has the same sensor as the Pocket, but with a slightly wider field of view. The mic seems to be of similar quality, and the Osmo Action’s RockSteady image stabilization is as good as a gimbal—sometimes even better!

So what? Just about the same things can be said about the GoPro HERO7 Black. That was available when I bought my Osmo Pocket. What’s so exciting about the Osmo Action?

It is the front-facing screen. It is hard to vlog well if you can’t see yourself. If you’ve ever tried vlogging with a GoPro, you know that you just have to guess that you’re in frame. Adding that front-facing screen eliminates that problem.

The Osmo Action could most definitely handle all my vlogging needs. The more I think about it, though, the more happy I am about owning an Osmo Pocket.

The Osmo Pocket is like having a robot for a cameraman. I can set her on a tripod, and she’ll follow me around the workshop. I can set her on my desk, and she’ll follow my face around as I move around my desk. That feels a little more organic to me, and I like it.

The Osmo Pocket can also record motion timelapse videos. You can choose two points on the Pocket, set the timing options, and it will slowly pan from one point to the other as it records the video. You can add additional point using the app on your phone. I don’t use this feature nearly often enough.


With my tiny YouTube channel, the Osmo Pocket is easily the best vlogging camera for me. It fits in my pocket. The quality of the video is better than my phone’s camera. Recording video with the Osmo Pocket is much more comfortable than holding a phone.

Maybe someday I will graduate to the point where I need to improve my video quality to improve my YouTube channel, but I’m not there yet!

Is the DJI Osmo Pocket the perfect vlogging camera? Probably not, but it is the perfect vlogging camera for me!

What camera setup do you use for vlogging? Are you using an Osmo Pocket? Or are you using your Osmo Pocket for something else entirely? Let me know in the comments below, or stop by the Butter, What?! Discord server to chat about it!

Roasting Coffee Beans at Home: One Month Later

| Comments

This is awesome. I never thought I’d be roasting coffee beans at home. I can’t believe how quick and easy it is, and I’m surprised by just how delicious the coffee actually is!

I’ve been drinking Craft Coffee almost exclusively for the past 5 years. In fact, the anniversary of my first coffee delivery from Craft Coffee should have been about a month ago. At some point during the past five years, Craft Coffee pivoted.

In the beginning, they were delivering unique, gourmet coffee every month. At the time, their service would have been more comparable to Angels’ Cup. Today, Craft Coffee is set up to be a fresh replacement for your daily coffee.

Craft Coffee Latte

Both Craft Coffee and Angels’ Cup are fantastic coffee delivery services, and I am somewhat relieved that they no longer offer products that compete so directly. I enjoy both, and I enjoy telling you about both of them.

Since pivoting, the light roasts from Craft Coffee have gotten darker. They’re still light, but I didn’t notice how much darker and oilier they had become until I started roasting my own beans.

I’m using a popcorn popper and beans from Sweet Maria’s. You can get a popcorn popper with a four-pound sampler of green beans from Sweet Maria’s for less than $30. It is a fantastic value. I pay $20 or more for a 12-oz bag of roasted beans of a similar quality.

There’s the equivalent of roughly five 12-oz portions of beans included in the bundle from Sweet Maria’s. That works out to around $6 for 12 ounces of coffee. That’s cheaper than the store brand stuff at the grocery store!

Sure, you have to spend some time roasting the beans. It takes me about four minutes for me to roast two days’ worth of beans. It would take about twice as long if you prefer a darker roast. I know that time is money, but you’re not just saving money. You’re also enabling yourself to drink the freshest coffee possible all the time.

How much have you roasted so far?

I’ve just finished consuming two pounds of coffee that I roasted myself. That’s a lot more than I usually drink in a month. The coffee loses weight as it roasts, but even if you account for that, I went through a lot of coffee this month!

I’ve been drinking more lattes than I should, and I’ve been sharing more often than usual.

First batch of roasted coffee from Sweet Maria's

I’m roughly eight ounces ahead in my roasting. At first, I was making sure to roast only enough for the next day or two. Then I pulled two bad shots in a row. I wanted to have a bit of a buffer built up to prevent that, and I also wanted to see if I could notice a difference in the beans as they age.

I’m not being scientific enough. I know some of the flavor develops over the first week after roasting, but I’m never sure what I’m drinking! I know which beans I’m brewing, but I’m never sure how old they are. The good news is that they definitely don’t taste worse up to a week after roasting!

Two bags down, two to go

I roasted the beans from Costa Rica first. Of the four green beans in the sampler pack, they seemed like the most pedestrian bean. The Costa Rican coffee tasted fine, but it was boring. The Ethiopian bag I roasted next was a nice upgrade. Definitely not the best Ethopian coffee I’ve ever had—it sure didn’t taste like Frankenberry cereal! Even so, I bet I would have guessed its origin if I didn’t already know.

The next bag is a honey-processed coffee from Sumatra. I’ll be tasting this for the first time tomorrow, and I can hardly wait. It smells different when roasting. Chris says it smells like honey, but I don’t believe her. Even when I pull them off just after I hear the first crack, they’re coming out darker than the other two bags of beans.

I ordered more beans!

I couldn’t wait. I enjoyed the Ethiopian coffee so much, and Sweet Maria’s was having a sale on Ethiopian beans. What do I do when there’s a sale on Ethiopian green beans?

That’s right. I ordered a bunch of coffee. I wound up buying four more pounds of coffee. I thought about ordering even more, but even at the regular prices, it isn’t much more than $6 per bag. Unlike roasted coffee, green coffee beans can survive for months or even years before roasting, but I don’t need to get too far ahead of myself!

Ethiopian assortment from Sweet Maria's

If I slow back down to my usual pace, I should have enough coffee here to last me until Thanksgiving! I still have an unopened bag of beans from Craft Coffee sitting on top of my refrigerator!

That bag of Craft Coffee will be interesting

I’m having a good time roasting coffee. I’ve learned a lot, and I haven’t invested much. Will I continue to roast all my beans, or will I go back to letting Craft Coffee do it for me?

Calium Free Latte

How good of a job am I really doing? I haven’t had any professionally roasted coffee in a month. Will I be disappointed in the beans I’m roasting when I open my next bag from Craft Coffee? There’s only one way to find out. I’ll probably go through another two or three pound of coffee before I do that, though!


Roasting your own coffee at home is easy, fun, and educational. Not only that, but it can be a great way to save money, and you can make sure that your beans are always freshly roasted. It only takes me four or five minutes to roast two days’ worth of beans, and if I work that into my usual six-minute latte-making process, it only adds two or three minutes to my routine.

What do you think? Are you roasting coffee at home? Are you interested in trying? What’s stopping you? Do you prefer to just use a subscription service like Craft Coffee? Let us know in the comments, or stop by the [Butter, What?! Discord server][bw] to chat with me about it!

My Rancilio Silvia and Baratza Preciso: Five Years Later

| Comments

I’m doing a bad job. I like to revisit things after I’ve owned or used them for three to six months. I’ve been using my Rancilio Silvia almost every day for nearly five years now, and I haven’t written a follow-up to my early posts yet! I have a draft for a post that I started somewhere around the six-month mark, but I completely failed to finish it!

My Rancilio Silvia has suffered her first hardware failure, so this seems like an appropriate time to write about how she’s been holding up!

One of her thermistors is on the fritz!

I woke up one day, and she was cold. I’m a terrible person, because I leave Miss Silvia running 24 hours a day. I don’t like waiting for her to warm up when I want a latte! I had some home automation in place to warm her up automatically at the appropriate times, but she was just too powerful for the remote-controlled outlet I had her plugged into, so I had to scrap that.

Miss Silvia

I fiddled with her buttons. I could turn the steamer on, and she would heat up, but she wouldn’t come up to brew temperature. This means I have a bad 100C thermistor. They don’t have any at Amazon, so I ordered one from

I didn’t want to wait for a latte!

It was going to take many days for the replacement thermistor to arrive, because I noticed the failure on a Friday. I was impatient. Could I get the temperature close enough for pulling an espresso by manually shutting off the steamer when it hit boiling temperature? I have an infrared thermometer, so I had to give it a try.

This failed. The steamer reached 140 degrees Celcius before my thermometer even made it past 60. This seemed like a bummer, but I swore I heard the 100-degree thermistor click at one point. So I turned the steamer off, and I ran some water through the machine.

Craft Coffee Latte

As the temperature crossed the boiling threshold while it was cooling down, the heating light on Miss Silvia started to flicker! I’ve never seen it do that before, but it didn’t take long before it came on solid. She was working just fine, and I was going to be able to make my latte!

She’s been working fine ever since. The replacement thermistor is here now, but I’m not going to put it in. I’m going to wait until it actually fails.

How many shots do you think I’ve pulled before this failure?

I have pulled a lot of shots. Not a literal ton of shots, but I bet more than 10 gallons of espresso have passed through this machine so far! She’s also been heating up water almost nonstop for years. I think she’s held up quite well. Much better than the $100 and $200 fake espresso machines I’ve owned, for sure!

In the early days, I was pulling double shots. For years, I was pulling triple shots. Due to some medical problems, my doctor made me stop drinking milk for three or four months last year, so I shut down the machine for two or three months. I shouldn’t be drinking big triple-shot lattes anymore, so I’m back to pulling doubles again.

It doesn’t really matter if I’m pulling a double or triple. I’d count either as a single pull!

Some days I drink more than one. Some days I make coffee for my wife or for friends. Sometimes I pull a bad shot, and I have to repeat the process.

Then there are other days when I’m just not home. I might be out of town. I might just be busy. Those are the days when I just can’t pull any shots.

I wouldn’t be surprised if I’ve come close to averaging nearly one pull every day for the past five years. That could be over 1,800 pulls.

A failure of a $12 part after more than 1,500 pulls and tens of thousands of hours of operation is awesome! Does it count as operation if the machine is powered up and heating while I’m not using it?

Enough about the failure. How’s Miss Silvia been working out?

Miss Silvia has been fantastic. I’ve had to replace her rubber gasket on her portafilter a few times. I waited too long the first time, and it became solid and brittle, so it was extremely difficult to remove; it had to come out in pieces.

From now on, I’m doing this once a year. You can get a kit with a fresh, clean screen and a new rubber gasket for around $15. It is easy to replace.

I’ve made some minor upgrades. I bought a bottomless portafilter and a triple-shot basket. I also have a pressure gauge that screws onto the original portafilter.

The bottomless portafilter is fantastic. It helps me see what was wrong with my espresso shots as they are pulling. You can also observe the color of the shots more clearly, so you can stop the pull as the shot is blonding.

Most people won’t need a pressure gauge, but I like to use light roasts in my lattes. Light roasts are difficult to pull at the stock pressure; you’ll get a lot of gushers!

Adjusting the pressure isn’t difficult. You just need to take the lid off the machine, and you need a pair of large wrenches. I brought my pressure down by about 1 bar. This has increased my success rate with light roasts significantly.

The Baratza Preciso

The Baratza Preciso is the more adjustable version of the Baratza Virtuoso. These are both fantastic grinders, but I don’t believe they make the Preciso anymore.

The Preciso has all the same grind settings as the Virtuoso, but it also has an additional dial that lets you hit ten micro adjustment points in between each large increment.

These micro adjustments are necessary for espresso, and labeled micro adjustments seemed like a fantastic idea. If I know the beans I’m using for espresso need to be ground at setting 3C, and I need to use a coarser grind of 12 for the Aeropress, it will be easy to go back to pulling shots tomorrow, right?

In practice, I don’t do that often. I wind up running into a completely different problem. Lets say I’m at setting 4C, but my shots are pulling too fast. I need to go finer. I’d like to get somewhere in the middle of 3.

I have to go up on one dial, and then down on the other. The whole time you’re adjusting the dials, you need to be grinding. I waste a lot of coffee doing this.

I suppose this is a minor complaint.

I’ve broken the Baratza Preciso several times

There’s a lot of soft plastic inside the Baratza Preciso and Virtuoso. This is on purpose. If you get a hard coffee bean or a rock in your grinder, something has to give. Baratza is smart. They decided that a cheap plastic part should break before you do damage to the expensive conical burrs!

In five years, I’ve broken three or four of the retainers that hold the burrs in. I’ve also broken one adjustment ring.

These parts aren’t expensive. Baratza sells replacements for just about every part of their grinders. When you break one, though, you’re going to be disappointed that you have to wait! I’ve learned that when I order a replacement part, I order extras!

What sort of coffee have you been using?

The beans I drink just about every day are from Craft Coffee. They are a coffee subscription service. They have basic coffee for around $10 per bag, and nicer beans for around $20 per bag. Shipping is free, and you can choose whole beans of grounds.

Their service has been great. If you use my coupon code (‘pat1245’), they’ll take 15% off your order, and they’ll send me a free bag of coffee. This is a good deal for both of us.

I have to be honest. I’ve been drinking Craft Coffee longer than I’ve owned my Rancilio Silvia. Just enough people use my coupon code that I have never had to pay for their coffee. I’m still drinking it. I still recommend it to friends. I like it a lot. I think you should try it.

I usually ask people to tell me if I steered them wrong about this in the comments!

I’ve just started roasting my own coffee!

This has been a lot of fun. I ordered a popcorn popper with a free 4-pound sampler pack of coffee from Sweet Maria’s a few weeks ago. I put my Craft Coffee deliveries on hold, and I even have an unopened bag of delicious-sounding Craft Coffee in my kitchen. I’m having too much fun roasting delicious coffee!

I’ve paid more for a single 12-oz bag of coffee than I paid for the air popper and 4 pounds of beans, and the roasting process is much easier than I expected. I wrote about my early coffee-roasting experiences over at Butter, What?!. If you’re interested, you should check that out.

Ethiopian Coffee Beans from Sweet Marias

I’ve roasted two pounds so far, and I already ordered four more pounds from Sweet Maria’s. I chose four different Ethiopian beans this time. I can’t wait to see how that goes!

I haven’t quite worked the roasting into my latte-making routine. The last time I timed the process, I learned that I can make a latte in about six minutes. It takes about four minutes to roast a small batch of beans. I’m pretty confident that I could squeeze those steps in between my latte routing, and I would add less than two minutes to the process.

I think the idea of drinking the coffee I roasted yesterday is exciting!

What’s next?

While I was waiting for the replacement thermistor, I was thinking that it was a mistake to even order that part. I should be upgrading my Rancilio Silvia with a PID controller!

A PID controller is able to keep a precise temperature on your boiler. Miss Silvia’s simple thermistors mean her temperature swings quite a bit, and you never know exactly where she is. I’m pretty used to temperature surfing for my shots, but it would be nice to have a PID controller to eliminate the need.

You can get a PID controller unit for around $60. The nicer units do more than control temperature. They offer preinfusion and shot timers. Those units are around $200.

I’ve been avoiding this, because I don’t want my machine to be out of commission while I upgrade it. Doing the upgrade while it is already broken seems like a good plan.

I’d like to go a step further. I’d like a PID controller with WiFi. I want to tie my espresso machine into my home automation. I want her to be ready to go when it is time to make coffee.

Should I just buy a $200 PID controller? Should I build one myself? I don’t know if I should be lazy, or if I should build one with WiFi!


The Rancilio Silvia has been a fantastic machine. After tens of thousands of hours of heating and well over 1,000 shots pulled, I’ve finally started to break a $12 thermistor. She’s a tank, and every replacement component is available to buy.

The Rancilio Silva was around $700. The Baratza Preciso was around $300. I’ve spent less than $200 on upgrades and repairs. That’s less than $240 per year, or well under $1 per latte.

She’s been a good investment, and I’ve gotten a lot of enjoyment out of her. I’ve never had a latte as good as one of my own from Starbucks, and my lattes are a lot cheaper. I’d rather spend 6 minutes making my own latte than spend those same 6 minutes waiting in line at a coffee shop!

What do you think? Do you own a Rancilio Silvia? Do you own one of her competitors? Have you had as much luck as I have? Tell me about it in the comments, or stop by the Butter, What?! Discord server to chat about it!

The DJI Osmo Action

| Comments

This isn’t a review. I don’t have a DJI Osmo Action, and I’m not expecting to buy one, but I’m excited about it. I’m excited that there’s a real competitor to the GoPro HERO 7 Black. I’m excited that the Osmo Action looks like it could be almost every bit as good of a vlogging camera as my Osmo Pocket, and it may even be a good fit on my freestyle miniquads. I’m just excited!

What’s unique about the Osmo Action?

I don’t care about the exact specs. I’ve seen enough sample footage to know that the Osmo Action is a nice video camera. It is at least as good as my Osmo Pocket or a GoPro HERO 7 Black. For most purposes, it sure looks like the Osmo Action is a better camera than the GoPro!

There’s one important feature that makes the Osmo Action unique: it has a front facing display.

When I was shopping for a simple vlogging camera, I knew that I would need to have a screen that I could look at while talking to the camera. The GoPro HERO 7’s HyperSmooth footage is often as smooth as footage using a gimbal, and I would have loved to use a GoPro for vlogging. Unfortunately, there’s no good way to frame up a shot with the GoPro when I’m pointing the camera at my own face.

I don’t know if that front-facing screen is a game changer, but to me, it is a huge improvement!

I almost regret buying the Osmo Pocket

Almost. Just like the Pocket, the Osmo Action is priced at $350. I was shopping for a lightweight, compact vlogging camera, and the Osmo Action would certainly fit the bill. Not only that, but the Osmo Action is the right form factor for strapping it to one of my freestyle miniquads.

I can’t literally use one camera for vlogging and flying. I’m too likely to be breaking the action camera that’s strapped to my 90 MPH rocket of a quadcopter. If I could get away with it, though, I would much rather carry a pair of Osmo Action cameras than carry a GoPro and an Osmo Pocket. I’d gladly strap my vlogging camera to my quad in a pinch!

I don’t think the Osmo Action will be a good fit for an FPV miniquad

Just about the only place I use an action cam is on my freestyle quad. I greatly rely on GoPro’s SuperView. The GoPro has a 4:3 aspect ratio sensor. When you record regular widescreen footage, the GoPro discards the image above and below that 16:9 area.

When you record in SuperView, the GoPro uses the entire 4:3 sensor. It stretches the image horizontally to reach the 16:9 aspect ratio. It doesn’t just naively stretch the image. The area in the center isn’t stretched at all, and the edges are stretched more. This keeps the distortion down while providing a wider field of view.

This looks fantastic when flying FPV, especially when you’re flying fast and in close proximity of objects. I won’t give this up.

You can simulate SuperView in post processing. The Osmo Action will need to have a rather large field of view to coax comparable results out of it, though. I’m not confident that it will be possible to get comparable results, and I’m not sure it would be worth the effort!

The DJI Osmo Pocket is fun!

I’m new to vlogging. I’m not good at it. I may never be good at it.

That said, I enjoy the Osmo Pocket’s face tracking. Even when I’m just sitting here at my desk, I can talk to the camera, and I can move around a bit, and the Osmo Pocket follows me.

The results feel a bit more dynamic. It almost feels like I’m not sitting alone in my office talking to absolutely no one. It gives the illusion that there’s someone present in the room pointing the camera at me.

I don’t know if my viewers agree, but I like the results!

The gimbal almost makes the Osmo Pocket into an adjustable tripod. I can lock it into my car’s cellphone mount, and rotate the gimbal to aim the camera right at me. I don’t have to do that, of course, because the face tracking follows me around while I’m driving!

I think the Osmo Pocket’s motionlapse ability is awesome, but I’m not utilizing it often enough. You can’t set an action camera down and have it track from one angle to another over a period of time. I need to make better use of this feature!

The Osmo Pocket is light and comfortable

I might be focusing too much on the vlogging advantages of the Osmo Pocket, but I suppose that’s to be expected. I bought my Pocket primarily for vlogging!

For handheld use, the Osmo Pocket is quite good. You get to hold it almost like a pistol. You just have to be careful to not cover the microphones or the display! If you were using a GoPro or Osmo Action, you’d have to pinch that tiny brick between your fingers or attach it to some sort of small tripod for vlogging. That isn’t as comfortable.

With the Osmo Pocket, there’s usually plenty of camera to hold on to, and you can keep the screen in view at almost any angle. That’s a nice advantage offered by the gimbal.

Which camera should you buy for vlogging?

If you’re trying to be a professional, neither camera is up to the task. There are folks using large, heavy Panasonic Lumix G85 cameras or even enormous Sony a7R III mirrorless cameras combined with huge gimbals just for vlogging. Can you imagine holding that much weight at arm’s length for 20 minutes?

This might make me sound like an old man, but I don’t enjoy just holding my arm out in front of my face for 20 minutes. I want my camera to be light, and I want it to be easy to carry around.

If you’re vlogging with the Osmo Action, you’re going to attach it to a small tripod for vlogging. This will probably make it marginally more cumbersome than the Osmo Pocket, but I imagine it’ll be a comparable vlogging experience in just about every way.

My favorite feature of the Osmo Pocket is that it literally fits in my pocket. I can go out for a day of flying, and I barely notice it is there. It is also nice that the Pocket can be out of my pocket and recording in less than five seconds—I should test that to see if I’m exaggerating!

I don’t think I could do that with any of my short tripods and an action camera. It just wouldn’t fit in my pocket. I will be sticking with my Osmo Pocket.


When I started writing this post, I was thinking the Osmo Action would be a better camera for just about everyone compared to my Osmo Pocket. Just writing these 1,200 words has changed my mind.

I like the Osmo Pocket. It is small, light, comfortable, and so easily pocketable. I’m glad it is part of my collection of photography gear. Sometimes I have to write things to figure out what I actually think!

What do you think? Are you enough of an amateur vlogger that the Osmo Action or Osmo Pocket are the right fit for you? Which one would you prefer to use? Let me know in the comments, or stop by the [Butter, What?! Discord server][bw] to chat with me about it!

RAID Configuration on My Home Virtual Machine Server

| Comments

I didn’t think the low-level details of my virtual machine server’s disk configuration is a terribly interesting topic, but I get asked about it quite often, so I figured that it might be time to document it!

NOTE: I’m planning to post a video on YouTube related to this post. I’m going to recreate my KVM server’s setup in a virtual machine. I’ll jabber about what I’m doing as I’m doing it, and I’ll be able to grab screenshots of the various steps. The device names won’t quite match up, but I can massage things to match my actual setup. I’ll be adding those screenshots to this blog when they become available!

Choosing your RAID configuration

Writing this post got me thinking a little. Are folks having trouble trying to decide what sort of RAID configuration to run on their homelab or home NAS servers? I decided to write a whole mess of words about choosing a RAID configuration and posted it over at Butter, What?!

The article at Butter, What?! is rather long and detailed. You don’t need to read it. You should probably be running RAID-Z2 or RAID 6. If you think I’m wrong about that, go read the article and tell me why!

Where does the operating system live?

My server has a pair of 240 GB Samsung 850 EVO SATA SSDs. At the time, these were just about the smallest SSDs you could buy that also had good performance. I knew this was much more space than my Ubuntu installation would require, but I knew I would be dedicating the majority of these SSDs to an lvm-cache. We’ll talk about that later.

I didn’t do anything remotely fancy at this point. I simply used Ubuntu Server’s install utility to create a 30 GB partition at the beginning of each drive, and I told the installer to use those partitions in a RAID 1 configuration, and I had the installer create an LVM Volume Group (VG) on top of that RAID 1 array.

I didn’t have to use the LVM layer on the RAID device where my operating system is stored, but LVM gives me flexibility. If I do something stupid, and I fill up that 30 GB volume at some point in the future, it will be easy to expand it using LVM!

My host operating system is not encrypted. I only encrypt the storage used for the virtual machines, and I don’t use any swap space.

When the server boots, I have to SSH in and manually run a short script that unlocks the rest of the storage, mounts anything that needs to be mounted, and fires up all my virtual machines. Someone has to enter the passphrase to unlock the LUKS encrypted devices, so I can’t start the virtual machines automatically.

Why not use full-disk encryption for the host?

Full-disk encryption is a bit of a misnomer. If a machine is going to boot, something has to be left unencrypted. You can get tricky and use a removable USB disk as your boot device, but that introduces its own problems.

These days, it is possible to have GRUB load a kernel and initrd from an encrypted disk. Traditionally, a LUKS encrypted machine has an unencrypted kernel and initrd on your boot partition.

In either case, I would need a way to unlock the disks, and I don’t have a monitor or keyboard plugged into this machine. There are some tricks you can play by loading the Dropbear SSH server in your initrd. That still leaves you with an unencrypted SSH server anyway, right?

Leaving the entirety of the host operating system bootable without unlocking the rest of the system doesn’t leave me much more vulnerable. This server is up and running 24/7. Disk encryption isn’t protecting me from remote attackers. My VMs are useless if they’re left encrypted, so if they’re running, they have access to the encrypted data.

Encryption is protecting me from physical theft. If someone breaks in and hauls away my hardware, whoever they sell the stolen goods to will not have access to my data. That’s 99% of what I’d be worried about.

What is the biggest flaw of this encryption strategy?

I’m probably leaking some sort of data on my KVM host. The config files for all my VMs are stored unencrypted, so if someone steals my hardware, they know the names of all my virtual machines. There are log files storing things like my SSH session information, so the thief can find out when I logged in.

It would be simple to disable logging and move all the libvirt configuration data to the encrypted file system.

If your desired level of paranoia requires you to hide this sort of information, you should just take the extra steps and encrypt as much data as possible. It is better to hide everything, because it is easy to accidentally let something leak!

Storage for the virtual machines

When I set this server up, I manually created a two disk RAID 10 array. Yes, Linux’s MD RAID allows you to create a RAID 10 array with fewer than four disks. Converting a RAID 1 to a RAID 10 is a real pain in the neck. Adding additional disks to a small, existing RAID 10 is easy. Planning ahead is smart!

I run a LUKS layer on top of the RAID 10 array. You could do it the other way around, and put a LUKS device on each disk that makes up that RAID device, but your server will have to calculate AES for each disk. If LUKS runs on top of the RAID 10 instead of underneath, it will consume half as much CPU.

I run LVM on top of that LUKS device. Some people prefer to use Logical Volumes (LV) as block devices for their KVM virtual machines. If I had any virtual machines that required optimal disk performance, I would do the same. My requirements are quite light, so the majority of this Volume Group (VG) is allocated as an ext4 partition mounted at /var/lib/libvirt/images.

I tend to use qcow images for all my virtual machines. They’re easy to back up. They’re easy to duplicate. They’re easy to shuffle around from my server to my desktop or laptop. They can also be deduplicated, though I don’t use that feature often anymore. For me, the convenience is worth the decreased disk performance.

Tell me more about this oddball implementation of RAID 10!

Linux’s MD RAID 10 implementation is designed to keep a copy of each block on two separate disks. Of course, you can configure it to keep more copies if you like, but we’re just going to talk about what it does when keeping two copies.

If your RAID 10 has two disks, this works exactly like a RAID 1 mirror. If your RAID 10 has four, six, or eight disks, then Linux’s RAID 10 functions exactly like you’d expect a RAID 10 to work.

It gets more interesting when you use an odd number of disks. I currently have three 4 TB 7200 RPM disks in my RAID 10. A copy of the first block of data is stored on disk 1 and disk 2. A copy of the second block is stored on disk 2 and disk 3. A copy of the third block is stored on disk 3 and disk 1.

This staggering of your data repeats until you reach the end of your disk.

Why RAID 10? Why not RAID 5 or RAID 6?

I am certain that I could dedicate an entire blog post to this section, but I’ll try to keep it down to a handful paragraphs!

First of all, don’t use RAID 5. Once hard drives started pushing past a few hundred gigabytes in size, the odds of encountering a read error during a RAID rebuild quickly started to approach 100%. Also, failure rates are high enough that the odds of a second disk failing while an array is rebuilding make me uncomfortable. You should have two disks’ worth of redundancy.

RAID 10 performs better than RAID 5 or RAID 6. The differences in performance characteristics are more complicated than that, but I’m trying to keep this to a few paragraphs. I wasn’t too concerned with the performance, especially since I was planning to use lvm-cache. The performance advantage helped lean me in this direction, though!

I was more concerned about my initial costs. My largest VM was going to be my NAS, and I had only about 1 TB of data that needed to be stored there, and my RAW photo collection was only growing by 5 to 10 GB per month. A pair of 4 TB disks in a mirror would have me covered for a long time.

RAID 6 would give me more storage for my dollar over the long term, but I would have had to buy four drives right away. In my case, though, it would have cost a lot more up front!

Odds are that the math will work out different in your case!


I had to stop writing when I got to this heading. My lvm-cache configuration is a bit off. We didn’t have lvm-cache when I set this up originally. We had to use dm-cache directly; lvm-cache is a convenience layer on top of dm-cache. lvm-cache requires the cache devices to be a part of the volume group that you want to cache, and I’m not set up to allow that!

I have one Volume Group (VG) built on my SSDs, and a second VG built on my RAID 10 array. I can’t easily shrink my SSD VG, so I cheated. I used a Logical Volume (LV) on the SSDs as another Physical Volume (PV) that I could add to the RAID 10’s VG. You have more information than I did when I built this, so you can avoid this workaround!

I also forgot that I’ve had my lvm-cache disabled for almost an entire year! I recall having to turn it off around the time when we moved into our new house, but I don’t specifically remember why.

I just set my lvm-cache back up—that’s why I had to take a break from writing! I can’t properly explain how I set up my cache layer, because my setup is extra convoluted.

I’m also not prepared to tell you how much value there is in running lvm-cache. I remember being disappointed for a number of reasons, but that was over a year ago. I’m sure progress has been made, and I know the usage of my NAS VM has shifted quite a bit over the last year.

I’m going to let the cache populate itself, and I’ll report back in a few weeks!

What should I have done to make using lvm-cache easier?

I should have added the SSD RAID 1 and the spinning RAID 10 arrays to a single VG. I tend to dislike doing this. Putting different classes of storage in different VGs is a good mental abstraction, and it means you’re less likely to accidentally create an LV on the wrong grade of storage.

I don’t want to accidentally put a PostrgreSQL server’s database files on a RAID 5 with its slow write speeds, and I don’t to put my NAS on an expensive NVMe RAID 1! When both arrays live in the same VG, you have to explicitly state which Physical Volume (PV) you want to use when creating your LVs.


I hope you found this interesting. My disk configuration may not be the right choice for you, but I hope that the description of my setup might make you think of some possibilities you hadn’t considered before!

I’ve had this setup running since 2015, and it has been faring quite well. It started with the pair of 4 TB disks in a RAID 10, and I added a third disk to that array last year. I don’t expect to make any major changes, and it won’t surprise me if I continue to use this setup for another four years!

I did my best to include the right amount of detail in this overview blog. Do you think I should dive deeper into any particular aspect of this setup? Do you have any questions? Leave a comment below, or stop by the Butter, What?! Discord server to chat with me about it!

We Are Working On an Open Source LED Board

| Comments

I’ve had an idea stewing around in my head for years. It started when I saw a Dekatron posted on Dekatrons are high-voltage vacuum tubes, but they seem easy enough to emulate with LEDs. There are all sorts of things I could indicate using a ring of LEDs!

You could use it like a clock. You could use it as a progress bar. You can spin it around at various speeds. A Dekatron seems like a lot of fun!

At the time, I wanted to replace the lock indicator LEDs on my IBM Model M keyboard with three tiny Dekatrons. I never did, but I also never stopped thinking about what I would do with a ring of spinning LEDs.

We’re going a bit bigger

Brian has been building and giving away custom DIY NAS servers for years. We were chatting about it one day, and we were thinking that we need something of our own to use in those builds. Then we completely forgot about it for a few months.

Then I remembered my obsession with Dekatrons. Why not design some LED rings to put into a 5.25” drive bay in your server? The LEDs could spin to indicate network traffic. They could light up like a progress bar to indicate disk utilization. They could flash red lights to indicate a drive failure!

OoberLights Prototype PCB Front

NOTE: I didn’t even remember seeing real Dekatrons mounted in a 5.25” drive bay on Hackaday until I was attempting to find that old article that inspired me many years ago. I don’t know for certain that this is the project from my memory, but I’m betting that it is. It looks like I’ve circled all the way back to the beginning!

I don’t know how to design a PCB. Brian doesn’t know how to design a PCB. So what do we do? I happened to talk to a friend that’s been dabbling in this sort of thing as a hobby.

In the end, we thought up something pretty cool!


We decided to use WS2812 RGB LEDs in the ring. This opens up all kinds of neat possibilities. The disk-utilization progress bar can be blue. The spinner for incoming network traffic could be red and spin clockwise. The spinner for the outgoing network traffic might be green and spin counterclockwise. Maybe the spinner could be a bright, white LED with a red and orange trail following it!

My vision only included fitting a pair of simple LED rings side by side, but my friend is more ambitious than me. He decided to include concentric rings of LEDs! Both discs of LEDs is now three concentric rings, with fewer LEDs in each ring as you approach the center. He also included a single LED at the center.

This is awesome, but it has made my job more complicated. I was ready to display some useful data about your server on a pair of simple rings. To utilize all these extra lights, I am going to have to get creative!

We’re no longer limited to spinning. The OoberLights can pulse in and out. They can also be used to crudely simulate the hands of a clock. I’m even wondering if they’re dense enough to display a simple font. This is going to be so much fun!

OoberLights can sit on your desk or on a shelf!

Some people put their computers on display prominently on their desks. I’m an old man. I’m used to my computer being a plain beige box, and I don’t want it cluttering up my workspace, so I hide it on the floor. I don’t want my OoberLights hiding somewhere behind my desk or on the floor!

We’re going to design a small display case as well, so you can place your OoberLights right in front of your monitor or up on a bookshelf.

How is it going to display anything useful if it isn’t connected to my computer?!

I thought it was important for the OoberLights to have WiFi connectivity, so we’re using an ESP8266 microcontroller. We are going to allow you to control the lights via WiFi using an HTTP REST interface or directly over the USB port. The USB port will also be used for power.

How do you control the OoberLights?

My expectation is that the software will get fancier over time, but I have some plans for how we’re going to get started.

I don’t want you to have to know how to write complicated code to get the OoberLights to do something interesting. I want them to be able to do fancy things right out of the box.

We’re planning on having simple text commands to control things like progress bars, spinners, and other things. I want various bars and spinners to be able to be active at the same time. You’ll be able to give it commands along the lines of, “display a blue spinner at 60 RPM,” or “give me a green, clockwise progress bar from 0% to 33%,” and the device will render these for you.

If you’re a UNIX junkie like me, this will make it easy to string a handful of commands together and pipe the correct command over the USB serial port to the OoberLights to display exactly what I want.

I expect that one of our first projects will be designing some sort of open-source agent to run on Brian’s FreeNAS boxes to push useful information to some OoberLights.

Everything will be open source!

I haven’t talked about which license we will be using, but the hardware and software will definitely all be open source. We don’t even have our first prototype built yet, though, so this may take a little while. We have no idea what we’re doing!

The first prototype is close!

I’ve gotten a few recommendations on local shops than can manufacture our prototype OoberLight PCBs for us. I thought about ordering PCBs and all the surface mount components and soldering them onto the boards myself. I know I could manage to solder a few components on, but there’s 90 LEDs on each board, and nearly as many other individual components as well! This is beyond my skill level.

We’ve never designed anything this complicated before. I’m having an experienced friend check it over, but even so, what are the odds that the first prototypes will even be functional? We don’t know! It’ll be fun to find out!

What’s the timeline for a release?

Who knows! I’ll be excited if we can be manufacturing real OoberLights in time for Brian’s next DIY NAS giveaway. It sounds like his next EconoNAS giveaway may be less than six months away. Do you think we can do it in time?

What needs to be ready by then?

The hardware needs to be finalized, of course. The possibilities for animations and things that the OoberLights can do seem nearly limitless. We can’t implement everything in version 1.0 of the firmware. We’ve thought of a lot of ideas already, and I have a feeling those ideas are only the tip of the iceberg.

We need easy firmware updates. It looks like it won’t be difficult to allow firmware updates over HTTP. We’ll see how that goes in practice. If we have to plug in for firmware updates, I won’t be too disappointed, though.

To be ready to ship, the OoberLights need to be controllable over both WiFi and USB, and they need to be able to display multiple spinning indicators and progress bars simultaneously. I think that will be a pretty awesome start to the project!

How much will the OoberLights cost?

This is a very good question. I wish I had a good answer!

We have a rough idea of what the components cost. I have some guesses as to what the prototypes will cost—they won’t exactly be cheap!

I don’t know what quantities we’ll be ordering yet, so I don’t know what sort of volume discounts we’ll be able to get. The more people that are interested, the better the pricing will be!

What do you think?

Do you want crazy, spinning blinkenlights on your desk or in your PC case? I sure do! I want one in my virtual machine server. I want one in my workstation. I want one on my desk keeping count of retweets and visitors to my blog!

If you think this is interesting, let me know! Leave a comment. Tell me about what I’m forgetting. Tell me if you want one. Stop by the Butter, What?! Discord server to tell me about it. The more interest we see, the more we can order, and the better the pricing will be for us and for you!

I Roasted Coffee and I am Drinking My First Cup!

| Comments

My air popper and 4-pound coffee bean sampler arrived today from Sweet Maria’s. I have no idea what I’m doing, and I am impatient. I opened the box as soon as it arrived, then I unpacked the air popper, plugged it in, and loaded it up with some green coffee beans!

My first batch of roasted coffee!

That was about four hours ago. I’m supposed to wait at least 24 hours before brewing coffee, but I’m not that patient. I roasted about 50 grams, and it takes a little over 20 grams to pull a double shot of espresso. What if 24 hours went by, and I learned that my grind was way too coarse or fine? I’d only get two tries, then I’d have to wait 24 more hours.

I didn’t want that to happen, and I was impatient.

How does it taste?

The sampler came with four one-pound bags of coffee beans each from different parts of the world. I decided to do my test roasting with the beans from Costa Rica. I’ve had good coffee from Costa Rica in the past, but it was the least exciting of the four, so I wouldn’t mind ruining it!

I just finished my single-shot latte, and it was delicious. I roasted just about as light as I could. I’m weird, and I enjoy espresso made from light-roast beans. I’ve even adjusted the pressure on my Rancilio Silvia to help pull successful shots from light roasts!

I finished a bag of Kenyan beans from Craft Coffee earlier in the day. These freshly roasted beans from Costa Rica definitely made a better latte. I’ve been working my way through those Kenyan beans for a week, though. I can’t expect them to be comparable to beans I roasted a few hours ago, right?

What’s in the sampler?

There are the beans I already tried from Costa Rica. Then there are dry-process beans from Ethiopia, honey-process beans from Sumatra, and also a bag of beans from Kenya. I’m assuming since it isn’t specified that the beans from Costa Rica and Kenya are both wet process.

The beans in all four bags are quite small. I don’t know what determines the size of a coffee bean, but I do know that all the best roasts I’ve ever had all had small beans. I’m assuming this is a good sign!

I’ve always enjoyed dry-process beans, and I’ve never had an Ethiopian bean that I didn’t like. I’m looking forward to trying that bag and the honey-process bag from Sumatra.

Green coffee beans are weird

I’m used to opening a bag of recently roasted coffee. There’s a certain aroma that I expect. When that aroma is accompanied by fruity smells, I know it is going to be delicious.

Green beans smell weird. The bag of honey-process beans has a slightly different smell, but I wouldn’t be able to tell the other three apart. I am not a fragrance expert. I can’t explain what these bags of beans smell like. I can say that they don’t smell appetizing!

My first roast

I have a vague idea of what I’m supposed to be doing. Don’t load too much coffee into the air popper. The beans need to be spinning around in there.

I’m aware of the concept of the beans cracking during roasting. I guess light roasts start just before the first crack, and dark roasts are stopped after the second crack. The cracking was much louder than I expected!

One of my lattes

I stopped my first small batch well into the first crack. That was at after roughly four minutes of roasting, and the beans looked a little darker than I was hoping for.

I stopped the second batch shortly after the cracking started—a little over three minutes of roasting. These were just about as dark as the first batch.

I didn’t measure each batch, but I think the first batch was a bit smaller than the second. When I combined my first two batches together, the total came in at around 50 grams.

Thoughts so far

The coffee tastes good. Roasting doesn’t take long, and it isn’t a lot of work. The beans are delicious and inexpensive. Learning about roasting is going to be a lot of fun!

It takes me roughly six minutes to make a double-shot latte with my Rancilio Silvia. It would be awesome if I could roast tomorrow’s beans while making today’s latte. Even if I do one task after the other, it won’t take much more than ten minutes. There’s some waiting involved in my latte-making process, though. I wonder if I can shave a few minutes off that time by interleaving the steps!

What do you think? Have you tried roasting your own coffee beans? Are you interested in giving it a shot? Leave a comment and tell me about it, or stop by [the Butter, What?! Discord server][bw] and chat with me about it!

I am Going To Roast Some Coffee Beans!

| Comments

I became interested in the idea of roasting my own coffee a long time ago. Green beans are inexpensive, and roasting seems like a fun and relatively painless process. I have to blame my friends at Craft Coffee for my waning interest in the idea.

Brian gave me a 6-month subscription to Craft Coffee in 2014. The coffee was amazing, and I quickly noticed that they had an awesome deal. Every subscriber has their own coupon code. The coupon gives the new customer 15% off their order, and if you use my code, I get a free bag of coffee. By the way, my code is pat1245!

A Craft Coffee Latte

I’m not rolling around in piles of cash made from Craft Coffee coupon use, but my readers are taking enough advantage of my 15% off coupon to keep me drinking free coffee. I haven’t had to buy any coffee since 2014!

Free coffee has deterred me from ever putting much thought into venturing out into roasting, but a couple of happy accidents have inspired me to give roasting a try!

Air popper at Sweet Maria’s

I had some serious health issues over the summer. Since then, one of the snacks I eat more than anything else is popcorn. I put some awesome hulless popcorn kernels from Amazon into my ancient air popper, and I cover them with delicious Kerrygold Irish grass-fed butter.

My air popper has a problem. It blasts the air straight up. This is fine when you fill the popper to capacity, but I only fill it about half-way. I’d like to fill it just a bit less, but when you put less popcorn in, more kernels get ejected before the popping begins—even when I tilt the machine back to help prevent this!

I roasted some beants, but I haven't tried them yet!

When I was a kid, we had an air popper that blew the air in a spiral. Kernels didn’t shoot straight up. Instead, they would spin around in a cyclone until they popped. I need one of these air poppers, but where do I get one?

That’s as far as I got. I didn’t even remember to shop around for such a thing. A few weeks after thinking about my old popper, I accidentally stumbled on the air popper on They’re only $20 plus shipping, and it works exactly like my old air popper!

Sweet Maria’s popper comes with $20.50 worth of free beans?!

I’m impatient, so I looked for a similar popper on Amazon. They were $28 with Prime shipping. I said to myself, “Huh. I wonder what Sweet Maria’s charges for shipping?”

That’s when I noticed the best part of the deal: the popper at Sweet Maria’s comes with a free 4-pound sampler pack of green coffee beans! Even better, Sweet Maria’s price with shipping is almost exactly the same as what I’d pay at Amazon.

How could I pass up this deal?


My order is still a few days away from being delivered, but I’m too excited, so I just had to write something about it. I’ve been wanting to try roasting my own beans for years, and I’m finally getting the opportunity!

How easy do you think roasting will be? Do you think I’m going to mess it up? Will I enjoy it more than the beans from Craft Coffee? If I include my labor, do you think it will be a better value than Craft Coffee? I have my doubts, but I’m excited about finding out! Let me know what you think in the comments, or stop by the [Butter, What?! Discord server][bw] to chat with me about it!

The Betaflight Settings I Paste Into All My FPV Drones

| Comments

I’ve been replacing the Helio Spring flight controllers in my 5” freestyle quads, and I’ve been building and repairing a couple of HD micros over the last few months. I had to configure Betaflight on all these quadcopters when I set up the new hardware, then I had to configure them all again after Betaflight 4.0 was released.

I don’t manually reconfigure each quad by hand. I always save a diff before upgrading a quad. If I’m upgrading from Betaflight 3.5.1 to 3.5.3, or from one nightly build to another, I’ll just paste that entire diff in after flashing. It’ll be back up and running in seconds.

My 4-inch Kestrel Build

You can’t just paste you diff back in when upgrading from 3.5.3 to 4.0. The new version just doesn’t fly the same. Settings that may have flown well before may fly poorly in 4.0, or they may even smoke your motors!

What about setting up a fresh quad? Can you just paste a diff of one of your other quads in and call it a day? Sometimes you can, but I have a special diff file set aside. I’ve pruned out all the PID, filtering, and serial settings. All that’s left are the settings that should work on all my quads: rates, switches, Crossfire settings, and OSD settings.

I’m going to walk through which settings I keep, why they’re important, and why they work well on every quad in my bag, from my TinyHawk to my 5” Flowrides!


I used to paste in settings related to PID loop timing, ESC protocol, and minimum throttle. Those settings vary too much between my various builds. My blheli_s builds may use DSHOT600 or Multishot, while my blheli32 builds always use DSHOT1200. I usually have to fix it anyway, so why bother pasting it in?

feature -AIRMODE

I disable air mode because I have air mode on a switch. It is nice to be able to drop back to rate mode when I want to skid under a car!

The only quad I own that doesn’t support telemetry is my TinyHawk, so I enable it here as well.

beacon RX_SET

I don’t use buzzers on any of my builds, so I enable the DSHOT beacon.

set small_angle = 180

Before Betaflight 4.0, I usually left the accelerometer disabled, but I do enable it on some quads, like my TinyHawk. In the event that I do enable it, I want to make sure my quad allows me to arm while it is upside down.

Betaflight 4.0 can show G-force on the OSD, and it can show you maximum G-force reading on the summary screen. This has encouraged me to enable the accelerometer, so I’m glad I’ve been pasting the small_angle into all my builds!

Radio settings

Most of my builds use TBS Crossfire, so I don’t mind pasting that in.

set serialrx_provider = CRSF

My TinyHawk is my only quad using SBUS.

rxrange 0 988 2011
rxrange 1 988 2011
rxrange 2 988 2011
rxrange 3 988 2011

The goal is to have the ends of your stick travel reading 1000 and 2000 in Betaflight. I tweaked the settings in my Taranis, but it was impossible to get them spot-on. They would either read a bit high, or a little low. For a long time, I flew with them overshooting the 1000 and 2000 marks by 11 or 12 nanoseconds.

The rxrange command lets you set those limits correctly. My receiver tab now reads exactly 1000 to 2000 nanoseconds for my sticks.

rxfail 4 s 1000

I fly with my RSSI or Link Quality on channel 5. This lets me display my control link’s quality on my OSD. When you failsafe, your RSSI or Link Quality will just get stuck, so it might not be obvious to you that your signal is gone.

This command sets channel 5 to the minimum value. That way, when you do failsafe, your OSD will start blinking at you!

set vtx_band = 5
set vtx_power = 3
set vtx_low_power_disarm = ON
set vtx_freq = 5658
set vcd_video_system = NTSC

I fly with the same people most of the time, and we each have a designated channel. These settings put me on Raceband 1 with power level 3.

The vtx_low_power_disarm settings puts my VTX at 25 mW when I’m not armed. This helps keep me from knocking my friends out of the air when I plug in or land near us.

OSD settings

OSD settings and positions are safe to paste from one version of Betaflight to another. Sometimes the names change, but that won’t hurt anything. You’ll just end up with something missing from your HUD!

set osd_units = IMPERIAL
set osd_warn_batt_not_full = OFF
set osd_warn_batt_warning = OFF
set osd_warn_batt_critical = OFF
set osd_warn_visual_beeper = OFF
set osd_warn_core_temp = OFF
set osd_cap_alarm = 950
set osd_vbat_pos = 44
set osd_rssi_pos = 2448
set osd_tim_1_pos = 407
set osd_tim_2_pos = 2422
set osd_remaining_time_estimate_pos = 343
set osd_flymode_pos = 333
set osd_throttle_pos = 2409
set osd_vtx_channel_pos = 2415
set osd_ah_pos = 200
set osd_current_pos = 2433
set osd_mah_drawn_pos = 2441
set osd_craft_name_pos = 2453
set osd_gps_speed_pos = 2369
set osd_gps_lon_pos = 82
set osd_gps_lat_pos = 65
set osd_gps_sats_pos = 2390
set osd_home_dir_pos = 2395
set osd_home_dist_pos = 35
set osd_compass_bar_pos = 266
set osd_altitude_pos = 341
set osd_pid_roll_pos = 423
set osd_pid_pitch_pos = 455
set osd_pid_yaw_pos = 487
set osd_debug_pos = 1
set osd_power_pos = 321
set osd_pidrate_profile_pos = 345
set osd_avg_cell_voltage_pos = 2402
set osd_pit_ang_pos = 257
set osd_rol_ang_pos = 289
set osd_battery_usage_pos = 392
set osd_disarmed_pos = 138
set osd_nheading_pos = 311
set osd_nvario_pos = 279
set osd_esc_tmp_pos = 82
set osd_esc_rpm_pos = 2
set osd_stat_tim_2 = OFF
set osd_stat_max_dist = ON
set osd_stat_used_mah = OFF
set osd_stat_bbox = OFF
set osd_stat_bb_no = OFF

I’ve always tried to keep my OSD somewhat minimal. I feel that cell voltage, RSSI, and flight time are quite necessary.

I like to have my quad’s name listed. That makes reviewing DVR footage easier, and it helps my friends know who they’re tuned in to. At this point, fitting all my data on one line would be a tight fit.

Most of the time, I don’t need to see my VTX channel and power info, but sometimes it comes in handy. If I’m getting poor signal, it is nice to see if I’m running at 200 mW or 800 mW. On the rare occasions when I change channel, it is nice to have something to refer to when a friend asks what channel I’m on, too.

There’s still room left on the second line, so I squeezed in amp draw and mAh consumed.

Then I added GPS to all my 5” quads, and I had to expand to a third line! I’m disappointed that my OSD is getting so crowded, but I tried to keep that new line spread out towards the edges!

OSD settings for Betaflight 4.0

Betaflight 4.0 now has support for up to three OSD profiles. You can have different elements active in each profile.

I haven’t decided how I’m going to make use of this. Currently, I paste in OSD settings to enable the GPS data that I like to see. My micro quads don’t have GPS, so I wind up manually disabling those options during setup.

I might move the GPS data to a separate profile. That way, I can just change profiles on my quads without GPS!


In my opinion, rates are the most important thing to customize on your miniquad. Everyone prefers a different feel, and you need to find yours.

rateprofile 0

set roll_rc_rate = 192
set pitch_rc_rate = 192
set yaw_rc_rate = 165
set roll_expo = 15
set pitch_expo = 15
set roll_srate = 60
set pitch_srate = 60
set yaw_srate = 40

These are my rates. I keep my yaw linear and quite a bit more gentle than the other axes.

These rates feel right to me on my 5” miniquads, but they’re a little aggressive on my micros. In any case, it is a good starting point for any quad I might fly!


These are my modes. Don’t use my modes. In fact, you should probably be getting all these settings from your a diff from one of your own quads!

aux 0 0 3 1550 2100 0 0
aux 1 46 1 1925 2100 0 0
aux 2 13 2 1550 1700 0 0
aux 3 26 1 1550 1700 0 0
aux 4 28 3 1750 2100 0 0
aux 5 30 3 900 2100 0 0
aux 6 35 2 1925 2100 0 0

I use a single three-position switch, switch SG, on my Taranis X9D+ for arming and choosing rate or air mode. The first position is disarm. The middle position is rate mode. The final position is air mode. Most of the time, I just flip the switch all the way to one end or the other.

Switch SD activates either my beeper in the center position and turtle mode in the final position.

Switch SA enabled blackbox logging in the center position and GPS return to home in the final position.

That’s it!

I’m surprised there’s not more. This looks like everything I paste into a brand-new build.

I don’t paste out of this file all that often. Only when I build a completely new quad or a new major release of Betaflight shows up.

My Hyperlite Flowride quads

I have three identical 5” Hyperlite Flowride quads. I don’t paste this file into each of those. I set one up, and get it flying the way I like. Then I paste that good config into the other two!


When you have a bunch of quadcopters to configure, don’t rely on your memory. Get in the habit of saving diffs before making major changes to your quads. It is easier to paste in your old config than it is to make sure you don’t miss an important checkbox in the Betaflight configurator.

Even just cherry-picking lines from your Betaflight 3.5 diff when upgrading to 4.0 is easier than hunting around the configurator trying to make sure you didn’t miss an important setting!

Did I miss anything? Do you have a similar diff that you paste into all your new quadcopters? Do you have any questions? Let me know in the comments, or stop by our Discord server to chat about it!