A New Mechanical Keyboard For An Old Computer

As computers age, a dedicated few work towards keeping some of the more interesting ones running. This is often a losing battle of sorts, as the relentless march of time comes for us all, human and machine alike. So as fewer and fewer of these machines remain new methods are needed to keep them running as best they can. [CallousCoder] demonstrates a way of building up a new keyboard for a Commodore 64 which both preserves the original look and feel of the retro computer but also adds some modern touches.

One of the main design differences between many computers of the 80s and modern computers is that the keyboard was often built in to the case of the computer itself. For this project, that means a custom 3D printed plate that can attach to the points where the original keyboard would have been mounted inside the case of the Commodore. [CallousCoder] is using a print from [Wolfgang] to get this done, and with the plate printed and a PCB for the keys it was time to start soldering. The keyboard uses modern switches and assembles like most modern keyboards do, with the exception of the unique layout for some of the C64 keys including a latching shift key, is fairly recognizable for anyone who has put together a mechanical keyboard before.

[CallousCoder] is using the original keycaps from a Commodore 64, so there is an additional step of adding a small adapter between the new switches and the old keycaps. But with that done and some amount of configuring, he has a modern keyboard that looks like the original. If you’re more a fan of the original hardware, though, you can always take an original C64 keyboard and convert it to USB to use it on your modern machines instead.

Continue reading “A New Mechanical Keyboard For An Old Computer”

Self-Hosting A Cluster On Old Phones

The phones most of us carry around in our pockets every day hold a surprising amount of computing power. It’s somewhat taken for granted now that we can get broadband in our hands in most places; so much so that when one of these devices has reached the end of its life it’s often just tossed in a junk drawer even though its capabilities would have been miraculous only 20 years ago. But those old phones can still be put to good use though, and [Denys] puts a few of them back to work running a computing cluster.

Perhaps the most significant flaw of smartphones, though, is that most of them are locked down so much by their manufacturers that it’s impossible to load new operating systems on them. For this project you’ll need to be lucky enough (or informed enough) to have a phone with an unlockable bootloader so that a smartphone-oriented Linux distribution called postmarketOS can be installed. With this nearly full-fledged Linux distribution to work from, the phones can be accessed by ssh and then used to run Kubernetes for the computing cluster. [Denys] has three phones in his cluster that run a few self-hosted services for him.

[Denys] also points out in his guide that having a phone that can run postmarketOS might save some money when compared to buying a Raspberry Pi to run the same service, and the phones themselves can often be more powerful as well. This is actually something that a few others have noted in the past as well. He’s gone into a considerable amount of detail on how to set this up, so if you have a few old smartphones gathering dust, or even those with broken screens or other physical problems where the underlying computing resources are still usable, it’s a great way to put these machines back to work.

Thanks to [mastro Gippo] for the tip!

Automatically Crack Safes With This Autodialer

When attempting to secure something, whether it’s a computer, sensitive data, or valuables, there’s always going to be a way to break that security. It might be impossibly hard, like taking centuries to brute-force an encryption algorithm, but it’s weakness is still there. And, like the future might make certain encryption obsolete, modern electronics has made security of the past somewhat obsolete as well. [Startup Chuck] has been using tools the creators of safes from the late 1800s could probably not have imagined.

The tool that [Startup Chuck] has come up with is known as an autodialer in the safe-cracking world, and as its name suggests it automates the process of opening the safe by trying as many combinations as possible. The autodialer attaches to the safe with three magnetic feet and couples to the dial through a chuck attached to a magnetic clutch, which allows the autodialer to disengage as soon as the correct combination is found. It’s driven with a stepper motor which can test out combinations so fast that [Startup Chuck] needed to take 240 fps video and slow it down to make sure that the mechanism was behaving properly.

The autodialer itself can’t actually open the safe, though. The last step of the process is taken care of by a bungie cord, attached to the safe handle to pre-tension it enough so that when the correct combination is finally entered the safe pops open automatically. For anyone looking to duplicate the project, [Startup Chuck] has added the program code to a GitHub page. If you’re looking at a more modern safe, though, there are of course ways to crack their security systems as well.

Continue reading “Automatically Crack Safes With This Autodialer”

An Inexpensive Way To Break Down Plastic

Plastic has been a revolutionary material over the past century, with an uncountable number of uses and an incredibly low price to boot. Unfortunately, this low cost has led to its use in many places where other materials might be better suited, and when this huge amount of material breaks down in the environment it can be incredibly persistent and harmful. This has led to many attempts to recycle it, and one of the more promising efforts recently came out of a lab at Northwestern University.

