KQ Button Tester; nee Turbo Button

2017-11-16 22:19 - Making

My KQ Turbo Button device, on a messy desk.

I've never posted here about this device I made. I made it earlier this year, mostly as a joke. On the right, now mostly hidden by the fan, is a solenoid. It sits poised above a yellow arcade button, also mostly hidden by the fan. On the front of this view is the electronics and the controls are on the top, all glued to a huge 12 volt lead acid battery.

The original point was to be able to press that button with inhuman speed and accuracy. I managed to leverage that to contribute to some of my videos about Killer Queen. More recently I've been interested in figuring out how to pick good arcade hardware. The moving parts wear out and need replacing. Which ones to buy as replacements?

So I updated the device, not only can it push the button — normally the one in the real arcade, now (in the extra little bit of wood it's sitting on) a dedicated one — it can read its value. So it can be used to derive fine details about the performance of the button, when pressed. I want to do quite a bit with this. Here's one example:

ED 0
D 12272
U 12280
D 12284
U 12540
D 12832
U 12836
D 12844
EU 0
U 8364

That starts ED 0 for "event down zero". Then a bunch of lines D and U indicate the timing of "down" and "up" events observed, in microseconds since we started the "down" event. All real mechanical switches "bounce" a bit when activated (and deactivated, usually). In this case, the button first went down about 12 milliseconds after we started (it takes some time for the solenoid coil to charge up, then to physically move) and the switch contacts bounced apart and back together three times after that, taking just over half a millisecond to settle down into its final resting state. And in this case when it came back up, there were no bounces. In my limited experience so far, this looks like good performance for such switches.

This is just one bit of data but we can compare quality in the "bounciness" category pretty easily: how many bounces, and how long before the last one is done? I intend to follow this with a post containing a detailed summary of this, for several switches. I need to make a final call on exactly what I want to measure, and make sure my tool will do that if at all possible, so it will take a little time.

Tech Woes; Server With No Display!

2017-11-11 23:10 - General

I've got a story to tell, about my broken computer. It's actually still somewhat broken, but I've just climbed up out of a valley that so deep, it feels almost like it's fixed. Here's the story, but be warned: it's probably too much detail.

So, I keep a server at home. It's multi purpose. It stores my important files on a redundant ZFS array. It plays some of those (media) files on my TV. It runs and exposes various small services. It's deeply important to me given all these things I use it for. In addition to that local disk array, I have a remote backup of the data on a similar machine at my Mom's house. Which has an extra disk for her data. And I've got an extra disk for a remote backup of that.

That last fourth disk in my server is a relatively recent addition. Around when I put it in, I noticed that the drives all stuffed next to each other get a bit warm. I decided to install an extra fan, to keep them cooler. This started its own sad story. There's an unused "case fan" header on my motherboard, yay. I have a spare compatible fan, yay. It doesn't support speed control though, and is far too loud to keep running in a studio apartment. So I found a bigger fan, which supports speed control. Got it all set up, figured out how to set the speed, and I can tell even when running slow enough to be effectively silent, it still moves plenty of air. Great! So I screw it in to place, get ready to call it a day ... and discover the cable isn't long enough. Long story short, I probably crossed a wire and zapped something while trying to extend it to reach. It doesn't go anymore. Not sure if it's busted, or the power connector. But I find yet another fan, this one uses not the fan connector but just the standard power accessory (i.e. old IDE disk) connector, and is designed to be quiet. Great!

But doing all this effort to get a working fan installed involved opening up the computer, moving things around, fiddling with them... And as I said quiet is nice when you only have one room. I noticed a little noise, it seemed to be a fan (new fan, CPU fan, power supply fan?). I decided to use my standard technique of (briefly) stopping the running fan by jamming something into it to narrow down where the noise was. Wasn't the new fan. Wasn't the CPU -- but this one ran fast enough to hurt my finger a bit so I stopped using that. Popped a screw driver into the power supply fan and WHAM. Broke one of the blades off of it. Ugh. Had to open it up a bit to move the fan guard out of the way to un-jam it. Everything still worked, but I had never completed my earlier goal of figuring out where the minor noise was coming from. Everything was still off, so I put the driver back into place, intending to block that fan from spinning while powering it back on.

ZAP! I shouldn't have used a metal screwdriver. There was a spark and a pop. And I busted a fuse. And I was scheduled to leave on a flight at ten AM the following day (this was the night of October 4th). Stomach in knots. I managed to take the power supply out, take it apart, and find the fuse, confirming it was blown. And soldered in. I have an old power supply lying around that was supposed to be for a project that never came to be. Open that one up. Its fuse is soldered down too, but compatible. Remove it. Remove the blown one, replace it. Put it all back together. Plug it all in. It turns on! Everything shakes a tiny bit, as the fan with a missing blade spins, but it turns on.

But no matter what, it doesn't show anything on the TV anymore like it used to. Unplugged a monitor from my desktop to carry it over, and it won't show anything from any of the other connectors, either. Stomach drops again. Before long, I figure out that everything but the display works. If I power it on, wait patiently until I know it's asking for a password, type it in blind and wait again: it boots. It responds on the network, and so everything I use it for still works -- except playing things on the TV.

So I leave it be, fly out for my trip and eventually come back. I'm pretty patient here, but I know I've got to do something. The first thing I do is replace the power supply. Really I just need a fan, but just the right one, which won't be easy. They're not too expensive so after $25 and a few days I have the replacement in. It doesn't have an off-balance fan, but otherwise it doesn't help, still no video. What to do? By lucky coincidence (this might have been earlier...) I have a spare identical video card, so I swap it in. Still no display. So I order a replacement motherboard, wait for it, laboriously swap all the components over. Still no display. So I return the motherboard I don't seem to need. (And take a $20 hit in return shipping/restocking fees. Blech.)

So what can be left? I know sometimes the motherboard's built in video is really controlled by the CPU, so I order a replacement CPU. While waiting for that to arrive, I make a stupid mistake. Right now, the computer is functional, but I can't see its display. If something goes wrong, I can't fix it, because I can only use it in a working state, when it boots and I can then remotely log in. Somehow I forgot all this and in an otherwise idle moment, I started an update for all three of my similar machines (this one, the backup at Mom's, and the public hosted server I run). Of course, of course, this time something goes wildly wrong on this machine. Some shared library that everything links to is hosed, and I can't run any more commands at all.

