Cheap USB Sniffer Has Wireshark Interface

If you’ve done any development on USB hardware, you’ve probably wished you could peek at the bits and bytes as they pass through the data lines. Sometimes, it’s the only way to properly understand what’s going on. [ataradov]’s USB sniffer is built to do just that. 

To sniff high-speed USB communications, the device relies on a Lattice LCMXO2 FPGA and a Cypress CY7C68013A microcontroller, paired with a Microchip USB3343 USB PHY. This setup is capable of operating at data rates of up to 40-50 MB/s, more than enough to debug the vast majority of USB peripherals on the market.

The device is built specifically for use with Wireshark. Most commonly used for network packet sniffing, Wireshark can also be used with a wide variety of other capture hardware for other debugging tasks, as seen here. In addition to live sniffing, it also allows captured data to be saved for later analysis.

If you need this tool, spinning up your own is straightforward. Gerber files are available and the required components can be bought off the shelf. Once assembled, you can program the chips via USB, with no external hardware programmer required.

We’ve seen some other similar hardware before. Meanwhile, if you’re whipping up your own useful debug tools, don’t hesitate to drop us a line!

Transform An Original Xbox Controller To A 360 Controller

If you’re looking for a controller for your computer or mobile device, you could certainly do worse than one of the latest iterations of the Xbox pad. They might not be perfect, but they’re fairly well-made, not particularly expensive, use standard USB and Bluetooth interfaces, and even have decent support in the open-source community. So if you’re gaming on Linux or working on any other kind of retro gaming rig it’ll likely be plug-and-play.

This wasn’t the case with the first generation Xbox controller, though, and although its proprietary connector was actually using USB, the controller scheme wasn’t as open. This is [Tom]’s effort of upcycling his original Xbox controller to work indistinguishably from a stock Xbox 360 controller.

For those asking why anyone would want to do this, [Tom] is actually one of the few who enjoyed the original bulky Xbox “Duke” controller that released with the console in 2001. It wasn’t a popular choice in the larger gaming community and a year later Microsoft released a smaller version, but we all have our quirks. A Teensy 4.1 is attached to the end of the controller cable and acts as an intermediary to intercept the proprietary signalling coming from this controller and convert it into something usable. Since the controller doesn’t even show up as a standard USB HID device it took a little more sniffing of the protocol to decipher what was going on at all, but eventually some help was found within this other driver that gave [Tom] the clues he needed to get it working.

There were some other headaches to this project as well, especially since USB debugging USB connections while using USB isn’t exactly a streamlined process, but after a couple of breakthroughs the Teensy pass-through interface began working and [Tom] can use his controller of choice across multiple platforms now. If you’re looking to upgrade in other ways take a look at this build which seeks to recalibrate, rather than replace, an older Xbox controller experiencing drift on its analog control sticks.

Continue reading “Transform An Original Xbox Controller To A 360 Controller”

JITX Spits Out Handy USB Cable Tester

When USB first came on the scene, one of the benefits was that essentially any four conductors could get you to the point where you could send information at 12 Mbps. Of course everything is faster these days, and reaching today’s speeds requires a little bit more fidelity in the cables. This simple tester makes sure that your modern cables are actually up to the task.

One of the design goals of this project is to automate away the task of testing cables or finding one that works, especially before thinking a problem with a device is somewhere in software, spending hours or days debugging, before realizing that it’s actually being caused by a hardware malfunction. The small PCB has two USB-C fittings to plug in both of the ends of a cable to, and between those connectors there is a number of LEDs. Each LED is paired to one the many conductors within the USB cable, and not only does it show continuity of these conductors but it can also show a high resistance connection via a dimly-lit or off-color display from an LED.

One of the other interesting facets of this build is the use of JITX, which is a software-defined electronics CAD tool which allows PCB design to be automated by writing out the requirements of the PCB into code, rather than drawing it manually. It’s worth a look, and a lot of the schematics of this particular project as well as some discussion on this software can be found on the project’s GitHub page. Incidentally, if this tester looks familiar, it’s probably because your’re thinking of the open source hardware USB tester created by [Álvaro Prieto].

Headset’s Poor Range Fixed By Replacing Antenna

[rafii6312]’s Corsair HS80 wireless headset had a big problem: short range. The sound quality was great, but the wireless range wasn’t winning any friends. Fortunately, the solution was just to swap the small SMT antenna on the USB transmitter for an external one.

Original SMT antenna (blue component) offers small size, but poor range.