Plastics exist as polymers, long chains of monomers that have been joined together chemically. The holy grail of plastic recycling would be to convert the polymers back to monomers and then use them to re-make the plastics from scratch. This method uses a catalyst to break down polyethylene terephthalate (PET), one of the more common plastics. Once broken down, the PET is exposed to moist air which converts it into its constituent monomers which can then be used to make more PET for other uses.

Of course, the other thing that any “holy grail” of plastic recycling needs is to actually be cheaper and easier than making new plastic from crude oil, and since this method is still confined to the lab it remains to be seen if it will one day achieve this milestone as well. In the meantime, PET can also be recycled fairly easily by anyone who happens to have a 3D printer around.

Fitting A Spell Checker Into 64 KB

By some estimates, the English language contains over a million unique words. This is perhaps overly generous, but even conservative estimates generally put the number at over a hundred thousand. Regardless of where the exact number falls between those two extremes, it’s certainly many more words than could fit in the 64 kB of memory allocated to the spell checking program on some of the first Unix machines. This article by [Abhinav Upadhyay] takes a deep dive on how the early Unix engineers accomplished the feat despite the extreme limitations of the computers they were working with.

Perhaps the most obvious way to build a spell checker is by simply looking up each word in a dictionary. With modern hardware this wouldn’t be too hard, but disks in the ’70s were extremely slow and expensive. To move the dictionary into memory it was first whittled down to around 25,000 words by various methods, including using an algorithm to remove all affixes, and then using a Bloom filter to perform the lookups. The team found that this wasn’t a big enough dictionary size, and had to change strategies to expand the number of words the spell checker could check. Hash compression was used at first, followed by hash differences and then a special compression method which achieved an almost theoretically perfect compression.

Although most computers that run spell checkers today have much more memory as well as disks which are orders of magnitude larger and faster, a lot of the innovation made by this early Unix team is still relevant for showing how various compression algorithms can be used on data in general. Large language models, for one example, are proving to be the new frontier for text-based data compression.

Integrated BMS Makes Battery Packs Easy

[Editor’s note: The hacker requested that we remove the image for legal reasons, so it’s blurry now. We hope all’s well!]

Lithium technology has ushered in a new era of batteries with exceptionally high energy density for a reasonably low cost. This has made a lot possible that would have been unheard of even 20 years ago such as electric cars, or laptops that can run all day on a single charge. But like anything there are tradeoffs to using these batteries. They are much more complex to use than something like a lead acid battery, generally requiring a battery management system (BMS) to keep the cells in tip-top shape. Generally these are standalone systems but [CallMeC] integrated this one into the buswork for a battery pack instead.

The BMS is generally intended to make sure that slight chemical imbalances in the battery cells don’t cause the pack to wear out prematurely. They do this by maintaining an electrical connection to each cell in the battery so they can charge them individually when needed, making sure that they are all balanced with each other. This BMS has all of these connections printed onto a PCB, but also included with the PCB is the high-power bus that would normally be taken care of by bus bar or nickel strips. This reduces the complexity of assembling the battery and ensures that any time it’s hooked up to a number of cells, the BMS is instantly ready to go.

Although this specific build is meant for fairly large lithium iron phosphate batteries, this type of design could go a long way towards making quick battery packs out of cells of any type of battery chemistry that typically need a BMS system, from larger 18650 packs or perhaps even larger cells like those out of a Nissan Leaf.

Moving Software Down To Hardware

In theory, any piece of software could be built out of discrete pieces of hardware, provided there are enough transistors, passive components, and time available. In general, though, we’re much more likely to reach for a programmable computer or microcontroller for all but the simplest tasks for several reasons: cost, effort, complexity, economics, and sanity. [Igor Brichkov] was working with I2C and decided that he wanted to see just where this line between hardware and software should be by implementing this protocol itself directly with hardware.

One of the keys to “programming” a communications protocol in hardware is getting the timing right, the first part of which is initializing communications between this device and another on the bus. [Igor] is going to be building up the signal in parts and then ORing them together. The first part is a start condition, generated by one oscillator and a counter. This also creates a pause, at which point a second oscillator takes over and sends data out. The first data needed for I2C is an address, which is done with a shift register and a counter pre-set to send the correct bits out on the communications lines.

To build up the rest of the signal, including data from the rotary encoder [Igor] is using for his project, essentially sets of shift registers and counters are paired together to pass data out through the I2C communications lines in sequence. It could be thought of that the main loop of the hardware program is a counter, which steps through all the functions sequentially, sending out data from the shift registers one by one. We saw a similar project over a decade ago, but rather than automating the task of sending data on I2C it allowed the user to key in data manually instead.

Continue reading “Moving Software Down To Hardware”