My Thoughts on Open-Source Hardware

| Comments

I happened to watch Thomas Sanladerer’s video about designing a replacement part for his MPCNC build. I can’t stop thinking about it.

This situation is fascinating to me. A lot of the discussion floating around the Internet about this seems to involve the motives of one or both parties. That’s interesting, too, but I want to steer clear of that side of things.

I have my own open-source hardware designs. I’ve thought about having some of them manufactured. I’ve put a bit of thought into the licensing, and what that licensing protects me from and allows end users to do. I’ve also put some thought into the viability of marketing my potential products.

Your copyright and license protect your design, but not your hardware

If you’re Apple or Ferrari, this isn’t quite the truth. They have huge budgets and top-notch legal teams.

You, me, Thomas Sanladerer, and Ryan at V1 Engineering don’t have this luxury. I doubt any of us could afford to fight in court over these minor details. For us, the copyright protects our designs but not the hardware.

If I feel that the shape of the fuselage of my Kestrel is an important part of my marketing, I had better have filed for a trademark. If you decide to cut something similar, I won’t have the power to stop you.

Even if you are cutting the carbon fiber using my open-source CAD files, I don’t believe I would be able to stop you from selling what you have manufactured. I don’t believe that the copyright of my CAD files could be applied to the product that’s been cut by your CNC machine.

You don’t need our CAD files to copy our designs

With my quadcopter frames, all you need to do is buy one frame and drop the physical parts onto a flatbed scanner. You don’t need my design files at all.

My 3-inch Kestrel

Even if you did need to redesign the parts manually, that isn’t a gargantuan task. If Thomas Sanladerer can create a parametric part that is compatible with the MPCNC in a few hours, then maybe the design isn’t really all that valuable.

We aren’t entitled to profits

I would love to have my breadboard vise manufactured. It is a 5-hour 3D-printing job, so to sell them, I have to charge quite a lot for 25 cents worth of plastic. You shouldn’t buy one from me. You should print your own!

I’m excited about my 5” freestyle miniquad frame, but I don’t think I’ll try to have it manufactured. Sure, it is precisely the frame that I want to fly, but it just uses my favorite ideas from a bunch of existing frames. You should just buy one of those.

I think my 3” Kestrel frame is unique enough, but I don’t think the market is big enough to justify the effort and investment of acquiring inventory. I’ve seen how big the third largest FPV quadcopter store in America is, and it isn’t big at all. Micro quads are currently a niche within a niche, and I’ve heard a bit about the volume of electronics being sold for custom 3” builds, and it seems to be quite low.

Even if I had locked up all this intellectual property of mine as tightly as I could, I don’t think I’d be making any serious money with any of this stuff.

You aren’t entitled to our designs

I think everyone is already aware of this, but I still think it is important to bring it up.

When I started my journey into the world of CNC, I quickly learned how much different the CNC community is compared to the 3D printing community. Open-source is everywhere in the 3D printing world; most of the best slicers, models, and 3D printer designs are open-source.

Open source CAM software for CNC machines is light-years behind open source slicers. When you search for beginner CNC projects, half the search results are people asking how to make money with their machine. The landscape is just so very different!

Low-cost alternative suppliers may help you make money

Twenty years ago, everyone was stealing copies of Microsoft Office and Windows. Microsoft had no interest in stopping you. Every home user of Office was another advocate for the use of Office at the workplace, and businesses did pay. It was only in recent history that Microsoft really started clamping down on this sort of piracy.

The Arduino is another example. You can buy a genuine Arduino Uno for $22 plus shipping. You can buy a more advanced Arduino Leonardo clone with free 2-day shipping from Amazon for $9.99. You can order similar boards straight from China for half that price.

There are plenty of people willing to pay the extra $12 to $15 to support the original. The people that buy the clones for $5 to $10 are still helping to grow the size of the Arduino ecosystem. Everyone wins.

Would Arduino be making more money if they didn’t open-source their design and software, and if they kept the cloning at bay? The number of projects using an Arduino would be smaller, for sure. Maybe they’d be doing OK, but I doubt it.

Would you rather take 100% of the profits from a small project, or 20% of the profits from a huge project?

Open-source hardware can reassure your customers

I’m just a guy cutting carbon fiber in his garage. If I do decide to have my Kestrel frames manufactured for me, and you decide to fly my frame, how do you know replacement parts will be available a year from now? My product may be a flop, and I can never have a second batch produced. Maybe I’ll go bankrupt. Maybe I’ll get hit by a bus. Anything can happen.

I want my customers to know that they can produce their own replacement parts if need be. If I go bankrupt, maybe another company will step in to fill the void. Maybe my customers could have a friend cut some carbon fiber for them. Maybe they’ll order parts from CNC Madness using my CAD files.

The Arduino enjoys a similar advantage.

What about the MPCNC?

I like the MPCNC project, but it isn’t for me. If V1 Engineering had an account at Patreon, I would subscribe without hesitation, but I have no interest in buying their product or building this machine.

The kit looks tempting at only $275. The recommended spindles are much smaller than what I run on my Shapeoko. The two recommendations are priced at either $53 or $109 at Amazon. You’ll need to source $12 worth of conduit, and you’ll need to run about $30 worth of filament through your 3D printer.

V1 Engineering sells the 3D-printed parts for $135, and I think that’s a great value. The time and effort to print your own parts isn’t inconsequential, not to mention the potential reprinting of failed parts. I would definitely spend the extra $100 or so to have that work done for me.

That’s under $550 for a machine that is roughly comparable in size to a $1,680 Shapeoko XL. I’d even be willing to bet that the MPCNC could handle almost every cutting job I’ve attempted on my Shapeoko XXL.

That said, the MPCNC won’t begin to approach the rigidity or power of my Shapeoko XXL. They’re different machines for different jobs at different price points.

MPCNC STL file licensing

The STL files for the MPCNC are licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. As with many open-source licenses, this means that any changes you make to these STL files must also be released under the same license. You’re also not allowed to profit from the sale of those STL files.

Whether you’re allowed to sell the parts you print using the STL files could probably be argued either way. I don’t really want to touch on that part of the discussion.

What I do find interesting is that this license cuts both ways. If anyone published an improvement to the MPCNC STL files, and V1 Engineering wants to integrate those changes, then V1 Engineering has to follow the license as well. V1 Engineering doesn’t own the copyright to those new changes, so they can’t sell those changes, either. They’d have to obtain permission from the copyright holder of those new changes.

I don’t know how this is being handled today, but I could see this creating a schism at some point in the future.

Conclusion

I hope I wasn’t too hard or too easy on either Ryan at V1 Engineering or Thomas Sanladerer. I wanted to explain the research I’ve done and the thoughts I’ve had regarding open-source hardware over the four years since I published my breadboard vise to Thingiverse.

What do you think? Do you prefer to use open source hardware? Have you published any of your open hardware projects to the world? Do you have a project I should know about? Let me know in the comments, or stop by the Butter, What?! Discord server to chat with me about it!

What Happens When Brian and I Start Another Blog?

| Comments

About four months ago, Brian Moses and I started another blog. We decided that this was a good idea almost two years ago, but life and procrastination got in the way. Near the end of April, I said to hell with waiting and planning. I decided I was just going to stand up a nearly empty, completely undecorated Jekyll site.

That right there is the most important piece of blogging advice I could give anyone. Stop waiting. Write something now. Post it on the Internet. It doesn’t matter what it looks like. It doesn’t matter if your theme is perfect. It doesn’t matter what blog engine or theme you choose. The sooner you post your words, the sooner Google will find them, and the sooner people will start reading them!

What were our plans for Butter, What?!

I think I covered out plan pretty well on the first blog I posted on Butter, What?!, but I can cover the basics in a short paragraph or two.

We wanted a place to post content that just wouldn’t fit on patshead.com or briancmoses.com. Just about everything I’ve ever written on patshead.com has involved some amount of research or testing, and some sort of value that I’ve personally added to the topic.

I wanted a place where I can just write a paragraph or two simply explaining why I think something is interesting or cool, and then give you links to the content.

We also wanted a place where we can collaborate, and not just with each other. Brian and I also want to collaborate with other bloggers and content creators, and we want to use whatever social media and Google search clout that we might have to help promote other people that are doing interesting things.

A rising tide raises all ships

Maybe there’s a limit to just how much love Google search will give patshead.com and briancmoses.com. Ever since Google started shifting their search results more heavily towards YouTube videos and gigantic websites, our traffic has taken quite a hit. I’ve been hovering at right around half the traffic I used to see roughly two years ago. I don’t want you to think I’m unhappy about this, but I’m certainly not excited about it!

