Twitch Plays Pokémon: Better Than Prime Time TV

What do you get when you put together a classic Game Boy game, some glue code, a streaming video website and 1 internet? Twitch Plays Pokémon (TPP), a social experiment where thousands of people “cooperatively” play a game of Pokémon Red/Blue. TPP was created by an anonymous Australian programmer who enjoyed the SaltyBet interactive channel on twitch.tv. Rather than use SaltyBet’s method of having users interact via an external website, [TPP’s creator] decided to use twitch’s own IRC based chat servers. Starting with VisualBoyAdvance, a popular C/C++ based Game Boy emulator, [TPP’s creator] began building the system. [TPP’s creator] went with python to create the web-to-emulator interface. A JavaScript app displays the live moves on the right side of the screen.

Gameplay is simple – users type their command (Up, Down, A, B) into their IRC or web client. In the original configuration, commands were processed in the order they arrived at the game. The system worked until the whole thing went viral. With thousands of people entering commands at any given time, poor “RED” would often be found spinning in place, or doing other odd things. The effect is so compelling that even [Randal Munroe] has written an XKCD entry about it. To help the players get through some of the tricky parts of the game, [TPP’s creator] added a game mode selection. Users can play in “Democracy” where the system takes votes for several seconds, then issues the highest voted command. The original anything goes game mode was renamed “Anarchy”. Switching from one mode to the other is determined by the users themselves in real-time.

[Devon], one of our readers, has been busy as well. He’s written up a tutorial on turning a Raspberry Pi into a dedicated TPP viewer. We’d love to see a TPP battlestation – a Game Boy modified to display TPP, as well as send commands to the IRC servers when buttons are pressed. Who will be the first reader to knock that hack out?

Sound Card Tachometer Rises From The Junkbox

We love writing up projects that re-use lots of old parts. In fact, we save the links and use them as defense when our significant other complains about the “junk” in the basement. No, that tactic hasn’t ever worked, but we’re going to keep trying. Case in point, [Wotboa] needed a non-contact tachometer. There are plenty of commercial products which do just that. After consulting his parts bin, [wotboa] realized he had everything he needed to hack out his own. An IR break beam sensor from an old printer was a perfect fit in an aluminum tube. With the outer shell removed, the emitter and detector were mounted in the nylon shell of an old PC power supply connector, effectively turning them pair into a reflective sensor. To amplify the circuit, [wotboa] used a simple 2n2222 transistor circuit. The key is to keep the voltage seen by the sound card the range of a line level signal. This was accomplished by adding a 2.2 Megohm resistor in line with the output. [wotboa] drew his schematic in eagle, and etched his own PCB for the project. Even the tachometer’s case came from the parts bin. An old wall wart power supply gave up its shell for the cause, though [wotboa] is saving the transformer for another project.

For sensing, [wotba] used [Christian Zeitnitz’s] Soundcard Oscilloscope software.  Measuring the RPM of the device under test is simply a matter of determining the frequency of the signal and multiplying by 60. A 400 Hz signal would correspond to a shaft turning at 24,000 RPM. The circuit performs well in the range of RPM [wotboa] needs, but using a sound card does have its limits. The signals on the scope look a bit distorted from the square waves one would expect. This is due to the AC coupled nature of sound cards. As the signal approaches DC, the waveform will become more distorted. One possible fix for this would be to remove the AC coupling capacitor on the sound card’s input. With the capacitor removed, an op amp buffer would be a good idea to prevent damage to the sound card.

[Via Instructables]

Hexapod Robot Terrifies Humans And Wallets

hexapod

[Kevin] brings us Golem, his latest robot project. Golem is crafted not of clay and stone like his namesake, but of T6 Aluminum and Servos. We don’t have a banana for scale, but Golem is big. Not [Jamie Mantzel’s] Giant Robot Project big, but at 2.5 feet (76.2 cm) in diameter and 16 lbs (7.3 Kg), no one is going to call Golem a lightweight. With that kind of mass, standard R/C servos don’t stand much of a chance. [Kevin] pulled out all the stops and picked up Dynamixel MX64 servos for Golem’s legs. Those servos alone propelled the Golem’s costs well beyond the budget of the average hobbyist. Kevin wasn’t done though. He added an Intel NUC motherboard with a fourth generation i5 processor, a 120 Gigabyte solid state drive, and 8 Gigbytes of Ram.  Sensing is handled by gyros, accelerometers, and an on-board compass module. We’re assuming from the lack of a GPS that Golem will mainly see indoor use. We definitely like the mini subwoofer mounted on Golem’s back. Hey, even robots gotta have their tunes.

Golem is currently walking under human control via a Dualshock 3 controller paired via bluetooth. [Kevin’s] goal is to use Golem to learn Robotic Operating System (ROS). He’s already installed ubuntu 13.04 and is ready to go. [Kevin] didn’t mention a vision system, but based on the fact that some of his other robots use the Xtion pro live, we’re hopeful. We can’t wait to see Golem’s first autonomous steps.

Continue reading “Hexapod Robot Terrifies Humans And Wallets”

We Salute The Television Tube Flag

From [Gijs] comes Beeldbuis Vlag Tijsdlijn, or television tube flag (Translated). We’re not up on our Dutch, but it appears that [Gijs] and friends have created a television tube which waves much like a flag in response to airflow from a fan.  The effect is pretty darn amazing, and that’s putting it mildly. To create this hack, [Gijs] built a modified Wobbulator. The Wobbulator is an early video synthesizer which used added steering coils to modify the operation of a standard TV tube. When excited, the coils would deflect the tube’s electron beam, causing some rather trippy images to appear on-screen. (Yes, here at Hackaday “trippy” is a scientific term).

