Had a dream this night (it’s 3am, so I can hardly call it last night). Ok, there were a lot of extraneous parts of it (like Bart Simpson helping defeat the rebels because the rebels accidentally left him behind, and something about drinks machines and group showers) but in part of the evil Empire is having a victory celebration when Darth Vader singles out somebody for being a traitor.
Said traitor then responds that there is a drink bottle in his desk “upstairs” with what will look like ordinary water to any scan known to man. But it will eventually destroy anything it touches but first it will turn that thing into more of itself. It’s currently in the air, in the water supply, and eating its way through his desk. Eventually it will consume the entire planet (or Death Star, not sure which it was). Since there is no way to know if it’s in you or not, everyone here who leaves the planet/Death Star might be bringing destruction to wherever you go. Every one here, including Vader and the admirals, are effectively dead.
It was sort of like grey goo meets a super virus. And I’m kind of astonished my brain thought it up.
So in the last blog post I left off with wanting to do some manual editing of the waypoint file. The first thing I had to do was grab the KMZ file from the controller. The controller is an Android device, and I have two programs that are supposed to allow you to connect to Android devices on your Mac. I’ve had inconsistent results getting these connections to work. One of the programs, OpenMTP, warns you to close the background tasks from Google Drive and Dropbox and Android File Manager before it will be able to connect. And by trying various combinations of doing that, rebooting the computer, rebooting the controller, I was able to connect a few times.
The waypoint file is a KMZ file, which is actually a zip file containing two files, template.kml and waylines.kml. They’re both relatively straight forward XML files. You can figure out most of the syntax just by looking at one of the files you’ve downloaded from the controller. So after I got a connection to my controller, I grabbed one of the KMZ files, extracted the waylines.kml file to copy the first “<Placemark>” to the end of the “<Folder>” and change the “<wpml:index>” tag from 0 to 17. I refreshed the file in the KMZ file and uploaded it to the controller.
This gave me a full circle that returned to the start, which made it much closer to what I wanted. I still get a little bobble when I restart – even though it’s moving from point A to point A, it still has to turn the drone about 45 degrees and then back, for some reason. Also I decided that since I’d decided to change from shooting a hyperlapse to a sped-up video, the drone was moving too slowly. Also it looked like the gimbal angle was down too far, so the roof was not the center of the video. I made the changes to the waylines.kml file to support that – I changed all the “<wpml:waypointSpeed>" from 0.213… to 0.852 (meters/second). and I changed all the “<wpml:waypointPoiPoint>” so the third argument (the height) changed from 3.0 to 5.0 (meters above ground). But then I had a multi-hour long struggle to try to get the damn controller connected to my Mac. Eventually I gave up, and tried my ancient Windows laptop. I don’t know why, but I thought Windows had native support for Android. But before I could even try, I discovered that since the last time I used it, it’s decided that it no longer has any drivers for the WiFi or Ethernet controllers. I presume that’s something to do with the fact that it’s Windows 10, and it’s ineligible for upgrade to Windows 11. Not that I could, without a network connection. So I guess it’s going off to electronic recycling. Pity.
But as I was coming to terms with the fact that the laptop I “borrowed” from a former employer is no longer working, I glimpsed a USB A to USB C port handing off one of the front USB ports on my Linux box. I use the Linux box from the command line all the time, but I figured for this I’d probably need to be in the GUI. So I logged into KDE, and plugged the controller in. And it immediately popped up a Dolphin file manager window showing all the files in the controller. So I was able to do those changes. What a change to find something that’s easier in Linux than on the Mac.
I did a couple of test flights this morning. At first, the one bit of XML I wasn’t sure about, the command for what to do at the end of the waypoint flight, wasn’t set right. Fortunately you can do that easily on the controller. After those first two flights, I wasn’t happy with where the drone was pointing. I decided to edit the POI on the controller, and did two more circles and I think it came out just about perfect. I suppose I could make another edit and duplicate “<Placemark>“s 2-16 at the end so it can do two circles without having to restart, but I’m kind of running out of time. And what I’ve got now is pretty good, especially after I speed it up in Final Cut Pro X.
So we signed a contract last week to get a new roof done on our house. It’s going to be ridiculously expensive, and both Vicki and I have had moments of self-doubt about committing to this. But one thing I wanted to get out of this, as well as “not having water leaking inside the walls that we don’t discover until the plaster starts failing”, is a great drone video.
One thing I’ve seen before, and what I want to emulate, is a video where the drone flies circles around the house being worked on, but with it doing it as a sort of time lapse, maybe taking a flight every hour or so while the work goes on. In my mind, I see it as doing about a turn and a quarter to a turn and a half, and then fading into the next flight, and so on.
My first problem is getting it to do consistent circles. The problem is that the DJI Air 3 can do waypoint flights, but there isn’t a “do a circle at this distance from this POI” waypoint option. I found a site that would generate a bunch of points to define a flight around a point, but it ends the flight at the 16th point, rather than completing the flight back to the start. When you edit the waypoint flight on the controller, you have options for what to do at the end of the flight, and one of the options is to fly to the start point. Jackpot, you might think. But no, when it does, the drone points toward the final point, and flies towards it, instead of sidestepping to it. I got a smoother and more complete circle using the QuickShots circle, but since you have to highlight an object to circle around with your finger on the screen, I have worries about how repeatable it will be.
My second problem is that originally I was thinking in terms of doing a hyperlapse. The waypoint editor in the Hyperlapse is simpler than the main waypoint editor for some stupid reason – you can’t define a POI to point the camera at, for instance. The instructions for the site that generates the waypoint file involve you connecting the controller to your computer and copying the KML file on top of another waypoint file. But I haven’t seen any instructions on how to do that with the waypoint editor in Hyperlapse. So I’ve been experimenting with the timed exposure mode where it just takes a photo every two seconds and then I combine them into a video in Final Cut Pro X. For my first several tests, I was trying to use manual exposure so I could use a really slow shutter speed to get a tiny bit of motion blur. But yesterday when I was doing these experiments it was partially cloudy, and every time the sun peaked out from behind a cloud the exposure blew out. I even tried pre-processing all the frames through Adobe Photoshop Elements and that helped, but that didn’t fix the blow out. In retrospect I probably should have set the exposure when the sun was out.
Today I tried again, but this time I used automatic exposure. I think the results were better. But again, today was sunny with a few clouds, so it was probably a simpler exposure problem. When clouds came over, it did get a bit darker.
The third problem was that when you create a hyperlapse in Final Cut Pro, the video isn’t stabilized. Weirdly, in Final Cut Pro X you can’t stabilize a compound clip, you have to export it as a video, re-import it, and then stabilize the newly imported video. And it’s been pretty windy while I’ve been doing these tests, so even with the stabilization, the resulting video was not very stable. I was starting to get less in love with the idea of a hyperlapse. I’m starting to think that what I want to do is shoot a video, and then speed it up. I tried that out (with a QuickShots circle) and I really like the result – the video is very smooth, and it had much more consistent exposure.
So all I have to do is solve the problem of making a waypoint file with a double circle, and make it repeatable. I’m hoping I might be able to edit the XML of the KML file manually. I guess that’s tomorrow’s testing.
My Linux box has a M2 NVME drive with standard stuff, but bigger files go on two hard drives in a RAID1 (mirrored). A few months ago, one of the drives fell off the RAID, which usually means it failed. Luckily when one drive fails in a RAID1, the content continues to be available.
At that time, I just bought a new drive, swapped it in for the old one, and then added it to the RAID and then it automatically resynchronized. No muss, no fuss, no bother.
But a few days ago, I noticed that the SMART monitor on the other hard drive was showing some errors. I guess it makes sense that if one drive fails after 6 years, it’s not too surprising that the other one does as well. It hadn’t failed off the RAID yet, but I figured I’d be proactive. I ordered a new hard drive, figuring it would be as simple as last time.
And of course, this time it wasn’t that simple. After swapping the drive, the box wouldn’t boot, because the BIOS didn’t recognize the M2 NVME drive as a bootable drive. It showed up in the NVME configuration menu of the BIOS, but I couldn’t add it to the boot menu. I tried the “update the BIOS over the network using a PXE boot, but it just hung up and didn’t work. But that option had put the PXE boot options in the boot priority menu, and wouldn’t let me add anything else until I disabled all boot options. So I fiddled a few BIOS configurations (I think I turned off support for some AMI special NVME mode and turned on some boot thing that I had no idea about), and rebooted, and this time it booted. But now the command I used last time, mdadm /dev/md0 --add /dev/sdb failed because the RAID was inactive. So after a bit of googling and a bit of experimenting, I found the combination that worked:
mdadm -A --run /dev/md0 /dev/sda
mdadm /dev/md0 --add /dev/sdb
The first command re-assembled the RAID with just the first drive in it, and the run option to make it make it active even though it doesn’t have both drives. The second command then adds the second drive. I couldn’t put both drives in the first command because when I tried it said that the new drive wasn’t formatted or whatever for RAID.
So now the RAID is happily resynchronizing and I’ve got no SMART errors showing up in my munin console. So all is right in the world. Now if only I could convert the RAID box I have on my Mac Studio from a RAID0 (interleaved for maximum speed) to a RAID5 (safer for long term storage) without paying $150 for a new license for SoftRAID.
Wednesday night, some of our fellow Cougites (yes, I’m inventing that word, and no, I will not be taking notes) said that they were going for a hike at 7:30 am. Did you know there was a 7:30 am now? I guess I knew back when I worked, but I’m retired, and mornings are for lazily checking all my socials, doing the Wordle and Connections, and stretching out my hamstrings as well as I can. The four of us might toddle out of bed by 10 am, but only because we all need a pee.
Also, because of my chronic pain and Vicki’s sciatica, not to mention the blisteringly hot weather we had while we were there, we’re really only good for one “thing” a day. Sometimes two. And while we were there, that one thing was variously a hike to Old Man Cave, a trip into Logan to shop at the Kroeger, a hike to Ash Cave, playing corn hole (extremely badly – the spectators made us stop at 11 because otherwise the rest of the brackets wouldn’t get done by dinner). Also, Vicki signed up to provide a bunch of stuff for the pot luck dinners on Friday and Saturday night, so she spent a lot of time cooking.
The cave hikes were amazing. In many ways they reminded me of the Niagara Escarpment, especially the Bruce Peninsula, except the cliffs and undercut caves were on both sides of you. But there were differences too – these cliffs were sandstone rather than dolomite, so they didn’t have rectilinear cracks all through them, and the pattern of water erosion was different. Both “caves” were more big overhangs where the cliffs had been undercut by running water. I found Old Man Cave more interesting because the hike is through a narrower canyon and there were some very interestingly designed bridges over the river in several places. I would have loved to fly my drone though there and video some of that, but the process of getting permission to fly in an Ohio State Park was somewhat complex. Plus I probably would have had to do it at 7:30 am, whenever that is.
As I said, there were a couple of pot luck dinners in the evenings – plenty of food and really good food too. Brian make pork butt that was excellent. One morning there was a pot luck breakfast as well. I forget who was manning the grill (I told you I’m bad with names, didn’t I) but he somehow made world’s thickest pancakes without burning the outside or leaving a gloppy uncooked core.
Friday I flew my drone around to take another video of the campsite while everybody else was lined up for dinner. As I’m writing this it’s still uploading, but when it’s ready, it should be visible at:
After dinner, the evening’s entertainment was often sitting around the campfire and chatting with the other Cougites. Some nights we played a game called Left Right Center, which is completely random and mindless, but also crazily entertaining. A good thing to play when you’re drinking your favorite adult beverages.
One of the suckiest thing about chronic pain is no matter how careful you are to try and sit in a way to minimize the pain, it just sucks the energy out of you all day, so it’s mostly my fault that we didn’t stay well into the night at the campfire like so many other people did. I feel bad about that, because I loved the time we did have together.
Saturday night and Sunday morning, many of the other Cougites were packing up to leave, and by the time we had sorted out ours and the dogs bathroom activities, there was only one other Cougar left. And they left the next day. We stayed until Wednesday – it’s the first time we’ve camped for a week in our trailer, and it’s not the end because on Wednesday we packed up and headed for another campground, Mountain Top Campground in PA. We’re going to be here until next Tuesday, making a 15 day total trip. We’re trying to expand our time horizons for trips because either next year or the year after, we’d like to take a trip out of British Columbia, maybe doing the US route one way and the Canadian route the other.
Because I bet you’re dying to know, we used the pooper scooter 3 days at Top O’ The Caves, doing the grey tank 3 times and the black tank once. I know a lot of people say they don’t use the pooper scooter with the black tank, but I gave it a good and thorough flush-out afterwards, and did the grey tank afterwards, making 3 trips on the same day.
Oh, and returning from one of those trips to the dump station, I got what I assume is the southern equivalent of a bollocking – after I drove back to our site, the two “trainee camp hosts” at the entrance to our loop of the campsite came by in their golf cart, and asked me if I was all right because they saw me driving fast and assumed I was having an emergency. They sounded so geniune. Yeah, ok, I get it. I tried to pay more attention to the 5 mph speed limit after that. It’s a lot easier to do that when you’re going out to the dump station, because the pooper scooter says not to exceed that speed, but coming back empty with the scooter in the bed of your truck when your loop of the campground is almost completely empty, not so much.