One Solution, Many Problems

You might think you’re lucky when one of your problems has multiple solutions, and you get to pick and choose, but you’re even luckier when one solution has many problems! This week I stumbled on an old solution in a new place. The project was a fantastic old MIDI guitar build, the Tryndelka by [Aleksandr Goltsov]. And the old solution? Switch matrix diodes.

You see, [Aleksandr] is making an electric guitar where the strings are pulled up to a certain voltage and then make contact with metal frets. Each fret is cut into six pieces, so that the strings can be read out individually, and the microcontroller scans each string in succession to test if it’s pressed down or not. Done, right? Wrong! The problem comes when two or more strings are pressed at once — the electrical path from the string you want will travel through the closed switch on a string that you’re not scanning. The solution is a ton of diodes.

I learned this problem the hard way in wiring up a MAME cabinet, at about 3 A.M. the night before we were going to bring it to Shmoocon. We finally got the whole USB/button code working, so we played some celebratory rounds of Street Fighter. We eventually noticed that hitting one button, or even moving the joystick in a particular direction, would block some of the other buttons from working, or change their function entirely. Quick Internet search later, and we were hand soldering 64 diodes until dawn. Good times!

But the fact that switch matrices need diodes, and exactly why, is forevermore burned in my brain. It’s fun to see it pop up in all sorts of contexts, from DIY keyboards to MIDI guitars, to Charliplexing. (It’s the “D” in LED!) It’s one of the classics — a solution to many problems.

The Little Big Dogs Of Invention

This is a story about two dogs I know. It is also a story of the U.S. Navy, aviation, and nuclear weapons. Sometimes it is easy to see things in dogs or other people, but hard to see those same things in ourselves. It’s a good thing that dogs can’t read (that we know of) because this is a bit of an embarrassing story for Doc. He’s a sweet good-natured dog and he’s a rather large labradoodle. He occasionally visits another usually good-natured dog, Rocky — a sheltie who is much smaller than Doc.

I say Rocky is good-natured and with people, he is. But he doesn’t care so much for other dogs. I often suspect he doesn’t realize he’s a dog and he is puzzled by how other dogs behave. You would think that when Doc comes to visit, the big dog would lord it over the little dog, right? Turns out, Doc doesn’t realize he’s way bigger than Rocky and — apparently — Rocky doesn’t realize he should be terrified of Doc. So Rocky bullies Doc to the point of embarrassment. Rocky will block him from the door, for example, and Doc will sit quaking unable to muster the courage to pass the formidable Rocky.

It makes you wonder how many times we could do something except for the fact that we “know” we can’t do it. Or we believe someone who tells us we can’t. Doc could barge right past Rocky if he wanted to and he could also put Rocky in his place. But he doesn’t realize that those things are possible.

You see this a lot in the areas of technology and innovation. Often big advances come from people who don’t know that the experts say something is impossible or they don’t believe them. Case in point: people were anxious to fly around the start of the 1900s. People had dreamed of flying since the dawn of time and it seemed like it might actually be possible. People like Alberto Santos-Dumont, the Wright brothers, ClĂ©ment Ader, and Gustave Whitehead all have claimed that they were the first to fly. Others like Sir George Cayley, William Henson, Otto Lilienthal, and Octave Chanute were all experimenting with gliders and powered craft even earlier with some success.

Continue reading “The Little Big Dogs Of Invention”

Who Is Thinking About Open Source Firmware?

Yesterday, we ran a post on NVIDIA’s announcement of open-source drivers for some of its most recent video cards. And Hackaday being huge proponents of open-source software and hardware, you’d think we’d be pouring the champagne. But it’s trickier than that.

Part of the reason that they are able to publish a completely new, open-source driver is that the secrets that they’d like to keep have moved into the firmware. So is the system as a whole more or less open? Yeah, maybe both.

With a more open interface between the hardware and the operating system, the jobs of people porting the drivers to different architectures are going to be easier. Bugs that are in what is now the driver layer should get found and fixed faster. All of the usual open-source arguments apply. But at the same time, the system as a whole isn’t all that much more transparent. The irony about the new NVIDIA drivers is that we’ve been pushing them to be more open for decades, and they’ve responded by pushing their secrets off into firmware.

Secrets that move from software to firmware are still secrets, and even those among us who are the most staunch proponents of open source have closed hardware and firmware paths in our computers. Take the Intel Management Engine, a small computer inside your computer that’s running all the time — even while the computer is “off”. You’d like to audit the code for that? Sorry. And it’s not like it hasn’t had its fair share of security relevant bugs.

And the rabbit hole goes deeper, of course. No modern X86 chips actually run the X86 machine language instructions — instead they have a microcode interpreter that reads the machine language and interprets it to what the chip really speaks. This is tremendously handy because it means that chip vendors can work around silicon bugs by simple pushing out a firmware update. But this also means that your CPU is running a secret firmware layer at core. This layer is of course not without bugs, some of which can have security relevant implications.

