Mustachioed Nintendo Virtual Boy Gone Augmented Reality

Some people just want to watch the world burn. Others want to spread peace, joy and mustaches. [Joe Grand] falls into the latter group this time around. His latest creation is Mustache Mayhem, a hack, video game, and art project all rolled into one. This is a bit of a change from deconstructing circuit boards or designing electronic badges, but not completely new for [Joe], who wrote SCSIcide and Ultra SCSIcide for the Atari 2600 back in the early 2000’s.

Mustache Mayhem is built into a Nintendo Virtual Boy housing. The Virtual Boy itself was broken, and unfortunately was beyond repair. [Joe] removed most of the stock electronics and added a BeagleBone Black, Logitech C920 webcam, an LCD screen and some custom electronics. He kept the original audio amplifier, speakers, and controller connector. Angstrom Linux boots into [Joe’s] software, which uses OpenCV to detect faces and overlay mustaches. Gameplay is simple: Point the console at one or more faces. If you see a mustache, press the A button on the controller! The more faces and mustaches on-screen at once, the more points, or “mojo” the player gets. The code is up on Github, and can be built with Xcode targeted to the Mac, or directly on the BeagleBone Black.

[Joe’s] goal for the project was to make a ridiculous game that looks like it could have come out in the 90’s. He also used Mustache Mayhem as a fun way to learn some new skills which will come in handy for more serious projects in the future.

We caught up with [Joe] for a quick interview about his new creation.

How did you come up with the idea for Mustache Mayhem?

blockI was selling a bunch of my video game collection at PRGE (Portland Retro Gaming Expo) a few years ago and had a broken Virtual Boy that no one bought. A friend of mine was at the table and said I had to do something with it. I thought “People wear cosplay and walk around at conventions, so what if I could do something with the Virtual Boy that you could walk around with?” That was the seed.

A few months later, Texas Instruments sent me the original production release of the BeagleBone Black (rev. A5A). Eighteen months after that I actually started the project. The catalyst was to do something for an upcoming Portland, OR art show (Byte Me 4.0), which is an annual event that shows off interactive technology-based artwork. I wrote up a little description and got accepted. I had less than 2 months to actually get things working and it ended up taking about a month of full-time work. It was much more work than I expected for such a silly project. I originally was going to do something along the lines of walking around in a Doom-like perspective and shooting people when their faces were detected.

That would be pretty darn cool. How did you get from Doom to Mustaches? 

I saw a TI BeagleBoard demo called “boothstache” which drew mustaches on faces and tweeted the pictures. I thought that doing something non-violent with mustaches would be more suitable (and funny) to actually show my kids. I also secretly wanted to use this project as a way to experiment with Linux, write some code, and learn about face detection and image processing with OpenCV, which I plan to use for some actual computer security research in the future. Mustache Mayhem turned out to be a super cool project and I’m really happy with it. I sort of feel guilty spending so much time on it, since it’s basically just a one-off prototype, but I just got so obsessed with making it exactly as I wanted.

You mentioned on your website that Mustache was “designed to challenge the paradigms of personal privacy and entertainment.” What exactly did you mean there?

Continue reading “Mustachioed Nintendo Virtual Boy Gone Augmented Reality”

Logic Noise: Filters and Drums

Filters and Drums

Logic Noise is an exploration of building raw synthesizers with CMOS logic chips. This session, we continue to abuse the 4069UB as an amplifier. We’ll turn the simple unity-gain buffer of last session into a single-pole active lowpass filter with a single part. (Spoiler: it’s a capacitor.)

While totally useful, this simple filter is a bit boring and difficult to make dynamic. So we’ll look into an entirely different filter, the Twin-T notch filter, that turns out to be sharp enough to build a sine-wave oscillator on, and tweakable enough that we’ll make a damped-oscillator drum sound out of it.

Here’s a quick demo of where we’re heading. Read on to see how we get there.

Continue reading “Logic Noise: Filters and Drums”

