Digital Rain Animation Crammed Into Pi Pico

With a new Matrix movie now in cinemas, we’ve all been reminded of those screensavers that were just the coolest thing ever when the original film dropped in 1999. [en0b] decided to recreate the classic “digital rain” effect on the Raspberry Pi Pico, using up all the little microcontroller’s storage in the process.

Rather than rely on existing graphics libraries, [en0b] set about using a high-quality GIF for the animation. The original file was 8 MB, which was far too big to fit on the Pico. After some finagling in an image editor and with the help of a custom Python script, however, [en0b] managed to fit the 127-frame animation at 240 x 135 resolution into the 2 MB Flash onboard the chip. With the microcontroller hooked up to the 1.14″ IPS “Pico Display” from Pimoroni, the final looks great and faithfully recreates the aesthetic seen in the film.

[en0b]’s technique could reliably be used for displaying any GIF that you can cut down to 14 to 16 colors without losing too much quality. It’s not the world’s highest-end graphics format, but it does the job for little animations like these.

We’ve seen similar builds before too, using more heavy-duty hardware to build a magic 8-ball in much the same way. Meanwhile, if you’ve got your own neat little GIF hacks or Pico projects, don’t hesitate to send them in!

Electronic Drum Toy Built From Scratch

Drum kits used to be key to any serious band, however, these days, much of our music is created on computer or using a drum machine instead. [spanceac] has built a simple example of the latter, using a microcontroller to build a basic sample-based drum toy.

The brains of the operation is the STM32F100VET6B, which comes complete with a 12-bit DAC for outputting sound. It’s also got a healthy 512 KB of flash, enabling it to store the drum samples onboard without the need for extra parts. Samples are stored at a sample rate of 22,050 Hz in 16-bit resolution – decent quality for a tiny little build, even if the DAC chops that back down to 12-bits later.

[spanceac] was sure to code proper mixing into the drum machine, so that triggering a second sample doesn’t stop the first one playing. With a kick, snare, two toms, and crash and ride samples onboard, there’s plenty to get a solid beat going on the kit.  It’s all built up on a small PCB with tactile buttons to activate each sound.

The demo video shows the kit performing ably; it’s not clear if there’s an issue with latency on the samples or that’s just from the difficulty of [spanceac] playing one-handed. If the former, likely some code tweaks or simply trimming silence at the start of samples would be all that was needed. Overall, it’s a neat little groovebox, and the kind of thing that’s great fun to use when jamming with other musicians. Video after the break.

Continue reading “Electronic Drum Toy Built From Scratch”

Raspberry Pi Pico Gets A Tiny Keyboard On Its Back

With hackers and makers building custom computing devices that don’t necessarily follow conventional design paradigms, there’s been a growing demand for smaller and smaller keyboards. Many of the cyberdecks we’ve seen over the last couple of years have used so-called 60% or even 40% keyboards, and there’s been a trend towards repurposing BlackBerry keyboards for wearables and other pocket-sized gadgets. But what if you need something even smaller?

Enter this incredibly diminutive keyboard created by [TEC.IST]. With 59 keys crammed into an area scarcely larger than three US pennies, it may well be the smallest keyboard ever made. The PCB has been designed to mount directly onto the back of a Raspberry Pi Pico, which is running some CircuitPython code to read the switch matrix and act as a standard USB Human Interface Device. The board design files as well as the source code for the Pico have been released on the project’s Hackaday.io page, giving you everything you need to spin up your own teeny tiny input device.

The Pi Pico’s castellated pads make attaching the PCB a snap.

Of course, you probably won’t be breaking any speed records when banging out text on this thing. We know from past Hackaday badges that an array of microswitches make for a functional, if somewhat unpleasant, method of text entry.

Continue reading “Raspberry Pi Pico Gets A Tiny Keyboard On Its Back”

Blink An LED On A PIC32 With Rust, Easily

Got a PIC32 microcontroller and a healthy curiousity about the Rust programming language and its low-level capabilities, but unsure how to squash the two of them together with a minimum of hassle? If that’s the case, then today is your lucky day!

[Harry Gill] has you covered with his primer on programming a PIC32 with Rust, which will have you blinking an LED in no time. [Harry] admits that when he got started, his microcontroller programming skills were a bit rusty, so don’t let yourself think setting this up is beyond your abilities. If you have a working knowledge of the basics of microcontroller programming, you’ll be fine. [Harry] had to jump through a few hoops to get the right tools working, but thoughtfully documented the necessary steps, and provides a bare minimum hardware list.

Unsure what Rust is or what it offers? Check out the basics here, and see if it’s something that interests you. If you want to look even deeper, check out the kind of work that goes into writing a bare metal kernel in Rust.

