Instant Macropad: Just Add QMK

I recently picked up one of those cheap macropads (and wrote about it, of course). It is surprisingly handy and quite inexpensive. But I felt bad about buying it. Something like that should be easy to build yourself. People build keyboards all the time now, and with a small number of keys, you don’t even have to scan a matrix. Just use an I/O pin per switch.

The macropad had some wacky software on it that, luckily, people have replaced with open-source alternatives. But if I were going to roll my own, it would be smart to use something like QMK, just like a big keyboard. But that made me wonder, how much trouble it would be to set up QMK for a simple project. Spoiler: It was pretty easy.

The Hardware

Simple badge or prototype macropad? Why not both?

Since I just wanted to experiment, I was tempted to jam some switches in a breadboard along with a Raspberry Pi Pico. But then I remembered the “simple badge” project I had up on a nearby shelf. It is simplicity itself: an RP2040-Plus (you could just use a regular Pi Pico) and a small add-on board with a switch “joystick,” four buttons, and a small display. You don’t really need the Plus for this project since, unlike the badge, it doesn’t need a battery. The USB cable will power the device and carry keyboard (or even mouse) commands back to the computer.

Practical? No. But it would be easy enough to wire up any kind of switches you like. I didn’t use the display, so there would be no reason to wire one up if you were trying to make a useful copy of this project.

Continue reading “Instant Macropad: Just Add QMK”

Building A Robotic Arm Without Breaking The Bank

There are probably at least as many ways to construct a robotic arm as there are uses for them. In the case of [Thomas Sanladerer] his primary requirement for the robotic arm was to support a digital camera, which apparently has to be capable of looking vaguely menacing in a completely casual manner. Meet Caroline, whose styling and color scheme is completely coincidental and does not promise yummy moist cake for anyone who is still alive after all experiments have been run.

Unlike typical robotic arms where each joint in the arm is directly driven by a stepper motor or similar, [Thomas] opted to use a linear rail that pushes or pulls the next section of the arm in a manner that’s reminiscent of the action by the opposing muscles in our mammalian appendages. This 3D printer-inspired design is pretty sturdy, but the steppers like to skip steps, so he is considering replacing them with brushless motors.

Beyond this, the rest of the robotic arm uses aluminium hollow stock, a lot of 3D printed sections and for the head a bunch of Waveshare ST3215 servos with internal magnetic encoder for angle control. One of these ~€35 ST3215s did cook itself during testing, which is somewhat worrying. Overall, total costs was a few hundred Euro, which for a nine-degree robotic arm like this isn’t too terrible.

Continue reading “Building A Robotic Arm Without Breaking The Bank”

Death Of The Cheque: Australia Moves On

Check (or cheques) have long been a standard way for moving money from one bank account to another. They’re essentially little more than a codified document that puts the necessary information in a standard format to ease processing by all parties involved in a given transaction.

The check was once a routine, if tedious, way for the average person to pay for things like bills, rent, or even groceries. As their relevance continues to wane in the face of newer technology, though, the Australian government is making a plan to phase them out for good.

Continue reading “Death Of The Cheque: Australia Moves On”

A photo of a large warehouse with many skylights and windows near the roof. In the middle of the image extending out into the distance are hundreds of grey refractory bricks stacked on top of a smaller set of brown bricks stacked on top of pallets. There appear to be rails on the floor of the warehouse and small dollies underneath the pallets.

Thermal Batteries For Lower Carbon Industrial Processes

Heating things up is one of the biggest sources of cost and emissions for many industrial processes we take for granted. Most of these factories are running around the clock so they don’t have to waste energy cooling off and heating things back up, so how can you match this 24/7 cycle to the intermittent energy provided by renewables? This MIT spin-off thinks one solution is thermal storage refractory bricks.

Electrified Thermal Solutions takes the relatively simple technology of refractory brick to the next level. For the uninitiated, refractory bricks are typically ceramics with a huge amount of porosity to give them a combination of high thermal tolerance and very good insulating properties. A number of materials processes use them to maximize the use of the available heat energy.

While the exact composition is likely proprietary, the founder’s Ph.D. thesis tells us the bricks are likely a doped chromia (chrome oxide) composition that creates heat in the brick when electrical energy is applied. Stacked bricks can conduct enough current for the whole stack to heat up without need for additional connections. Since these bricks are thermally insulating, they can time shift the energy from solar or wind energy and even out the load. This will reduce emissions and cost as well. If factories need to pipe additional grid power, it would happen at off-peak hours instead of relying on the fluctuating and increasing costs associated with fossil fuels.

