Physical Neural Network Can Be Trained Like A Digital One

Here’s an unusual concept: a computer-guided mechanical neural network (video, embedded below.) Why would one want a mechanical neural network? It’s essentially a tool to explore what it would take to make physical materials work in nonstandard ways. The main part is a lattice of interlinked mechanical components. When one applies a certain force in a certain direction on one end, it causes the lattice to deform in a non-intuitive way on the other end.

To make this happen, individual mechanical elements  in the lattice need to have their compliance carefully tuned under the guidance of a computer system. The mechanisms shown can be adjusted on demand while force is applied and cameras monitor the results.

This feedback loop allows researchers to use the same techniques for training neural networks that are used in machine learning applications. Ultimately, a lattice can be configured in such a way that when side A is pressed like this, side B moves like that.

We’ve seen compliant structures that move in unexpected ways before, and they are always fascinating. One example is this 3D-printed door latch that translates a twisting motion into a linear one. Research into physical neural networks seems like it might open the door to more complex systems, or provide insights into metamaterial design.

You can watch the video below just under the page break, or if you prefer, skip the intro and jump straight into How It Works at [2:32].

Continue reading “Physical Neural Network Can Be Trained Like A Digital One”

Open Source OLED Nametag Is Full Of Features

Ever wanted a sweet OLED nametag with fancy features like daylight readability, automatic brightness adjustment, GIF animation support, all-day runtime, easy web interface, and more? [TobleMiner]’s OLED Nametag is the project you want to keep an eye on in that case.

It’s still an early prototype, but the feature list looks great and works with a variety of OLED modules that are easily available. The enclosure can be 3D printed, and while there is very little spare room inside the housing, [TobleMiner] has clearly made the most of all available space. Some PCB fab houses offer component placement these days, and the board is designed with exactly that in mind.

We’ve seen a batteryless E-paper display make a serviceable nametag in the past, and while those offer high contrast and wide viewing angles, they lack the sort of features this project is bursting at the seams with. Affordable access to good components and the ability to have high-quality PCBs made on demand has really raised the bar in terms of what a hacker project can work with in recent years, and we love to see it expressed in projects like this one.

3D Printer Recognizes Third-Party Build Plates, Just Make Your Own ID Codes

The Bambu X1C 3D printer is a machine known for its speed, and it has a number of useful features like automatic build platform recognition. Factory build platforms are marked with an identifier code, and thanks to [elumspe] it’s now possible to make your own identifiers to stick onto third-party platforms and have the printer recognize them as though they were factory offerings. There’s even a super handy 3D-printable alignment tool that ensures the identifier goes in the correct spot, which is a nice touch.

These codes aren’t DRM so much as they are used by the printer to automatically verify that the installed build plate matches the slicer settings before a job begins. Printing one and sticking it in the right place is an easy way to get third-party plates recognized the same as factory offerings.

The identifier codes aren’t DRM so much as they are a way for the printer to verify that the installed build platform matches the slicer settings before a print begins, and throw up a warning if it doesn’t. The printer is perfectly happy to use third-party build surfaces, but since they lack an identifier, the printer will throw a warning each time. One solution is to simply disable checking the build platform before a print, but for those who would prefer to have the printer see what it expects to see, printing a small 2D barcode to stick on is an easy way to do it.

We see these sometimes called QR codes, but they look more like AprilTags. Both are types of 2D barcode, but while QR codes can encode a variety of information types, AprilTags are simpler and usually represent identifiers. In this case, they’re an appropriate way to let a camera-enabled printer know what kind of build plate is installed.

AprilTags are common in computer vision applications, and even relatively modest hardware can detect and decode them almost in real time. AprilTags are convenient and easy to use, as this gate access system demonstrates.

Hackaday Prize 2023: Tilting Mechanical Panels Make A Beautiful Display

Mechanical displays use a variety of different methods to represent data with physical objects, and [AIRPOCKET]’s Mechanical Display aims to be a platform anyone can use. Each “pixel” in this display is a panel of some kind, and different effects can be had by moving individual panels to different angles. Not only can images be represented, but the patterns of the movements themselves can be beautiful as well.

The panels are an important part of how the display presents, so the design makes them easy to change out.

These sorts of displays are fertile ground for artistic expression (one memorable implementation of this basic idea was the wooden mirror, which used varnished tiles of wood) but anyone looking to use the concept has usually been on their own when it comes to implementation.

The idea [AIRPOCKET] has is to make this kind of installation easier to implement. This method uses economical mini RC servos and 3D-printed pieces to create modular segments that can be assembled into whatever configuration one may need.

The material of the panels matters, too. Just below the page break, you can see a large unit with each “pixel” consisting of a mirrored square that reflects daylight. There’s also a video of an earlier prototype that uses some ridged two-color pieces to create a simple 4×4 three-level greyscale display.