Prove Your Design; Prove Your Market; Earn Six-Digits of Cash

Let’s talk about the newest part of this year’s Hackaday Prize: Best Product. In addition to all of the other prizes offered, the Best Product Prize will award $100,000 to one entry which is designed for manufacturing and embodies the core of this year’s theme. What exactly does that mean? It boils down to one hundred grand to jumpstart your product launch. Let’s take a closer look at why we added this prize and the specifics of entry.

What about the other 90%

You have a working prototype and you’re one step away from making your first million, right? That is almost always a fallacy. One major hurdle is the engineering needed to take a working prototype to the factory line — that can be nine-tenths of the work. Designing for production is a story that we want to tell. This becomes an educational tool for those just starting to learn about product design. If we make the steps, gotchas, and tricks of the trade easier to learn we chip away at the hard part of hardware and this is one of the chief motivators for adding Best Product.

Proving Your Market

Before you take the risk you want to make sure there is a customer base out there who want to buy your hardware. We’ve noticed that Crowd Funding platforms are a growing avenue for market research. It has become something of a pre-order system, but it also means that all decisions are somewhat locked in before going into production. We see the Best Product prize as a way to prove the market, not just for the winner but surely for all of the ten finalists as well. Still want to go the crowd funding route afterwards? Fine, we’ve seen big things happen for a lot of great builds featured on Hackaday. But competing for the Best Product award keeps your options open during and after the crowd has spoken their peace.

Slightly Different Entry and Judging Criteria

best-product-requirementsThe entry requirements and judging criteria for Best Product are both a bit different form the main entry field. Rest assured you are still eligible to compete for all of the other prizes.

On the entry side of things the biggest difference is that you need to send us three working beta units for testing by August 17th. When we sat down to figure out what makes something “a product”, the existence of several working prototypes in the hands of beta users was high on that list. In this case we’ll be the testers but this lets us verify that entries aren’t vaporware. You will also need to complete most of your documentation by the entry date.

On the judging side of things the criteria quite different. One noteworthy change to point out; Openness is not among the Best Product judging criteria. If you want to keep the secret-sauce secret you won’t be penalized for it. However, if you also want to win the Grand Prize, Open is the way.

Read the Rules, Start Your Entry

Now that you’re really excited about all of this, make sure you go and read all of the Official Rules. Sections 4 & 5 both have information about Best Product entry and judging criteria.

Getting your entry started is easy. Just begin a project on Hackaday.io and add the tags “2015HackadayPrize” and “BestProduct”. This lets us know you’re in it to win it and we’ll keep you informed of what is coming down the pipeline as the Hackaday Prize progresses.


The 2015 Hackaday Prize is sponsored by:

Playing Space Invaders with Real Fire and Lasers

Making a Space Invaders game is up there on the list of most unconventional things you could do with a laser cutter. In watching the tiny little ships burst into flames, [Martin Raynsford’s] modification has got to be one of the more dangerous looking ones we’ve seen as well.

[Martin] always had the desire to make a tangible version of the classic game. Since his Whitetooth A1 laser cutter already contained the bulk of the moving hardware needed, not to mention an actual high powered laser to “pew pew” with, he decided it was the perfect starting point for such a project. The game is played looking down into the cutter since the laser of course fires in that direction, however a basic webcam is mounted to the laser assembly so that you can view the game on a computer screen at the proper perspective. An Arduino Mini is responsible for stepper control, allowing the player to jog back and forth and fire with a keyboard. [Martin] added an extra gear to the z-axis bed-leveler so that it could drive rows of paper invaders left and right across the bottom. Paperclips wedged into slots along a modified backboard hold each of the paper slips in place. This works ideally since they can be reloaded easily and won’t be maimed during use.

Due to the heat of the laser, landing a well positioned shot will likely nuke all of the nearby invaders as well, making for a theatrical inferno and easy win. Now to step up the difficulty level and figure out how to make them fire back…

Continue reading “Playing Space Invaders with Real Fire and Lasers”