Macro-popsicle

Macropopsicle Melts On Your Desk, Not In Your Mouth

We all know by now that macropads are super cool shortcut machines. And what’s cooler than a popsicle? Well, this cute little thing, which goes by the name of Macropopsicle.

The freezer’s open if you want your own Macropopsicle. There’s not much more to this tasty and practical desktop treat than an adafruit QT Py, a couple of Cherry MX-style switches, some wires, and a handful of printed parts. One cool thing about this design is that all the pieces print with little to no supports, and many of them snap together.

We say there’s a lot to like about Macropopsicle — it’s cute, it’s useful, and there’s even a little bite taken out of it that you can see in some of the renders. [oxisidia] even shoved a real popsicle stick in there to complete the look.

Keyboard aficionados will no doubt recognize Macropopsicle as a great companion to Milk, a 2% keyboard.

Teensy 4 Pushed To The Limit With 1 GHz Overclock

Do you need a microcontroller that runs at 1 GHz? No, probably not. But that didn’t stop [Visual Micro] from trying, and the results are pretty interesting. Not only did the plucky little chip not cook itself, it actually seemed to run fairly well; with the already powerful microcontroller getting a considerable boost in performance.

According to [Visual Micro] the Teensy 4.1, which normally has its ARM Cortex-M7 clocked at 600 MHz, can run at up to 800 MHz without any additional cooling. But beyond that, you’ll want to invite some extra surface area to the party. It’s easy enough to cut a chunk out of an old CPU/GPU cooler and stick it on with a dab of thermal compound, but of course there’s no shortage of commercially available heatsinks at this size that you could pick up cheap.

Cutting a custom heatsink.

With the heatsink installed, [Visual Micro] shows the Teensy running at around 62 °C during a benchmark. If that’s a little hot for your liking, they also experimented with an old laptop cooler which knocked the chip down to an impressive 38 °C while under load. It doesn’t look like a particularly practical setup to us, but at least the option is there.

[Visual Micro] unfortunately doesn’t go into a lot of detail about the benchmark results, but from what’s shown, it appears the overclock netted considerable gains. A chart shows that in the time it took a stock Teensy to calculate 15.2 million prime numbers, the overclocked chip managed to blow through 21.1 million. The timescale for this test is not immediately clear, but the improvement is obvious.

Even at the stock 600 MHz, the Teensy 4 is a very powerful MCU. Especially after the 4.1 refresh brought in support for additional peripherals and more RAM. But we suppose some people are never satisfied. Got a project in mind that could benefit from an overclocked Teensy? We’d love to hear about it.

Continue reading “Teensy 4 Pushed To The Limit With 1 GHz Overclock”

An image showing a water cooler PCB on the desk, with probes and jumper wires connected to it.

Taking Water Cooler UX Into Your Own Hands With Ghidra

Readers not aware of what Ghidra is might imagine some kind of aftermarket water cooler firmware or mainboard – a usual hacker practice with reflow ovens. What [Robbe Derks] did is no less impressive and inspiring:  A water cooler firmware mod that adds hands-free water dispensing, without requiring any hardware mods or writing an alternative firmware from scratch.

Having disassembled the cooler, [Robbe] found a PIC18F6527 on the mainboard, and surprisingly, it didn’t have firmware readback protection. Even lack of a PICkit didn’t stop him – he just used an Arduino to dump the firmware, with the dumper code shared for us to reuse, and the resulting dumps available in the same repository.

From there, he involved Ghidra to disassemble the code, while documenting the process in a way we can all learn from, and showing off the nifty tricks Ghidra has up its sleeves. Careful planning had to be done to decide which functions to hook and when, where to locate all the extra logic so that there’s no undesirable interference between it and the main firmware, and an extra step taken to decompile the freshly-patched binary to verify that it looks workable before actually flashing the cooler with it.

The end result is a water cooler that works exactly as it ought to have worked, perhaps, if the people defining its user interaction principles were allowed to make it complex enough. We could argue whether this should have been a stock function at all, but either way, it is nice to know that we the hackers still have some of the power to make our appliances friendly — even when they don’t come with an OS. Certainly, every single one of us can think of an appliance long overdue for a usability boost like this. What are your examples?

We’ve covered quite a few Ghidra-involving hacks, but it never feels like we’ve had enough. What about patching an air quality meter to use Fahrenheit? Or another highly educational write-up on cracking GBA games? Perhaps, liberating a Linux-powered 4G router to reconfigure it beyond vendor-defined boundaries? If you have your own goal in mind and are looking to start your firmware reverse-engineering journey, we can say with certainty that you can’t go wrong with our HackadayU course on Ghidra.