Webcam Tripod Extension Mount

2021-09-09 18:08 - Making

My hastily-made extension arm to mount a webcam on a tripod, at a distance.

As mentioned earlier, I've been streaming my video game play online. To improve the stream, I've added a webcam to show my face. I've got a (probably?) unusual setup, in that I'm just sitting on my couch, looking at my TV, as I always have while video gaming. No good spot to put the camera. My first try just twist-tied the camera onto the tripod, then aggressively cropped that, to keep just the part that's my face. This moves the camera much closer to me while keeping the legs further away, because they need to be given the furniture layout!

It's a tiny piece of wood, drilled and tapped for quarter-twenty, to attach to the tripod. A matching hole is drilled in a bit of "angle iron" (aluminum, actually) I already had lying around. At the front is a 3D print I quickly threw together which (thankfully on the first try!) friction-fits around the angle and the camera's own mounting knob.

My streaming setup is pretty cobbled together, like this. Which is absolutely fine for now!

2021 Family Vacation

2021-08-23 20:33 - General

The whole family, end of vacation.

Last week I was on vacation. Four generations of my family: my nephews (3 and 9), my sister and I, our Mom, and her Mom. We went to Virginia Beach. I didn't take any pictures until this one at the end, because I know how to use the timer on my phone's camera.

We spent lots of time on the beach, and I got quite sunburned (then paid even more attention to sunscreen and time-in-sun). We went to an aquarium and spent some time on jetskis and ziplines, and tried to relax.

I'm a Streamer Now

2021-07-28 23:33 - Gaming

In addition to all the normal kind of video entertainment available online these days, it's become not unusual for video game players to broadcast or "stream" their gameplay online, for anyone out there to watch live.

In late 2018 I got into Magic: The Gathering, a trading card game (for lack of a better term). But it also, at that time, had a rather new official online computer game equivalent. In the computer version you could collect (most easily buy, with real world dollars) the same exact cards that you would (buy and) collect in the physical world. I started watching a video game streamer as a result at the time, as a way to better learn the surprisingly deep strategy of the game.

Afterwards I started slowly branching out to watch a little bit more. There's a lot of people streaming their game play, and lots of them are very entertaining and pleasant to watch. The pandemic escalated this for me: I don't want complete silence but I also don't really want to be playing music all the time either. I've been watching a lot of game streams in the background while working. It's always something to keep it from being quiet, and then it's a gentle and easy way to relax or fill otherwise dead time (i.e. waiting for something).

I'd heard of the phenomenon years before, and always idly thought it would be a fun thing to do. Since I started watching more, I started thinking about it yet more. About nine months ago I truly started acting on the impulse, acquiring the hardware to let me record (and/or live stream) my video game play.

But it was easy to come up with excuses. I want to use my powerful desktop CPU to do the real time video encoding, but I can't see the TV when I'm sitting in front of it. I want a good microphone to talk into, and a camera to show my face. (Not all streamers show their face, but in my limited experience, the better ones definitely do.) I want good lighting for that, I want so many little things. For those nine months I kept delaying and not making progress.

On this past Sunday, the 25th, I finally put it all behind me. Gave up on the face cam for now, got a cheap but effective headset for a good-enough microphone that's easy to put near my mouth (for decent quality audio without excess noise). Decided to use my laptop to run the stream. Good enough for now!

I've already hit my first milestone, on my fourth day streaming (and only for an hour or two each day), my first viewer showed up and even chatted with me! Sadly right at the end of the time I had, but it's still fun and exciting! I'll have to keep streaming and see where this goes.

Sofa Handle Repair

2021-05-30 15:33 - General

About ten years ago I bought a recliner sofa. Early on, I tried to vary where I sat, to not wear out one part more than another. That didn't last, though. I'm a creature of habit. These days I'm always sitting in the left position, with a side table in reach. This afternoon I reached down to pull the handle that releases the recliner and snap it came off in my hand.

The (maybe) repaired recliner handle.

