Human-Interfacing Devices: The Descriptor Heist

Today, we’ll build our own input devices. And they will be easy to create and write firmware for, they will work perfectly, and they will be cross-platform. We can do that with help of the Human Interface Device (HID) standard, and by way of introduction, so that you never get confused by what a “descriptor” means, and we’ll build our own HID device — a Human Interface Device device. The way we build them won’t require reading specifications – instead, I’ll teach your how to steal HID descriptors from existing devices, tweak them for our purposes, and use them in our devices to harness the power of HID.

For decades now, it’s been possible to build a HID mouse or keyboard by using a library or two, and it’s been a godsend for hackers all around the world. However, these libraries are typically confined to a certain template and inflexible, and we hackers often go outside of what’s expected. HID allows for much more than a simple keyboard or a mouse. That’s why today we’re building a touchscreen – something not yet covered online or by libraries.

HID lets you build devices that are friendly. They don’t need drivers, they are plug and play, and they do what you expect them to do. At its core, the HID standard is as simple as is ubiquitous. You can tunnel HID over USB, Bluetooth, I2C, and modern-day operating systems support all three of these. Today, let’s go through the basics of HID, and then build a USB touchscreen out of a SPI-connected resistive touchscreen, with help of the usual RP2040+MicroPython combo. I will also give you a toolkit for how to debug a Human Interface Device device as thoroughly as possible – specifically on Linux, showing all the HID debug and introspection capabilities that Linux gives you. But it’ll work on Windows too through the beauty of standardization.

Continue reading “Human-Interfacing Devices: The Descriptor Heist”

The Past, Present, And Future Of Inflatable Space Habitats

Recently, a prototype inflatable space station module built by Sierra Space exploded violently on a test stand at NASA’s Marshall Space Flight Center in Alabama. Under normal circumstances, this would be a bad thing. But in this case, Sierra was looking forward to blowing up their handiwork. In fact, there was some disappointment when it failed to explode during a previous test run.

LIFE Module Burst Test

That’s because the team at Sierra was looking to find the ultimate bust pressure of their 8.2 meter (26.9 foot) diameter Large Integrated Flexible Environment (LIFE) module — a real-world demonstration of just how much air could be pumped into the expanding structure before it buckled. NASA recommended they shoot for just under 61 PSI, which would be four times the expected operational pressure for a crewed habitat module.

By the time the full-scale LIFE prototype ripped itself apart, it had an internal pressure of 77 PSI. The results so far seem extremely promising, but Sierra will need to repeat the test at least two more times to be sure their materials and construction techniques can withstand the rigors of spaceflight.

Sierra is a targeting no earlier than 2026 for an in-space test, but even if they nail the date (always a dubious prospect for cutting edge aerospace projects), they’ll still be about 20 years late to the party. Despite how futuristic the idea of inflatable space stations may seem, NASA first started experimenting with the concept of expandable habitat modules back in the 1990s, and there were practical examples being launched into orbit by the early 2000s.

Continue reading “The Past, Present, And Future Of Inflatable Space Habitats”

Tech In Plain Sight: Escalators

If you are designing a building and need to move many people up or down, you probably will at least consider an escalator. In fact, if you visit most large airports these days, they even use a similar system to move people without changing their altitude. We aren’t sure why the name “slidewalk” never caught on, but they have a similar mechanism to an escalator. Like most things, we don’t think much about them until they don’t work. But they’ve been around a long time and are great examples of simple technology we use so often that it has become invisible.

Of course, there’s always the elevator. However, the elevator can only service one floor at a time, and everyone else has to wait. Plus, a broken elevator is useless, while a broken escalator is — for most failures — just stairs.

Continue reading “Tech In Plain Sight: Escalators”

Art of 3D printer in the middle of printing a Hackaday Jolly Wrencher logo

3D Printering: Speed Is So Hot Right Now

Speed in 3D printing hasn’t been super important to everyone. Certainly, users value speed. But some value quality even more highly, and if gaining quality means giving up speed, then so be it. That’s more or less how things stood for a while, but all things change.

The landscape of filament-based 3D printing over the past year or so has made one thing clear: the market’s gotten a taste of speed, and what was once the domain of enthusiasts installing and configuring custom firmware is now a baseline people will increasingly expect. After all, who doesn’t want faster prints if one doesn’t have to sacrifice quality in the process?

Speed vs. Quality: No Longer a Tradeoff