That was three days ago, the 8th. Yesterday I got the replacement CPU, but it didn't help because I can't boot that machine right now. Today I traveled into Brooklyn for the Killer Queen Coronation competition, and I had a few spare hours afterwards, and I was already close to Micro Center. I was at the point that I was ready to throw money at the problem. Just buy enough replacement parts that I'll surely end up working, and put this stressful mess behind me! Well, once I get there I realize I'll be over $300 in the hole for a new motherboard, CPU, and memory.

But I've already replaced the motherboard, that didn't help. I've replaced the video card which didn't help. What is going to help? I'm getting less confident that this expensive solution is going to be it. And it gets worse. Remember that ZFS array I mentioned at the top? It's encrypted, so I need a separate boot partition. On a separate drive. Right now, that's a Compact Flash card in an IDE adapter. Which sounds crazy, but works great. Except new motherboards don't come with IDE connectors anymore, so I'll need to buy even more something to make that work, and I'm starting to really doubt myself. And with no display how will I set up that replacement? What now?

Here starts the silver lining. I figured out a temporary fix that I was confident enough in that I gave up, left the store empty handed, and headed home to try it. I took my main desktop computer mostly apart, plugged in the server's drives instead, and booted a USB rescue environment there. And it worked, I could mount the disks. I'm happy I put my root partition on the ZFS volume, because now that I could finally boot "the server" and see its display, it was trivial to do a snapshot rollback. Took everything apart again, reassembled the original server, booted it blind, and voila! It's running, sans display, again. I can remember not to update it and patiently figure out a reasonable long term fix. Phew! I'm actually only right back where I was a month ago, but with the whole thing broken for a few days, this feels quite relaxing in comparison.


2017-10-30 14:25 - Bookmarklets

It's been a while, but today I have a new bookmarklet. This one removes "fixed" position elements that stay in your way as you scroll. It's a fixed version of one I found online, which also handles the sticky property.


PCB Prototyping Service Review: JLCPCB

2017-10-01 10:46 - Making

Scan of a board produced by JLCPCB.

Disclaimer: the PCBs pictured and discussed in this article were provided to me at no cost, in return for writing this review. I've received no other compensation and this is my own personal un-altered opinion.

Recently I was contacted about a new PCB prototyping service called JLCPCB and asked to do a review. I've done a few of these over time, and this is much the same. Pictured at left is four copies, two front and two back, of the board that I had made for this review.

It's a simple board so I can't comment on high density pads, but all of the traces, holes, and solder mask appear to be well aligned. The silkscreen is solid and legible everywhere. Overall, I would say these are perfectly fine boards.