The first thing I did was swap the handles, they're symmetrical. Then I did my best to repair the broken one. Some CA glue held it together at first, but I've seen plenty of weaker-than-new CA glue repairs, so then I tried sinking some staple-gun staples through the plastic across the break, ideally stronger than the glue. (By heating the staple with a soldering iron, melting the plastic to make a hole.) I re-installed it in the less-used side. My first check quickly revealed some scary cracking noises, so I've left it for now.

Battery Holder

2021-05-05 20:15 - Making

A 3D printed battery holder I designed and made.

I love rechargeable batteries. Much cheaper over time, and more convenient: it's pretty easy to keep a few charged and ready, and thus never need to worry about running out or getting more. For a while I had two little plastic buckets (old takeout containers!) to hold charged and used batteries each. But that's still a bit messy, and doesn't allow for even rotation.

It's pretty easy to buy battery holders, but the ones I could find are bulky (almost all including lots of C and D cell slots I don't need) and surprisingly expensive for a little chunk of plastic. So I made my own chunk of plastic! It's just a little box with some circular holes, of the right size to fit AAA and AA cells. I can put them + side up to signal that they're charged, and build a left-to-right kind of plan to make sure I'm always picking up the oldest one to use next, and putting the used ones back in at the "end of the line".

Lights for 3D Printer

2021-04-14 21:44 - Making

I've wanted extra lighting on my 3D printer for a while, but only a little. A while back I replaced the broken extruder(s). The old ones had fans built in, but they always seemed pointless: they were mounted on the outside of the extruder, so they couldn't even cool the stepper effectively. And they were incompatible with the new extruders so they came off.

LED light strips installed on the bottom of the top layer of my 3D printer.

This left extra unused power connectors exactly where I planned on installing lights. Today I finally took the time to put some LEDs from the strip I already had in place, using that connector. They provide decent illumination, but reveal how unreliable the 12v rail is: I can now see as the heaters kick in, because they cause an immediate dip in the brightness of these LEDs. I'll need to try adding capacitor(s), at least.

Mini Tesla Coil Kit

2021-02-10 21:12 - Making

The kit as it arrived.

Stuck at home so much, my habits have shifted a bit. I haven't made much of anything in quite a while. I dropped a whole three dollars (shipped!) on a little mini tesla coil kit just to shake things up a bit. Here's how it arrived, no instructions at all, which worried me at first. But there's very few parts, and it's actually almost impossible to get them wrong. Turns out they're tiny, but the markings right on the board disambiguate everything.

Weird parts: it came with two resistors and two LEDs — and the description called this out specifically — but there's only one place to put each, same for the little capacitors: comes with two but only one spot to put one in. It came with four little feet, but there's only three spots to put them. The component nearest the middle of this shot is a neon lamp, which doesn't connect to anything at all!

The assembled mini tesla coil.

It only took a little while to assemble. Here it is in operation, hooked up to my bench power supply so I could vary, limit, and monitor the power it consumed. It claimed to need 9 to 12 volts, and it works across that range and below. It doesn't actually do very much, but it does cause quite an electric field to be established. As a result, the little neon lamp it comes with will illuminate when it's nearby and the coil is powered on. But not connected at all! Spooky!

To rather dimly illuminate this small bulb, it consumes around six watts. And the little heat sink gets quite hot!

"Fixing" my 3D Printer's Extruders

2021-02-07 15:22 - Making

I got a 3D printer a few years ago when I came into a lucky collection of free filament. Long story short, things were okay, but I had trouble with the (free) ABS filament, it's extra hard to work with. I got some PLA recently, which slightly but not totally improved things.

Broken extruder arm.

I eventually figured out that the cause was a cracked part. The "extruder" of a 3D printer is responsible for pushing the plastic filament down into the "hot end" which melts it, so that it can be laid down into the design in question. This particular part pinches the filament onto the drive gear, so that it can be pushed. And the crack means it wasn't pinching as strongly as it should, so it would slip and not move correctly.

New metal extruder parts, in place.

My 3D printer is "dual extruder", so it's capable of using two different filaments at the same time. I almost never use that, so I simply switched over to the other non-broken extruder for a while, but that wasn't a real fix. I ordered some replacement parts, made of metal instead of plastic, and here they are installed. You can see the (brass) gear in the middle, of the metal extruders in red. The spring pushes the top arm up, which pivots on the top left screw, pinching the silverish roller into the brass gear. The plastic filament goes between them, and down from here.

