Injecting A Bit Of Rust Via DLL

Ever been frustrated that a software package was missing a feature you want? In the best-case scenario, the software would be open source and you could just tweak the code and rebuild. But in many cases, the software is closed-source. In the case of [Faster than lime], he found a SNES emulator (Snes9X) that didn’t support controllers to showcase the technique. So with a little bit of Rust, he wrote some code that could be injected into the emulator via DLL injection.

It’s a fantastic tutorial that shows the technique. He starts by creating a Rust project that uses the DLL-Syringe crate (the rust version of dependency management). This crate does much of the heavy lifting involved with injecting a DLL into a target process. The rest of the journey is an excellent process of going through the Windows documentation and implementing the features. The DLL just reads the controller and then sends the right input to the program. In the end, [Faster than lime] has a great injected DLL and we have a wonderful time learning about Rust and debugging in an injection environment!

It’s been a while since we last covered DLL injection, and it’s nice to see how the process has evolved. Video after the break.

Continue reading “Injecting A Bit Of Rust Via DLL”

A Custom Outdoor Cooking Station For City Life

[shoobs] relocated from Australia to Luxembourg, and was really missing the whole outdoor cooking scene that is apparently very common in those parts. Now living in a modest apartment building in the city, he had no easy way to recreate some of his favorite cooking methods — specifically that of Wok Hei (breath of a wok)  — the art of Cantonese stir-frying which uses searing heat and a lot of flinging around of the food to mix it up with the burning oil. This results in a complex set of reactions utilizing smoking, caramelization, and Maillard reactions to produce the classic Cantonese smoky flavor. Not wanting an off-the-shelf solution [shoobs] took it on himself to build a balcony cooking station capable of the temperatures needed for Wok Hei, and documented it for our viewing pleasure.

Nice custom laser cut details on the regulator mounting

The build started with sourcing a free-standing burner unit from Alibaba, which proved to be a little less powerful (at 30 kW) than ideal, but still sufficient. After locating a matching regulator and pressure gauge capable of the needed flow rate to feed the hungry burner, the next task was to construct a sturdy enough bench to mount it all. This was constructed from Douglas fir slabs, butt-jointed using a 3D printed drilling jig for ease of construction.

Using a flatbed scanner, the existing burner base was digitized in order to make a model suitable for laser-cutting a new mounting plate from steel. [Shoobs] isn’t lucky enough to have access to a metal-capable laser cutter — he sent his cad files off to a cutting service.

A second plate was mounted below with a sufficient gap above the bench to act as a heat shield. This keeps the wooden worktop safe from the heat. Whilst he was laser cutting steel, [shoobs] took the opportunity to design a few other custom parts to mount the regulator and other bits, because, why wouldn’t you? We reckon the end result is pretty nice, in a minimalist and understated way.

We’re no strangers to neat cooking hacks ’round these parts, here’s a nice double-sausage burner for those emergency situations and if you need a custom BBQ burner, then look no further.

Grok Rust In A Flash

Here at Hackaday, we are big proponents of using the best tool for the job (or making your own tool if required). But when all you know how to use is Java, everything looks object-oriented. Bad jokes aside, it is important to have many tools at your disposal to allow you to choose wisely. Why not spend a few minutes with [No Boilerplate] and understand the basics of Rust?

The focus of the video is to go through as much Rust as possible and teach you how to read it. The idea is that rather than work your way from basic concepts, [No Boilerplate] will go over the vast majority of what you’ll see in a Rust-based program. Whether you’re coming from an object-oriented, functional, or just plain C-based background; you’ll feel comfortable since he makes an effort to compare to what you already know. Some of Rust’s more unique features are covered such as mutability, scope, matching, and strings. However, lifetimes, closures, and traits were left out to keep the video short. These topics are covered in an excellent blog post by [Faster than lime] which this video was based on.

What isn’t discussed is running Rust in a no-std environment like a PIC32. Rust has seen exciting development over the past few years with the Linux kernel getting rusty and the compiler getting continually better. Video after the break.

Continue reading “Grok Rust In A Flash”

attaching the vent to the tent

Venting Your PC Outside

As the power requirements of CPUs and GPUs in modern gaming machines continue to rise, they are quickly becoming more and more of a space heater that happens to play games. If you’re using your PC in a tight space with a door shut, you might find the temperature in your office rising relatively rapidly. Some solutions to this include fans, window AC units, or moving the computer somewhere else and routing cables back to the office. The fine folks at [Linus Tech Tips] tried something a little out of the box by putting the whole computer in a box.