I got ten copies, and they were all generally fine. Look (very) closely at the far bottom right of the image, though. You'll have to go full resolution to see it, but there's some scuffing around the pads near the bottom middle and bottom right. Cosmetic only, it seems, and the other nine boards had no issues or only even more minor scuffs/scrapes.


JLCPCB's claim to fame appears to be their $2 minimum cost. This applies only to the first board in any given order, and shipping from China applies to any order. So really you can get a few copies of one board made for $2, but you can only get it delivered for more like $12. Add a second board to the same order (e.g. to share the shipping overhead) and it will be $5.

Customer Numbers

Just like EasyEDA, this is some sort of batching service, which adds customer numbers in the silkscreen. They do say this ahead of time, but as I've called out in earlier reviews, I really don't like it. Especially here. I explicitly put in the in the "remark" box that I'd prefer this number to be located under U2 or U1. It would fit in either place. But instead, it was put out near the edge in the most visible place.

Final Call

These are fine boards, there's (almost) nothing wrong with them. But if I'm going to pay a couple bucks for the boards, plus $10 to $15 for shipping, I'd rather go with Elecrow's "special" service, ten copies up to 10x10cm for $5 — with no extra customer number printed.

Fanboy Mode Unlocked: SNES Classic

2017-09-30 21:06 - Gaming

Me proudly holding my SNES Classic.

Nintendo released their NES Classic last year, and the shortages were famous. The SNES classic was just released yesterday. I spied a few lines outside on my way to work, but couldn't really afford to join. I looked a bit online and indeed everything was sold out everywhere. Then I spied a tweet from the Nintendo NYC store, past 6PM, saying they were out today (yesterday) but tomorrow at 9AM (today) you could get in line again.

I ended up awake a bit early, anyway so I headed out and was in line by 8:30. The line was already huge. It took nearly three hours for me to get to the front, but I did, and I might regret it just a hair, but I'm happy overall!

New Super Mario Bros. U: All star coins!

2017-09-04 13:38 - Gaming

New Super Mario Bros. U: All star coins!

After plenty of playing, especially one or two of the levels in the star world in the background here, I finally int "100%" in New Super Mario Bros. U, having beaten all the levels, plus collected all three star coins from each. Phew!

Quarto Game Board

2017-08-11 12:57 - Making

I recently discovered (via the awesomely named YouTube channel I Like To Make Stuff) of a board game called Quarto. It's got simple rules and it's pretty easy to make a set yourself. I'm visiting my Mom in New Jersey, and that means access to some tools I couldn't keep in the city.

Rounding the material for half the pieces. The pieces are all rough cut out.
The board is a grid routed into some already-finished wood. Complete!

I picked some already-one-inch-square scrap available, it seems to be PVC. I rounded off the corners on the router table, then cut out eight short pieces and eight tall pieces, half of each from the rounded over section and half from some raw square section. Then half of the pieces got holes drilled in the top, and half got spray painted black.

The board is another scrap piece, of wood that was already finished. A grid of shallow lines, again with the router table, formed the play spaces. I chamfered the edges and with the paint dry, it was done!

This was a quick and dirty project. The grid lines were not routed the best, and the spray paint leaves a lot to be desired. But they're definitely good enough to play with. So I'll give that a try, and then decide if it's worth trying again, with perhaps better materials and more care.

Superlative Cookies (Brown butter, Sea salt, Nutella-stuffed)

2017-08-06 12:45 - General

Superlative cookies, pre-bake. Superlative cookies, post-bake. Superlative cookie, revealing its stuffed goodness.

For a party I went to yesterday, I made some cookies. I specifically looked around for a "decadent" recipe, and I totally found one. These are Nutella-Stuffed Brown Butter + Sea Salt Chocolate Chip Cookies.

I'd never heard of brown butter before, at least that I can recall. Definitely never used it as an ingredient. It's simple, but so amazing. Its smell alone, during preparation, left me sure these would be amazing cookies. In the final product, I think the Nutella overpowers the rest of the cookie, so I might try again without that. The brown butter also didn't cream like I'm used to, but the dough started to come together in a familiar manner once the eggs were added.

I probably slightly under-baked most of these. The process of stuffing the cookies left them each bigger than I'd normally make, plus the Nutella itself added some thermal mass, but they still all came out scrumptious!

Killer Queen Berry Flower Plush

2017-07-29 12:04 - Making

