Hacking USB Hack Chat

Join us on Wednesday, February 26 at noon Pacific for the Hacking USB Hack Chat with Kate Temkin!

For all its aggravating idiosyncrasies, the Universal Serial Bus has been a game-changer in peripheral connections for nearly a quarter of a century now. What was once simply a means to connect a mouse and a keyboard to a computer has been extended and enhanced into something so much more than its original designers intended. The flexibility that led to these innovative uses for USB also led to its ubiquity, with some form of the connector sprouting from nearly every imaginable device.

Kate Temkin is well-versed in the intricacies of the Universal Serial Bus. As a software lead for Great Scott Gadgets, Kate has developed software and firmware for GSG’s products, like GreatFET and HackRF. Kate also contributes to and maintains a number of open-source projects, including the FaceDancer project. And when she’s not busy with all of this, she can be found sharing her deep knowledge with USB security training courses, where she shows how USB is vulnerable to attack, and what to do to prevent it.

Join us for the Hacking USB Hack Chat this week, where Kate will discuss anything and everything about USB. Come learn about what the future holds for the USB standard, and what you can do to keep your USB project on track.

join-hack-chatOur Hack Chats are live community events in the Hackaday.io Hack Chat group messaging. This week we’ll be sitting down on Wednesday, February 26 at 12:00 PM Pacific time. If time zones have got you down, we have a handy time zone converter.

Click that speech bubble to the right, and you’ll be taken directly to the Hack Chat group on Hackaday.io. You don’t have to wait until Wednesday; join whenever you want and you can see what the community is talking about. Continue reading “Hacking USB Hack Chat”

Hacklet 79 – USB Projects

Universal Serial Bus was created to simplify interconnecting computers and peripherals. First released in 1996, hackers and makers were slow to accept this strange new protocol. Parallel and serial ports were simpler, worked great, and had decades of hacking with thousands of projects behind them. As the new standard caught on in the mainstream, RS-232 and parallel ports started disappearing. “Legacy free” PC’s became the norm. Hackers, Makers, and Engineers had no choice but to jump on the bandwagon, which they did with great gusto. Today everything has a USB port. From 8 bit microcontrollers to cell phones to children’s toys. This week’s Hacklet is about some of the best USB projects on Hackaday.io!

two partsWe start with [Michael Mogenson] and Two Component USB Temperature Data Logger, which may be the simplest USB device ever made. [Michael] isn’t kidding. This data logger consists of just a Microchip PIC16F1455 microcontroller and a USB connector. Microchip’s datasheet calls for a capacitor to smooth out power, but [Michael] made it work without the extra part. He used M-Stack by Signal 11 to implement the USB stack. Once connected to a PC, the PIC enumerates as a serial port device. It then sends its die temperature of the PIC once per second. It could do more, but that would probably require adding a few more components!

tester1Next up is [davedarko] with USB cable tester. Dave recently spent some time installing USB RFID readers. These devices were only a few meters away from the computer controlling them. Even so, the power and USB data cables had to run through pipes and in some cases under water. It wasn’t fun troubleshooting a device to find that it was a shorted USB cable causing the problem. [Dave’s] solution is a tiny coin cell powered board that tests each of the 4 wires in a standard USB 2.0 cable. The board runs on an ATtiny45 microcontroller. [Dave’s] current iteration has footprints for mini and micro USB connectors, along with the standard USB-A.

 

tester2[MobileWill] has a USB Tester of his own. This USB tester checks current consumption and rail voltage. It does this by connecting in-line with the device under test. It’s perfect for troubleshooting why your PC’s USB port goes into over-current protection every time you plug in your device. The tester is modular – you can use the base board with your own multimeter, or grab [Will’s] tester backpack and see the results right on the built-in OLED display. USB Tester is [Will’s] entry in the 2015 Hackaday Prize.

 

tbdFinally, we have [ajlitt] with Tiny Bit Dingus (TBD). TBD is a USB interface to 6 wires. Think of it as a tiny version of the bus pirate. This lilliputian board holds a Freescale KL27Z ARM processor, which has more than enough power to handle things like I2C, SPI, PWM, or just about any other way to send data or wiggle wires. [Ajlitt] started this project as an excuse to learn KiCAD and gain some experience with surface mount solder stencils. The result is an absolutely tiny board that is all but lost in a USB socket. Programming is handled with the mbed library, though you can always use Freescale’s native tools. Flashing code on the TBD is easy with kut, a chrome browser plugin.

