Hackaday Links Column Banner

Hackaday Links: June 4, 2023

A report released this week suggests that 50 flights into its five-flight schedule, the Mars helicopter might be starting to show its age. The report details a protracted communications outage Ingenuity’s flight controllers struggled with for six sols after flight 49 back in April. At first attributed to a “communications shadow” caused by the helicopter’s robotic buddy, Perseverance, moving behind a rocky outcrop and denying line of sight, things got a little dicey once the rover repositioned and there was still no joy. Since the helicopter has now graduated from “technology demonstration” to a full-fledged member of the team tasked with scouting locations for the rover while respecting the no-fly zone around it, it was essential to get it flying again. Several attempts to upload a flight plan failed with nothing but an acknowledgment signal from the helicopter, but a final attempt got the program uploaded and flight 50 was a complete if belated success. So that’s good, but the worrying news is that since Sol 685, the helicopter has been switching in and out of nighttime survival mode. What that portends is unclear, but no matter how amazing the engineering is, there’s only so much that can be asked on Ingenuity before something finally gives.

Continue reading “Hackaday Links: June 4, 2023”

It Turns Out Parrots Love Videoconferencing

A recent experiment showed that parrots seem considerably enriched by the ability to video call other parrots. It’s important that the activity be done in a healthy and ethical way, so researchers do not recommend bird caretakers immediately slap a spare tablet in front of every bird — but the results are as heartwarming as they are encouraging.

Parrots are intelligent creatures known to require and benefit from intellectual and emotional stimulation, and their eyesight is such that they are able to use a display like a tablet screen much like a human would. They are also social creatures, and that led to researchers designing a pilot study to explore a parrot-to-parrot videoconferencing system.

The three-month study showed that when given the opportunity to initiate and receive video calls, every single parrot in the test group did so and all bird caretakers reported perceived benefits. Birds made friends, seemed highly motivated, and even learned behaviors by watching others.

Curious about the details? The published results (a PDF and two brief videos) covers all the bases. Parrot pals may also remember another time that technology enriched a feathered friend with a motorized buggy complete with beak-compatible joystick for steering.

Make Yourself A Megamind With A Hypercentric Camera

Sometimes, all it takes to learn something new is a fresh perspective on things. But what’s to be learned from reversing your perspective completely with a hypercentric lens? For one thing, that you can make humans look really, really weird.

To be fair, there’s a lot to the optical story here, which [volzo] goes over in ample detail. The short version of it is that with the right arrangement of optical elements, it’s possible to manipulate the perspective of a photograph for artistic effect, up to the point of reversing the usual diminishment of the apparent size of objects in the scene that are farther away from the camera. Most lenses do their best to keep the perspective of the scene out of this uncanny valley, although the telecentric lenses used in some machine vision systems manipulate the perspective to make identical objects within the scene appear to be the same size regardless of their distance from the camera. A hypercentric lens, on the other hand, turns perspective on its head, making near objects appear smaller than far objects, and comically distorts things like the human face.

[volzo]’s hypercentric camera uses a 700-mm focal length Fresnel lens mounted on a motorized gantry, which precisely positions a camera relative to the lens to get the right effect. A Raspberry Pi controls the gantry, but it’s not strictly needed for the hypercentric effect to work. Lighting is important, though, with a ring of LEDs around the main lens providing even illumination of the scene. The whole setup as well as the weirdly distorted portraits that result are shown in the video below.

If these bizarrely distorted faces look familiar, you might be recalling [Curious Marc]’s head-enlarging wearable.

Continue reading “Make Yourself A Megamind With A Hypercentric Camera”

A Real-World Experience In PCB Dye-Sub Printing

We all love PCB artwork, but those who create it work under the restriction of having a limited color palette to work with. If it’s not some combination of board, plating, solder mask, and silk screen, then it can’t easily be rendered on a conventional PCB. That’s not the end of the story though, because it’s technically possible to print onto a PCB and have it any color you like. Is it difficult? Read [Spencer]’s experience creating a rainbow Pride version of his RC2014 modular retrocomputer.

Dye-sublimation printing uses an ink that vaporizes at atmospheric pressure without a liquid phase, so a solid ink is heated and the vapor condenses back to solid on the surface to be printed. Commercial dye-sub printers are expensive, but there’s a cheaper route in the form of an Epson printer that can be converted. This in turn prints onto a transfer paper, from which the ink is applied to the PCB in a T-shirt printing press.

[Spencer] took the advice of creating boards with all-white silkscreen applied, and has come up with a good process for creating the colored boards. There is still an issue with discoloration from extra heat during soldering, so he advises in the instructions for the kit to take extra care. It remains however a fascinating look at the process, and raises the important point that it’s now within the reach of perhaps a hackerspace.

Regular readers will know we’ve long held an interest in the manufacture of artistic PCBs.

C++17’s Useful Features For Embedded Systems