This much is a nice improvement. No longer does the drive gear turn but just slip past the filament, not pushed strongly into it. Now I've got a new problem to solve: for some reason somewhere around the second layer it stops trying to drive the filament at all!

Working around broken traceroute on FiOS

2021-01-12 17:42 - Tech

After a long and slow process, I've decided to "cut the cord". I haven't been using my cable subscription much lately, and I've done very well filling in the gap with over-the-air and online services. Today I took the first big step in making that happen. I had a TV and internet bundle from Spectrum cable. I got today a faster internet-only plan from Verizon FiOS, for about half the cost. It's mostly fine. But one of the first things I discovered is that mtr was misbehaving. Every host appeared two hops away, and only a few milliseconds away. I know this is not true.

$ mtr -4 --report -n
Start: 2021-01-12T16:57:18-0500
HOST: laptop                      Loss%   Snt   Last   Avg  Best  Wrst StDev
  1.|--                0.0%    10    0.8   1.3   0.8   2.7   0.6
  2.|--              0.0%    10    4.0   9.5   3.5  23.8   7.5
$ mtr -4 --report -n
Start: 2021-01-12T16:58:15-0500
HOST: laptop                      Loss%   Snt   Last   Avg  Best  Wrst StDev
  1.|--                0.0%    10    2.5   1.8   0.8   3.1   0.9
  2.|--              0.0%    10    4.7   4.9   1.9   9.8   2.5

Traceroute usually/sometimes works by sending ICMP echoes with a low TTL. Too low, so the connection fails, and the hop at that distance replies that it fails. Up the TTL by one until a successful reply, and we've found the target. Verizon is forging successful answers when only one TTL (my router, plus one) remains. I discovered this by searching around for an explanation of what was going wrong exactly, and found a forum post (on a thread from 2018, so not a very temporary issue) with an acceptable workaround. Have the router never send a packet with TTL=1, bump it up to 2 instead. This doubles the next hop, but that's the best we can get if Verizon is going to lie. Problem is, the solution was given in a proprietary (?) configuration format.

I use OpenWRT, which is "just" standard Linux. So it uses iptables. I came up with:

# iptables -t mangle -I POSTROUTING -o eth1.2 -m ttl --ttl-eq 1 -j TTL --ttl-inc 1

Phew. That's: -t mangle use the "mangle" table (manpage: "This table is used for specialized packet alteration."), -I POSTROUTING use the "POSTROUTING" chain ("for altering packets as they are about to go out"), -o eth1.2 for packets going out on the eth1.2 interface (my WAN interface), -m ttl use the "ttl" match extension module, --ttl_eq 1 the TTL value equals one, -j TTL jump to the (custom) "TTL" chain, and -ttl-inc 1 increase that TTL value by one (from one, to two).

Now Verizon never sees a TTL=1 ICMP packet coming from me, and never forges the answer, and mtr just works (except that the first hop past the router is a duplicated copy of the next hop):

$ mtr -4 --report -n
Start: 2021-01-12T17:32:33-0500
HOST: laptop                      Loss%   Snt   Last   Avg  Best  Wrst StDev
  1.|--                0.0%    10    1.2   1.0   0.8   1.2   0.1
  2.|--             0.0%    10    5.0   7.4   5.0   9.2   1.4
  3.|--             0.0%    10    5.7   8.5   4.8  15.5   3.0
  4.|-- ???                       100.0    10    0.0   0.0   0.0   0.0   0.0
  5.|--             0.0%    10    7.7   7.1   4.8   9.3   1.4
  6.|--               0.0%    10    7.3   7.4   5.4   9.4   1.1
  7.|--              0.0%    10    8.9   8.7   7.0  10.0   0.9
  8.|--              0.0%    10    9.3   7.4   5.2   9.3   1.3
  9.|--              0.0%    10    4.9   6.9   4.8  13.2   2.6

All I need to do is put this in OpenWRT's /etc/firewall.user file. Google is actually only a few milliseconds away, but they're also 9 hops away, not two.