Gaming on a PC is obviously superior and you would be a fool to argue otherwise. The keyboard and mouse is the obviously superior input device, but there are times when you just want to play games on a couch. [Gabriel] has an interesting solution to this input problem in the second version of his KeyBall Controller. It’s a controller, but it leverages the superior layout and precision of the keyboard and mouse combo, without making any compromises.
[Gabriel]’s KeyBall Controller began its life as several generic console controllers. The main body of is mostly a clone of the original Xbox S controller. Inside, there are parts from a clone SNES controller, a PSX controller, a generic USB trackball, and an iPazzPort USB handheld keyboard.
The construction of the KeyBall follows in the tradition of the best case modders we’ve ever seen: cutting plastic, gluing plastic, applying epoxy putty, and lots of sanding. The electronics for the controller also follow in the most hallowed traditions of case modders: perfboard, hot glue, and many fine strands of wire. Inside the controller is a USB hub to connect all the different USB devices.
It’s a great device that finally solves the problem of putting a traditional keyboard and mouse layout in the palms of your hands.
You’d think just about all the permutations of adding a hub to the Raspberry Pi Zero were done. But you’d be wrong. [Daniel’s] approach is to put the Zero inside the existing case for the hub. The LogiLink hub used is in a nice metal case with mounting flanges on the side. It looks robust and not much like a typical consumer hub. This hack would serve well where the Zero and hub might take a few wacks.
It took some fiddling with the hub components but he made it work. The easy part was wiring the the power and USB test points on the Zero to the hub.
More challenging were the mechanical aspects to physically fit the Zero into the case. Four LEDs were removed since their only purpose was indicating if a cables were plugged into the hub. There are four electrolytic capacitors standing upright that occupied the space needed by the Pi. [Daniel] repositioned them to lie horizontally to provide room for the Zero.
With the Zero able to fit inside the case the next steps are to create mounting holes in the USB board and cut holes in the case to access the HDMI and USB ports and the SD card holder. Some finicky work with a Dremel provided the holes and the cutouts. Fortunately, the mounting holes on the Zero aligned with some open spaces on the USB board. If they don’t, some glue and standoffs might be sufficient.
The only aspect [Daniel] left for you to hack is access to the GPIO port. That would require another cutout to bring out a ribbon cable for controlling your world. After such a nicely detailed writeup with a plethora of pictures, he had to leave something for other hackers to do.
[Steve]’s big realization was that he could send the digital data that the Neopixels needed by carefully selecting a resolution and clock rate for the VGA to match the timings that the WS2811 modules wanted. A resolution of 840×1000 at 28MHz produces 70 pixels per WS2811 bit, or 12 bits per line. This means two VGA lines need to be sent for the RGB triple for each LED, hence the 1000 rows.
There are some further tricks before [Steve] got around to writing a custom OpenGL shader that converts regular graphics to his strange black-and-white bit pattern to drive the LEDs, but you’re going to have to read [Steve’s] blog for all that. If you’re waiting for a full code write-up, [Steve] says that one’s pending.
We’re just stoked to see the computing power that lies within a video card used for other purposes. Once you think of the VGA output as a general-purpose high speed (analog!) output, it opens up a whole bunch of possibilities if you can write the corresponding video software. As [Steve] points out, he’s only using the red channel right now — he could trivially add another 1000 LEDs just by tweaking his video code.
If you need to reverse-engineer a USB protocol on a computer running Linux, your work is easy because you control everything on the target system — you can just look at the raw USB data. If you’d like to reverse-engineer a USB device that plugs into a game console, on the other hand, your work is a lot harder. Until now.
serialusb is a side-project by [Mathieu Laurendeau], alias [Matlo]. His main project, GIMX is aimed at gaming and lets you modify your gaming controller’s performance by passing it first through your PC and tweaking the USB data before forwarding it on to the target console. Want rapid fire? You got it. Alter the steering-wheel sensitivity curves? Sure.
GIMX is essentially a USB man-in-the-middle between your controller and your console, with the added ability to modify the data along the way. For hardware that’s not yet supported by GIMX, though, either [Matlo] would need to borrow your controller, or teach you to man-in-the-middle your own USB traffic. And that’s what serialusb does.
The hardware required is very modest: a USB-to-serial adapter and an ATmega32u4-based Arduino clone. Many of you could whip this together with parts on hand, and it’s the same hardware you’d need to run GIMX anyway. Data goes through your computer, is usbmon’ed and wireshark’ed, and then passed over serial to the ATmega which then converts it back into USB, plugged into the console. A very tidy little setup.
[Neil Movva] is not your average college student. Rather than studying for exams or preparing to defend a dissertation, he’s working on a project that will directly help the disabled. The project is Pathfinder, a wearable haptic navigation system for the blind. Pathfinder is an ambitious project, making it all the way to the semifinals of the 2015 Hackaday Prize. Haptics, the technology of providing feedback to a user through touch, lies at the core of Pathfinder. [Neil] was kind enough to present this talk about it at the Hackaday SuperConference.
Back in the day, we had smartphones with physical buttons. Not just power, volume, and maybe another button on the front. Whole, slide-out QWERTY keyboards right on the underside of the phone. It was a lawless wasteland, but for those who yearn for the wild-west days of the late 2000s, [Liviu] has recreated the shortcut buttons that used to exist on the tops of these keyboards for modern-day smartphones.
There were lots of phones that had shortcut keys on their keyboards, but [Liviu] enjoyed using the ones that allowed him to switch between applications (or “apps” as the kids are saying these days) such as the calendar, the browser, or the mail client. To recreate this, he went with a few NFC tags. These devices are easily programmed via a number of apps from your app store of choice, and can be placed essentially anywhere. In order to make them visible to the phone at any time, though, he placed the tags inside a clear plastic case for his phone and can now use them anytime.
If you’ve never used or programmed an NFC tag, this would be a great project to get yourself acquainted with how they operate. Plus, you could easily upgrade this project to allow the tags to do any number of other things. You can take projects like this as far as you want.
[Frederick] decided his new Zero needed a USB hub. He noticed a small, on hand, USB hub was the same size as the Zero. As any good hacker would, he stripped it from its case to piggy-back it onto the Zero. What’s with the piggy-backing since we just saw that with another Zero hack that added a WiFi dongle? Is it something in the water? Nah, probably just a natural fit with the mini-sized Zero.
Foam and elastic bands make a next arrangement
Tricky wiring to the hub’s USB
It certainly helps that the USB and power pads on the back of the Zero are available and of a good size to accept direct, soldered wire connections. The USB connections on the hub were a little more tricky. The wires were soldered to the surface mount pins of the mini-B connector. But [Frederick] managed to get that done, also.
A nice advantage of this hack is that a couple of soldered jumper wires let the Zero draw power from the hub’s wall-wart, eliminating one cable from those needed to work with the Pi. Using hot glue for strain relief on the wiring is a nice touch. To keep the boards from shorting he put a piece of foam between them and help them together with elastic bands. Simple and easy.