I picked up a HobbyMate HB298T AIO FPV Camera for my Tiny Whoop. It’s discontinued, which is a shame, but you might be able to find them on eBay. I got it because of this very specific feature most micro-FPV cameras don’t have: Built-in Microphone. BUT… I haven’t installed the addition to my FPV goggles […]
I picked up a HobbyMate HB298T AIO FPV Camera for my Tiny Whoop. It’s discontinued, which is a shame, but you might be able to find them on eBay. I got it because of this very specific feature most micro-FPV cameras don’t have: Built-in Microphone.
I modeled the holder separate from any mounts so this component could be added to other rigs: a Tiny Whoop, a glider or plane, maybe even an RC helicopter. I added pegs to the side so you can secure the camera in the mount with a small rubber band.
I used a body reamer to cut a small hole in the roof for the platform post to go through. I added some velcro to the back of the platform to secure a small FPV camera battery.
I used CA glue to permanently attach the mount to the platform and make them one piece. To speed the dry time I used some CA kicker.
Then I fastened the finished mount to the body with a body clip from the underneath. There’s some tape there to reinforce the back of the roof after it got ran over by an E-Maxx more than twice it’s size.
Here’s some footage of us tooling around in the neighborhood. The recording is made at the googles, so you see all of the interference from trees, cars, etc. At the end the signal cuts out because I forgot to fully charge the FPV camera battery
WordCamp US 2020 was canceled, citing online event fatigue. But the organizers of WordCamp Minneapolis / St. Paul did not. Would we just be another notch in the bedpost of 2020 online event fatigue?
To be honest, the organizing team did contemplate canceling WordCamp Minneapolis / St. Paul as the Coronavirus pandemic continued to linger. But everyone agreed that pivoting to a single-day virtual event was a better idea – and we stayed the course.
When we had a real-life venue selected, there was an excellent computer lab available with over twenty computers. Going virtual meant re-thinking the game-plan. With WordCamp US canceled, it looks like WordCamp MSP’s KidsCamp might wind up being the only virtual KidsCamp of 2020.
Since it was uncharted territory, we cut the attendance in half, to 10 available spots. We reserved them for locals only, as our regular in-person conference is truly supposed to highlight pillars of our local community. With 80% local speakers at the conference, I think our organizers nailed it.
Check out the inside pages – including the first page which has a place to write down all of your new hosting and WordPress site details.
To make sure things would run smoothly, I went through the entire curriculum with my 11 year old son. We did it the same day the rest of the team was doing their streaming dry-run, two days before the live event. I even had my son go to his grandma’s and log in there via Zoom so we could simulate teaching remotely.
What did I learn from that experience? While I can power through a 3-hour zoom call with no issues, kids need to take a break. When my son asked to take a break I realized that I also was hungry, thirsty, or needed to use the restroom. So I added TAKE A BREAK in all-caps to my schedule notes in various places.
The Live Event
The day of the event went off without a hitch. We had 8 registrants and only 6 showed up. A 25% no-show rate is typical for WordCamp, so I didn’t sweat it.
We did some self-reflection and brainstorming. We talked about people we follow on YouTube and social media and what we like about them. My son cited DanTDM who plays a variety of games, not just Minecraft. When it came to self-reflection, I was pleasantly surprised that my son listed gaming as one of his interests, not just Fortnite. He wound up setting up a site with the central ideal of helping people with their gaming strategies. I likened it to Chris Lema’s mantra of Be Helpful – it warmed my heart 😍
Other kids chose different central ideas based on their interests: Animals, Music, Gaming – it was good to see a variety from the group.
We went with GoDaddy as our KidsCamp hosting sponsor, and they provided slick managed WordPress sites that didn’t require us to FTP any zip files to get started. This was one of the most important pieces of doing the camp virtually. We literally had zero technical issues to troubleshoot. 💪
Then we were off, publishing an about page and our first post. Then customizing our themes to reflect our tastes.
Besides taking breaks, doing the event virtually was challenging because I wanted all of the kids to stay in sync. When you’re in a lab, it’s easy to see what screen someone is on and help them move forward.
My approach to doing it virtually was to share my screen and have everyone let me know when they’re on the same screen so we can all move forward together. It was challenging at times because some kids would give a thumbs-up on their camera, some would type “done” in chat, some would confirm aloud, and others wouldn’t respond. I left plenty of breathing room and we managed to stay together.
I’m glad we were able to put this event on, and I’m hoping dearly that we can do KidsCamp again in person at Metro State in 2021 🤞
I am not a gun nut, but this build was inspired by this comic and conversation:
Looking at it made me think that a similar, but more useful application of vertical bike rack storage, would be for fishing rods. Moore Lake is just down the hill from where I live, and it’s stocked with Bluegills and Bass 🎣
I made this fishing rod holder that attaches to my bike rack for less than $20, mostly from scraps I had in the garage. It holds four rods, but you could adjust it for as many as you’d like, as long as your bike rack setup will accommodate them.
I chose 1-1/4″ PVC because all of our rod handles will fit into that size pipe – you should test fit your thickest fishing rod before you buy.
I attached a PVC coupling to the pipe and then cut the pipe (with the coupling attached) using a hacksaw to 9 inches. This was both the size of my scrap wood and the size of the longest rod handle. You should go longer if your handles are longer than 9 inches.
To make a permanent connection, I used PVC primer and cement to bond the couplers to the pipes.
The couplers are there to serve as stops for the tubing straps – so they don’t fall through them.
To fasten the tube straps to the board I used #10 x 1/2″ sheet metal screws. I pre-drilled holes in the wood with a 1/8″ drill bit, then used a screwdriver on the screws.
I designed 3D printed hangers because I couldn’t find any readily available hooks that I liked at the hardware store. I like Topeak racks because of how their bag systems attach. I designed the hangars to conform to the Topeak’s 10mm rod construction – which I believe is a standard size for many bike racks.
To fasten the hangers to the board, I used #10 x 3/4″ sheet metal screws.
Backing and Hangars
The board I used was some leftover 1/2″ plywood. Mine was 9″ wide so I went with that – luckily that’s how long our rod handles are. You can cut the width to however many rods you want to hold. For my 4 rod holders it wound up being 15″x9″.
To make sure everything lines up well on the back, I used my Thule panniers as an example. The metal plate that sticks to the magnet is approximately 9″x4″ – so I cut a piece of sheet metal that size. You can use a hacksaw to (slowly) cut it. I used a cutting wheel to make quick work.
I also used the Thule pannier as a reference to gauge the placement of the metal backing position relative to the hangers so they’d be generally in the right place. It will ensure the steel plate is the right place so it will line up with the rack magnet without having to move it around on the rack.
I used 3/4″ screws to fasten the hangers, and 1/2″ screws to hold the steel plate. I pre-drilled the steel with a 3/16″ drill bit, and the wood with a 1/8″ one.
There’s no provisions on this rack for bait and tackle, but you can use the opposite side of the rack for a pannier, or just put your bait and tackle in a backpack.
When I’m fishing while paddling, I keep a very small tackle box on the boat with me, and that is also perfect for local fishing by bike.
Riding around with 6-foot fishing poles is like riding around with a whip antenna – it’s real tall. Just beware of any low tunnels or doorways, tree branches, etc.
Also, you’re not going to be able to put a leg over the back like you normally would. A pole (and hooks) will prevent you from doing that. Be mindful while you’re getting on and off.
I (perhaps stupidly) tried out the purple worm seen in my tackle box above – set up as a Texas Rig. I felt some serious bites, but I didn’t land anything. In the end I’m lucky because I didn’t bring a net if I actually had caught a tenacious bass.
While I didn’t bring one, you could certainly put a net in one of the holders. This is more of a catch-and-release type of rig, and I wasn’t planning on any big bites my first time out, just a couple of sunfish 🐟
Disclaimer: I am not left handed, but this is a great transmitter whether you’re left or right handed… During quarantine I played VRC at least once a week to get my racing fix since all of the tracks were closed. My daughter would often ask if she could try racing as she watched me play. […]
Disclaimer: I am not left handed, but this is a great transmitter whether you’re left or right handed…
During quarantine I played VRC at least once a week to get my racing fix since all of the tracks were closed. My daughter would often ask if she could try racing as she watched me play. But converting my Spektrum DX3R to left handed operation meant taking it apart to move all the components to the left.
I’d been eyeing a Flysky Noble NB4 because it’s a pro-level low latency transmitter, and it’s killer feature is that it can instantly switch from right to left-handed operation.
Since I wasn’t getting to the track anytime soon, I sold my DX3R and ordered a Noble NB4 with some extra receivers. This write-up will go through some of the features and how I set it up because there are a few things you’ll want to consider.
The servo response rate can be set up to 400Hz. From the main menu select the gear icon, go to RX Set and then Servos Frequency. Choose Custom and increase the frequency to 400Hz – but only if you have digital servos. Analog servos can overheat and will fail from this setting.
At 400Hz my SkyRC program box measured 387Hz. Either the advertised or measured rate would still put the response at 2.5 or 2.6 milliseconds (respectively).
Whether or not 2-way or one-way communication affects the response time is unclear. Without clear information, I went for a one-way setup… Hoping for the fastest feeling.
To set up one-way communication, touch the gear icon from the main menu and then select System and then Radio Frequency Setup. Change the RF Std. setting to AFHDS3 1 Way.
Any receivers bound in 2-way mode will need to be rebound with the one-way setting.
Binding to a receiver in one-way mode is not as clear because there’s no confirmation on the transmitter. Follow the instructions and it will work, there’s just no confirmation on the transmitter side.
Pro-tip: a quick press of the power button will bring you back one screen, the same way the < does on-screen. The touchscreen back can be finicky because it’s at the edge of the screen.
The NB4 has plenty of buttons and it’s very flexible and easy to assign channels/functions to the various knobs and buttons.
Here are all of the assignable buttons as seen from the Assign menu:
The thing you may want to keep in mind is the round VR1 knobs on either side of the transmitter. You can see one in the upper left here:
The VR1 knobs are “absolute” meaning they have a definitive start (0%) and stop (100%) points. This is important if you use the NB4 to control multiple models.
For instance, if you assign steering dual rate (D/R) to a VR1 knob, the setting will be retained between models. This might not be desirable, so just be aware.
I mostly race, so my common assignments for VRC, RC10 and Slash are as follows.
I keep the steering related controls that I might want to adjust while racing on the switches closest to the steering wheel:
TR1 Steering Trim
TR2 Steering EXP
For the “paddles” by the wheel, I use them for the timer. I have a 5 minute timer set that I use during open practice to simulate a normal qualifier. This helps me make sure motor temperature is OK and helps me change gearing accordingly.
SW2 Timer reset
SW3 Timer start/stop
For the wheels on the top of the hand grip, I use those for dual rate:
TR3 Steering D/R
TR4 Brake D/R
Lastly, I use the left VR1 knob for throttle dual rate. It allows me to turn down the maximum speed on any model, in case my son or daughter want to drive. Just remember to turn it back up before you go racing!
The best feature for me is being able to switch it from right handed to left in a matter of seconds.
If my left handed daughter wants to play VRC or drive my Slash, I just flip the wheel around and turn down the throttle.
Before you install Duplicati, there’s one question you need to ask:
Does this computer have multiple user logins (that you want to back-up), or is it primarily used by one user?
This is important because you can install Duplicati in one of two ways: to run as a single-user, or to run as a system service that is available to all users. By default Duplicati is installed for a single user, but if there is more than one user on the computer you want to be able to back-up, you’ll want to install it as a service.
If you don’t install it as a service, when Duplicati tries to read files that belong to the other users, it will get a permission denied error and won’t be able to back those files up. You don’t want to find out that your files weren’t backed up when it’s too late.
Once that’s done you can (re)install Duplicati, hopefully without errors.
For my MacOS installation I needed to install it as a service. It’s my wife’s Macbook. I also use it for Fusion360, and I like my scroll settings different than she does. So it has two user accounts, both with files we want to back-up. Installing Duplicati as a service in this case is a must.
Both of the plist configuration files can be installed as any user as they’ll be going in a system-wide location which will run Duplicati as a system service.
$ sudo vi /Library/LaunchDaemons/com.duplicati.server.plist
Once those two files are in place, the next time you reboot and log in, any and all users should have a Duplicati icon in the system tray. You can then configure a backup job to read all users’ files without issue.
Useful Duplicati Options (all platforms)
There are two settings to reduce Duplicati’s resource usage:
On my brand-new 2019 XPS13 developer system Duplicati was using 280% CPU.
In other words, three of the 8 available cores were dedicated to Duplicati, plus disk I/O. I recommend setting use-background-io-priority to true and thread-priority to something below “normal” to adjust the CPU usage to an acceptable level. You can find these under “Advanced options” on the last page of the Add/Edit Configuration page of a backup.
As always, test your configuration. I like to do a daily backup with “Smart backup retention” so my backup cloud disk usage doesn’t grow indeterminately.
Make sure your RaspberryPi backups are completing. It will take a while if you have a lot of data. For a 1TB backup from my RaspberryPi, it took a full week to complete because it is s-l-o-w. Once a full backup is made, the incremental updates shouldn’t take as long, but they may still take longer than a day to complete.
March 11th, 2020 to me, felt a lot September 11th. Thousands of people didn’t die in one fell swoop, but it was when Coronavirus shifted from concern to cancellation. What once seemed far away was at our doorstep. A grim reaper coming that would rack up a worldwide death toll two orders of magnitude greater than September 11th.
As trivial as it sounds, WGI was cancelled on March 11th. With units traveling to Ohio from several countries (including Japan) and all over the US, it made sense to cancel it. Should we all be sitting in close quarters in a poorly ventilated arena? Probably not. Sites like is it canceled yet? had been tracking canceled events, and this was just another notch on the bedpost.
Maybe I could still enjoy some local live music? I had tickets for the orchestra that Friday, March 13th. It was to be canceled too, but not entirely. The orchestra would play – without a hall audience, and they would broadcast it on Minnesota Public Radio. The repertoire? Shostakovich’s 7th – The Leningrad Symphony.
Music is one of those things that gives people hope that there will be better days, no matter how bad things get. Shostakovich’s 7th was no stranger to tough times, having been both composed and premiered under dire circumstances.
Connection to Drum Corps
My love of classical music was reinforced through my 4 years marching in the Phantom Regiment Drum & Bugle Corps. I loved playing music that was new (to me), then researching a composer’s other works. I relished finding great recordings, which would further fuel my curiosity.
The obvious connection from Shostakovich’s 7th to my corps, is their 2002 program entitled Heroic Sketches – but long before that program ever took the field, I heard a piece that begged to be performed by a strong hornline. One that wound up being a cornerstone of 2002 show…
Back in the day…
The 1996 Phantom Regiment show Defiant Heart opened with a different piece by Shostakovich called the 4th Ballet Suite. As always, I would find recordings of the music we were playing to hear the original, and to hopefully hear something new.
I bought a recording of the Scottish National Orchestra conducted by Neeme Jarvi on the Chandos Label. It also included Symphony No. 10 – boy was I in for a surprise. I had never heard that Symphony, let alone the second movement Allegro, and it is a thrilling performance.
One of my favorite things about classical compact disc recordings (if they’re included) is the liner notes. Sometimes they have a history of the composer and the piece, and I would often use that as a basis for more research, or just to simply help paint a picture of what the music was about. From this CD the liner notes read:
The second part, the scherzo, is a musical portrait of Stalin
And here is the Phantom Regiment hornline playing an excerpt during their finals warm-up in 2002:
Symphony No. 7
That same 2002 program closes out with Shostakovich’s 7th. While researching that piece in 2020 during quarantine, I came across this recording which is stupendous.
I don’t have the CD liner notes to reference, but the comments on the YouTube video are worth reading. This one is my favorite of the bunch. I don’t know if it’s true or not, but I choose to believe it is.
The story goes, Leonard Bernstein was in failing health and he knew he was never going to stand in front of the Chicago Symphony ever again. Apparently there has been a long standing tradition of never encouraging the brass section of the CSO; not even looking at them or else they’ll blow you off the stage. During the end of this concert, and being a helpless romantic himself, good ol’ Lenny not only looked at the Chicago Brass, but he asked for everything they had. And the rest is history!
There are several great resources out there for setting up a gaming server on Microsoft Azure. This one is specifically for VirtualRC the R/C racing simulator. If you want to host a race and participate in the race itself, you’ll need two VRC accounts (and possibly paid subscriptions): one for you and one for the […]
If you want to host a race and participate in the race itself, you’ll need two VRC accounts (and possibly paid subscriptions): one for you and one for the race host. You can host a race with a free VRC account, but you’ll be limited to the free tracks and cars – that’s OK too – you’ll surely get a lot of people joining your server if you’re hosting races on the free-to-play tracks.
If you don’t already, sign up for a free Azure account. They usually give you a $200 credit when you first sign up, which is great to get started with. After about a month of hosting a 2-hour game night once a week, my monthly costs were between $20-30. I thought I could make my $200 credit last for at least 6 months, but sadly the $200 credit only lasts for the first 30 days
But, this is still likely the easiest way to get a rock-solid gaming server set up that does not rely on your home connection.
Sign into portal.azure.com. In the left navigation, click Resource groups. Then click Add.
I chose to use an NVidia based system for graphics performance in case I wanted to livestream our races. I thought having the server closer to the racers would be best (North Central US), but there’s another factor to consider: the VRC server is in Europe. So while I want low latency from drivers locations to the Azure server, I also want low latency from the Azure server the VRC server where the races are registered.
I picked East US and it seems to have been a wise choice. My ping times to the VRC server are consistently around 100ms.
Once your resource group is created, select Add to add a virtual machine (VM) to it.
Select Windows Server 2016 Datacenter – we’ll actually update that to the newer 2019 server in the next step. An alternative is to start with Windows 10 Pro, Version 1809 – I have not tried this setup, but I’ve seen it recommended and it may be a better base to start with.
Under the virtual machine Basics your resource group will be pre-selected. Give your VM name and select the same region as your resource group. You can change the image to Windows Server 2019 Datacenter here. Then click Select size to choose the type of VM.
On the VM size selection screen type NV into the search box to limit it to NVidia based servers. I like to change the cost to Hourly so it’s less scary The server I chose is NV6_Promo – the smallest/cheapest of the NVidia options.
Finding a virtual machine in a region was one of the most frustrating parts for me. I seemed to have activated my Azure account at the height of the Coronavirus pandemic. Many of the servers listed on the Products by region page were not actually selectable in the portal. After some back-and-forth with support, it turned out that they were running out of resources to allocate. Things eventually leveled out and I was able to select the NVidia server I wanted.
After selecting the VM size, set and record your VM username and password. Make sure to allow remote desktop (RDP) inbound ports. Then click Next : Disks.
For the OS disk type select Standard HDD – it is cheaper and won’t greatly affect the performance.
Further down that page, click Create and attach a new disk.
You’ll be prompted to create a new disk, click Change size to change the disk type and size.
Select Standard HDD for the Storage type. Wait! Didn’t I select a disk before? Why am I doing this again?! The previous selection was for the OS disk. It is temporary storage and nothing gets saved on it when you shut your VM down. You possibly could go without an “external” disk, but you’d have to install and configure VRC (and everything else) every time after you start up your VM.
You don’t need anything big here, just enough for VRC and its libraries. A full installation of VRC with a couple of extras is 20GB, so you could easily select 64GB or even 32GB here. Disks can be made bigger (but not smaller) later on.
Once your disk type and size is selected, click Next : Networking.
We’ll keep the defaults on the Networking tab, so just click Next : Management. On the Management tab click Enable auto shutdown – this will save your hide if you forget to shut your VM off. Speaking of which, get the Azure app on your phone in case you want to double-check to make sure you actually remembered to shut it down.
After the Management tab you can click Review + create. On the final page it will tell you how much it costs to run this server hourly. To agree, click Create.
Remove Network Security Group
This is sort of a controversial thing to do. Removing the Network Security Group (NSG) is like connecting your windows computer directly to your cable modem. It’s out there on the internet, available for anyone to hack. I haven’t had much luck getting VRC to play nice with the NSG, because you’ll have to set VRC network rules in Windows Defender Firewall on your VM and mirror those changes in the NSG.
My gaming server is only up for a couple hours at time, and with a different IP address every time. Plus there’s really nothing installed on there that is of value, so it’s a risk I’m willing to take.
Here’s how to remove the NSG. Navigate to your resource group and then click on the NSG for the group.
First you must disassociate the NSG with the Network Interface. Click Network Interfaces and then for your interface select the more menu icon then Disassociate.
Once it’s been disassociated, you can delete the NSG by going to the Overview screen and clicking Delete.
Start the Virtual Machine
Navigate to your virtual machine under your resource group. Now that your server is created and configured, you can start your VM if it’s not started already. Then copy the Public IP address so we can connect.
Connect via Remote Desktop
Connect to your virtual machine using the Remote Desktop Connection app from your home computer. Paste in the Public IP address you copied earlier. Before clicking connect, click Show options.
With the options shown you’ll be able to enter your VM administrator username.
Then click Connect. You’ll get an identity verification warning pop-up, but it’s safe to click Yes to continue.
Once you’re logged into your virtual machine via RDP, you can install VRC.
VRC will fail at installing the required .NET components, but you can install them through Server Manager which (annoyingly) will probably be automatically started when you log in through Remote Desktop. Click Add roles and features.
Click Next in the wizard until you’re on the Features screen. There you can expand the .NET Framework 3.5 Features section and check .NET Framework 3.5 (includes .NET 2.0 and 3.0). Then click Install.
VRC installs a couple of outbound firewall rules – you might even see this message during installation. But we need to add a couple of inbound firewall rules to Windows Defender Firewall.
Click the Start Menu and type defender. Then click on Windows Defender Firewall.
Once the Windows Defender Firewall control panel is open, click on Advanced settings.
Highlight Inbound Rules in the left pane, then click New Rule… in the right pane.
In the New Inbound Rule Wizard select Port for the rule type and click Next.
For the protocol and ports, select UDP and enter the port range of 26379-26381, then click Next.
Action should be set to Allow the connection, then click Next.
All profiles should be checked, click Next.
And then give it a useful name, like VRC. Then click Finish.
As mentioned earlier, if you’re using a Network Security Group (NSG) as part of your Azure resource group, then you’ll need to create the same inbound network rules there too.
Now you can start VRC, but we’re not out of the woods yet. VRC will likely complain about Internet Options:
If you’ve ever had windows update or some other nonsense dialog come up while you’re racing, you fully understand the madness that is involved.
The solution (without having to use two computers) was a setting in RDP to set Apply Windows key combinations to On this computer.
Otherwise I would press Alt+Tab when on the remote system and it would toggle between the VRC Server session and the desktop. By keeping that combination local, I can Alt+Tab to switch between RDP (fullscreen) and my local VRC game (fullscreen). Neither game session gets minimized so nothing hangs up or pauses.
Whew, that was a lot Did I forget anything? Let me know in the comments!
With all the other news of the global Coronavirus pandemic, police killings, and riots, I want to take a moment to make sure a important local story doesn’t get lost.
It was recently brought to my attention that Duron Jr. has died. This apparently happened at the end of April, but I just found about it last week. This young man was only in the 5th grade when he was struck by an SUV while crossing 61st from Fridley Middle School to the Fridley Community Center.
Next the city took down the (useless) plastic fences and erected bollards on the road to keep cars from passing each other on the shoulder.
I wondered how long they’d be there, and I now know Fridley has bollards as one of the tools in its toolboxes for testing changes without doing anything permanent.
Then throughout 2019 the city took action to apply more treatment to the 61st. Ave. They added a median with a pedestrian refuge to give pedestrians a little more priority at the intersection.
There is now a marked bike lane on both shoulders as parking was never allowed there previously. And there’s double white-striped paint to reinforce that passing is not allowed.
61st is a city-owned street. No county or state policies or politics stand in the way of making the street safe for everyone. I’m glad they took what was relatively swift action for a government agency.
But why do we wait until someone is struck by a vehicle – so severely that they risk death – to take action?
As car-loving Americans, we tend to have this have our cake and eat it too mentality when it comes to roads. Do we want safety? Yeah, sure, but dammit I’ll bitch to the mayor if I had to wait a minute longer in my car while dropping my kid off at school.
This last part is an unknown – I don’t know what the answer is right now, but I intend to find out. Sadly almost all of our government agencies, from city to federal, aren’t set up to proactively address problems in our built environment until somebody dies.
Will the crash that ended Duron’s life be recorded as a fatality? He sustained his injuries for over two years. But undoubtedly he would still be a thriving young student if he wasn’t struck that day.