Historically, any meaningful increase in printing speed risked compromising quality. Increasing print speed can introduce artifacts like ringing or ghosting, as well as other issues. Printing faster can also highlight mechanical limitations or shortcomings that may not have been a problem at lower speeds. These issues can’t all be resolved by tightening some screws or following a calibration process.

The usual way to get into higher speed printing has been to install something like Klipper, and put the necessary work into configuring and calibrating for best results. Not everyone who prints wishes to go this route. In 3D printing there are always those more interested in the end result than in pushing the limits of the machine itself. For those folks, the benefits of speedy printing have generally come at too high a cost.

That’s no longer the case. One can now buy a printer that effectively self-calibrates, offers noticeably increased printing speeds over any earlier style machines, and does it at a reasonable price.

Continue reading “3D Printering: Speed Is So Hot Right Now”

In Praise Of “Simple” Projects

When I start off on a “simple” project, experience shows that it’s got about a 10% chance of actually remaining simple. Sometimes it’s because Plan A never works out the way I think it will, due to either naivety or simply the random blockers that always get in the way and need surmounting. But a decent percentage of the time, it’s because something really cool happens along the way. Indeed, my favorite kind of “simple” projects are those that open up your eyes to a new world of possibilities or experiments that, taken together, are nothing like simple anymore.

Al Williams and I were talking about water rockets on the podcast the other day, and I realized that this was a perfect example of an open-ended simple project. It sounds really easy: you put some water in a soda bottle, pressurize it a bit with air, and then let it go. Water gets pushed down, bottle flies up. Done?

Oh no! The first step into more sophistication is the aerodynamics. But honestly, if you make something vaguely rocket-shaped with fins, it’ll probably work. Then you probably need a parachute release mechanism. And then some data logging? An accelerometer and barometer? A small video camera? That gets you to the level of [ARRO]’s work that spawned our discussion.

But it wasn’t ten minutes into our discussion that Al had already suggested making the pressure vessel with carbon fiber and doctoring the water mix to make it denser. You’d not be surprised that these and other elaborations have been tried out. Or you could go multi-stage, or vector-thrust, or…

In short, water rockets are one of those “simple” projects. You can get one basically working in a weekend day, and then if you’re so inclined, you could spend an entire summer of weekends chasing down the finer points, building larger and larger tubes, and refining payloads. What’s your favorite “simple” project?

Could Moon Mining Spoil Its Untouched Grandeur And Science Value?

It’s 2024. NASA’s Artemis program is in full swing, and we’re hoping to get back to the surface of the Moon real soon. Astronauts haven’t walked on the beloved sky rock since 1972! A human landing was scheduled for 2025, which has now been pushed back to 2026, and we’re all getting a bit antsy about it. Last time we wanted to go, it only took 8 years!

Now, somehow, it’s harder, but NASA also has its sights set higher. It no longer wants to just toddle about the Moon for a bit to wave at the TV cameras. This time, there’s talk of establishing permanent bases on the Moon, and actually doing useful work, like mining. It’s a tantalizing thought, but what does this mean for the sanctity of one of the last pieces of real estate yet to be spoilt by humans? Researchers are already arguing that we need to move to protect this precious, unique environment.

Continue reading “Could Moon Mining Spoil Its Untouched Grandeur And Science Value?”

Human-Written Or Machine-Generated: Finding Intelligence In Language Models

What is the essential element which separates a text written by a human being from a text which has been generated by an algorithm, when said algorithm uses a massive database of human-written texts as its input? This would seem to be the fundamental struggle which society currently deals with, as the prospect of a future looms in which students can have essays auto-generated from large language models (LLMs) and authors can churn out books by the dozen without doing more than asking said algorithm to write it for them, using nothing more than a query containing the desired contents as the human inputs.

Due to the immense amount of human-generated text in such an LLM, in its output there’s a definite overlap between machine-generated text and the average prose by a human author. Statistical methods of detecting the former are also increasingly hamstrung by the human developers and other human workers behind these text-generating algorithms, creating just enough human-like randomness in the algorithm’s predictive vocabulary to convince the casual reader that it was written by a fellow human.

Perhaps the best way to detect machine-generated text may just be found in that one quality that these algorithms are often advertised with, yet which they in reality are completely devoid of: intelligence.

Continue reading “Human-Written Or Machine-Generated: Finding Intelligence In Language Models”