If you want to implement thermal storage on a smaller scale, we’ve seen sand batteries and storing heat from wind with water or other fluids.

Front and back of the replacement OLED module by Sir68k

Reviving A Piece Of Yesterday’s Tomorrow

To anyone who remembers Y2K, Sony’s MiniDisc format will probably always feel futuristic. That goes double for Sony’s MZ-RH1, the last MiniDisk recorder ever released, back in 2006. It’s barely larger than the diminutive disks, and its styling is impeccable. There’s a reason they’ve become highly collectible and sell for insane sums on e-Bay.

Unfortunately, they come with a ticking time-bomb of an Achilles heel: the first-generation OLED screens. Failure is not a question of if, but when, and many units have already succumbed. Fortunately enterprising hacker [Sir68k] has come up with replacement screen to keep these two-decade old bits of the future alive.

Replacement screens glowing brightly, and the custom firmware showing track info, something you’d never see on a stock RH1.

Previous revisions required some light surgery to get the twin OLED replacement screens to fit, but as of the latest incarnation (revision F+), it’s now a 100% drop-in replacement for the original Sony part. While it is a drop-in, don’t expect it to be easy. The internals are very densely packed, and fairly delicate — both in the name of miniaturization. You’ll need to break out the micro-screwdrivers for this one, and maybe some magnifiers if your eyes are as old as ours. At least Sony wasn’t gluing cases together back in 2006, and [Sir68k] does provide a very comprehensive repair guide.

He’s even working on new firmware, to make what many considered best MD recorder better than ever. It’s not ready yet, but when it is [Sir68k] promises to open-source the upgrade. The replacement screens are sadly not open source hardware, but they’re a fine hack nonetheless.

We may see more MiniDisc hacks as the format’s apparent revival continues. Things like adding Bluetooth to the famously-cramped internals, or allowing full data transfer — something Sony was unwilling to allow until the RH1, which is one of the reasons these units are so desirable.

A diagram with one Tag and two Base Stations.

Using Ultra-Wideband For 3D Location And Tracking

Interested in playing with ultra-wideband (UWB)? [Jaryd] recently put together a fairly comprehensive getting started guide featuring the AI Thinker BU03 that looks like a great place to start. These modules can be used to determine distance between two of them to an accuracy in the order of 10 centimeters, and they can do so in any orientation and with obstacles in the line of sight. It is possible to create a network of these UWB modules to get multiple distance measurements at once and enable real-time 3D tracking for your project.

[Jaryd] gathers up nine UWB modules and uses a Raspberry Pi Pico for command and control purposes. He explains how to nominate the “tag” (the device being tracked) and the “base stations” (which help in locating the tag). He reports having success at distances of up to about 10 meters and in favorable circumstances all the way up to as much as 30 meters.

If you don’t know anything about UWB and would like a primer on the technology be sure to check out What Is Ultra Wideband?

Lisp In 99 Lines Of C With TinyLisp

As one of the oldest programming languages still in common use today, and essential for the first wave of Artificial Intelligence research during the 1950s and 60s, Lisp is often the focus of interpreters that can run on very low-powered systems. Such is the case with [Robert van Engelen]’s TinyLisp, which only takes 99 lines of C code and happily runs on the Z80-based Sharp PC-G850V(S) pocket computer with its 2.3 kB of internal RAM and native C support.

The full details on how TinyLisp was implemented and how to write it yourself can be found in the detailed article that’s part of the GitHub project. It supports static scoping, double-precision floating point and features 21 Lisp primitives along with a garbage collector. Two versions for the Sharp PC-G850 (using BCD (i.e. NaN) boxing) are provided, along with a number of generic implementations, using either double or single precision floating point types. A heavily commented version is probably the version to keep alongside the article while reading.

TinyLisp is – as the name implies – very tiny, and thus more full-featured Lisp implementations are widely available. This includes two versions – linked at the bottom of the Readme – also by [Robert] that use a gargantuan 1,000 lines of C, providing a more advanced garbage collector and dozens more Lisp primitives to handle things like exceptions, file loading, strings and debug features.