A Tale Of (un)bricking A $10k Microsoft Surface Unit

We’ve all had that sinking feeling as a piece of hardware stops responding and the nasty thought of “did I just brick this thing?” rockets to the front of our minds. [Florian Echtler] recently experienced this in extremis as his hacking on the University of Munich’s Microsoft Surface 2.0 left it unresponsive. He says this is an 8,000 Euro piece of hardware, which translates to around $10,000! Obviously it was his top priority to get the thing working again.

So what’s the first thing you should do if you get your hands on a piece of hardware like this? Try to run Linux on the thing, of course. And [Florian] managed to make that happen pretty easily (there’s a quick proof-of-concept video after the break). He took a Linux kernel drive written for a different purpose and altered it to interface with the MS Surface. After working out a few error message he packaged it and called to good. Some time later the department called him and asked if his Linux kernel work might have anything to do with the display being dead. Yikes.

He dug into the driver and found that a bug may have caused the firmware on the USB interface chip to be overwritten. The big problem being that they don’t just distribute the image for this chip. So he ended up having to dump what was left from the EEPROM and rebuild the header byte by byte.

Continue reading “A Tale Of (un)bricking A $10k Microsoft Surface Unit”

Turning An Arduino Into A USB Keyboard

The newly released Arduino Leonardo has a few very interesting features, most notably the ability to act as a USB keyboard and mouse thanks to the new ATmega 32U4 microcontroller. This feature isn’t exclusive to the Leonoardo, as [Michael] explains in a build he sent in – the lowly Arduino Uno can also serve as a USB HID keyboard with just a firmware update.

The Arduino Uno (and Mega) communicate to your computer through a separate ATmega8U2 microcontroller. Simply by uploading new firmware with the Arduino Device Firmware Upgrade, it’s easy to have your old Arduino board gain some of the features of newer boards such as the Teensy or Leonardo.

[Michael] goes through the steps required to make this upgrade work and ends his build by showing off an Arduinofied ‘cut, copy and paste’ button project as well as a few multimedia controls. You can check those builds out in the video after the break.

If emulating a USB keyboard isn’t your thing, it’s also possible to install LUFA firmware to emulate everything from joysticks to USB audio devices. Very cool, and very useful.

Continue reading “Turning An Arduino Into A USB Keyboard”

I/O Extender Board And Case For A Cheap WiFi Router

This 3d printed case houses the already small [TP-Link TL-WR703N] but also makes room for a custom expansion board. The expansion board is designed to make the device more hacker friendly, and who doesn’t need a nice case to hold it?

Since the router board already has a USB port (intended for use with USB 3G modems) the add-on acts as a USB hub. The stock USB connector is replaced by a pin header which mates with a DIL socket on the underside of the expansion board. Through the use of an FTDI chip the expander offers three USB ports and a 2×10 pin header to break out the GPIO pins from the router’s processor. Only two USB ports are visible in the image above. That’s because the third is recessed, and an opening has not been added to the enclosure. This struck us as odd until we read that the port is meant to be used with a low-profile thumb drive, essentially adding internal storage for the device.

[Thanks buZz]

Building A Clutch For Vim

Whether you’re using emacs, vi, or vim, your fingers will be performing acrobatics on your keyboard because of the mouseless interface. [alevchuk] thought his feet could be used as a way to reduce the amount of keystrokes, so he built the vim clutch. It’s a USB-enabled foot pedal that will insert characters before the cursor in vim.

Vim requires the user to type the letter ‘i’ to insert text before the cursor. [alevchuk] thought this function could be easily replicated by a foot pedal, so he found an extremely cheap USB foot pedal to serve as his vim clutch. Ideally, the pedal should send ‘i’ when it is pressed and Esc when it’s released. [alevchuk] took two pedals, programmed one to send ‘i’ and the other to send Esc, and put them in the same enclosure.

The result is a working clutch for inserting before the cursor in vim. [alevchuk] is looking into a three-pedal model to add inserting at the beginning and end of the line to his vim clutch, so we’ll keep an eye out for when he posts that build.

Multi-system Nintendo Emulator Uses Stock Controllers

The first month of [WoolyDawg5’s] summer break went into building one Nintendo emulator to rule them all. He thinks there’s nothing like playing the games on the original controllers, and we agree with him 100%. Here you can see that the cartridge door on this NES enclosure hides the extra connectors he needs.

With that door closed this looks like a stock console, but only from the front. If you take a look at the back of it you’ll see how he pulled this off. There’s a Zotac motherboard whose I/O panel has been fitted into the back. It’s responsible for emulating games for the NES, SNES, and GameCube consoles — we’re sure it can do more but that covers the controller ports seen here. Each port is wired to a USB controller module. The cables for these modules exit the back of the case and plug into the motherboard’s I/O panel. There is WiFi for the board, and that’s what [WoolyDawg] uses for configuration, tunneling into the OS instead of connecting a keyboard or mouse.

Of course you could just shoehorn all-original console hardware into one package to accomplish something like this.

[Thanks KoldFuzion]

Multi-channel Analog Input Module Is A Good Jumping-off Point For Many Projects

[Scott Harden] has already produced some projects which measure analog inputs. But he’s got plans for more and wanted a base system for graphing analog signals. You can see the small board next to his laptop which offers the ability to sample up to six signals and push them to a PC via USB.

The ATmega48 and a few supporting components are all you’ll find on that board. The USB connection is taken care of by an FTDI cable. He went that route because the cables are relatively cheap, easy to come by, and already have driver support on all the major operating systems. If you look at the screen you can see a window graphing one analog input in real-time. He wrote this in Python (which is once again a cross-platform tool) and it has no problem graphing all six inputs at once.

This is immediately useful as an upgrade to [Scott’s] ECG machine. His future plans include a Pulse Oximeter, EEG, and EEG.

Drop-in Board For NES ROM Chip Makes Cartridge Reprogrammable

Here’s the guts from [Dext0rb’s] Super Nintendo cartridge. It’s easy to pick out the dark-colored board which lets him reflash SNES ROMs via USB. We’ve seen this done a number of times, but this is a much cleaner option than hacks that just add a dead-bug-style memory chip.

The board he designed has a double-row of pin headers sized to fit the footprint vacated by the original ROM chip. The board has a mini-USB connector which can be accessed through a hole he cut in the side of the cartridge enclosure. This is in the right place so that you cannot plug it in when it’s being used in the SNES (which would cause damage). The ATmega32u4 chip handles USB connectivity and programs the 32 megabit flash chip which stores the ROM. He’s posted a few articles on the blog portion of his site which you’ll find interesting. We suggest starting with this hardware teaser.