Xbox One Adaptive Controller Mod

Dad’s Custom Xbox Adaptive Controller Build For His Child

When Microsoft announced the Xbox adaptive controller earlier this year, many were pleasantly surprised at how adaptive it truly was. The controller features 3.5mm jacks for easily connecting any external input device and sports an impressive build quality given its price tag, but the most impressive part was the fact that the design was so open in nature. Rather than seeking to create a specific design solution tailored to a subset of users the adaptive controller acts more as a hub for the community’s designs. One of those brilliant designs comes from [Colton] who posted a five-part series on his custom controller build for his daughter.

Xbox One Adaptive Controller Build Push Button Switches

His daughter, Ellie, has Cornelia de Lange syndrome which prevents her from being able to use more conventional pressure sensitive input devices. So [Colton] devised a way for buttons to be pressed using an alternate range of motion. By attaching foam massage inserts to standard paint rollers, the buttons could be triggered by allowing the peaks and valleys of the foam to roll over the top of each button. He could achieve even better accuracy by attaching braided ribbon over the buttons in order to prevent binding.

After finding that setup to be successful, [Colton] went about designing a frame. He arrived at using PVC pipe and utilizing tees as anchor points for the rollers. A couple of steel hose clamps are enough to hold each of the foam rollers in place, and the contact distance can be dialed in with buttons housed in threaded PVC adapters (shown right). After the addition of a little colored wrap here and there the build has a decidedly cheery exterior.

However, the build was not complete without a custom piece of software to match. [Colton] reached out for help from his nephew to program a “RGB Etch-a-Sketch” they called Sundoodler. The game runs on a small form factor PC hooked up to a projector so Ellie can play lying down. [Colton] has some future plans for his daughter’s custom Xbox adaptive controller build, but for now you can see the results in the video below.

Continue reading “Dad’s Custom Xbox Adaptive Controller Build For His Child”

Supercon: Alex Hornstein’s Adventures In Hacking The Lightfield

We are all familiar with the idea of a hologram, either from the monochromatic laser holographic images you’ll find on your bank card or from fictional depictions such as Princes Leia’s distress message from Star Wars. And we’ve probably read about how the laser holograms work with a split beam of coherent light recombined to fall upon a photographic plate. They require no special glasses or headsets and  possess both stereoscopic and spatial 3D rendering, in that you can view both the 3D Princess Leia and your bank’s logo or whatever is on your card as 3D objects from multiple angles. So we’re all familar with that holographic end product, but what we probably aren’t so familiar with is what they represent: the capture of a light field.

In his Hackaday Superconference talk, co-founder and CTO of holographic display startup Looking Glass Factory Alex Hornstein introduced us to the idea of the light field, and how its capture is key to  the understanding of the mechanics of a hologram.

Capturing the light field with a row of GoPro cameras.
Capturing the light field with a row of GoPro cameras.

His first point is an important one, he expands the definition of a hologram from its conventional form as one of those monochromatic laser-interference photographic images into any technology that captures a light field. This is, he concedes, a contentious barrier to overcome. To do that he first has to explain what a light field is.

When we take a 2D photograph, we capture all the rays of light that are incident upon something that is a good approximation to a single point, the lens of the camera involved. The scene before us has of course countless other rays that are incident upon other points or that are reflected from surfaces invisible from the single point position of the 2D camera. It is this complex array of light rays which makes up the light field of the image, and capturing it in its entirety is key to manipulating the result. This is true no matter the technology used to bring it to the viewer. A light field capture can be used to generate variable focus 2D images after the fact as is the case with the Lytro cameras, or it can be used to generate a hologram in the way that he describes.

One possible future use of the technology, a virtual holographic aquarium.
One possible future use of the technology, a virtual holographic aquarium.

The point of his talk is that complex sorcery isn’t required to capture a light field, something he demonstrates in front of the audience with a volunteer and a standard webcam on a sliding rail. Multiple 2D images are taken at different points, which can be combined to form a light field. The fact that not every component of the light field has been captured doesn’t matter as much as that there is enough to create the holographic image from the point of view of the display. And since he happens to be head honcho at a holographic display company he can show us the result. Looking Glass Factory’s display panel uses a lenticular lens to combine the multiple images into a hologram, and is probably one of the most inexpensive ways to practically display this type of image.

Since the arrival of the Lytro cameras a year or two ago the concept of a light field is one that has been in the air, but has more often been surrounded by an air of proprietary marketing woo. This talk breaks through that to deliver a clear explanation of the subject, and is a fascinating watch. Alex leaves us with news of some of the first light field derived video content being put online and with some decidedly science-fiction possible futures for the technology. Even if you aren’t planning to work in this field, you will almost certainly encounter it over the next few years.

Continue reading “Supercon: Alex Hornstein’s Adventures In Hacking The Lightfield”

Neo Geo Mini Gets The Ben Heck Portable Treatment

It feels like that Neo Geo Mini kinda came and went. All the hype surrounding the idea of having a tiny usable arcade machine melted away when the original system’s fans first touched the “non-clicky” joystick. While it was encouraging to see the inclusion USB-C power, there was no internal battery to allow players to use the system untethered. Not satisfied with the product in its current state [Ben Heck] shot a video detailing his latest portable creation using the Neo Geo Mini internals.

The design of the portable focuses around incorporating aspects of the Neo Geo MVS arcade system that the Neo Geo Mini lacks. The D-pad includes tiny micro-switches, or as [Ben Heck] calls them nano-switches, for a decidedly more tactile feel. He was able to re-purpose the speakers and headphone jack from the original PCB along with the 4:3 aspect ratio LCD. The custom faceplate wraps everything in the familiar red and white insignia while the 3D printed face buttons come in the classic red, yellow, green, and blue. Don’t worry, they are finally in the right button configuration here.

