Taking Mechanical Keyboard Sounds To The Next Level

When it comes to mechanical keyboards, there’s no end to the amount of customization that can be done. The size and layout of the keyboard is the first thing to figure out, and then switches, keycaps, and then a bunch of other customizations inside the keyboard like the mounting plate and whether or not to add foam strips and other sound- and vibration-deadening features. Of course some prefer to go the other direction with it as well, omitting the foam and installing keys with a more noticeable click, and still others go even further than that by building a separate machine to make their keyboard activity as disruptive as it could possibly be.

This started as a joke among [ac2ev] and some coworkers, who were already teasing about the distinct sound of the mechanical keyboard. This machine, based on a Teensy microcontroller, sits between any USB keyboard and its host computer, intercepting keystrokes and using a small solenoid to tap on a block of wood every time a keystroke is detected. There’s also a bell inside that rings when the enter key is pressed, similar to the return carriage notification for typewriters, and as an additional touch an audio amplifier with attached speaker plays the Mario power-up sound whenever the caps lock key is pressed.

[ac2ev] notes that this could be pushed to the extreme by running a much larger solenoid powered by mains electricity, but since this was more of a proof-of-concept demonstration for some coworkers the smaller solenoid was used instead. The source code for the build can be found on the project’s GitHub page and there’s also a video of this machine in action here as well. Be careful with noisy mechanical keyboards, though, as the sounds the keys produce can sometimes be decoded to determine what the user is typing.

Timekeeping For Distributed Computers

Ask any programmer who has ever had to deal with timekeeping on a computer, and they’re likely to go on at length about how it can be a surprisingly difficult thing to keep track of. Time zones, leap years, leap seconds, various timekeeping standards, clock drift, and even relativity are all problems that can creep in to projects. Issues with timekeeping are exacerbated in distributed systems as well, adding another layer of complexity when we need to reliably determine the order that a series of actions occurred across a number of different computers with a high precision. One solution to this problem is the implementation of a vector clock.

When using other systems such as logical clocks to attempt to keep track of the order of events on different computers, a problem that may arise is that these systems don’t always track these changes with perfect reliability due to many issues such as varying temperature, race conditions, or clock skew. The vector clock instead tracks causal relationships between events. Each separate process maintains its own vector clock, represented by a list of integers. When one of these processes performs an event, it increments its own clock and sends it out to the rest of the system. By keeping track of this clock as it is updated by various processes across the computer the distributed system can be much more confident about the order in which events took place.

Of course, there are always downsides with elegant solutions like this. In the case of vector clocks the downside is largely increased overhead for keeping track of all of the sets of integers. But in systems where the ordering of processes is of the upmost importance, this is worth the trade-off to ensure reliability. And unless we hook all of our computers up to atomic clocks like they do for some computers at CERN we will have to take the increased overhead instead.

Recreating The Golden Era Of Cable TV

Fewer and fewer people have cable TV subscriptions these days, due to a combination of poor business practices by cable companies and the availability of alternatives to cable such as various streaming platforms. But before the rise of the Internet that enabled these alternatives, there was a short period of time where there were higher-quality channels, not too many commercials, a possibly rose-tinted sense of wonder, and where MTV actually played music. [Irish Craic Party] created this vintage cable TV network to capture this era of television history.

The hardware for this build is a Raspberry Pi driving an LCD display recovered from an old iPad. There’s a custom TV tuner which handles changing the channels and interfaces with an Apple Remote. Audio is sent through old computer speakers, and the case is built from 3D printed parts and some leftover walnut plywood to give it an era-appropriate 80s or early 90s feel. We’ve seen other builds like this before, but where this one really sets itself apart is in the software that handles the (television) programming.

[Irish Craic Party] has gone to great lengths here to recreate the feel of cable TV from decades ago. It has recreations of real channels like HBO, Nickelodeon, and FX including station-appropriate bumpers and commercials. It’s also synchronized to the clock so shows start on the half- or quarter-hour. Cartoons play on Saturday morning, and Nickelodeon switches to Nick-at-Nite in the evenings. There are even channels that switch to playing Christmas movies at the appropriate times, complete with Christmas-themed commercials.

The build even hosts a preview channel, one of the more challenging parts of the build. It continually scrolls through the channels and shows what’s currently playing and what will be showing shortly, complete with a commercial block at the top. For those who were around in the 90s it’s almost a perfect recreation of the experience of watching TV back then. It can even switch to a video game input when tuned to channel 3. There’s almost too much to go into in a short write-up so be sure to check the video after the break.

Thanks to [PCrozier] for the tip!

Continue reading “Recreating The Golden Era Of Cable TV”

AC-DC Converter Is Reliable, Safe, And Efficient

When first starting an electronics project, it’s not uncommon to dive right in to getting the core parts of the project working. Breadboarding the project usually involves working with a benchtop power supply of some sort, but when it comes to finalizing the project the actual power supply is often glossed over. It’s not a glamorous part of a project or the part most of us want to be working with, but it’s critical to making sure projects don’t turn up with mysterious issues in the future. We can look to some others’ work to simplify this part of our projects, though, like this power supply from [hesam.moshiri].