If Brian and I split off some of our time to write content for Butter, What?!, would we see less traffic on our own blogs? Would Butter, What?! drive some traffic back in our direction, or will it just be a one-way street leading out of our sites and into Butter, What?!

A rising tide raises all ships. At least, that’s what we are hoping. Butter, What?! is just getting out of its infancy stage, but it seems to be working. The traffic at patshead.com isn’t dropping, and I’m seeing a trickle of traffic coming to patshead.com from Butter, What?!

Here’s a real piece of data. According to Matomo, I saw 53 confirmed visits referred from Butter, What?! in August. Any of my blog posts that rank between my top 30 and 40 would see roughly as much traffic. This is definitely a good start!

Our real goal is to help more than just our two old ships and the S.S. Butter, What?! Now that Google is starting to notice us, it might be time to start reaching out to other bloggers!

I remember when I started blogging at patshead.com

I bought patshead.com right around the turn of the century. For a decade, just about the only thing on the site was the animated gif of my spinning head. In 2009, I started blogging and set up Google Analytics. In 2012, I switched from Google Analytics to Piwik, then sometime later the open-source Piwik project changed its name to Matomo.

In the early days of my blog, I was excited when I saw 10 visits in a day. When I would write a new post, I would double or triple my page views for the day just by Googling my own site to find URLs to include in my new blog post. About a year later, I was seeing 50 visits each day, and I was no longer capable of significantly skewing my own reporting.

I don’t have easy access to all my historical data, but I remember that for a long time my search traffic was doubling every six months. It wasn’t a steady rise, though. It would be pretty level most of the time, then it would suddenly take a jump towards bigger and better numbers. Brian’s results were similar, and it took quite a while for this to plateau.

We’re at the point today where the traffic graphs for Butter, What?! are looking like a hockey stick. We don’t have a ton of content written yet, so I expect we’re nearing our first plateau, but we don’t know for sure!

How much traffic is Butter, What?! seeing?

The new blog went up on May 2, 2019. Traffic from Google was pretty much a dial tone until the middle of July. Until then, nearly 100% of the traffic to Butter, What?! was a result of our tweets, Facebook posts, and links from our existing blogs.

Traffic from Google was still extremely tiny in July, but it was finally a steady trickle. Before the month was over, we were seeing 10 clicks per day from Google search.

Butter What Matomo Data

I started to get excited at the beginning of August. Butter, What?! had almost twice as many search clicks in the last week of July as it had the entirety of the previous three months. I was excited, even though we only saw 60 clicks that week. I was excited, because the numbers were still growing every week.

Today, we’re seeing 30 to 40 search clicks per day, and it looks like that number is still increasing.

August was the first month that Butter, What?! broke 1,000 visits. We had more visits referred from Google search in August than we had total visits in July: 686 vs. 581. August was exciting!

The quality of traffic is better than I expected!

Brian and I are always looking at metrics like average visit duration and average time on page. Visit duration tends to be higher when you have a lot of relevant and related content. Google might point you at patshead.com, because you’re interested in my virtual machine host. Then you might see my blog about my 20 gigabit-per-second Infiniband setup, so you’ll stick around to read that.

Butter, What?! is young. It doesn’t have a ton of content. A lot of the content that it does have is designed to point you towards other content, like those YouTube videos I post every Monday. I expected we’d see a lot of short visits, but that hasn’t been the case.

Butter What Matomo Data

I haven’t checked Brian’s Matomo data, but most days, Butter, What?! has an average visit duration nearly double what I’m seeing on patshead.com!

I imagine that has more to do with patshead.com having over 300 articles, and most of those posts are getting quite old. If you manage to click on a blog post about an old Android phone that I owned 5 years ago, you probably got here by mistake, right? You’re going to leave quickly!

Our old blogs also do a much better job of making our other content available to our readers: recent posts are listed in the sidebar and related posts are listed at the end of a post. Butter, What?! doesn’t have any of that yet, and this is another reason that I’m surprised that our time on site has been so high and our bounce rate has been so low.

Traffic is light, but not insignificant!

If this were 2016, the 1,001 visits Butter, What?! had in August would have felt completely inconsequential to me. It isn’t 2016 anymore. Brian and I have had our search traffic drop by nearly 50% since then.

Those 1,001 visits are right around 4% of the combined traffic of patshead.com and briancmoses.com. Even if things don’t improve, the search traffic alone from Butter, What?! will account for 5% of our total traffic in September.

If Butter, What?! accounts for 10% of our traffic by the end of the year, I will be quite pleased with our efforts!

What will next month look like?

If search traffic levels off, then September will compare to August in much the same way that August compared to July. We’ll see more search clicks in September than we saw total visits in August.

Butter What Matomo Data

Google’s search console says we’re leveling off. We have roughly the same number of search impressions this week as we had last week, but our click-through rate is up from 3.5% to 4.5%.

Brian and I haven’t been doing as good of a job at posting and reposting our new Butter, What?! content on social media lately. I feel better about relying on search traffic anyway, but I’m going to try to do a better job at this in the near future.

Conclusion

I have no idea who the target audience for this blog post might be, but I’m excited about how things are going, and I figured it might be interesting to someone! We started a new blog, and it is starting to accrue some content and gain some search traction.

How do you think we’ll be doing next month? Or by the end of the year? Do you want to get involved with what we’re doing? Let me know in the comments, or stop by the Butter, What?! Discord server to chat about it!

Designing My Carbon Fiber Prop Tool

| Comments

I’ve been looking for an idea for something I can send out as a perk to my patrons on Patreon.com. I’ve also been on the lookout for a part that I can squeeze into the wasted areas of my carbon fiber sheets.

Carbon fiber sheets aren’t ridiculously expensive, but they also aren’t what you’d call cheap. Some of the parts for my Kestrel and Falcon frames have rather odd shapes, and they need to be oriented in such a way that the length of parts follow the strands of carbon. I wind up with a lot of 1” by 2” areas all over the place that are just too small to fit quadcopter parts.

I’ve already written at length about why I’m designing this prop tool over at Butter, What?! In this blog post, I’m going to tell you about what I learned while designing this prop tool. If you want to read about why I’m designing this prop tool, you can read about it at Butter, What?! I had to overcome some new problems related to CNC machining that don’t apply to my usual 3D-printing designs.

A CNC router can’t cut sharp interior corners

A CNC router, like my Shapeoko XXL, cuts material with a round bit. If I just subtract a 8mm hexagon from my carbon fiber, each of the six corners will have a radius that matches my endmill instead of a sharp corner. Without that sharp corner, my 8mm nut driver won’t fit over the 8mm prop nut!

In theory, this isn’t a big deal. You just have to tell the CNC machine to cut a little deeper into each of those corners. They call these cuts “dog bones.” What’s the best way to add dog bones with a parametric OpenSCAD design?

CAD and CAM have close ties in the CNC world

I toyed with two different ways of accomplishing the same goal. I’m disappointed because both options require my OpenSCAD model to be aware of the diameter of my endmill, or at least be set up to accommodate the largest endmill I might use for this operation.

I’m using a 2mm endmill, because that’s what I use to cut Falcon and Kestrel parts. I’d like to be able to cut prop tools as part of the frame cutting jobs.

On every CNC part I’ve designed so far, all the cutting operations for my perimeters involve an inside or outside contour tool path. That means that the 2D CAD file that I’m exporting matches the dimensions of the physical part. Instead, you can tell your CAM to follow your CAD file’s path with zero offset.

I toyed with the idea of experimenting with that third option. I could scale down my hexagon by the radius of my endmill. Then I could just add a perpendicular 1mm line at each of the six corners. Just the fact that I haven’t attempted this before seemed like a good enough reason to give it a shot, but I quickly realized that it was going to be a lot more work to plot out the shape I needed with OpenSCAD.

I abandoned this idea so quickly that I don’t even have a screenshot of what it looked like!

Prop Tool Dog Bones

I was also disappointed that this option would only work with a single endmill. I would have to export a new SVG file if I wanted to use my 1.6mm endmill, and that would be a bummer.

1
2
3
4
for (i=[0, 60, 120, 180, 240, 300]) {
  rotate([0, 0, i])
    translate([hex-c, 0, 0]) cylinder(d=2.1, h=t, $fn=12);
}

Instead, I placed a 2.1mm cylinder near the six corners of my 8mm hexagon, and I’m pleased with the result. It leaves room for the corners of the prop nut, it was easy to model with a simple for loop, and it will work with any endmill up to 2mm in diameter.

The scale of 3D printing makes this sort of thing simpler!

Working with a 0.4mm nozzle and relatively soft plastic is quite a bit different than working with a 2mm endmill and rigid carbon fiber, aluminum, or steel!