If you want to see more USB projects, check out our new USB projects list. Did I miss your project? Don’t be shy, just drop me a message on Hackaday.io. That’s it for this week’s Hacklet, As always, see you next week. Same hack time, same hack channel, bringing you the best of Hackaday.io!

USB Switch

Reverse Engineering How A USB Switch Switches

[Daniel] found himself with a need to connect a single USB device to two Linux servers. After searching around, he managed to find an inexpensive USB switch designed to do just that. He noticed that the product description mentioned nothing about Linux support, but he figured it couldn’t be that hard to make it work.

[Daniel] started by plugging the device into a Windows PC for testing. Windows detected the device and installed an HID driver automatically.  The next step was to install the control software on the Windows system. This provided [Daniel] with a tray icon and a “switch” function. Clicking this button disconnected the HID device from the Windows PC and connected the actual USB device on the other side of the USB switch. The second computer would now have access to the HID device instead.

[Daniel] fired up a program called SnoopyPro. This software is used to inspect USB traffic. [Daniel] noticed that a single message repeated itself until he pressed the “switch” button. At that time, a final message was sent and the HID device disconnected.

Now it was time to get cracking on Linux. [Daniel] hooked up the switch to a Linux system and configured a udev rule to ensure that it always showed up as /dev/usbswitch. He then wrote a python script to write the captured data to the usbswitch device. It was that simple. The device switched over as expected. So much for having no Linux support!

Chameleon Emulates Contactless Smart Cards

chameleon

Researchers at Ruhr University of Bochum in Germany have been busy working with RFID and related devices for quite some time now. They call the fruit of their labors Chameleon, a versatile Contactless Smart Card Emulator. Contactless Smart Cards are RFID style devices that also contain a smart card style memory. These cards are often used for payment, replacing mag strip style credit cards. Philips MIFARE Classic cards are a common example of contactless smart cards. The Chameleon is set up to emulate any number of cards using the common 13.56MHz frequency band. Adding a new card is as simple as loading up a new CODEC  and application to the firmware. Currently Chameleon can emulate MIFARE cards using the ISO14443A.

The Chameleon is completely open source, and can be built for around $25 USD. The heart of the system is an Atmel ATxmega192A3 microcontroller. The 192 is a great microcontroller for this task because it contains hardware accelerators for both DES and AES-128. An FTDI USB interface chip is used to provide an optional communication link between a host computer and the ATxmega. The link can be used for debugging, as well as manipulating data in real-time. A host PC is not necessary for use though – the Chameleon will operate just fine as a stand alone unit. We definitely like this project – though we’re going to be doubling down on the shielding in our RF blocking wallets.

Classic 80’s Stereo Receiver Enjoys A Second Life As RadioduinoWRT

radio2[Raffael] had an old Broken Yamaha natural sound receiver lying around. Rather than throw it out, he built himself a slick web radio. He calls it RadioduinoWRT. [Raffael] started by removing all the internals – though he kept the front panel controls.  He then added an Arduino Mega to handle the front panel controls, including a 16×2 character LCD module. The Arduino also takes commands via IR remote. An enc28j60 Ethernet module allows the Arduino to communicate with a the brains of the operation, a TL-WR703N mini router.

A micro USB hub expands the single USB port on the WR703, allowing both a USB sound card and a 4 gig USB stick to be mounted. We’d like to add that the TL-WR703 is a must in this application – the amazon link [Rafael] provides brings up the TL-WR702 as a top link. Only the TL-WR703 has a USB host connection.

The real magic is in [Raffael’s] software setup. The WR703 is running OpenWRT.  He added modules for the USB sound card, as well as expanding the file system onto the USB stick. Once that was complete [Raffael] added Music Player Daemon (MPD) and MPC, a console app to drive MPD. Lighttpd, a light web server provides an interface for the Arduino as well as a web front end to the entire radio.All this allows [Raffael] to control his radio in several ways. He can log in via any web browser on his network. He can use the front panel controls. He can use an IR remote. Since he is running MPD, any client (there are literally hundreds out there) will also drive the radio.

While a low-end USB sound card in a home stereo application does make our inner audiophile cringe a bit, the quality does seem to be pretty good. [Rafael’s] design would make it simple to swap out a higher quality USB sound card if the need arises.

Continue reading “Classic 80’s Stereo Receiver Enjoys A Second Life As RadioduinoWRT”