This particular headset relies on a USB dongle to transmit audio from PC to headset over its own 2.4 GHz wireless connection. By popping open the USB dongle, [rafii6312] was able to identify an SMT antenna and easily desolder it, replacing it with a wired connection to a spare 2.4 GHz external antenna. That’s all it took to boost the headset’s range from barely one room to easily three rooms, which is a success by any measure.

Sadly, the USB transmitter dongle doesn’t have any intention of being opened and puts up a fight, so the process was a bit destructive. No problem, [rafii6312] simply fired up Fusion360 to design a new 3D-printed enclosure that accommodated the new antenna. Pictures, instructions, and 3D model files are all available on the project page, if you want to improve your headset, too.

This kind of antenna upgrade is reasonably straightforward, but if one is armed with the right knowledge, antenna upgrades from scratch using scrap wire and dollar store hardware are entirely possible. Just be sure to pick an antenna that doesn’t weigh down your headset.

MIDI Interface For NeXTcube Plugs Into The Past

[Joren] recently did some work as part of an electronic music heritage project, and restored an 80s-era NeXTcube workstation complete with vintage sound card, setting it up with a copy of MAX, a graphical music programming environment. But there was one piece missing: MIDI. [Joren] didn’t let that stop him, and successfully created hardware to allow MIDI input and output.

The new panel provides all the connectors necessary to interface with either classic MIDI devices, or MIDI over USB (where it appears as a USB MIDI device to any modern OS.)

Interestingly, the soundcard for the NeXTcube has an RS-422 serial port and some 8-pin mini DIN connectors. They are not compatible with standard MIDI signals, but they’re not far off, either.

To solve this, [Joren] used a Teensy developer board to act as an interface between classic MIDI devices like keyboards or synthesizers (or even not-so-common ones like this strange instrument) while also being able to accommodate modern MIDI over USB connections thanks to the Teensy’s USB MIDI functionality.

A metal enclosure with a 3D-printed panel rounds out the device, restoring a critical piece of functionality to the electronic music-oriented workstation.

MIDI as a protocol isn’t technically limited to musical applications, though that’s one place it shines. And just in case it comes in handy someday, you can send MIDI over I2C if you really need to.

Hackaday Links Column Banner

Hackaday Links: May 14, 2023

It’s been a while since we heard from Dmitry Rogozin, the always-entertaining former director of Roscosmos, the Russian space agency. Not content with sending mixed messages about the future of the ISS amid the ongoing war in Ukraine, or attempting to hack a mothballed German space telescope back into action, Rogozin is now spouting off that the Apollo moon landings never happened. His doubts about NASA’s seminal accomplishment apparently started while he was still head of Roscosmos when he tasked a group with looking into the Apollo landings. Rogozin’s conclusion from the data his team came back with isn’t especially creative; whereas some Apollo deniers go to great lengths to find “scientific proof” that we were never there, Rogozin just concluded that because NASA hasn’t ever repeated the feat, it must never have happened.

Continue reading “Hackaday Links: May 14, 2023”

Minimal USB Device Connects With Just A Couple Of Resistors

If you’re like most of us, your basic approach to building something boils down to: “What’s the minimum amount I need to do to get this to work?” It’s not a bad strategy in general, but the minimal build is rarely enough to meet all the requirements, as this extremely minimal but functional USB device illustrates.

Functional, yes, but as [TM] explains, only if you define functional as being recognized by your operating system. The BOM for that job turns out to be really small — a 3.3-volt regulator, its capacitor, and a pair of resistors connected to a DIP switch. The resistors, 1.5k each, are connected to the D+ and D- lines of the USB connector and pull their respective lines up to 3V3 when their switch is closed. If the D- switch is thrown, it indicates a low-speed connection is requested, while D+ requests a speedier connection. Either way, its enough to get the familiar “USB connect” sound in Windows, and to see it listed in Device Manager or dmesg on Linux.

With no microcontroller to return a device descriptor, not much else happens, of course, but it’s still interesting that so little is needed to at least get the host machine to know that something was plugged in. And that alone has some diagnostic value; as [TM] points out, you could use this circuit to test that the physical port on the host at least minimally works.

He runs through a few other potentially useful scenarios, but really, the best use of something like this is to educate yourself on the lowest levels of USB connection negotiation. If you want to dive deeper into USB-C specifically, we suggest you check out [Arya Voronova]’s “All About USB-C” series.

Continue reading “Minimal USB Device Connects With Just A Couple Of Resistors”