Thursday, March 21, 2019

My first fursuit

Yesterday, I received my first fursuit for my character Jace Pendry from GEEKpaw productions, and I love it! It fits pretty well, although it's a little tight. It gets hot inside, as expected, which is why I bought an EZcooldown cooling vest.

I can't wait to show it off at TFF next week!

Friday, March 15, 2019

"Have you tried turning it off and on again?" "Yes, my robot did"

Ok, so it's not quite a robot, but it is automated...

Yesterday while I was at work, there was a power failure at home that lasted longer than my UPS could handle. My server shut down, and when it came back up after the power was restored, it couldn't get online. The problem that I discovered after I got home was that the cable modem had stopped responding to DHCP requests, pings, or anything. The solution to this was simple - unplug it and plug it back in.

But what if something like this happens when I'm out of town? I need some way of resetting it without being physically present. I realized I already had the components to hack together a solution - I had a relay module from an Arduino kit, an Arduino already up and running controlling my air conditioner via an IR LED, and jumper wire. I even had a script monitoring the internet connection already running on the server, but all it could do at that point is force the server to re-request DHCP. All I needed to do was cut the low-voltage wire for the power adapter, connect the cut ends to the Common Normally Closed terminal of the relay, then wire it to my Arduino. That proved a bit challenging, because the Arduino has to be in a spot where its LEDs have line-of-sight to my air conditioner, but I don't want to put the modem right there. I had to chain together several individual jumper wires to get it to reach, and I may re-visit that design in the future.

So then it's just a matter of writing the software. I modified my existing Arduino sketch to pull a GPIO high most of the time, but when it receives a command over USB serial, pulls it low for 5 seconds. The relay module has a P-channel MOSFET controlling the relay, so it is active-low. When the relay activates, it disconnects the Normally Closed circuit and the modem reboots. I set up my monitoring software so that if it can't ping the modem for a period of 90 seconds, it resets. While the modem is connecting, it hands out a local IP address of, so I can still ping it and grab the status. It also resets the whole thing if it boots up, but doesn't come online within 4 minutes.

It's not the most hacky solution I've come up with so far, but it's close.

Sunday, March 03, 2019

Volt mod: Forcing brake lights on in "L" mode

The Volt has a standard 5-position gear selector lever, with Park, Neutral, Reverse, Drive, and "Low". It doesn't make much sense for a hybrid or electric transmission to have a "Low" position, but like other manufacturers, GM has chosen to implement it in a way that simulates the same kind of engine braking that you would get from a traditional transmission. Unlike a traditional powertrain, there is no issue with leaving it in this position while driving at high speeds. It does this by changing the mapping on the accelerator pedal. In "D", it will apply a small amount of regenerative braking (about 2.5 kW) to slow the car down a bit. In "L" mode, it applies a larger amount of braking (30 kW). This can quickly slow the vehicle almost to a stop.

The only issue is that it doesn't turn the brake lights on when you do this! This can lead to a situation where the car is decelerating quickly, but but the vehicles behind don't notice.

So I had an idea... I can certainly detect the conditions under which the car is slowing down, but how can I turn on the brake lights? It turns out there are diagnostic commands that can be sent over the OBD2 port to turn each individual light on for testing. So the conditions I need to check are:

  1. Gear selector is in "L" position,
  2. Accelerator pedal is less than 5% pressed, and
  3. Cruise control is not active.

I feel a lot safer driving in "L" mode with this hack in place. Although this would not have stopped that kid from rear-ending me - that happened at a stoplight with the brakes pressed.