There are a lot of possibilities if [AIRPOCKET] can make this sort of display more easily accessible, and that makes it a contender in the 2023 Hackaday Prize.

Continue reading “Hackaday Prize 2023: Tilting Mechanical Panels Make A Beautiful Display”

Brute Forcing A Mobile’s PIN Over USB With A $3 Board

Mobile PINs are a lot like passwords in that there are a number of very common ones, and [Mobile Hacker] has a clever proof of concept that uses a tiny microcontroller development board to emulate a keyboard to test the 20 most common unlock PINs on an Android device.

Trying the twenty most common PINs doesn’t take long.

The project is based on research analyzing the security of 4- and 6-digit smartphone PINs which found some striking similarities between user-chosen unlock codes. While the research is a few years old, user behavior in terms of PIN choice has probably not changed much.

The hardware is not much more than a Digispark board, a small ATtiny85-based board with built-in USB connector, and an adapter. In fact, it has a lot in common with the DIY Rubber Ducky except for being focused on doing a single job.

Once connected to a mobile device, it performs a form of keystroke injection attack, automatically sending keyboard events to input the most common PINs with a delay between each attempt. Assuming the device accepts, trying all twenty codes takes about six minutes.

Disabling OTG connections for a device is one way to prevent this kind of attack, and not configuring a common PIN like ‘1111’ or ‘1234’ is even better. You can see the brute forcing in action in the video, embedded below.

Continue reading “Brute Forcing A Mobile’s PIN Over USB With A $3 Board”

Pi Zero Runs DOOM Via Wireless Power

What’s better than a Raspberry Pi Zero running DOOM on a 3.5″ touchscreen? Running it over wireless power, of course!

[atomic14] has been interested in wireless power for a while, and while most of the hardware he’s tested over the years has been less than impressive, he demonstrates one that’s able to reliably deliver 5 V at about 1 A which is more than enough to boot a Raspberry Pi W2 into X and launch DOOM. But while that’s neat, he explains that wireless power isn’t quite yet an effortless solution.

The hardware can deliver 5 V at about 1 A wirelessly, which is plenty, but coil alignment is critical to efficiency.

For one thing, the hardware he’s using — similar to those used for mobile phone charging — need the receiver to be very close to the transmitter. In addition, they need to be aligned well or efficiency drops off sharply. For mobile phones this isn’t much of a problem, but it’s difficult to position a Raspberry Pi and display just so when one can’t see the coils. Misalignment means brownouts and other unreliable operation.

So while the wireless power is capable of running the Pi directly, [atomic14] attempts to put a small battery and charger circuit into the mix in order to make the whole thing both portable and more reliable. But because nothing is easy, he discovers that his charging board — which should be able to output as low as 4.5 V — isn’t able to be adjusted down any lower than 5.66 V. It turns out that a resistor marked 104 (which should be 100 kΩ) is actually measuring 57 kΩ, and the trim pot doesn’t go lower than 10 kΩ. The solution is a bit of component swapping, but we suppose it’s a reminder that sometimes with cheap parts, one pays in other ways.

You can see [atomic14]’s wireless power Raspberry Pi running the classic shooter in the video below. Wireless power may have its issues, but it’s certainly a lot less messy than running DOOM with a gigantic potato battery.

Continue reading “Pi Zero Runs DOOM Via Wireless Power”

SSH Can Handle Spaces In Command-line Arguments Strangely

One of the things ssh can do is execute a command on a remote server. Most of us expect it to work transparently when doing so, simply passing the command and its arguments on without any surprises in the process. But after 23 years of using OpenSSH on a nearly daily basis, [Martin Kjellstrand] got surprised.

It turns out that the usual rules around how things are parsed can have some troublesome edge cases when spaces are involved. [Martin] kicks off an example in the following way:

One would reasonably expect the commands figlet foobar bar\ baz and ssh localhost figlet foobar bar\ baz to be functionally equivalent, right? The former ultimately runs the command “figlet” with arguments “foobar” and “bar baz” on the local machine. The second does the same, except with ssh being involved in the middle. As mentioned, one would expect both commands to be functionally identical, but that’s not what happens. What happens is that ssh turns bar\ baz into two distinctly separate command-line arguments in the process of sending it for remote execution: “bar” and “baz”. The result is mystification as the command fails to run the way the user expects, if it runs at all.

What exactly is going on, here? [Martin] goes into considerable detail tracking down this odd behavior and how it happens, but he’s unable to ultimately explain why ssh does things this way. He suspects that it is the result of some design decision taken long ago. Or perhaps a bug that has, over time, been promoted to entrenched quirk.

Do you have any insights or knowledge about this behavior? If so, [Martin] wants to hear about it and so do we, so don’t keep it to yourself! Let us know in the comments, below.