An in-game berry flower, full of berries. An in-game berry flower, picked clean. I've hardly posted about it, besides the tapper buttons I made last year, but since early 2016 I've been spending a lot of time playing an arcade game called Killer Queen. It's played by ten people at once, in two teams of five. The social aspect of working with your team to outplay the other one turns a fantastic game into an addictive one. At left and right here are two pictures of one of the key parts of the game: these yellow flowers are scattered around the play area. They start, like at left, full of six berries and often end up like at right, plucked clean. The berries are central to play, being a direct path to one of the win conditions and also the means by which players upgrade themselves to pursue the others.

One of the very dedicated players that I know thanks to this game is pregnant, with her baby due in just a few weeks. A coworker and fellow player had the wonderful idea to give a Killer Queen themed baby gift, and one was a plush berry flower toy. I was excited from the moment I heard the idea. I finished making it, and gifted it, this week. Here's a photo gallery plus some explanation of the build process.

Some fuzzy pom-poms will be the berries. A plush berry pile, on a flower-to-be.

First was gathering materials. There's some yellow felt here for the flower, and some fuzzy pom-poms of just the right color to stand in for the berries. I had to make two orders of these. At first I just got six, because that's how many there are in game. Once I saw them in person though, I realized I'd need to make a pyramid in three dimensions for this to make sense as a physical object.

The first of the petals, top and bottom, being stitched together. Using printed paper templates, I cut four petals out of yellow felt, and sewed two layers together.

I found what seemed like a reasonable petal shape and drew it out on the computer, then printed it out on paper for templates. These were traced onto yellow felt which was sewed and trimmed into the final outer shape. It took two tries to get the size right. This worked out great: though I wanted the profile of the smaller size, using the larger size ended up being just the right amount of extra material to wrap around the depth I wanted. So I sewed and cut the outer shape of all four petals. Each was one sheet of felt, cut in half and stitched together into a pocket.

An early step of sewing the separate petals into one flower, two seams join one petal to either side of a third.. Continuing the process of flower assembly, all four petals are either sewn together already, or pinned in place for sewing. The first half of flower assembly complete:  All four petals are sewn together on one side.  The other side

With all four separate petals prepared, the next step was to start sewing them together into one flower. This involved pinning the remaining flaps in place, stitching from the outer corner of two petals down to the middle, and repeating three more times. When done one side of the flower was sewed up, with flaps remaining on the other side.

A piece of upholstery foam is cut into the flower shape. The foam is stuffed into the flower, by flipping it inside out over the foam. After fit was confirmed, a few last seams were done by machine, leaving the smallest flap open for stuffing the foam through while inverting the felt flower around it.

The plan is to flip the felt flower inside out around a piece of upholstery foam, leaving it stuffed and plush, with the seams hidden inside. This was tested first, and the fit was fine. So the foam came back out and two of the four remaining seams were done by machine, again on what would be the inside. With a smaller open hole left, the flower was stuffed again, leaving just a few loose flaps.

Stitching the second of the remaining seams by hand, from the outside. Last seams of the flower complete, foam stuffed inside.

The remaining two seams were stitched by hand. This leaves a raised seam, but they'll be hidden shortly.

A green pistil and some berries are laid out to plan their placement. The pistil is stitched in place.

I had hardly noticed despite playing the game for over a year, until I looked closely for this project: There's a green structure that holds the berries. I'm choosing to call this the pistil (a discrete organ in the center of a flower capable of receiving pollen and producing a fruit). So I made a simple cone out of green felt and stuffed with a bit more foam, with the intent that it holds up the higher layers of berries without crushing the lower ones. I laid the bottom layer of berries in an arrangement that would mostly cover the raised seams, and leave room for the pistil in the middle. Then stitched the pistil in place, again by hand.

The petal The lower layer of berries were stitched onto the petals. The lower layer of berries are all in place.

Next I added the vein pattern onto the top of the flowers. I found a reasonable image online, then traced out the main structure and stretched and tweaked it to fit my exact petal shape. I printed this out onto paper and cut out the shape to form a stencil, which was drawn over with a marker. With that done, the first layer of berries were stitched onto the petals in a triangle shape, around the pistil.

Two more layers of berries are stitched onto the pistil, to form a tetrahedral shape. The finished flower, shot one. The finished flower, shot two.

All that remained was to attach the final four berries. These went onto the pistil, using its structure to help with the shape. Which did not end up perfect. There was more slack than I hoped for, but I'm still very happy with the final result!