In either case, there needs to be a bit of clearance between the walls of my prop tool and the nut. With ABS plastic, it doesn’t matter that the 0.4mm extrusion of plastic doesn’t make perfect corners. That tolerance between the tool and the nut is probably already large enough to make up that tiny amount of extra material in the corners, and even if it isn’t, ABS would be soft enough to just get out of the way the first time you use the tool.

If we were cutting this tool out of steel, and we didn’t cut the dog bones into the six corners, we would have a real problem.

Engraving my website on the side

This was fun. It was my first attempt at a v-carve operation. When you engrave lettering to shiny, reflective aluminum, it shows up pretty well all by itself. When you engrave into carbon fiber, it still just has a matte black finish, and you can’t see it.

I borrowed some white nail polish from my wife. I slathered it generously over all the letters, then let it dry. I wasn’t sure how to remove the excess nail polish without ruining the finish of the carbon fiber sheet, so I just scraped it off with another flat piece of carbon fiber. It was strong enough to remove the excess nail polish, but not so hard that it would scratch up the smooth surface.

It worked better than I expected. There are a few problems with the first prototype. A few of the letters seem slightly misshapen. The details might just be a little too fine for the carbon fiber sheet’s epoxy to hold together well.

I’ve scaled the letters up from 4mm to 4.5mm tall, and I’m planning on cutting the next one at about half the speed. With any luck, that will clean up most of the problem areas!

I’m quite pleased with how my first attempt at both v-carving and nail polishing came out!

Conclusion

The prop tool is open-source, and it is licensed under the GNU GPL version 2. I added the OpenSCAD source code, dxf, and svg files to the falcon-frames repository on Gitlab. The OpenSCAD source is a little rough. I didn’t put much work into making sure it was cleanly parametric. It has quite a few magic numbers sprinkled about, because I was more concerned with getting the hex openings sized correctly.

What do you think? Would you use a carbon fiber prop tool like this? I know I prefer my $15 Speedix prop tool, but I’ll be adding a carbon fiber prop tool to all my bags. Are you as good at misplacing prop tools as I am? Let me know what you think in the comments, or stop by the Butter, What?! Discord server to chat with me about it!

Backing Up My Bitwarden Database

| Comments

I’ve been using Bitwarden for a little over a month so far. I’m enjoying the experience, and I haven’t had any problems, so I expect that I will continue to use Bitwarden as my password manager for the foreseeable future.

That means I need a way to back up my Bitwarden database. Keeping my passwords backed up happened for free when I was using Keepass. Your Keepass database is just a securely encrypted file, and my cloud storage solution kept a copy of that file on each of my computers, my phone, and my tablets. There was also 90-days’ worth of history stored on my Seafile server.

Bitwarden is different. There is no password database file. From my perspective, everything is magically stored on the server. How am I going to keep a backup? Can I automate it? Where should I store the backup?

While I’m at it, I figured this would be a good time to update the backup process for my ssh and GnuPG keys as well!

When will I need to use a Bitwarden backup?

I did some testing for my own peace of mind. I disconnected my laptop from the network, completely shut down my web browser, and fired it back up again. I wanted to make sure that I had access to all my passwords even when the Bitwarden servers aren’t available.

As you would expect, this worked just fine. I can access my passwords, and I was able to export a CSV dump of my database without access to the Internet. What does this mean?

My Bitwarden backup script in action

It means that I will still be able to dump my passwords even if the Bitwarden company disappears off the face of the Earth over-night.

I don’t need daily backups, but that would be nice. In practice, I probably only need a backup any time one of my core passwords changes. If I lose my Slashdot password, they’ll let me reset it via email. If I lose my Gmail password, it would be a huge pain in the butt!

The Bitwarden CLI

The Bitwarden command-line tool seems pretty good, but its export functionality falls short of what I was hoping for. The command-line tool, the native application, and the browser plugin all have similar limitations, but I was able to set up something that will get the job done.

Exporting requires that you decrypt your vault. It would be nice if you could just pull your vault out of the app in its existing, unreadable state, but I wasn’t really expecting to be able to do that.

The Bitwarden CLI can export a CSV or JSON file, but it has to write to a file. You cannot export to STDOUT. I was hoping to be able to do something like this:

bw export --output - | gpg --output myvault.csv.gpg -e -r thehead@patshead.com

You can’t do this. Bitwarden’s CLI doesn’t respect the tradition of using - as the filename to designate STDOUT.

Ugh. I don’t want my plaintext passwords to touch the disk.

I finally found a use for my USB drive with Brian’s face on it!

If I can’t encrypt the exported data before it touches the disk, then I guess I’m going to have to store Bitwarden’s CSV file on an encrypted disk. The export is going to be a manual process anyway, since it will require me to enter my passphrase, so why not use an encrypted USB flash drive?

I encrypted the flash drive using LUKS. If you’re on Windows, you could probably use something like Veracrypt. You could most certainly use a GUI to configure your LUKS encrypted disk, but I have absolutely no idea how to do that. These are the commands that I used:

1
2
3
4
cryptsetup luksFormat /dev/sdb
cryptsetup open /dev/sdb TemporaryName
mkfs.ext4 /dev/mapper/TemporaryName
cryptsetup luksClose TemporaryName

I may as well back up my ssh and GnuPG keys

I don’t often make backups of my ssh or GnuPG keys. I could write 2,000 words about my key-management practices, but I will try to be brief.

My ssh keys allow me to log into machines that are extremely important to me: my blog’s web server, my virtual machine host, or my NAS. I have at least one unique ssh key on my laptop, desktop, and tablet. If any one of those three computers is lost or compromised, I can easily remove its corresponding public key from all my servers.

Since I have different keys on three different computers that can log in to all my servers, I don’t need backups of my ssh private keys. If my laptop dies, I can simply generate a new key and update all my servers using one of the other two good keys.

GnuPG is different. While my ssh keys identify who I am and which machine I’m using, my PGP key only identifies me. There is no replacing my root PGP key. If I lose that private key, I’m probably in trouble. All sorts of backups and important files would become completely lost.

My PGP key doesn’t change very often. In fact, I’m long overdue for a fresh key! I even have a hard copy of my PGP key printed out.

Even though my PGP and ssh keys are encrypted and have strong passphrases, I don’t feel comfortable storing them anywhere in the cloud. As long as I’m going to be backing up my Bitwarden passwords to a USB flash drive, I may as well include my desktop’s ssh and GnuPG keys, right? It only requires an extra tar command or two!

I’m not sure that was brief.

My backup script

You don’t need to script any of this, but I did. I’m lazy. I can’t automate the entire process, but at least I can automate some of it!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#! /bin/bash

dir=/root/usbbackup  # bw cli snap won't write to /tmp
uuid=277ab83d-cb1d-4687-99dd-14544a6f3ace
datestamp=$(date +%F)

gpgdir=/home/wonko/Seafile/backups
gpgrecipient=thehead@patshead.com

cryptsetup open /dev/disk/by-uuid/$uuid usbbackup || exit 1

mkdir $dir || exit 1

mount /dev/mapper/usbbackup $dir || exit 1

## backup ssh and GnuPG keys and configuration
tar cf $dir/ssh-$datestamp.tar /home/wonko/.ssh
tar cf $dir/gnupg-$datestamp.tar /home/wonko/.gnupg
tar cf $dir/ssh-$datestamp.tar /home/wonko/.ssh

/snap/bin/bw unlock  # I don't know why I need this, but I do?!
export BW_SESSION=$(/snap/bin/bw login thehead@patshead.com --raw)

/snap/bin/bw export --output $dir/bw-$datestamp.csv

/snap/bin/bw logout

gpg --output $gpgdir/bw-$datestamp.csv.gpg -e -r $gpgrecipient $dir/bw-$datestamp.csv

