Invisible 3D Printed Codes Make Objects Interactive

An interesting research project out of MIT shows that it’s possible to embed machine-readable labels into 3D printed objects using nothing more than an FDM printer and filament that is transparent to IR. The method is being called InfraredTags; by embedding something like a QR code or ArUco markers into an object’s structure, that label can be detected by a camera and interactive possibilities open up.

One simple proof of concept is a wireless router with its SSID embedded into the side of the device, and the password embedded into a different code on the bottom to ensure that physical access is required to obtain the password. Mundane objects can have metadata embedded into them, or provide markers for augmented reality functionality, like tracking the object in 3D.

How are the codes actually embedded? The process is straightforward with the right tools. The team used a specialty filament from vendor 3dk.berlin that looks nearly opaque in the visible spectrum, but transmits roughly 45% in IR.  The machine-readable label gets embedded within the walls of a printed object either by using a combination of IR PLA and air gaps to represent the geometry of the code, or by making a multi-material print using IR PLA and regular (non-IR transmitting) PLA. Both provide enough contrast for an IR-sensitive camera to detect the label, although the multi-material version works a little better overall. Sadly, the average mobile phone camera by itself isn’t sufficiently IR-sensitive to passively read these embedded tags, so the research used easily available cameras with no IR-blocking filters, like the Raspberry Pi NoIR.

The PDF has deeper details of the implementation for those of you who want to know more, and you can see a demonstration of a few different applications in the video, embedded below. Determining the provenance of 3D printed objects is a topic of some debate in the industry, and it’s not hard to see how technology like this could be used to covertly identify objects without compromising their appearance.

Continue reading “Invisible 3D Printed Codes Make Objects Interactive”

“Lazier” Web Scraping Is Better Web Scraping

Ever needed to get data from a web page? Parsing the content for data is called web scraping, and [Doug Guthrie] has a few tips for making the process of digging data out of a web page simpler and more efficient, complete with code examples in Python. He uses getting data from Yahoo Finance as an example, because it’s apparently a pretty common use case judging by how often questions about it pop up on Stack Overflow. The general concepts are pretty widely applicable, however.

[Doug] shows that while parsing a web page for a specific piece of data (for example, a stock price) is not difficult, there are sometimes easier and faster ways to go about it. In the case of Yahoo Finance, the web page most of us look at isn’t really the actual source of the data being displayed, it’s just a front end.

One way to more efficiently scrape data is to get to the data’s source. In the case of Yahoo Finance, the data displayed on a web page comes from a JavaScript variable that is perfectly accessible to the end user, and much easier to parse and work with. Another way is to go one level lower, and retrieve JSON-formatted data from the same place that the front-end web page does; ignoring the front end altogether and essentially treating it as an unofficial API. Either way is not only easier than parsing the end result, but faster and more reliable, to boot.

How does one find these resources? [Doug] gives some great tips on how exactly to do so, including how to use a web browser’s developer tools to ferret out XHR requests. These methods won’t work for everything, but they are definitely worth looking into to see if they are an option. Another resource to keep in mind is woob (web outside of browsers), which has an impressive list of back ends available for reading and interacting with web content. So if you need data for your program, but it’s on a web page? Don’t let that stop you!

Hand reaching for a 3d-printed hinge

One-piece Geared Hinge Can Take The Weight

3D printers have come a long way from cranking out things like bottle openers and coat pegs, and [E. Soderberg]’s Print in Place Geared Hinge is a pretty nifty demonstration of that. This hinge is designed as a print-in-place part, meaning it is 3D printed as a single piece, requiring no assembly. Not only that, but the herringbone gears constrain the sturdy device in a way that helps it support heavy loads.

Of course, hinges — even strong ones — are not particularly hard to find items. They’re available in a mind-boggling array of shapes and sizes. But what’s interesting about this design is that it shows what’s easily within the reach of just about any hobbyist nowadays. Not that long ago, designing and creating an object like this would not have been accessible to most home enthusiasts. Making it without a modern 3D printer would certainly have been a challenge in its own right.

It doesn’t always matter that a comparable (or superior) off-the-shelf part is available; an adequate part that can be created in one’s own workshop has a value all its own. Plus, it’s fun to design and make things, sometimes for their own sake. After all, things like 3D-printed custom switch assemblies would not exist if everyone were satisfied with the ability to just order some Cherry MX switches and call it a day.

View of a well-organized workspace in front of a window view to outdoors

How To Optimize Your Workspace: Analyze How You Work

[Jay Carlson] has shared some fantastic guidance on how to optimize one’s home workspace, and you just might want to emulate some of his layout, especially if you routinely juggle multiple projects. He makes the important point that different people have different needs, so one size does not fit all. Optimizing one’s workspace must first take into account what kind(s) of work one does, and many of his tips and tricks are pretty broadly applicable.

A rack of trays, each with a project
Looking online for these? A common industry term is “bun rack”. This one is “half-height” in size.

[Jay] works on embedded systems, and often switches between many different jobs and projects. Get your notepads ready, because there are plenty of great takeaways.