Although the world of embedded software development languages seem to span somewhere between ASM and C89 all the way to MicroPython, there is a lot to be said for a happy medium between ease of development and features that makes the software more robust without adding overhead or bloat to the final firmware image.

This is where C++ has objectively many advantages over even C99, and as [Çağlayan Dökme] argues in a recent blog post C++17 adds many developer critter comforts to C++98 and the more recent C++11 C++14 standards.

First stepping back a generation (technically two, with C++20 also being a thing already), the addition of binary literals (e.g. 0b1010'1100) in C++14 and the expanded use of constexpr is addressed, with the latter foreshadowing C++17’s increased focus on compile time optimizations. A new attribute in C++17 that is part of this is [[nodiscard]], which when added before to the return type of a function or method requires the return value to be used in some manner, much like with functions in Ada (contrasted with procedures).

As [Çağlayan] notes, the biggest strength of compile-time checks is that it can save a lot of deploy-test-fix round-trips, with the total number of issues caught after deployment that could have been caught during compilation ideally being zero. Here C++17 streamlines the static_assert() mechanism and simplifies using if constexpr to instantiate code depending on compile-time conditions. Beyond compile-time optimizations there are a few other niceties, such as C++17 guaranteeing copy elision (return value optimization) when an object is returned directly, which is a welcome feature in hard real-time environments.

With today even MCUs having enough grunt to run multi-threaded applications and potentially firmware compiled from a many-thousand LoC codebase, picking a programming language that assists the developer with such an arduous task is very important, with Ada being the primary choice for high-reliability embedded platforms, but C++ along with C enjoying the most widespread (free) compiler support. Even if C++ isn’t supported on every single MCU out there (8051-based and most PIC MCUs mostly), whenever it is an option, it’s a pretty solid choice, especially with knowledge of these new language features.

The Most Ornate Birdbath You’ve Ever Seen

When one thinks of art, a birdbath may not be the first thing that comes to mind. However, there is no denying that the La Fontaine aux Oiseaux (The Bird Fountain) is a true work of art. This automaton, created by automaton maker [François Junod] in collaboration with 20 different workshops and craftsmen, represents thousands of hours of work and boasts a complex beauty that is both visible and hidden.The finished Bird Fountain, with all it's jewel encrusted exterior pieces

Commissioned by the Van Cleef & Arpels jewelry company, this purely mechanical display piece features a pair of jewel-encrusted birds that perform a little routine around the edge of the bath every hour. All the birds’ appendages move while bird song is added with the help of a whistle and bellows. The “water” is also mechanized, with a series of metal plates moving together to create ripple effects, while a water lily opens and closes and a dragonfly flutters above the surface.

The overall effect of this ridiculously over-the-top mechanical art piece is absolutely mesmerizing. Even if the bejeweled exterior isn’t quite your style, you can still appreciate its intricate workings thanks the video after the break giving us a peek at the development.

We’ve featured some of [François]’ other work before, which is equally impressive and displays the mechanics in all it’s glory. If you want to try your hand at making automatons, 3D printing is the perfect way to get started.

Continue reading “The Most Ornate Birdbath You’ve Ever Seen”

An Almost Invisible Desktop

When you’re putting together a computer workstation, what would you say is the cleanest setup? Wireless mouse and keyboard? Super-discrete cable management? How about no visible keeb, no visible mouse, and no obvious display?

That’s what [Basically Homeless] was going for. Utilizing a Flexispot E7 electronically raisable standing desk, an ASUS laptop, and some other off-the-shelf parts, this project is taking the idea of decluttering to the extreme, with no visible peripherals and no visible wires.

There was clearly a lot of learning and much painful experimentation involved, and the guy kind of glazed over how a keyboard was embedded in the desk surface. By forming a thin layer of resin in-plane with the desk surface, and mounting the keyboard just below, followed by lots of careful fettling of the openings meant the keys could be depressed. By not standing proud of the surface, the keys were practically invisible when painted. After all, you need that tactile feedback, and a projection keeb just isn’t right.

ChatGPT-inspired machine learning mouse emulator

Moving on, never mind an ultralight gaming mouse, how about a zero-gram mouse? Well, this is a bit of a cheat, as they mounted a depth-sensing camera inside a light fitting above the desk, and built a ChatGPT-designed machine-learning model to act as a hand-tracking HID device. Nice idea, but we don’t see the code.

The laptop chassis had its display removed and was embedded into the bottom of the desk, along with the supporting power supplies, a couple of fans, and a projector. To create a ‘floating’ display, a piece of transparent plastic was treated to a coating of Lux labs “ClearBright” transparent display film, which allows the image from the projector to be scattered and observed with sufficient clarity to be usable as a PC display. We have to admit, it looks a bit gimmicky, but playing Minecraft on this setup looks a whole lotta fun.

Many of the floating displays we’ve covered tend to be for clocks (after all timepieces are important) like this sweet HUD hack.

Continue reading “An Almost Invisible Desktop”