I got a new laptop; but aside from that, it's basically Groundhog Day.  

I miss buffets.  I wonder if they miss me, too?

I guess this is my view for the foreseeable future.

Stay home, people!  Flatten the curve and whatnot!

COVID-19?  More like NOVID-19!

I enjoy putzing around with homebrew / homemade handheld gaming devices.  I've built Raspberry Pi Zero systems inside a classic Gameboy shell.  I've pieced together a Freeplay Zero in a Gameboy Advance shell.  And I've purchased a premade Anbernic RG-350 straight from China.  They all have their pros & cons.  I just wanted to summarize some of my experiences here.

Classic Gameboy DMG-01 powered by Raspberry Pi Zero

  • Good chance to learn some basic electronics skills
  • With enough imagination & Google-fu, you can include just about any features you want
  • Robust community around this type of project
  • With any version of RetroPie released since about 2017, the Raspberry Pi Zero isn't quite powerful enough to run many Super Nintendo & Gameboy Advance games at full speed.  A Raspberry Pi3-based handheld can run nearly all of these games at full speed (in addition to many N64 or Playstation games), but they typically cost over $200, and require big batteries & some sort of cooling solution
  • Can be more expensive than you expect (my first Pi Zero cost about $250 to build; my last around $125)
  • Stuff like this that you make from scratch has a tendency to fall apart with extended usage

This was my first foray into handheld emulator devices; and really my first experience with soldering using bare resistors, capacitors, and the like.  The Sudomod forums, run by wermy, were vital in this entire process.  I got to learn some extremely basic electronics skills while the homebrew Gameboy emulator community grew and matured into what it is now.

The basic idea behind these is: you take an aftermarket Gameboy shell, Dremel away some pieces so you can fit a 3.5-inch LCD & more buttons, and power the whole thing with a Raspberry Pi running RetroPie & various electronic components for sound, power, etc.  Then you can use it to play any of the classic Super Nintendo, Gameboy Advance, and older games you can get your hands on. (For games that you legally own.  Of course.)

When I built my first two systems, everything was pieced together with individual wires, resistors, and capacitors.


The final products were a tangled rat's nest that I could barely squeeze the shell around, and the rear trigger buttons weren't terribly reliable.  The first of these systems no longer actually functions, and I should probably dismantle it before the battery explodes or something.  The second was gifted to friend, as as far as I know, is still playable.

By the time I built my third system, there were cheap & efficient premade boards that I could basically just solder onto a Raspberry Pi Zero, slap into a modded Gameboy shell, and call it good.  A lot of design issues like flaky trigger buttons had already been worked out by this time.  I used a GPIO Assist Ultra kit from Pocket Adventures.  This has a USB hub, USB soundcard/amp, battery monitoring, and safe power-off switch all built-in.  These were all components that I previously had to cobble together with varying levels of success.

Despite requiring very little hacking to assemble, I still managed to screw this kit up quite a bit before finally getting it working.  I had some bad solder joints between the GPIO Assist & the Pi Zero which caused odd, intermittent sound & power issues.  Once that was worked out (and after repairing the physical damage I did to the board with my bad soldering), I was able to add a few custom touches, like a separate hotkey button for administrative functions and a PWM screen dimmer using an ATTiny chip running Arduino.

In the early days of RetroPie handhelds, there weren't many good themes that were viewable on a 3.5-inch screen.  So, I made the GBZ35 themes, which seem to be fairly well-used on RetroPie handhelds, so that's kinda cool (though, with user-friendly options like the Retroflag RPi making this hobby more popular, there are now much fancier options becoming available).