For example, to get a good top-down camera view of what’s on the workbench, he uses a camera mounted on an articulated arm (the kind that usually has a lamp attached to the end.) This makes the camera easy to deploy and easy to stow, and he can effortlessly save footage or share video with colleagues online.

Another great tip is using what most of us would call cafeteria trays and a matching rack. With each tray devoted to a different project or version of hardware, it makes switching between jobs as simple as sliding in one tray and pulling out another. It’s also a highly space-efficient way to store a lot of in-progress hardware. [Jay] gives a detailed walkthrough of his workspace and explains every decision, it’s well worth a read.

It’s always better to save space, as long as doing so doesn’t negatively impact the work itself. If you’re looking for space-saving tips, be sure to check out this tiny workshop’s space-saving hacks for more ideas.

Cables Too Long? Try Cable Management Via DIY Coiling

Annoyed by excessively-long cables? Tired of the dull drudgery and ugly results of bunching up the slack and wrapping it with a twist-tie? Suffer no longer, because the solution is to make your own coiled cables!

[Dmitry] is annoyed with long, unruly cables and shared a solution he learned from the DIY keyboards community: coil them yourself with a piece of dowel, a hair dryer, and about 10 minutes of your time. However, it’s just a wee bit more complicated than it may seem at first glance.

The process begins with wrapping a cable around a mandrel, then heating it as uniformly as possible to thermoform the jacket, but the instructional video (embedded below) says that all by itself that isn’t quite enough to yield lasting results. After heating the cable and letting it cool, the coils will be formed but it will not hold the new shape very well. The finishing touch is to “reverse” the direction of the coils, by re-wrapping it backward around the mandrel, inverting the coils upon themselves. This process is awkward to explain, but much simpler to demonstrate. This video by [DailySetupTech] explains this process around the 2:30 mark. That final step is what yields a tightly-wound, springy coil.

The nice part about using this process as a cable management technique is that it is possible to coil only a portion of a cable, leaving the exact amount of uncoiled slack required for a given application. Keep it in mind the next time some cables need managing. And if you don’t want to coil a cable but still need it out of the way, you might find this design for a DIY cable chain made from a tape measure useful.

Continue reading “Cables Too Long? Try Cable Management Via DIY Coiling”

Adding WiFi Remote Control To Home Electronics? Be Prepared To Troubleshoot

[Alex] recently gave a Marantz audio amplifier the ability to be remotely-controlled via WiFi by interfacing an ESP32 board to a handy port, but the process highlights how interfacing to existing hardware often runs into little, unforeseeable problems that can sink the project unless solved.

At its core, the project uses an ESP32 and the ESPAsyncWebServer project to create a handy web interface that is accessible over WiFi. Then, to actually control the amplifier, [Alex] decoded the IR-based remote signals by watching the unit’s REMOTE ports, which are intended as a pass-through and repeater for IR signals to other Marantz units. This functionality can be exploited; by sending the right signals to the REMOTE IN port, the unit can be controlled by the ESP32. With the ESP32 itself accessible by just about any WiFi device, [Alex] gains the freedom to control his amplifier with much greater flexibility than just the IR remote would offer.

Sounds fairly straightforward, but as usual when interfacing to an existing piece of electronics, there were a few glitches. The first was that high and inconsistent latency (from 10 ms to 100 ms) made controlling the amplifier a sometimes frustrating experience, but that was solved by disabling power saving on the WiFi interface. Another issue was that sending signals by connecting a GPIO pin to the REMOTE IN port of the amplifier worked, but had the side effect of causing the amplifier to no longer listen to the IR remote. Apparently, current flowing from the REMOTE port to the ESP32’s GPIO pin was to blame, because adding a diode in between fixed the problem.

The GitHub repository holds the design files and code. This kind of project can be pretty complex, because the existing hardware doesn’t always play nice, and useful boards like a modern ESP32 aren’t always available. Adding a wireless interface to vintage audio equipment has in the past involved etching circuit boards and considerably more parts.

People in meeting, with highlights of detected phones and identities

Machine Learning Detects Distracted Politicians

[Dries Depoorter] has a knack for highly technical projects with a solid artistic bent to them, and this piece is no exception. The Flemish Scrollers is a software system that watches live streamed sessions of the Flemish government, and uses Python and machine learning to identify and highlight politicians who pull out phones and start scrolling. The results? Pushed out live on Twitter and Instagram, naturally. The project started back in July 2021, and has been dutifully running ever since, so by now we expect that holding one’s phone where the camera can see it is probably considered a rookie mistake.

This project can also be considered a good example of how to properly handle confidence in results depending on the application. In this case, false negatives (a politician is using a phone, but the software doesn’t detect it properly) are much more acceptable than false positives (a member gets incorrectly identified, or is wrongly called-out for using a mobile device when they are not.)

Keras, an open-source software library, is used for the object detection and facial recognition (GitHub repository for Keras is here.) We’ve seen it used in everything from bat detection to automatic trash sorting, so if you’re interested in machine learning applications, give it a peek.