Detail of Horus's face, from a statue of Horus and Set placing the crown of Upper Egypt on the head of Ramesses III. Twentieth Dynasty, early 12th century BC.

HORUS Framework: A Rust Robotics Library

[neos-builder] wrote in to let us know about their innovation: the HORUS Framework — Hybrid Optimized Robotics Unified System — a production-grade robotics framework built in Rust for real-time performance and memory safety.

This is a batteries included system which aims to have everything you might need available out of the box. [neos-builder] said their vision is to create a robotics framework that is “thick” as a whole (we can’t avoid this as the tools, drivers, etc. make it impossible to be slim and fit everyone’s needs), but modular by choice.

[neos-builder] goes on to say that HORUS aims to provide developers an interface where they can focus on writing algorithms and logic, not on setting up their environments and solving configuration issues and resolving DLL hell. With HORUS instead of writing one monolithic program, you build independent nodes, connected by topics, which are run by a scheduler. If you’d like to know more the documentation is extensive.

The list of features is far too long for us to repeat here, but one cool feature in addition to the real-time performance and modular design that jumped out at us was this system’s ability to process six million messages per second, sustained. That’s a lot of messages! Another neat feature is the system’s ability to “freeze” the environment, thereby assuring everyone on the team is using the same version of included components, no more “but it works on my machine!” And we should probably let you know that Python integration is a feature, connected by shared-memory inter-process communication (IPC).

If you’re interested in robotics and/or real-time systems you should definitely be aware of HORUS. Thanks to [neos-builder] for writing in about it. If you’re interested in real-time systems you might like to read Real-Time BART In A Box Smaller Than Your Coffee Mug and Real-Time Beamforming With Software-Defined Radio.

Repairing Brittle Plastic Retro Computer Cases

Using UV resin as glue for new case clips. (Credit: More Fun Making It, YouTube)
Using UV resin as glue for new case clips. (Credit: More Fun Making It, YouTube)

As computers like the venerable breadbox Commodore 64 age, their plastic doesn’t just turn increasing shades of yellow and brown, the ABS plastic also tends to get brittle. This is a problem that seems to plague many plastic cases and enclosures, but fortunately there are some ways to halt or even reverse the heavy toll of time, with the [More Fun Making It] YouTube channel exploring a number of methods, including UV-curable resin, PETG 3D-printed clips and silicone molds.

Aside from large-scale damage, screw posts tend to snap off a lot, either during shipping or when merely trying to open the case. The same is true for the clips around the edge of the C64 case, which rarely survive that long. Gluing a case clip back on with epoxy or such somewhat works, but is messy and not that durable.

Instead UV resin is used, together with newly printed clips in translucent PETG. The remnants of the old clips are removed, followed by the application of the resin. The clips are actually a modified version of a VIC-20 case clip design by [Ken Mills]. With the UV resin as glue, curing is almost instant with a UV lamp unlike the tedious process with epoxy.

Continue reading “Repairing Brittle Plastic Retro Computer Cases”

Two threads running concurrently

The Staggering Complexity And Subtlety Of Concurrency

If you’re gonna be a hacker eventually you’re gonna have to write code. And if you write code eventually you’re gonna have to deal with concurrency. Concurrency is what we call it when parts of our program run at the same time. That could be because of something fairly straightforward, like multiple threads, or multiple processes; or something a little more complicated such as event loops, asynchronous or non-blocking I/O, interrupts and signal handlers, re-entrancy, co-routines / fibers / green threads, job queues, DMA and hardware level concurrency, speculative or out-of-order execution at CPU-level, time-sharing on single-core systems, or parallel execution on multi-core systems. There are just so many ways to get tied up with concurrency.

In this video from [Core Dumped] we learn about The ’80s Algorithm to Avoid Race Conditions (and Why It Failed). This video explains what a race condition looks like and talks through what the critical section is and approaches to protecting it. This video introduces an old approach to protect the critical section first invented in 1981 known as Peterson’s solution, but then goes on to explain how Peterson’s solution is no longer reliable as much has changed since the 1980s, particularly compilers will reorganize instructions and CPUs may run code out of order. So there is no free lunch and if you have to deal with concurrency you’re going to want some kind of support for a mutex of some type. Your programming language and its standard library probably have various types of locks available and if not you can use something like flock (also available as a syscall, to complement the POSIX fnctl), which may be available on your platform.

If you’re interested in contemporary takes on concurrency you might like to read Amiga, Interrupted: A Fresh Take On Amiga OS or The Linux Scheduler And How It Handles More Cores.

Continue reading “The Staggering Complexity And Subtlety Of Concurrency”

M8SBC-86 Is An FPGA-Based “Kinda PC Compatible” 486

Given the technical specs of the FPGAs available to hobbyists these days, it really shouldn’t be a shock that you can implement a 486 core on one. In spite of knowing that in the technical sense, we were still caught off guard by [maniek-86]’s M8SBC project that does just that– the producing a 486 FPGA chipset with a motherboard to boot.

Boot what? Linux 2.2.6, MS-DOS 6.22 or FreeDOS all work. It can run DOOM, of course, along with Wolfenstien 3D, Prince of Persia, and even the famous Second Reality demo– though that last without sound. [maniek-86]’s implementation is lacking direct memory access, so sound card support is right out. There are a few other bugs that are slowly being squished, too, according to the latest Reddit thread. Continue reading “M8SBC-86 Is An FPGA-Based “Kinda PC Compatible” 486″