It’s great to see [Ben Heck] still making portable magic since his YouTube show ended earlier this year. He has contributed a lot to the modding community over the years, and there are plenty of helpful tips scattered throughout this Neo Geo Mini portable video as well. Note that the build is split into two separate videos (part two is below). We look forward to many more projects like this from [Ben Heck] in the future.

Continue reading “Neo Geo Mini Gets The Ben Heck Portable Treatment”

Creating Black Holes: Division By Zero In Practice

Dividing by zero — the fundamental no-can-do of arithmetic. It is somewhat surrounded by mystery, and is a constant source for internet humor, whether it involves exploding microcontrollers, the collapse of the universe, or crashing your own world by having Siri tell you that you have no friends.

It’s also one of the few things gcc will warn you about by default, which caused a rather vivid discussion with interesting insights when I recently wrote about compiler warnings. And if you’re running a modern operating system, it might even send you a signal that something’s gone wrong and let you handle it in your code. Dividing by zero is more than theoretical, and serves as a great introduction to signals, so let’s have a closer look at it.

Chances are, the first time you heard about division itself back in elementary school, it was taught that dividing by zero is strictly forbidden — and obviously you didn’t want your teacher call the cops on you, so you obeyed and refrained from it. But as with many other things in life, the older you get, the less restrictive they become, and dividing by zero eventually turned from forbidden into simply being impossible and yielding an undefined result.

And indeed, if a = b/0, it would mean in reverse that a×0 = b. If b itself was zero, the equation would be true for every single number there is, making it impossible to define a concrete value for a. And if b was any other value, no single value multiplied by zero could result in anything non-zero. Once we move into the realms of calculus, we will learn that infinity appears to be the answer, but that’s in the end just replacing one abstract, mind-boggling concept with another one. And it won’t answer one question: how does all this play out in a processor? Continue reading “Creating Black Holes: Division By Zero In Practice”

3D Printer Warning: Heating Plastic To High Temps Is Not Healthy

If you’ve ever tried to cut a piece of acrylic with a tool designed to cut wood or metal, you know that the plastic doesn’t cut in the same way that either of the other materials would. It melts at the cutting location, often gumming up the tool but always releasing a terrible smell that will encourage anyone who has tried this to get the proper plastic cutting tools instead of taking shortcuts. Other tools that heat up plastic also have this problem, as Gizmodo reported recently, and it turns out that the plastic particles aren’t just smelly, they’re toxic.

The report released recently in Aerosol Science and Technology (first part and second part) focuses on 3D printers which heat plastic of some form or other in order to make it malleable and form to the specifications of the print. Similar to cutting plastic with the wrong tool, this releases vaporized plastic particles into the air which are incredibly small and can cause health issues when inhaled. They are too small to be seen, and can enter the bloodstream through the lungs. The study found 200 different compounds that were emitted by the printers, some of which are known to be harmful, including several carcinogens. The worst of the emissions seem to be released when the prints are first initiated, but they are continuously released throuhgout the print session as well.

Perhaps it’s not surprising that aerosolized plastic is harmful to breathe, but the sheer magnitude of particles detected in this study is worth taking note of. If you don’t already, it might be good to run your 3D printer in the garage or at least in a room that isn’t used as living space. If that’s not possible, you might want to look at other options to keep your work area safe.

Thanks to [Michael] for the tip!

Jittery Back Off To Speed Up

In systems where there are multiple participants who need to interact with a shared resource some sort of concurrency protection is usually appropriate. The obvious technique is to use locking (and fun words like “mutex”) but this adds a constant performance hit as every participant needs to spend time interacting with the lock regardless of the number of other participants. It turns out this is actually a Big Problem that garners original research, but there are techniques that can yield great effect without a PhD. Years ago [Marc] posted a great walkthrough of one such method, exponential backoff with jitter, to Amazon’s AWS blog which is a great introduction to one such solution.

The blog post was written specifically to deal systems using a specific technique called optimistic concurrency control (OCC) but that doesn’t mean the advice isn’t generally applicable. OCC refers to a method where each writer checks for a write collision only after performing the write (but before committing it), which works well in scenarios where writes are relatively uncommon. [Marc] observed that even in systems where this is a safe assumption things bog down significantly when there are too many writers clamoring for attention all at once.

The traditional solution to such a problem is for each writer to pause for an exponentially increasing amount of time before trying again, but as writers come back in big groups the same problem can recur. He provides a discussion of simple modifications to that strategy which result in significantly reduced wait times for writers.

Problems like this are not especially relevant for single Arduino sensor networks, but even small groups of systems can have concurrency trouble and it’s nice to see such an accessible write up with solutions which are viable even for simple systems. Bonus points to [Marc] for posting source to his test tool online. It doesn’t require anything outside of your computer to run (no AWS required) so if you have any brainwaves about speeding up multi-writer environments it might make a nice test environment! Maybe don’t mention the blog post in your PhD applications though.

Simulating A Speaker

Speakers are one of those components that are simple to use, but difficult to simulate. Most of us have used a simple resistor to do the job. But a speaker’s response is much more complex, and while that might be enough for a simple simulation the fidelity is nowhere near close. [Sourav Gupta] recently shared his technique for modeling speakers and it looks as though it does a credible job.

[Sourav] shows how a simple resistor and an inductor can do the job, but for better fidelity you need more components to model some mechanical effects. The final model has six components which keeps it easy enough to construct but the problem lies in finding the values of those six components. [Sourav] shows how to use the Thiele-Small parameters to solve that problem. Speaker makers provide these as a guide to low frequency performance, and they capture things such as Q, mass, displacement, and other factors that affect the model.

Continue reading “Simulating A Speaker”