AVR Hardware Timer Tricked Into One-Shot

[Josh] has written up two posts that those of you who use AVRs might find handy. The first post documents a C library that implements a jitter-free one-shot timer. The second post explains how it works. We think it’s such a good idea that we’re going to spoil it for you, but go ahead and read his links and check out his code.

A one-shot is a pulse generator that runs once and only once. You trigger it, it produces the desired pulse, and that’s all she wrote. Why is this handy? Many external ICs that you’ll interface with have minimum durations for signal pulses that must be respected. You could program the AVR to toggle a pin high and then sit around and wait until it’s time to toggle the pin low again, but this wastes valuable CPU time, isn’t going to be very precise, and is susceptible to timing discrepancies if interrupt routines fire in the mean time.

You’d think that you could use the hardware timers for this, but it’s not straightforward. Normally, the timers are free-running; the counter that’s keeping track of time rolls over the top and starts over again. But we just want one pulse.

[Josh]’s very clever idea abuses the timer/counter’s TOP and MATCH values in “Fast PWM” mode. Essentially you trick the counter into never matching by setting TOP below MATCH. This means that the counter spins in its loop between zero and TOP forever, doing nothing.

To break it out of its loop and enable the one-shot, you manually set the counter to a value above TOP and let it go. As it counts up, it’ll eventually hit MATCH, turn on your pin, and then keep counting. When it rolls over the top (255 + 1 = 0 for the 8-bit AVRs), your pin will be correctly turned off again and then the counter re-enters its loop. The one-shot won’t fire until you manually set the counter higher than TOP again.

So there you have it, a one-shot depending only on the hardware timer/counter module and thus immune to jitter and consuming no CPU time at all. Our hats off to you, [Josh]. Clever hack.

APRS Tracking System Flies Your Balloons

Looking for a way to track your high-altitude balloons but don’t want to mess with sending data over a cellular network? [Zack Clobes] and the others at Project Traveler may have just the thing for you: a position-reporting board that uses the Automatic Packet Reporting System (APRS) network to report location data and easily fits on an Arduino in the form of a shield.

The project is based on an Atmel 328P and all it needs to report position data is a small antenna and a battery. For those unfamiliar with APRS, it uses amateur radio frequencies to send data packets instead of something like the GSM network. APRS is very robust, and devices that use it can send GPS information as well as text messages, emails, weather reports, radio telemetry data, and radio direction finding information in case GPS is not available.

If this location reporting ability isn’t enough for you, the project can function as a shield as well, which means that more data lines are available for other things like monitoring sensors and driving servos. All in a small, lightweight package that doesn’t rely on a cell network. All of the schematics and other information are available on the project site if you want to give this a shot, but if you DO need the cell network, this may be more your style. Be sure to check out the video after the break, too!

Continue reading “APRS Tracking System Flies Your Balloons”

Laser-Cut Clock Kicks Your CAD Tools to the Curb and Opts for Python

In a world deprived of stock hardware other than #6-32 bolts and sheets and sheets of acrylic, [Lawrence Kesteloot] took it upon himself to design and build a laser-cut pendulum clock. No Pricey CAD programs? No Problem. In a world where many fancy CAD tools can auto-generate gear models, [Lawrence] went back to first principles and wrote scripts to autogenerate the gear profiles. Furthermore, not only can these scripts export SVG files for the entire model for easy laser cutting, they can also render a 3D model within the browser using Javascript.

Given the small selection of materials, the entire project is a labor of love. Even the video (after the break) glosses over the careful selection of bearings, bolt-hole spacing, and time-sensitive gear ratios, each of which may be an easy macro in other CAD programs that [Lawrence], in this case, needed to add himself.

Finally, the entire project is open source and up for download on the Githubs. It’s not every day we can build ourselves a pendulum clock with a simple command-line-incantation to

make cut

Thanks for the tip, [Bartgrantham]!

Continue reading “Laser-Cut Clock Kicks Your CAD Tools to the Curb and Opts for Python”