The power supply is designed around a switch-mode topology known as a flyback converter. Flyback converters work by storing electrical energy in the magnetic field of a transformer when it is switched on, and then delivering that energy to the circuit when it is switched off. By manipulating the switching frequency and turns ratios of the transformer, the circuit can have an arbitrary output voltage. In this case, it is designed to take 220V AC and convert it to 8V DC. It uses a simplified controller chip to decrease complexity and parts count, maintains galvanic isolation for safety, and is built to be as stable as possible within its 24W power limitation to eliminate any potential issues downstream.

For anyone trying to track down electrical gremlins in a project, it’s not a bad idea to take a long look at the power supply first. Any noise or unwanted behavior here is likely to cause effects especially in projects involving sensors, ADC or DAC, or other low-voltage or sensitive components. The schematic and bill of materials are available for this one as well, so anyone’s next project could use this and even make slight adjustments to change the output voltage if needed. And, if this is your first introduction to switched-mode power supplies, check out this in-depth look at the similar buck converter circuit to better understand what’s going on behind the scenes on these devices.

Continue reading “AC-DC Converter Is Reliable, Safe, And Efficient”

High School Student Builds Inexpensive Centrifuge

Having a chemistry lab fully stocked with all necessary equipment is the dream of students, teachers, and professors alike, but a lot of that equipment can be prohibitively expensive. Even in universities, labs are often left using old or worn-out equipment due to cost. So one could imagine that in high schools this is even a more pronounced problem. High school student [Aidan Miller] has solved this problem with at least one piece of lab equipment, bringing the cost for a centrifuge down to around $10 USD.

Part of the savings is due to the fact that [Aidan] has put together a smaller sized centrifuge, known as a micro-centrifuge. The function is still the same though, spinning samples to separate them out the constituents by weight. The 3D printed base of the centrifuge houses a switch and 9 V battery and also holds a small motor which spins the rotor. The rotor itself is also 3D printed, and needed to be a very specific shape to ensure that it could hold the samples properly at high RPM and maintain reasonable balance while spinning.

As a project it’s fairly simple and straightforward to build, but the more impressive thing here is how much it brings down the cost of lab equipment especially for high school labs that might otherwise struggle for funding. Of course it requires the use of a 3D printer but the costs of those have been coming down significantly as well, especially for things like this portable 3D printer which was also built by a high school student.

Continue reading “High School Student Builds Inexpensive Centrifuge”

An Open-Source Antikythera Mechanism

When the Antikythera Mechanism was first discovered, it wasn’t viewed as the wonder that we know it today. Originally the divers who found the device and the first scientists to look at it wrote it off as an astrolabe or other some other common type of clock. It wasn’t until decades later when another set of scientists x-rayed the device and surveyed more of the shipwreck where it was found that it began to become one of the more important archaeological discoveries in history. There have been plenty of attempts to recreate this device, and this replica recreates the mechanisms of the original but is altered so it can be built in a modern workshop.

The build, which took the creators several years of research and development to complete, started off with the known gear schemes found on the original device. However, the group wanted to make it with modern technology including 3D printers and laser cutters, so although they worked from an understanding of the original 2000-year-old device there are some upgrades and changes to accommodate those who want to build this in a modern workshop. Gears made from plastic instead of brass have more friction, which needed to be reduced by building custom bearings machined out of brass. And to complete the machine a number of enclosures of various styles are available to use as well.

Additionally, all of the designs and schematics for this build are open source for anyone to build or modify as they would like, although the group putting this together does plan to sell various parts for this as well. There will be some issues with use, as they point out, since the ancient Greeks didn’t have a full enough understanding of cosmology to get a machine like this to stay accurate for two thousand years, but it’s a fascinating build nonetheless. Reasearchers are still discovering new things about this device too, including the recent find of an earliest possible start date for the machine.

Suc Aims To Replace Slack In Five Lines Of Bash

The design philosophy of Unix is fairly straightforward. Software should do one thing as simply as possible, and do that one thing only. As a design principle this is sound advice even well outside of the realm of Unix, and indeed software in general, but that doesn’t stop modern software packages from being too large for their own good. So, if you’re tired of bloated chat programs like Slack or Mattermost with their millions of lines of code, you might instead favor something like Simple Unix Chat (suc).

The idea is that suc can perform almost all modern chat functions in only five lines of Bash, supporting rich-text chat, file sharing, access control, and encryption. These five lines, though, only perform the core function of suc — which is to write text to a file on the system. Indeed, suc makes liberal use of plenty of other Unix services which do not add to the line counts, such as the use of SSH to handle authentication. It also relies on some other common Unix system features to handle things like ownership and access for the text files that host the text for the chat.

As channels are simply text files, it makes writing bots or other tools exceptionally simple. You can also easily pipe the output of commands directly into suc with one-liners that can do things like dump the output of make into a specific channel if compilation fails.

While it’s not likely that everyone will ditch tools like Slack to switch to something like this, it’s still an impressive demonstration of what can be done when designing around the Unix philosophy and taking advantage of system tools that already exist rather than reinventing the wheel and re-programming all of those tools into the application. Practices like this might decrease development time and increase the ease of developing cross-platform applications but they often also produce a less than desirable user experience.