The blower and a smaller motor than what's actually driving it.

Electric Snowblower Clears The Way With Hobby Parts

If you live in snow country and own a home, you either have a snowblower or wish you did. The alternatives are either an expensive and potentially unreliable plow service, or back-breaking (and heart-attack inducing) shoveling. [RCLifeOn] was one of those people in the second category, until he decided to do something about it: electrifying a scrap snowblower with a blown engine. 

The usual brushless DC motors and electronic speed controllers [RCLifeOn] has on hand to get his R/C life on with don’t quite have enough oomph to handle both functions of a snowblower. For those of you cursed to live in warmer climes, the modern snowblower is both self-propelled via its twin wheels, and generally has a two-stage powered snow-removal “blower” consisting of an auger to break up the snow and an impeller to blast it out of the machine and many meters off the driveway. On the traditional gas-powered models, these are both powered via belts off the same motor, but that wasn’t going to work.

He kept the belts, and simply used a pair of motors, each with their own ESCs that are controlled via oversized thumb wheels on the handles. The belts couple to the motors with 3D printed pulleys. Belt tension is achieved in the case of the wheels through a simple and sensible shimming arrangement. In the case of the blower motor, he uses a 3D printed adjustable mount to get the appropriate tension. To help it hold long-term (given the issues with creep in 3D prints) he’s got a bearing on a second mount opposite the motor.  It holds up for his demo, which consists of clearing a driveway of 10cm of snow and then plowing through a pile larger than the mouth of the machine. In other words: it works.

The build, as unfortunately common on YouTube, is shy on specific details– but in this case that’s fine. Even if he’d open-sourced everything and posted STEP or STL files, it wouldn’t save much time since you’d pretty well have to re-engineer the build to fit your own snowblower, if you were so inclined. As with many hacks of this nature, the point of sharing it is to show how easy it is and provide the inspiration. As the cartoons used to say, “knowing is half the battle.”

If one was to re-implement this hack, we could not encourage you strongly enough to put in the standard dead-man’s switch, a feature commercial snowblowers share with things like lawnmowers. As annoying as it is to hang onto with frozen fingers, that safety feature is there for a reason.

If your driveway is short, you can save on gas and fuel costs with an extension cord. Or you could just stay inside and do the job by remote control, but that comes with its own pitfalls.

Continue reading “Electric Snowblower Clears The Way With Hobby Parts”

The Full-Sized 32-Wheeled, Articulated Bus Built For A 1976 Movie

Regardless of what your opinion is on cult-classic movies that got mixed-to-negative box office reviews when they were released, you have to admire the ones that went all out on practical effects and full-size constructions rather than CGI and scale models. Case in point the 1976 satirical comedy film The Big Bus that featured an absolutely massive articulated double-decker bus. With 32 wheels and multiple levels you’d think that a scale model would be used since most interior shots were done in the studio, but instead they built a real bus.

In this video by [Timeworn lengends] the genesis and details of the vehicle are covered. At the core of this road-worthy bus are two cabover International trucks, which were temporarily attached with a quick-release mechanism and required a second driver for the rear section who followed radio instructions for steering. In 1976 dollars, the entire bus prop cost between $250,000 and $500,000 USD to construct — making it one of the most expensive props ever made, especially considering the relatively low budget.

A fiberglass shell gave the bus its characteristic design, with the over the top ‘nuclear reactor’ propulsion befitting the comedy satire. Although the bowling alley and swimming pool were not really inside the bus, there was a functional bar installed along with the functional cockpit at the front.

Despite the movie flopping at the box office and critics being very mixed on its merits, it’s hard to deny that this bus prop is very unique and probably has a big part in why the movie has become a cult classic. As for the closest real-life equivalent, there is the articulated, double-decker Neoplan Jumbocruiser, which had its own troubled history.

Continue reading “The Full-Sized 32-Wheeled, Articulated Bus Built For A 1976 Movie”

It’s Not A Leica, It’s A Lumix

There’s an old adage in photography that the best camera in the world is the one in your hand when the shot presents itself, but there’s no doubt that a better camera makes a difference to the quality of the final image. Among decent quality cameras the Leica rangefinder models have near cult-like status, but the problem is for would-be Leica owners that they carry eye-watering prices. [Cristian Băluță] approached this problem in s special way, by crafting a Leica-style body for a Panasonic Lumix camera. Given the technology relationship between the Japanese and German companies, we can see the appeal.

While the aesthetics of a Leica are an important consideration, the ergonomics such as the position of the lens on the body dictated the design choices. He was fortunate that the internal design of the Lumix gave plenty of scope for re-arrangement of parts, given that cameras are often extremely packed internally. Some rather bold surgery to the Lumix mainboard and a set of redesigned flex PCBs result in all the parts fitting in the CNC machined case, and the resulting camera certainly looks the part.

The write-up is in part a journey through discovering the process of getting parts manufactured, but it contains a lot of impressive work. Does the performance of the final result match up to its looks? We’ll leave you to be the judge of that. Meanwhile, take a look at another Leica clone.