[Gijs] wanted his screen to be “waved” by a fan, just like a flag would wave. To do this he used an anemometer made of ping-pong ball halves. The anemometer spins up a DC motor from a CD-ROM drive. In this application, the motor acts as a generator, creating a DC voltage. An ATmega328 running the Arduino code reads the voltage from the motor. If the anemometer is spinning, the Arduino then outputs a sinusoidal value. The Arduino’s output is amplified and applied to the coil on the CRT. A network of power resistors ensures the amplifier is correctly loaded. The results speak for themselves. In the video after the break, the tube flag is displaying a slide show of photographs of its construction. As an added hack, [Gijs] used an Arduino Leonardo as a USB keyboard. When the anemometer spins, the primary ATmega328 sends a signal to the Leonardo, which then emulates a push of the arrow keys on the host computer. This lets the tube flag advance its own images. Very cool work indeed!

Continue reading “We Salute The Television Tube Flag”

MobilECG Goes Open Source

After a failed crowdfunding campaign, MobilECG has gone open source. MobilECG is a medical grade 12 lead electrocardiograph. A 12 lead system is quite a bit more complex than some of the ECG systems we have featured in the past.  [Péter], the founder and designer of the device attempted to fund it through an Indiegogo campaign. While MobilECG is relatively cheap, medical certifications are not. The campaign didn’t reach its goal of $230,000 USD. [Péter] tried again with a grass-roots donation round at his website. That round also fell short of [Péter’s] goal to keep working on the project. Rather than let his hard work go to waste, [Péter] has made the decision to release his hardware and software to the community. The hardware is licensed under CERN OHL v1.2. The software is released under the humorously named WTFPL.

While we’re not ECG experts, the basic hardware design appears to be sound. MobileECG is based around the Texas Instruments ADS1278 octal analog to digital converter. Two AVR microcontrollers are used, an ATTiny24, and an ATUC64. The analog design incorporates such niceties as lead off detection and defibrillator protection. It should be noted that there are some known bugs in the design, [Péter] mentions he can be contacted with questions. The software seems to be in an early state, and would require quite a bit of work to get it to a final design. While we do wish [Péter] had better luck with his campaign, we’re always glad to see designs released into the open source community.

Continue reading “MobilECG Goes Open Source”

[Dino] Brings The Waterproof Fire

firestarter

For many of our parents, grandparents, and great grandparents, the things we consider hacking, making, and doing weren’t just for fun. They were important skills that could help one survive. This week [Dino] shows us something his dad taught him: waterproof fire starters. The trick is paraffin wax. [Dino] starts by melting down some wax in a pot. He then dips strips of newspaper in the liquid wax. Several strike anywhere matches also get the wax treatment, are then placed on the newspaper. The newspaper and matches are rolled up into a tight bundle, which is itself dipped in wax several times.

The resulting small bundle of waxed newspaper and matches is safe and easy to carry in pocket or backpack. It also becomes the perfect wet fire starter. The “newspaper shell” is torn off into strips of waxed paper, which burns slowly and allows the tinder and wood to catch. [Dino] demonstrates his pioneering skills by starting a fire at the end of the video. When the inevitable zombie apocalypse hits, we definitely want [Dino] at the Hackaday compound.

Continue reading “[Dino] Brings The Waterproof Fire”

Hacking The Linksys WRT120N Part 2

linksysjtag

[Craig Heffner] has been busy with his Linksys WRT120N router. When we last checked in on [Craig] he had reverse engineered the obfuscation techniques used in the router’s firmware. Since then, he’s re-enabled JTAG, cracked the “encryption” used for saving configuration backups, and now he’s devised a simple attack to change the admin password.  With the firmware unlocked, [Craig] went after the hardware JTAG. His first hurdle was a missing jumper connecting the TDI pin to the processor. With a solder blob making the connection, he then found the router would connect to his JTAG debugger, and immediately reset. TDI had been re-used as a GPIO in software, and assigned to the reset button on the back of the router. [Craig’s] JTAG pod was pulling the pin low and causing the reset. To make matters worse, the bootloader also redefined and checked for the reset button. If the button were pressed it would boot into a recovery mode. [Craig] patched the bootloader with a little help from IDA pro. He then desoldered the router’s flash and programmed it outside the system. The firmware required a similar patch. Rather than desolder the flash chip again, [Craig] created a firmware update the router would accept and flashed it via the router’s web interface.

Since he already was deep into the Linksys Firmware, [Craig] looked for any obvious attack vectors. He found a big one in the /cgi/tmUnBlock.cgi. Inside the firmware, the URL sent to the CGI would be sent through sprintf().  In plain english, it means that no input length checking was happening – so a URL longer than the firmware engineers expected (in this case 256 bytes) would overflow into areas of memory it wasn’t supposed to – in this case, the stack. For an astute attacker, that’s a wide open door.  [Craig] was able to use find some Return Oriented Programming (ROP) gadgets and created an input value that would cause the router to reset its own administrator password. After running the exploit, a quick trip to the router’s webpage proved his attack was successful.

If that wasn’t enough, [Craig] also spent some time looking at the patches to the router’s firmware. The release notes of one of the patches mentioned encrypting configuration files. The WRT120N, like many routers, allows the owner to download and save the configuration as a file. It turned out that the “encryption” scheme was nothing more than an exclusive OR with 0xFF. A pretty weak encryption scheme by any standards. To [Craig] we send our congratulations. To the WRT120N software engineers, we’d suggest taking one of [Craig’s] embedded device exploitation classes.