This goes double for your smartphone, which is chock-full of multiple processors that work more or less together to get the job done. So while Android users live in a more open environment than their iOS brethren, when you start to look down at the firmware layer, everything is the same. The top layer of the OS is open, but it’s swimming on top of an ocean of binary blobs.

How relevant any of this is to you might depend on what you intend to do with the device. If you’re into open source because you like to hack on software, having open drivers is a fantastic resource. If you’re looking toward openness for the security guarantees it offers, well, you’re out of luck because you still have to trust the firmware blindly. And if you’re into open source because the bugs tend to be found quicker, it’s a mix — while the top level drivers are made more inspectable, other parts of the code are pushed deeper into obscurity. Maybe it’s time to start paying attention to open source firmware?

Will We Ever Shake The Polaroid Picture?

Today, most of us carry supercomputers in our pockets that happen to also take instantly-viewable pictures.This is something that even the dumbest phones do, meaning that we can reasonably draw the conclusion that photographic capability has become a basic feature of everyday carry, a necessity of 21st century life.

Despite the unwashed masses of just-plain-bad photographs clouding the digital landscape, photography itself remains as important as ever so we can retain and disseminate information as history unfolds. In a sense, the more instant, the better — unless it comes at the cost of image quality. The invention of photography is on par with the printing press or with language itself in that all three allow us to communicate within our own time as well as preserve The Way Things Were in frozen silence. And no invention made vivid preservation more convenient than the instant camera.

Continue reading “Will We Ever Shake The Polaroid Picture?”

Learning Obsolete Technology

Tom Nardi and I were talking about his trip to the Vintage Computer Festival on the podcast, and he admitted to not having been a retrocomputer aficionado before his first trip. But he ended up keying some binary machine code into some collection of archaic silicon, and he got it. In the same episode, the sound of the week was a Strowger switch — the old electromechanical “brain” of telephone switching centers of old. The sample I used was from Sam of Look Mum No Computer on YouTube, who got one for his museum and thinks it’s just awesome.

Why do people like this kind of old (obsolete?) tech? It’s certainly not because it’s overwhelmingly capable — the giant old switch is replaced easily by a stack of silicon, and don’t even get me started on the old blinkenlights computer that Tom was keying on. In both of these cases, the people are significantly younger than the tech they’re playing around with, so that rules out nostalgia. What’s left?

I think it’s that sometimes the older technology is more immediate, more understandable, more tangible, and that resonates with people. In a time when we all have wonder devices that can do anything, programmed in languages that are pleasant, using libraries that are nothing short of magical in terms of making difficult things easy, understanding how things work down to the ground is a rare commodity.

But it’s a strange position to find ourselves in, technologically, where there’s almost necessarily a trade-off between the usefulness and functionality of a device with the ability to understand fundamentally how it works.

A Minimal Motoring Manifesto

A couple of years ago, Hackaday published an article, “Electric Vehicles Continue the Same Wasteful Mistakes That Limit Longevity“, in which we took a look at the way the car industry, instead of taking the move to electric traction as an opportunity to simplify their products, was instead making their electric offerings far more complex. It touched a nerve and received a very large comment volume, such that now it is our 19th most commented story of all time.

It’s something brought back to the fore by seeing a The Drive piece bemoaning the evolution of the automobile as a software receptacle governed by end-user licenses rather than a machine under the control of its owner. In turn that’s posed the question: Just what do you really need for a car, and what is superfluous? Time to provide an answer to that question, so here it is: a minimal motoring manifesto. Continue reading “A Minimal Motoring Manifesto”

New Tech And The Old Ways

This week on Hackaday, we featured a project that tickled my nostalgia bone, and proved that there are cool opportunities when bringing new tech to old problems. Let me explain.

[Muth] shared a project with us that combines old-school analog photography printing with modern LCD screens. The basic idea is to use a 4K monochrome screen in place of a negative, making a contact print by placing the screen directly on top of photographic paper and exposing it under a uniform light source. Just like the old ways, but with an LCD instead of film.

LCD exposure animationBut what’s the main difference between a screen and film? You can change the image on the LCD at will, of course. So when [Muth] was calibrating out exposures, it dawned on him that he could create a dynamic, animated version of his image and progressively expose different portions of the paper, extending the available dynamic range and providing him the ability to control the slightest nuances of the resulting image contrast.

As an old photo geek, this is the sort of trick that we would pull off manually in the darkroom all the time. “Dodging” would lighten up a section of the image by covering up the projected light with your hand or a special tool for a part of the exposure time. With [Muth]’s procedure, he can dodge the image programmatically on the per-pixel level. We would have killed for this ability back in the day.

The larger story here is that by trying something out of the box, applying a new tool to an old procedure, [Muth] stumbled on new capabilities. As hackers, we’re playing around with the newest tech we can get our hands on all the time. When you are, it might be that you also stumble on new possibilities simply afforded by new tech. Keep your eyes open!