We don’t usually cover [Linus Tech Tips] here at Hackaday, but we thought the approach was somewhat novel. PC cases have many exhaust fans and holes, so it’s hard to extract the hot air from a single point. So after purchasing a comically large but cheapish “plant” growing tent, they could enclose the PC and remove the heat through some insulated ducting. A laser-cut adapter plate and 3d printed hose connector allowed the hose to sit in the window to vent outside. An inline fan pulls all the needed air from the tent to the outside. Ultimately, the temperature in the room stayed chill while some benchmarks were running, but there was speculation that the fan was pulling in air from the rest of the apartment to vent the PC’s heat. We’d love to see a more closed system with a heat exchanger to the outside.

Perhaps they can borrow [Diy Perks]’s bellow PC build and connect the hose right to it, getting rid of the tent. Video after the break.

Continue reading “Venting Your PC Outside”

Hackaday Links Column Banner

Hackaday Links: July 10, 2022

We always like to call out a commercial success stemming from projects that got their start on Hackaday.io, and so we’re proud to announce the release of MAKE: Calculus by Joan Horvath and Rich Cameron, a book that takes a decidedly different approach to teaching calculus than traditional courses. Geared to makers and hackers, who generally tend to have a visual style of learning, the book makes heavy use of 3D-printed models to illustrate the relationships between functions. The project started five years ago as a 2017 Hackaday Prize entry, and resulted in a talk at the 2019 Supercon. Their book is now available for preorder, and might be a great way to reacquaint themselves with calc, or perhaps even to learn it for the first time. Continue reading “Hackaday Links: July 10, 2022”

A VCR with NICAM support.

Remembering NICAM: Deep-Dive Into A Broadcasting Legacy

Although for many the introduction of color television would have seemed to be the pinnacle of analog broadcast television, the 1970s saw the development of stereo audio systems to go with TV broadcasts, including the all-digital NICAM. With NICAM broadcasts having ceased for about a decade now, the studio equipment for encoding and modulating NICAM can now be picked up for cheap. This led [Matthew Millman] to not only buy a stack of Philips NICAM studio gear, but also tear them down and set up a fully working NICAM encoding/decoding system with an Arcam Delta 150 as receiver and Philips PM5687 encoder.

Philips PM5687 with lid off.
Philips PM5687 with lid off.

Finally, the Philips PM5688 test receiver is analyzed. This is the component that studios would have used to ensure that the NICAM encoding and modulating systems were working properly. Although public NICAM broadcasts started in the late 1980s, the system was originally developed to enable point to point transfers of audio data within a transmission system. This was made very easy due to the digital nature of the system, and made enabling it for public broadcasts relatively straightforward once receivers became affordable enough.

Of note is that NICAM was only ever used in Europe and some Asian-Pacific countries, with others using the German Zweikanalton. This was a purely analog (two FM channels) system, and the US opted to use its MTS system, that was quite similar to the German system in terms of transmitting multiple FM channels alongside the TV signal. With digital TV gradually overtaking analog TV transmissions, the future of NICAM, MTS and others was sealed, leaving us with just these time capsules we can build up using old studio equipment.

When Combat Robot Wheels Need To Be Nice And Cheap (But Mostly Cheap)

It started with [CHORL] making a promise to himself regarding constructing a new combat robot: no spending of money on the new robot.

That rule was violated (but only a little) by making his robot’s wheels out of EVA kneeling pads. EVA (Ethylene-Vinyl Acetate) is a closed-cell foam that makes for durable yoga mats, kneeling pads, and products of a similar nature. [CHORL] found a way to turn them into light but serviceable wheels for his robot: the Susquehanna Boxcar.

Nested hole saws create concentric holes. Perfect for wheels.

Here’s how the wheels were made: [CHORL] began with two hole saws. Nesting a smaller hole saw into a larger one by putting both on the same arbor created a saw with two holes, both of which were centered with respect to one another. The only problem was that this hole saw was not actually deep enough to cut completely through the thick foam. Luckily, cutting roughly halfway through on one side, then flipping the sheet over and cutting through from the other side was a good workaround. That took care of turning the thick foam sheet into round wheels.

A 3D-printed part served as a wheel hub as well as gear for the drivetrain. We want to call attention to the clever method of reinforcing the connection between the parts. [CHORL] didn’t want to just glue the geared hub directly to the surface of the foam wheel, because he suspected it might separate under stress. To address this, he designed six slots into the hub, cut matching slots into the foam wheel, and inserted six spline-like reinforcements in the form of some ABS strips he had on hand. Gluing it all together with E-6000 and leaving it to cure overnight under a weight resulted in a geared wheel assembly that [CHORL] judged to be about as round and rigid as a wheel should be, so the robot had a solution for nice light wheels that were, above all, cheap!

Lots of robots need wheels, and unsurprisingly, DIY solutions are common projects. [CHORL]’s approach here looks pretty scalable, as long as one can cut some accurate holes.

Interested in knowing more about the robot these wheels are destined for? [CHORL]’s still working on the Susquehanna Boxcar, but it’s almost done, and you can read a bit more about it (and see a few more pictures) here.