echo New files on USB drive at $dir:
ls -l $dir/*$datestamp*

echo New Seafile GPG files:
ls -l $gpgdir/*$datestamp*

umount $dir || exit 1
rmdir $dir || exit 1
sync # for paranoia
cryptsetup luksClose usbbackup || exit 1
sync # for more paranoia!

echo Backup complete, USB drive synced and unmounted.

My backup script isn’t exciting or sexy, but I figured somebody might ask about it, so here it is!

Conclusion

I feel a little safer. My passwords can survive if my house burns down or Bitwarden’s hosting goes out of business. Even if both catastrophes occur on the same day, there will still be a GnuPG encrypted copy of my passwords stored on my Seafile server.

What do you think? Are you using Bitwarden? What are you doing to keep your passwords safe? Do you have a semi-automated backup process like mine, or do you manually export your database every once in a while? Let me know in the comments, or stop by the Butter, What?! Discord server to chat with me about it!

One Month with Bitwarden

| Comments

It almost feels too soon to be handing in a report on how well Bitwarden is working out after only a month of use. I’ve learned something important since migrating from Keepass. Something that I managed to completely gloss over when making my decision to migrate. It may have made me change my mind, so I think it is important to tell you about it!

Hosting your own Bitwarden server has a weird caveat

Bitwarden is open source, and you can host your own Bitwarden server. I’m excited about having the ability to host my own server, but I didn’t want to go down this road. My initial investigation didn’t go terribly deep. Once I saw that the documentation looked good, and the process was pretty simple, I put in check in the “ability to host your own server” box on my list.

I’ve since noticed that you can’t just host your own Bitwarden server. Your server needs a key that is provided by bitwarden.com. At a glance, this feels sketchy to me. This is what the Bitwarden documentation has to say about server keys:

Each Bitwarden installation requires a unique installation id and installation key. The installation id and key is used to:

  1. . Register your installation and contact email so that we can contact you in case of important security updates.

  2. . Validate licensing of paid features.

  3. . Authenticate to push relay servers for push notifications to Bitwarden client applications.

You should not share your installation id or installation key across multiple Bitwarden installations. They should be treated as secrets.

They want to protect their revenue stream, and they’re allowing you to use their push notification infrastructure so that your server can communicate with the Android and IOS clients.

There is an alternative to the official Bitwarden server

There is an unofficial Bitwarden-compatible server written in Rust. If you feel that having to obtain a key to host your own server is weird or creepy, Dani Garcia’s Rust server looks like a fantastic option.

Bitwarden

This isn’t the only reason to look at Dani’s Bitwarden server implementation. The official Bitwarden server is rather heavy. It requires 2 GB of RAM and quite a bit of storage. You probably won’t be able to just throw an official Bitwarden server up on a random VPS that you already have. You’ll probably need a RAM upgrade.

The unofficial Bitwarden Rust server only requires 10 or 20 megabytes of RAM. You can squeeze that in just about anywhere, and it even runs on a Raspberry Pi!

Everything else has been fantastic

I’m impressed with Bitwarden so far. I haven’t had any problems. Once I learned the control-shift-L hotkey to automatically fill in passwords, it has been smooth sailing.

The Firefox extension works great. All my passwords were imported from Keepass without any issues. After an initial hiccup, the Android app has been doing a fantastic job of populating username and password fields.

My cheap Blu phone’s battery-saving nonsense was goobering things up at first. It was killing the Bitwarden app, and when it did, the app would lose its accessibility status. It wasn’t obvious right away why this was happening, but once I dug into my Android system settings to disable battery-saving features for the Bitwarden app, everything has been working perfectly.

Conclusion

Within a few days of posting about my migration to Bitwarden, three comments showed up recommending three more open-source password managers that I never heard of. This space seems to be crowded, and I plan to do more research in the near future. It might be time for a password-management version of my old cloud storage comparison blog!

Bitwarden has all the features I was looking for, but what pushed me into the migration was when I learned about the third-party audit of Bitwarden that was conducted late last year. It didn’t get a perfect score, but they quickly addressed the serious issues, and they put plans in place to address everything else.

What do you think? Did I make a good move when I migrated to Bitwarden? Do you prefer Lastpass or 1Password? Do you use an open-source password manager? Let me know in the comments, or stop by the Butter, What?! Discord server to chat with me about it!

EMAX TinyHawk Freestyle: The Best Upgrade Path For Beginners?

| Comments

I am excited about the new EMAX TinyHawk Freestyle micro drone. It is fast, fun, and relatively safe. It is also inexpensive, and it is a fantastic upgrade for beginners on their path towards flying full-size FPV miniquads.

We finally have an awesome upgrade path for beginners!

I started flying with a Spektrum DX6 radio. I believe they cost about $230 at the time. That was only the radio. Then I bought a toy quadcopter with no FPV camera, a Blade Nano QX, for $60.

The TinyHawk and TinyHawk Freestyle

Today, you can buy the TinyHawk Ready-To-Fly kit for $165. That bundle includes the original indoor TinyHawk drone, a set of FPV goggles, a radio, one battery, and a charger. My old DX6 is an infinitely better radio than the one in the TinyHawk bundle, but that doesn’t really matter. Throw in a 6-pack of extra batteries for $25, and you’ll still be under $200.

Not only will you still be under $200, but you’ll already be flying FPV. When I bought my radio, that $230 just gave me the ability to fly something. I still needed to buy quadcopters, goggles, and chargers. I spent so much money!

Until the TinyHawk Freestyle showed up, the upgrade path from the TinyHawk kit was bumpy. You could stick to micros, like the Diatone GTR349, or something like my 3” Kestrel. Maybe you’d want to skip that, and move up to a real 5” miniquad. Your goggles will work well enough, but the radio in the EMAX kit isn’t ideal for something so big, aggressive, and dangerous.

This is where the new TinyHawk Freestyle comes in. Unlike the original TinyHawk, you can fly the TinyHawk Freestyle outside, even when it is windy. In fact, that’s the only place you should fly it. It is much too powerful to fly indoors. If you’re a beginner, though, you may have trouble flying the Freestyle on a windy day. It took my friends and I lot of practice before the wind stopped being an issue for us, even with our heavy quads!

If you’re a beginner, here’s what I suggest you buy:

That’s $295. You certainly don’t have to buy it all at once, but all that stuff costs less than what I spent on just [my Spektrum radio][dx6] and a toy quadcopter with no camera. This blows my mind. You can get into the air flying actual FPV, and you can have the tools to practice in the simulator for less than I paid for my first radio.

NOTE: I’ve read and watched in several places that you can bind the RTF kit’s controller up to the TinyHawk Freestyle, but a friend of mine has been having some trouble. It seems possible, but it may not be as easy as I hoped. Stay tuned, and I’ll let you know how it goes!

I wish this was available when I started flying three years ago. Having to spend $500 or more just to get started flying FPV required some deliberation. Spending $165 would have been an impulse purchase. I would have bought a TinyHawk RTF kit immediately after seeing my friend Alex fly his old Blade Vortex 250!

Are the TinyHawk and TinyHawk Freestyle the best in their classes?

It probably depends on your definition of best, but I would have to say that they are not. The whoop-like TinyHawk isn’t the fastest or best handling brushless whoop. It does hold its own, though, and it is probably the most durable brushless whoop you can buy.

The TinyHawk Freestyle falls into the toothpick class of drones. Toothpicks are supposed to be small, light, fast, and safe. The more weight you add to a quad, the more damage it will do to a person when you accidentally fly into their face. KababFPV has a video where he flies his 35 gram toothpick build into his face at full speed. This is the sort of toothpick I want.

The TinyHawk Freestyle pushes the definition of a toothpick a little past KababFPV’s specifications, but it isn’t too bad. I should point out that EMAX doesn’t claim the TinyHawk is a toothpick-class drone.

There are bigger, heavier, insanely faster quads than the TinyHawk Freestyle that claim to be toothpicks. By some definitions, those quads are much better than the TinyHawk. If you want something quick, snappy, and relatively safe, the TinyHawk Freestyle is probably the quad for you—especially if you’re already flying a TinyHawk or TinyHawk S!

Did you buy a TinyHawk Freestyle? What do you think of it?

I did buy a Freestyle, and I like it a lot. When I saw the specs, I was excited. The first thing I thought of was my old KingKong 90GT—my first micro FPV quad.

The motors are the same size and of a similar KV. My modified 90GT ran 2.5” props, just like the Freestyle. They’re similar enough in weight and size. Micros have made a lot of progress in 2 years. I figured the motors on the TinyHawk are more powerful, and I was confident that the ESCs are a huge upgrade, too.

I was right. It is a huge upgrade over the KingKong 90GT.

Pat created a problem for himself

I plugged in my TinyHawk, unlocked the VTX, bound it to my Taranis X9D, and pasted the configuration for my OSD and switches into Betaflight. I was ready to fly, so I put my batteries, goggles, Taranis, and TinyHawk Freestyle into my little backpack, hopped on my electric bike, and rode to the park.

I’ve had a concern since placing the order for my TinyHawk. After I started using TBS Crossfire, I wound up taking my Taranis apart to tuck my FrSky antenna inside the radio. This hasn’t been a problem with the original TinyHawk, but I was concerned that I wouldn’t have enough range outside.

My worries were quickly confirmed at the park. I lost my control link as soon as I went behind a big tree. I couldn’t powerloop or S-turn any trees, but I still gave it a bunch of stick, and I ran it through its paces in the open space.

How does it fly?

I hear the Freestyle flies better on gentle 65mm biblade props. I don’t have any of those yet. I’m pleased with how it flies on the heavy triblade props that it ships with. They seem to have good grip down low, and they handle propwash way better than I expected, but they quickly run out of steam at full throttle.

If you’re a beginner, this won’t matter. You won’t be breaking any speed records, but it sure isn’t slow. I think EMAX chose the right props. The TinyHawk Freestyle is targeted toward beginners. You don’t want to lose a 95 MPH drone on your first flight!

I think it feels great. It is quick, crisp, and responsive. I saw that AndyRC has a tune to eliminate some of the high-throttle oscillations, but I didn’t even get a chance to hear them. The little guy is so quiet, and I’m an old man. I’ll have to do a full throttle punch right next to myself and listen for it!

Did Pat choose the right toothpick?

The original TinyHawk isn’t the best brushless whoop, but it is the best brushless whoop for me.

The TinyHawk Freestyle isn’t the best toothpick. It is a bit on the tubby side for a toothpick, but it isn’t the biggest. Being heavy makes it a little slower and a bit less safe than the lightest toothpicks. That said, I think the TinyHawk Freestyle is a good compromise and a great value, especially if you’re already a TinyHawk or TinyHawk S pilot!

Ever since KababFPV showed off his first toothpick, I’ve been wanting one. Specifically, I wanted a toothpick that could make use of the batteries and charger that I already have for my TinyHawk. Batteries and chargers are one of my biggest investments. Sure, whoop batteries are cheap, but I don’t want a fourth set of batteries to maintain and carry!

At any rate, I needed to try the TinyHawk Freestyle, because I want to be able to recommend it to you. I don’t like recommending things I haven’t used myself.

I suppose the answer is yes. I definitely chose the correct toothpick for my purposes!

I have to complain about a few things!

The TinyHawk’s camera is awful. The Freestyle seems to have the same camera as the original TinyHawk. It is fine for whooping around the house, but it was a real disappointment outside. My FPV camera standards are pretty high, though. I doubt I’d be happy with any of the whoop-size cameras.

I’m also disappointed that the VTX is only 25mw. One of the reasons that I upgraded from the Leader 120 to the Leader 3 was the higher power VTX. I would feel more comfortable with a 200mw video transmitter. It isn’t the end of the world, though. When you fly a tiny drone so far away that you need 200mw, it usually becomes extremely difficult to locate your quad after a crash. They’re so tiny!

EMAX TinyHawk

I know a lot of people will be excited about the nice carrying case. It is the same case that the original TinyHawk ships in. The trouble is that the TinyHawk Freestyle doesn’t fit in the foam insert with the props on. I took the foam out, and it just barely fits in there.

I’m not excited about the carrying case. I’d rather have cheap packaging and an extra battery or something. I assume I’m in the minority!

Conclusion

I’m way too excited. EMAX has just made life so much easier for new pilots. You don’t have to think about it. You can just buy a kit with everything you need to get in the air and also practice in a simulator. When you outgrow the indoor TinyHawk, you can easily upgrade to your first outdoor FPV quad.

This is so much better than when I got started!

What do you think? Do you like the original TinyHawk, or do you prefer a different brushless whoop? Are you looking to upgrade to a toothpick? Is there a toothpick that you like better than the TinyHawk Freestyle? Do you think this is as fantastic for beginners as I do?

Let me know in the comments, or stop by the Butter, What?! Discord server to chat with me about it!

Open-Source Falcon Miniquad Frame: Road to Version 1.0

| Comments

I am excited! Frame design is going well. The Shapeoko is doing a fantastic job cutting carbon fiber. The first prototype of the Falcon is flying well, and I’m quite pleased that I’ve uploaded another open-source miniquad frame for the world to enjoy.

There were some minor issues with [the first prototype][]: some holes were too small, the inner arm mount screws are inconveniently spaced, and the carbon fiber plate shifted while cutting the arms.

My Open Source Falcon Prototype

I was able to pause the CNC machine, then reposition and lock down the carbon fiber, and resume the cut where it left off. It looked like I got the plate lined up pretty well, but it was off by enough that I couldn’t mount the arms. Some filing fixed that, but I didn’t get to test the Kestrel-style arm wedge. Instead, I used two screws per arm.

Changes since the prototype

I feel that I should mention that the prototype Falcon frame is flying great. There’s a slight measuring guesstimate error on my part that lets you see some of the top plate in the FPV video feed. Aside from that, I don’t think I’d be able to tell you whether I am flying my Falcon or Flowride in a blind test.

I was a combination of happy, surprised, and relieved that the battery strap locations on the Falcon were almost perfect. I’m using the same model for the top and bottom plate, so I have to rely on the slots in the center of each stack for battery straps. I was worried that this would position them in an awkward location.

The fuselage is shorter

As I was assembling the prototype, I realized that I had a lot of room between the FPV camera and the ESC board. I took a guess as to how much room the 20x20 stack in the front would require, and I guessed a little high.

I was worried that pushing the front and rear stacks closer to the center might goof up my battery strap locations. To check my work, I printed the full-length and partially-truncated top plates on paper. On a laser printer. Can you believe it?!

Battery Strap and GoPro Location Comparison

I wound up bringing each stack 5 or 6 mm closer to the center. My builds have the ESC power lead going out the side of the quad, but there’s plenty of room if you prefer to point the power lead towards the front or back of the quad. I tested this by putting spare ESC, an old 20x20 flight controller, and a busted Caddx Turtle on the paper.

This gave me a chance to check where the battery straps would land on the full-length frame. I don’t want to fly the full-length frame, so I’m happy that I didn’t have to cut one for testing! The battery straps line up great, and the battery sits in a good position.

While I was editing the top and bottom plates, I added a pair of cutouts around the center stack that can be used if you want to fly with your battery mounted in the toilet-tank style. I’m not sure if the exact center is the ideal spot for that, but I figured it couldn’t hurt to add the option. Especially since it saves a bit of weight!

The arm brace plate holes are fixed, and the mount points are wider

I left holes in the bottom brace plate that were supposed to be big enough to fit a 2mm hex driver. These holes are there to allow you access to your stack screws. I goofed. They were too small for my tool. This has been fixed.

When testing the fitment of components on my printout of the bottom plates, I noticed that the central arm mounting screws would be almost directly underneath the ESC power leads if you chose to orient the ESC towards the front or back. This seemed dumb.

Old and New Falcon Bottom Plate Printouts

First, I moved the outer four arm screws farther from the center. Then I moved the inner screws closer to the sides of the fuselage. They now clear my Holybro Tekko32 ESC power lead by about 2mm.

This new layout results in a wider fuselage and shorter arms. It isn’t a huge difference, but this winds up trading a short length of 4mm carbon for two short lengths of 2mm carbon. It is probably a wash, but my gut tells me that it will make the frame less likely to resonate. I’m no expert, though!

The arms got longer, too!

The arms have a sort of L-shape to them. They come into the fuselage, then make a sharp turn at the first screw. If you imagine that screw as the fulcrum of a lever, you’ll see that this isn’t the best setup.

For arm rigidity, the best place for the second screw would be along a straight line that goes through the motor and the first screw.

We could share a screw with the 30x30 stack in the center, but that transfers vibrations to the flight controller. We don’t want to do that.

The new Falcon arms with beefier centers

I could put an extra screw hole in each arm. If you’re using a 30x30 flight controller, you could lock the arm in with a screw through the 20x20 stack holes. If you break an arm, this will be awful. Your electronics will be in the way of the screw!

Every frame makes compromises. You need to choose your frame based on the compromises that matter most to you. This is one of those compromises. I want to be able to easily swap arms in the field.

I decided to extend the base of the arm closer to the center of the quad. The sandwich of the bottom plate and brace plate will still keep the arm locked in place. Probably not quite as solidly as if we had a screw through there, but it should be an improvement!

Should I keep the Kestrel-style dogbone wedge?

I haven’t taken the wedge out of the design. The weight is negligible, and I bet it will make the arms more rigid, even if I have to use two screws per arm. The wedge is the part that allows me to get away with just a single screw for each arm on the Kestrel.

Kestrel arms and wedge

This works great on the tiny Kestrel, but I’m not convinced that the Falcon would be sturdy enough with just four screws holding the sandwich of arms together. I couldn’t test this on the first prototype, because of the mishap while cutting the arms.

For now, I’m leaving the wedge in the design. It will be easy enough to test when I cut the next prototype. I can just leave the inner arm-mount screws out of my build, and see how it feels!

The arms still need a weak point

I’m writing about this as a reminder for myself. The Falcon’s arms are 12mm wide from the base to the motor mount. This could be problematic in a bad crash.

I’ve seen this happen on Brian’s FlosStyle. His arms have cracked right at the motor mount. He’s had to replace motors, because the carbon crushes the motor wires into the motor bell. I’d like the arms to break somewhere else!

I plan to put some sort of taper on the arms, so they will be a little wider near the motor mounts.

Making room for the DJI FPV Air module

The DJI FPV Air module is huge. The width isn’t too bad, but that sucker is long, but I think I’ve come up with an interesting way to make room for it.

No matter what I do, the DJI module is going to require a longer fuselage. There’s just no way around that, but I’d like to use every trick I can think of to keep the front end from sticking out too far. Even with a DJI FPV module, I would still want to run a GoPro, and you don’t want all that weight sitting too far forward!

What if I replace the arm brace plate with another bottom plate? That would move the DJI module lower by 6mm.

Almost enough room to squeeze in a DJI FPV module

Your FPV camera tilts upward, so the bottom of the camera sits farther forward than the top. If I move the Air unit 6mm lower, maybe the camera will fit without pushing it forward?

I’m going to keep puzzling this out. It will definitely require at least one new bottom plate. This one will need to include only the rear and center stacks. I hope I can fit the Air module and its FPV camera without extending the front end too far forward.

I’m pretty confident that the DJI module would fit in my prototype frame, especially if I had that extra 6mm of vertical clearance. Maybe I will be undoing some of that fuselage-shorting work?!

When can I buy a Falcon frame?

The most likely answer is that you’ll never be able to buy a frame. I’m not a manufacturer. I don’t know where to have quality carbon fiber cut for a good price. I’ve heard good things about CNC Madness in Canada, and I’ve gotten rough quotes from them for cutting my Kestrel frame.

Their prices are fine in quantity. They offer good service. They gave me a quote for a single frame and for a large enough quantity to get down to their lowest bulk-order pricing.

Even at their lowest price per frame, you would have to pay me roughly the price of an Ummagawd Acrobrat for me to make a small profit and still feel safe enough to make the attempt. If I remember the pricing correctly, you could order one of my Kestrel frames from CNC Madness for almost $10 less than the price of an Acrobrat.

The Kestrel is unique. It is heavily inspired by the Acrobrat, but it fills a different niche, so I am still exploring the idea of finding a way to have it manufactured.

My Falcon frame isn’t unique. I’ve borrowed ideas from all my favorite frames. There’s a little bit of Hyperlite Flowride, FlosStyle, and Glide in my Falcon. I don’t think you should buy my frame when one of those three frames will probably meet your needs.

The only unique feature that I might be offering is the lowered deck specifically engineered to hold the DJI FPV module. I won’t be surprised if I get the CAD files to cut a Falcon frame that fits these big modules up on Gitlab before similar frames hit the shelves, but it won’t be long before this is a common feature.

If you can’t sell frames, why are you designing them?!

I’m having fun. That alone is more than enough reason for me to be doing this. I’m also excited about sharing my work with the community. My frames are all open-source. If you want to cut your own, you can. If you want to manufacture them, you can.

There is one feature that the Falcon and Kestrel share that I haven’t seen in any other frames. The designs are parametric. That means that all the angles and dimensions are clearly defined in the source code.

It is easy to accidentally make a terrible parametric design. I have plenty of OpenSCAD programs that went off the rails, and tweaking the core parameters winds up making the model come out all weird and wrong.

Early Kestrel Parametric Arm Sample

I was careful with both the Falcon and Kestrel. The important parameters all work well for any reasonable range of measurements. If you want to run 7” props on a Falcon, you can simply increase the length of the arm by around 13mm. If you want a stretch-X Kestrel, you can make the arms longer and adjust the angle. If you want to put huge 2508 motors on your tiny Kestrel, you can tweak the measurements of the motor hole spacing, and the end of the arm will scale itself up.

Even if I don’t think the Falcon is unique enough to manufacture, I think there is a lot of value in having the ability to quickly adjust the dimensions of the frame to suit your needs.

Conclusion

I’m excited. I hope that is obvious. The Falcon has seen a lot of small improvements since cutting the first prototype, and I expect it to see at least a few more improvements before I cut another one.

I’m not in a hurry! I need to fly the first prototype more. More importantly, I need to crash the first prototype more! Seeing where it breaks will be of tremendous value!

What do you think? Am I doing a good job? Would you like to fly a Falcon or Kestrel? Do you think I’ve made any serious mistakes?! Let me know in the comments, or stop by Butter, What?! Discord server to chat with me about it!

Are Inexpensive Mechanical Keyboards Worth It?

| Comments

I am a huge fan of mechanical keyboards. I type thousands of words every day. I write blog posts. I write emails. I’m constantly sending instant messages or chatting in Discord.

If you use a piece of hardware several hours each day, you should definitely invest in good hardware. If you sit at your desk for eight hours every day, invest in a good desk, and buy yourself a nice chair like an Aeron. Your back will thank you, and your Aeron chair will still be in near mint condition in ten years!

Expensive mechanical keyboards

My favorite mechanical keyboard is the venerable IBM Model M keyboard. As far as I’m concerned, there’s just no substitute for buckling-spring keys. My current Model M keyboard is stamped with a manufacture date of April 17, 1993. It was used in an office for roughly six years. I even know exactly which office!

These used to be cheap. In the late nineties, I remember ordering ten of the rare Model M keyboards that lacked number pads. It was about $100 shipped for the lot, and they were all in perfect shape. Today, those same keyboards are listed on eBay at prices ranging from $250 to $450 each!

My Model M Serial Number

If we can trust my blog, I used that keyboard for about five years starting in 2013. About two years ago, an old friend sent me a Razor BlackWidow keyboard with Cherry MX Green switches. I’ve been using it ever since.

The green switches aren’t bad. Whenever people ask me how they feel, I always wind up saying they feel crunchier than the Model M’s bucking springs. I often think about switching back. In fact, I’m thinking about it right now. Writing about keyboards makes me ponder this stuff!

Similar Razor keyboards are around $100 or so. Used IBM Model M keyboards are vary in price, but they can be had for $100 or less on eBay.

What about cheap keyboards?

I recently posted a couple of keyboard deals on Butter, What?!. Both keyboards use a clone of the Cherry MX switch made by a company called OUTEMU. I don’t like to recommend products I don’t use myself, but both keyboards were priced under $30. It seemed like a great way for someone to decide if they like mechanical keyboards, so I thought it was worth telling everyone about the deal.

I ordered the DRECO Durendal keyboard with OUTEMU MX Red switches for my wife. That means I have had an opportunity to test it out.

I prefer the more tactile switches like the Cherry MX Blue or Green, but other than that, her cheap keyboard feels fantastic. It has some heft to it, the keys feel fine, it has N-Key rollover, and it has all sorts of preprogrammed RGB LED modes. My only complaint about her keyboard would be that the wrist rest is molded into the keyboard, and it cannot be removed.

I use a cheap mouse!

I tell everyone they should invest in the gear they use the most. I use my mouse every day, but I use a cheap mouse. This seems a little hypocritical to me, especially when you consider that I manage to spend several hours on at least three or four nights each week playing Team Fortress 2!

It is an E-Blue Mazer wireless gaming mouse. They’ve been using one since 2015, and they’re priced at around $20 with free 2-day Prime shipping at Amazon.

It works just fine. Mice aren’t exactly rocket science. There are microswitches in the buttons, an optical encoder on the wheel, and a camera of some sort underneath. When you upgrade to a better mouse, you aren’t getting entirely different technology like you are with a mechanical keyboard.

My Cheap Wireless Gaming Mouse

These wireless mice are cheap enough that we keep one in every laptop bag, and there’s one on each our desks. I’m on my second E-Blue Mazer mouse. One of the Teflon pads started to come off my first mouse. I have extra Teflon skates in a drawer, but I didn’t bother sticking any on. Why bother? A new mouse is $20!

It works great. It is a bit lower profile than most mice, but that stopped bothering me after two days. It is comfortable, and the battery lasts for months. I don’t turn on the gaudy blue lights, though.

I tentatively support cheap mechanical keyboards!

I don’t see any reason to be down on cheap mechanical keyboards. Just like with mice, the cloned Cherry switches are now just a commodity. The expensive mouse might have higher quality microswitches, and I’m certain that Cherry has better quality control than OUTEMU. They feel similar.

Will the cheap keyboard last as long as a Razor BlackWidow? Probably not. Will my Razor BlackWidow last as long as my IBM Model M from 1993? Probably not. Will they last long enough? Most likely!

Mechanical keyboards are like underwear. You need to choose your own style. Some people prefer boxers. Others are more comfortable in tighty whities.

My Wife's Inexpensive Mechanical Keyboard

I like the heavy, solid Cherry MX Green switches. Maybe you won’t. Maybe you’ll prefer one of the softer keys, or the linear keys. Who knows?

You’re going to have to try more than one switch. You can buy small boards with five or six different keys attached. I don’t think this is a good way to really get a feel for what it is like to type with these switches, though. You’re going to have to try more than one keyboard.

Maybe your friends have keyboards you can try. Maybe you can stop by Micro Center and feel up some of their keyboards. Maybe you can just start buying cheap keyboards just to see what you like. They can get so inexpensive these days that they don’t cost much more than membrane keyboards!

Conclusion

Chris has only had her inexpensive mechanical keyboard for a week or so. We’ll see how it holds up. I’ll be surprised if she breaks a key. In my experience, keyboards tend to be pretty durable. Even the cheap, garbage keyboards I’ve bought in the past have held up well. Wired electronics are pretty simple, eh?

What do you think? Do you have a keyboard with off-brand Cherry MX clone switches? Should I keep posting inexpensive mechanical keyboard deals on Butter, What?! There’s no way I can test every keyboard, but I still think I should keep you apprised of these deals anyway. Let me know about it in the comments, or stop by the Butter, What?! Discord server to chat with me about it!

My Open-Source FPV Freestyle Miniquad Frame: The Falcon

| Comments

These projects keep moving along faster than I expect. I thought I had a few months at my disposal when I started designing my previous open-source frame. I started the design work in January, and I didn’t expect to be placing an order for my Shapeoko CNC machine until March. It didn’t work out that way. I ordered the Shapeoko before January was over, and I had it up, running, and cutting carbon fiber in less than two weeks.

The same sort of thing seems to be happening with my new frame. I’m not in a hurry. I figured the first prototype wouldn’t be cut for at least a month, but the design was starting to look relatively complete rather quickly! I cut a prototype on a Saturday evening, transplanted one of my working freestyle quad’s guts over to that frame on Sunday evening, and I was out for a test flight on Monday.

Yet Another 5” Freestyle Miniquad Frame

Why am I designing a 5” freestyle frame? I’m quite pleased with the Hyperlite Flowride quads I’ve been flying. The Hyperlite Glide looks fantastic. They’re all reasonably priced, sturdy, and extremely well-thought-out frames. Does the world really need another frame?

My motivation was quite simple. I own a CNC machine. I can cut carbon fiber. I have experience designing things, and I enjoy design projects. It just seemed like something I just had to do!

Falcon

I don’t feel like my frame design is all that innovative, but I’m starting to think that I’m at least starting down the path towards innovation. I’m bringing together design elements that I like from several sources. I’m also excited that my design wound up offering three different styles of freestyle frame, but so many of the parts are compatible between each configuration.

In any case, the world needs more open-source miniquad gear!

Why is it called the Falcon?

My previous frame is called the Kestrel. Since it is meant to carry an HD camera like a Caddx Turtle or Runcam Split, I thought it would be appropriate to name it after a bird with good eyesight. Runcam is already using eagles and owls in the names of some of my favorite cameras, so they were scratched off my list quickly.

Then I noticed a news blurb about an injured American kestrel being released back into the wild at a park near my house. Kestrels are tiny falcons. Falcons are birds of prey. Birds of prey have keen vision. This all tied together really well, didn’t it?

I tried my best, but I couldn’t find any other specific falcon with a moniker that I found pleasing. So I took the lazy way out. The Kestrel’s bigger, heavier, fatter, tougher sibling is going to be called the Falcon.

What features drove the design?

The Falcon needed to be something that I want to fly, so all of the initial guesstimates for measurements came from my 6” Hyperlite Flowride. I fly 5” props on a 6” frame. I don’t need a compact frame, I enjoy the way it feels, and I like having the option to use 5.5” or 6” props when needed.

I borrowed the TPU GoPro mounting holes from the Hyperlite Floss, Flowride, and FlosStyle. There were going to be two standoffs about that far apart anyway, and adding a third hole in the right spot was easy. I have so many of the TPU mounts printed already, so I may as well be able to use them!

The Flowride has room up front between the camera and stack for my VTX, but it doesn’t have holes for a 20x20 stack up there. I wanted to correct that situation.

I like modern frames with room for three stacks: a 20x20 up front, holes for either a 20x20 or 30.5x30.5 in the center, and another 20x20 in the rear. I don’t think I need three stacks, though, but I want the option to be available.

I really enjoyed the idea that the Hyperlite FlosStyle used the same plate for the top and bottom of the quad. I wanted to do the same, but I was worried about getting the battery straps into the right position.

Stop talking about what you were thinking, Pat! Just tell me about the Falcon already!

Is this where I give the elevator pitch? The Falcon is an open source, parametric, freestyle miniquad frame. It has one of those familiar, long fuselages that you see on most freestyle miniquad frames, and it has 5” or 6” arms in a true-X configuration. The arms are fully parametric, so you can easily cut them to any length, any angle, or scale the mounts for any motor configuration you can think of.

I settled in on three different top-plate configurations. Any of the three plates can be used as a top or bottom plate.

The three bottom plates for the Falcon

The full-size plate would remind you of the Hyperlite FlosStyle. It has room for three stacks and two battery straps. I haven’t cut one of these yet to see if I’m truly happy with where the rear battery strap sits!

The fully truncated plate has room for two stacks and one battery strap. I’m using this as the bottom plate on my prototype.

The partially truncated plate has room for two stacks and two battery straps. I’m using this as the top plate on my prototype.

Using a combination of the partially and fully truncated plates gives you a layout similar to a Hyperlite Flowride. If your goal is to save weight, using a partially truncated bottom plate won’t make much sense. If your goal is to stock fewer spare parts, flying with a few extra grams might not matter to you. Choice is good, right?

Side view of the Falcon

So far, I’ve configured two sets of arms. Both the 5” and 6” arms are at perfect 45-degree angles, and they have 16mm hole spacing on the motor mounts. This is the first time I’ve flown a true-X quad in a long, long time!

The frame only has room for micro FPV cameras, and the camera is held in place with small TPU mounts. This is by far my favorite camera configuration.

I dislike frames with carbon fiber side plates holding the camera, because they limit your options so much. If I want to slam my deck, I can just swap in shorter standoffs. If some important piece of hardware won’t quite fit, I can swap in taller standoffs. I don’t have to worry about a piece of carbon fitting in place!

Are you going to have these manufactured?

I doubt it. There’s little reason to compete with KababFPV. He’s selling fantastic frames at great prices. The Flowride is $45, and it is cut from high-quality carbon fiber. At my scale, it would likely cost me $35 or more to have each frame manufactured, and that isn’t including standoffs, screws, and the tiny TPU mount for the FPV camera.

I can’t compete, and I’m not sure I would want to. I am still thinking about having the Kestrel manufactured. The sub-250 gram market is growing, and I believe the Kestrel is still a fairly unique offering. I might have to figure this out!

Is the Falcon really open-source?!

Yes! It is. In fact, the Falcon and the Kestrel are derived from the very same piece of source code!

This made the early work a bit harder, but I quickly realized that the Kestrel and Falcon are more alike than they are different. The arms are identical aside from a single cylinder that’s cut out of the Kestrel’s arms!

Instead of copying the duplicated functions out of the Kestrel, I thought it would be less work in the long term if the Falcon was built right on top of the Kestrel.

I think the work was worth the effort, but it made me a bit of a liar for a while! I didn’t want to break the Kestrel when pushing the Falcon up to Gitlab, so I wasn’t doing it very often.

That situation has been corrected. The frames coexist quite nicely now. The build script has been cleaned up well enough. The exact parts I cut for my prototype are currently available on Gitlab. There are a few minor problems I need to correct, but nothing that is keeping me out of the air!

You can check out the source code on Gitlab. I would appreciate any sharing and liking you might want to help me out with over there!

What’s next?

I came up with a new idea as I was writing this blog post. Maybe I need to include a set of racing-style plates for the fuselage?

I quite like the idea that the FlosStyle freestyle uses the same arms as the Floss racing frame. Wouldn’t it be awesome if the Floss, Flowride, FlosStyle, and Glide all used compatible arms?

I completely understand why they don’t, but I’m at a point in the design process where I can make that happen. The arm mounts are definitely not finalized yet. Once the Falcon hits version 1.0, I’d like to set that configuration in stone.

There are a couple of problems I need to correct. There are tiny holes in the arm-bracing plate on the bottom of the quad. These holes are there to let you tighten the screws in your stack. I made the holes too small! My 2mm hex driver doesn’t fit! This will be an easy fix.

The carbon of the top plate sits a little too far forward of the front standoffs. You can see it in frame in your goggles! This is also easy to fix. I took a guess at how far the frame should extend past the standoffs. My guess was a bit off!

I want to adjust the arms of both the Falcon and Kestrel. For either frame, you define an arm width in the configuration. For the Falcon, that is currently 12mm. It will be 12mm from the base of the arm right up to the motor.

When an arm breaks, I would prefer that it not break right at the motor. That’s a good way to destroy the motor wires when they get pinched between the carbon and the bell! I plan to add a slight taper near the middle of the arm. With any luck, they’ll break at the weak point!

Conclusion

I’m excited. I designed a 5” freestyle frame. I cut a 5” freestyle frame. I am flying my very own 5” freestyle frame. It feels great!

If you want to know more about the Falcon and the Kestrel, there’s plenty to read about here on my blog, but I’m also posting smaller updates on my progress over at Patreon.

What do you think? Am I on the right track? Do you like where I’m headed? Is this the sort of thing you’d like to fly? Let me know in the comments, or stop by the Butter, What?! Discord server to chat with me about it!

Recovered kestrel released in Oak Point Park”

I’m Managing My Passwords with Bitwarden now!

| Comments

Passwords are hard work. We can’t use simple passwords, because they’ll be easy to guess or brute force. We can’t reuse passwords, because when a random Internet forum’s database is compromised, we don’t want anyone to use that data to steal our Slashdot, Reddit, or bank account. What should we do?

Bitwarden Window

I’ll be surprised if you’re not already using a password manager. You’re probably using something like 1Password or LastPass to store your passwords. Maybe you’re an old man like me, and you’re still using KeePass. It almost doesn’t matter what you use. You need to be using something, right?

My life up until today

I’ve been using KeePass for a long, long time. I couldn’t even take an educated guess about when I started using it. The only change I made was to upgrade to KeePass2 at some point. Even that was a long time ago!

KeePass is an encrypted password database. Your password database is stored locally, and KeePass has a crufty but usable interface that lets you keep track of usernames, passwords, and URLs. There are plugins to integrate KeePass2 with various web browsers, and it has the ability to automatically type your username and password into various dialog boxes.

Syncing your database between your devices is a problem you have to solve on your own. I store my KeePass database file in an encrypted Seafile library. That keeps the database in sync on my desktop, laptop, and tablet. The Android Seafile client doesn’t actually sync files, so I use SyncThing to keep the database on my phone up to date.

The storage devices on my desktop, laptop, tablet, and phone are all encrypted. The KeePass database is encrypted. My Seafile library is encrypted. There’s encryption all over the place, and for the most part, the database doesn’t leave my control. I don’t own my Seafile server, though.

What’s the problem?

All this stuff works fine. All these layers of encryption are nice. KeePass’s integration with Chrome and Firefox works just fine. Getting sync going was easy, but required a bit of effort syncing to Android. Once I had it set up, it worked just fine. Why not keep using KeePass?

To tell you the truth, I probably would have kept using KeePass for years. Last week, I saw Bitwarden mentioned in a comment thread somewhere. I didn’t think much of it. I just assumed it was another attempt at a KeePass replacement.

Then I saw it mentioned again a few days ago, and I realized that Bitwarden is attempting to be a replacement for LastPass or 1Password. That piqued my interest. An open source LastPass equivalent that I could host myself sounds awesome!

Bitwarden Family Collection Sharing

1Password and LastPass have one particular feature that KeePass will never be able to have. They allow you to share passwords with your friends and family. This wasn’t a deal breaker for me, but I imagine it will come in handy. With Bitwarden, our Netflix and Hulu passwords won’t get out or sync between mine and my wife’s KeePass databases!

I’m using Bitwarden, but I’m not hosting my own server

A few nights ago, I did a bit of research on Bitwarden. I’ll tell you some of the details of my findings soon, but I didn’t find anything that scared me away. I signed up for an account, upgraded to a premium account for $10 per year, and I imported my KeePass2 database.

The process was painless, and I haven’t had any problems signing into anything yet. I’ll keep you updated over the next few months.

You can host your own Bitwarden service, and it looks easy enough to set up. If you already have a server out there somewhere, they offer a Docker image that you should be able to have up and running in no time.

When I had a server colocated downtown, I would most definitely have set this up. I’ve been trying to offload most of that work to other companies, though, and this is definitely inexpensive enough to outsource.

The free Bitwarden account would meet my needs, but the premium account was inexpensive enough.

Password hygiene and vault health reports

These services are available with a premium Bitwarden account, but what on Earth does that mean?! Bitwarden will correlate information in your password vault with leaked password databases. Have your email addresses been compromised in a password leak? Are you using passwords that are commonly found in those leaked databases? Are you still using weak passwords anywhere?

Bitwarden can give you this information. I have a lot of old cruft in my KeePass database. Ancient websites that I will probably never log into again. Websites that are long gone. Old garbage. Bitwarden’s health service threw up a lot of red flags on that old junk!

KeePass is better in many important ways

BitWarden will always be a little scary. Just like 1Password and LastPass, the BitWarden browser extension has full access to your password vault. Once you enter your passphrase, all that important information is sitting around in memory in an unencrypted state. Not only that, but that unencrypted data is part of your Chrome or Firefox browser process.

You’re relying on Firefox or Chrome to keep malicious web pages or extensions out of your password vault. You could be one compromise away from your password database being gobbled up.

KeePass is always a separate process. The browser extensions for KeePass don’t store your data. They communicate with a KeePass process to request a particular username and password. When the request is made, the KeePass desktop app will ask you for confirmation.

If you’re logging into Reddit, you might check the button to remember this decision. Next time you log in, KeePass will hand that password over to the browser without prompting. Maybe you would want to be more careful with your bank password, so you might require confirmation each time.

I know I’m oversimplifying things when I say this, but I’m trying to keep this post under 2,000 words. Bitwarden, 1Password, and LastPass may have your bank password in memory in the browser process whenever the vault is unlocked.

KeePass may have the password in memory, but it is further protected from the browser by your operating system’s kernel’s memory protections. That’s a much bigger wall to break down or climb over, and just having an additional wall is nice.

Does this really matter?

It depends who you ask. Security and ease of use are almost always at odds. It would be simplest to just use a password everywhere for your password, but that wouldn’t be safe. It would be extremely safe if you could memorize a different 128-character password for every single service that you use, and type it in manually each time, but that’s never going to happen.

I’ve thought about this problem for years. I’ve done my research. I’ve decided that the level of protection and convenience provided by Bitwarden, LastPass, or 1Password is the right compromise for me.

Yes. I most definitely gave up some amount of security for the sake of convenience when I switched from KeePass to Bitwarden. I’m pleased with this compromise.

Bitwarden’s pricing structure is weird

I was confused when I looked at their pricing charts. I quickly zeroed in on the $1/month family plan listed under organization accounts. It says it includes 5 users, and that’s only $2 more per year than the premium plan. Seems like a no-brainer, right?

That’s not how it works. Organization accounts are something completely different. Each user has to have either a free or a premium account. The organization accounts are where the shared password vaults live.

I have a premium account. My wife has a free account. I believe you could say we’re using a separate organizational account for the passwords we share with our family. It is just the two of us, so our organizational account is free as well. We will likely be setting up an organizational account for Butter, What?! to make it easier to share important passwords with Brian.

Is Bitwarden safe?

I suppose it depends on what you’re trying to protect yourself from and your definition of safe, but I believe it is more than safe enough for my use. I did some research. I tried to find as much terrifying information about Bitwarden as I could. The scariest stuff isn’t that scary.

I found this short security review of Bitwarden. He found that the password to log into the service and the password used to encrypt your database are the same. He has a heading that says your password is sent to the server, but it appears that some sort of salted hash is actually sent to the server.

That’s not too terrible. It would be nice if two different passwords could be used, but I understand the design choice. A single password is much more convenient for the user!

He also noted that Bitwarden loads quite a bit of Javascript from third-party sources. It seems that this has been addressed to some extent by the Bitwarden developer in recent months.

Bitwarden was audited by a third-party security company last year. There were definitely some problems. The major ones seem to have been addressed quite quickly.

Conclusion

I’ve only been using Bitwarden for a few days. I’ve been holding off on migrating from KeePass to something like LastPass, because I prefer to use open-source software. I especially prefer to use open source software for my most important infrastructure. My virtualization, my web servers, my file sync server, and all my computers run on open-source software.

Bitwarden has been a welcome surprise, and I look forward to giving you an update in a few months. I expect that there won’t be much to tell you about. If it is working fine today, I expect it to continue to do so in three months!

What do you think? Are you a KeePass holdout like me, or have you already moved on to something like LastPass or 1Password? Did you already discover Bitwarden long before I heard of it? Tell me about your experiences in the comments, or stop by the Butter, What?! Discord server to chat with us about it!