Freeplay Zero by FreeplayTech

  • You can build these with ZERO soldering (you'll still need to do some modifications on an aftermarket Gameboy Advance shell)
  • Many people prefer the Gameboy Advance form-factor, particularly with its less fiddly solutions for the L & R shoulder buttons (vs. the traditional Gameboy)
  • The GPIO-based screen (instead of composite-based like my Gameboy builds) is very crisp & clear
  • A prebuilt SD card image from the manufacturer saves you from some of the more fiddly configuration you'd have to do on more-DIY kits
  • The Pi Zero still suffers from slowdown on SNES and newer; and with the more CPU-intensive type of screen used, you can also see screen diagonal tearing. (Buying the Freeplay CM3 fixes most of these issues, but costs an additional $100)
  • Smaller screen than the 3.5" LCD you can fit in an original Gameboy

After my GBZ35 RetroPie theme became fairly widespread, I was contacted by Ed Mandy from FreeplayTech to create a RetroPie theme that he could preload onto his systems.  In return, I got a prototype Freeplay Zero kit to tinker with.  I'd say that was a fair trade.

Setting up a Freeplay handheld is fairly straightforward.  Buy the kit and a Gameboy Advance shell, cut away some pieces from the shell, and put it all together.  No soldering necessary (provided you use a Raspberry Pi Zero WH and not a Pi Zero W).

It's a really nice unit that's fun to play; and newer iterations have made the buttons a lot nicer to use than the original clunky X & Y buttons were.  However, it still runs RetroPie, and suffers some of the performance issues inherent with that platform (if you're using a Pi Zero instead of the Pi CM3, SNES & Gameboy Advance games struggle to keep up).

Anbernic RG-350

  • Plays almost all SNES & Gameboy Advance games at full speed.  Can even play most PlayStation games at full speed
  • Really well-designed device with great controls and a great screen
  • Potential to see even better performance & more features with software updates (which may or may not actually come to fruition)
  • Cheaper & faster than most Raspberry Pi options (similar price as the Retroflag RPi, but better performance, features & build quality)
  • Buying from Anbernic's AliExpress storefront in China takes a couple weeks or more to ship, though you can pay a hefty premium to quickly get one from Amazon.
  • Cheap Chinese ElectronicsTM like this can be a bit of a crapshoot.  Some advertised features simply aren't here (e.g. HDMI audio/video output), and hardware longevity may not be the best (too early to know for sure, though I've seen occasional funkiness with my unit's display).
  • Still a fairly techy device, and is not particularly user-friendly if you're just expecting to take it out of the box and play.
  • The development community is a bit disorganized, and is split into multiple groups unwilling to work with each other.  It's hard to find the newest & best software you should use on these units.

I've been using the RG-350 (Xbox One controller shown for scale) for a couple weeks now, and it's really a joy to play games on.  It's technically based on a several-years-old device (the GCW-Zero), but software development has recently gotten a jumpstart due to the RG-350 & similar devices released around the same timeframe.  

Unlike the Pi Zero, it plays SNES & Gameboy Advance games almost universally at full speed (in part because older, faster, but technically less "accurate" emulators still work on this device).  It even plays most PlayStation games at full speed; and even has all the features of a DualShock controller (including rumble).

Software development is a bit fractured, with some people separately developing on the Dingoonity Forums and others on Discord.  However, there is hope that further software development could someday bring things like improved performance and actual delivery of some of the advertised features like HDMI output.

Here's a wiki to help with some of the setup & configuration on the RG-350.

To stay somewhat-not-chubby, I run.  When I run, I sweat.  When I sweat, I sweat A LOT.  And as a result of all this, I apparently straight-up murder Bluetooth earbuds.

So, to keep track of my disgusting attempt to find Bluetooth earbuds that can survive my workouts, here's an ever-updating list of "sweatproof" earphones that have suffered an untimely death due to my body excretions:

Jaybird X [Dead after just over 1 year]

I got these back in 2016 for $58.  That's a sweet deal for anything from the Jaybird X line of earphones.  After struggling to get these earbuds to stay put in my ears, I finally found that Comply tips (or their equivalent knock-offs) kept them stuck in my head.  They had decent sound, but nothing special.  They had no problems connecting to my phone; they're just some okay earbuds that died a sweaty death.  Luckily, they came with a lifetime warranty, which I used to get my next earbuds:

Jaybird X2 [Dead after 9 months]

In 2017 when my OG Jaybird Xs died, the "X" line was no longer being manufactured.  As a result, Jaybird sent me the newer X2s as warranty replacements for the X.  For all intents & purposes, they seemed identical to the original X earbuds.  Unfortunately, they didn't live quite as long.

(2 pair) Jaybird X3 [Dead after 1 month & 8 months]

These were Warranty Replacement Rounds Two & Three for my original Jaybird Bluebud X earbuds.  The Jaybird X3 looked more streamlined than the prior generations.  They also used an annoying proprietary charging adapter, now.  Audio quality seemed better due to fancy EQ software you can install on your phone.  Connection quality took a huge nosedive (if using them outdoors, Jaybird says you need to keep the earbuds within 2 feet of your phone to keep the connection from dropping).  After using my first pair for a couple weeks, I noticed that overnight the battery would drain completely while they were powered off.  Then, eventually, they died like all of my previous Jaybirds.  After my second pair of X3s died in similar fashion, Jaybird (now owned by Logitech) said that I'd exhausted the limits of my original "lifetime warranty", and I was on my own.
So, after killing a fleet of "expensive" Jaybird earbuds, I moved on to the assortment of budget earbuds from Amazon.  Given my propensity to ruin more expensive earbuds, I decided to go easy on my wallet and ruin some cheaper ones.  An extremely annoying thing I've noticed when wading through the selection of budget Bluetooth earbuds on Amazon is that every single product is absolutely bombed with fake positive "reviews", which makes it difficult to find the real gems.
Taotronics TT-BH024 [Dead after 3 weeks]

For a year, I'd actually been using a pair of these for non-workout purposes, and I was pretty happy with them.  They had nice sound; a nice, secure fit; and much longer battery life than any of the Jaybirds.  They had no connectivity problems with my phone when using them outdoors, and they had easy-to-use button controls.  Since they're supposed to be IPX6-waterproofed, I decided to buy a second pair to use while running.  They bit the dust after less than a month.  On the bright side, that  quick death meant that I could just ship them back to Amazon for a refund.

Anker Soundcore Spirit X [Dead after 11 days]

I bought these on the advice of a Reddit post, where some dude claimed that he used them in the shower, and had no problems.  These are marketed as IPX7-waterproofed -- even more waterproofing than the Taotronics TT-BH024 that apparently weren't actually waterproof.  Unfortunately, these died even quicker than the Taotronics, and wouldn't power on or charge after using them for eight one-hour workouts.  These had nice, clear sound; but not a lot of bass.  The springy rubber earhooks provided a good fit; and there were also some extra ear-shaped doodads by the eartips to keep them extra-secured.  I'm not sure how well they worked outdoors, since they only survived long enough to use indoors on my treadmill.  But, again, their lifespan was short enough for an easy refund from Amazon.

Mpow Flame [Received Feb 27, 2019 - Lifespan TBD]

These ones are my most recent purchase.  At $17, they're the cheapest set of earbuds I've tried, and that price is appropriate when compared to the alternatives.  They aren't bad per se; they just aren't great.  Like the Taotronics TT-BH024, the buttons are easy to find -- but the volume up/down button functions on mine are reversed from what they should be (the + button in front lowers the volume, and the - button in back raises it).  There are no fancy HD codecs like aptX in play, and it shows.  The sound is completely average, and also a bit muddy.  The earhooks are non-adjustable, springy, molded rubber like the Anker Soundcore Spirit X, though the eartips don't give quite as good of a fit as the Ankers. The included cable retention clip is nice, though; and they also include a pair of memory foam eartips along with the usual rubber ones.  The flat cable tends to stick to the back of my sweaty neck and try to pull the left earbud out of my ear.
UPDATE: February 10, 2020 - Almost a year later, and the Mpow Flames are still chugging along. While they're the cheapest earbuds I've tried and they don't sound the greatest, they do seem to be resilient.  My wife recently also bought a pair to use at the gym.

I'll preface this part with a warning. If I did it again, I don't think I'd do it this way.

The first thing I did was stack the frame, control panel, and the sides together, then I glued & screwed them together.  Then I attached each individual panel I'd previously built, along with furring strips to secure them in place

My badly-planned initial assembly step
If I do it again, my first step would be to attach the furring strips to both side pieces, and ensure that they are placed symmetrically on both sides.  The problem I ran into was that it was difficult to perfectly line up the furring strips on both sides.  On my final assembly, I have some panels that are slightly crooked.  I'd guess that I might be the only person to notice it, but it's annoying nonetheless.

For my assembly, I countersunk and screwed each piece into its respective furring strip from the outside.  Then I had to fill & sand each screw hole.  I'm sure other people could find more intelligent ways to do this without needing to fill dozens of screw holes.

Rear view.  I used the button-hole drill bit to add ventilation holes.
There's a computer living inside the cabinet, and computers create heat.  So, I also made sure to provide a bit of ventilation.

Front view.  Assembled and prepped for painting.
Once everything was assembled, I also routed the slot for the T-Molding.  I used a 1/16" width & 9/16" depth bit.  Because my router was old & rickety, I had to constantly keep an eye on where the slot was being routed, since my bit wanted to keep walking out of the collet.

Routing the T-Molding Slot

I had previously attached the artwork to the admin panel, so I made sure to tape this off before painting the entire cabinet.  I also previously painted the base.  I don't know why I previously painted the base. ¯\_(ツ)_/¯

With everything prepped & assembled, I first primed the entire cabinet with Kilz primer...

...and then I painted it with two coats of Rustoleum black satin paint.  I chose Rustoleum because it's enamel & not a latex paint, which means it's more durable once it dries.  Also of note: when painting & priming, I used foam rollers for the easy-to-paint areas, and a spray can for the not-so-easy areas with lots of edges & corners.

Below is a grab-bag of random features I included in my design:

The control panel is removable and can be placed on top of the cabinet.

I included a plain flat version of the control panel to allow mouse & keyboard gaming.  This also fits on top of the cabinet, and is swapped with the button-and-joystick panel.
The back access door has a bottom-hinge which is a pair of 12-inch piano hinges.  Note the power button.  More on that later...
A window sash latch is used to keep the back access door closed.
The front access door is hinged on a pair of Euro hinges, so the door can be inset from the front of the side panels.

The PC inside the cabinet is powered on/off with a regular arcade button.  To do this, I cut male/female patch panel wire in half, and soldered both halves to a single wire.  The other end of the wire has a connector for the arcade button.  The patch panel wires plug directly into the motherboard/case connections for the PC's power button.  This allows me to power on the PC with the button on the back of the cabinet, or the PC case's power button.
The sideart is printed on black self-adhesive vinyl from Souldraw.com. I used this guide to install the art. 
A shot of the final product in action...