Lighted Raspberry Pico Stream Deck Is Easy As Pi

Whether it’s for work, school, fun, or profit, nearly everyone is a content-creating video producer these days. And while OBS has made it easier to run the show, commanding OBS itself takes some hotkey finesse. Fortunately, it just keeps getting easier to build macro keyboards that make presenting a breeze. That includes the newest player to the microcontroller game — the Raspberry Pi Pico, which [pete_codes] used to whip up a nice looking OBS stream deck.

Sometimes you just need something that works without a lot of fuss — you can always save the fuss for version two. [pete_codes]’ Pico Producer takes advantage of all those I/O pins on the Pico and doesn’t use a matrix, though that is subject to change in the future. [pete_codes] likes the simplicity of this design and we do, too. You can see it in action after the break.

In reply to the Twitter thread, someone mentions re-legendable keycaps instead of the current 3D-printed-with-stickers keycaps, but laments the lack of them online. All we can offer is that re-legendable Cherry MX-compatible keycaps are definitely out there. Maybe not in white, but they’re out there.

If [pete_codes] wants to go wild in version two and make this macro keeb control much more than just OBS, he may want to leave the labeling to something dynamic, like an e-ink screen.

Continue reading “Lighted Raspberry Pico Stream Deck Is Easy As Pi”

Continuous Excitation Piano Machine Looks Nervous, Sounds Grand

It’s not every day we see a grand piano with a Raspberry Pi inside, let alone one with 96 motors, but sometimes we get lucky. The contraption in question is one developed by [Konstantin Leonenko], as part of a collaboration with composer [Patricia Alessandrini] for a piece she created inspired by Ada Lovelace. Specifically, [Patricia] was inspired by Ada’s idea that an “analytical machine” would, someday, be able to create music on its own. [Konstantin] and [Patricia] worked together to make a machine that would learn from it’s human co-performers and create music with them.

Their creation, rather than just one tricked-out keyboard, is actually a portable attachment that can be easily fitted to any grand piano. Each of the device’s 96 motors drives a plastic “finger” that excites the piano’s strings. The result is a sound unlike any other — and you really need to experience it so click through that link at the top for the demo video.

Rather cleverly, the fingers are designed such that their dynamics help to mask the sound of the motor (a must for performances) while simultaneously enhancing the string’s timbre. Like any project, this one went through a number of iterations over the two-year design process, and even spun off into an entirely new, glove-based version.

We’ve seen some awesome music tech hacks, and this one fits right in with the rest. It’s always exciting to see an instrument as ubiquitous as the piano be used in new and refreshing ways. Be sure to check out the link at the top for a video of this incredible instrument in action!

PCB Mods Silence Voltage Warnings On The Pi 4

If you’ve ever pushed the needle a bit on your Raspberry Pi, there’s a good chance you’ve been visited by the dreaded lightning bolt icon. When it pops up on the corner of the screen, it’s a warning that the input voltage is dipping into the danger zone. If you see this symbol often, the usual recommendation is to get a higher capacity power supply. But experienced Pi wranglers will know that the board can still be skittish.

Sick of seeing this icon during his MAME sessions, [Majenko] decided to attack the problem directly by taking a close look at the power supply circuitry of the Pi 4. While the official schematics for everyone’s favorite single-board computer are unfortunately incomplete, he was still able to identify a few components that struck him as a bit odd. While we wouldn’t necessarily recommend you rush out and make these same modifications to your own board, the early results are certainly promising.

The first potential culprit [Majenko] found was a 10 ohm resistor on the 5 V line. He figured this part alone would have a greater impact on the system voltage than a dodgy USB cable would. The components aren’t labeled on the Pi’s PCB, but with a little poking of the multimeter he was able to track down the 0402 component and replace it with a tiny piece of wire. He powered up the Pi and ran a few games to test the fix, and while he definitely got fewer low-voltage warnings, there was still the occasional brownout.

Do we really need this part?

Going back to the schematic, he noticed there was a 10 uF capacitor on the same line as the resistor. What if he bumped that up a bit? The USB specifications say that’s the maximum capacitive load for a downstream device, but he reasoned that’s really only a problem for people trying to power the Pi from their computer’s USB port.

Tacking a 470 uF electrolytic capacitor to the existing SMD part might look a little funny, but after the installation, [Majenko] reports there hasn’t been a single low-voltage warning. He wonders if the addition of the larger capacitor might make removing the resistor unnecessary, but since he doesn’t want to mess with a good thing, that determination will be left as an exercise for the reader.

It’s no secret that the Raspberry Pi 4 has been plagued with power issues since release, but a newer board revision released last year helped smooth things out a bit. While most people wouldn’t go this far just to address the occasional edge case, it’s good to know folks are out there experimenting with potential fixes and improvements.

Interfacing A Z80 CPU With The Raspberry Pi

The Z80 was a big deal in the 1970s and 1980s, and while its no longer a dominant architecture today, its legacy lives on. [James Andrew Fitzjohn] is a fan of the Z, and decided to interface the real silicon with the Raspberry Pi, by and large for the fun of it!

The Z80’s address and data lines, as well as the clock, are hooked up to the Raspberry Pi through several MCP23017 GPIO expanders. The Pi’s GPIO lines aren’t known for their speed, of course, and using expanders through I2C isn’t exactly quick either. However, speed isn’t necessary, as the clock only goes as fast as the Raspberry Pi desires, since it’s controlling the clock along with everything else. There’s also an LCD for viewing the Z80s status, along with some era-appropriate blinkenlights.

This setup allows the Pi to run code directly on the Z80 itself, while managing the CPU’s RAM in its own memory, all through a Python script. It’s a fun hack that lets you run retro code on retro silicon without using an emulator. Techniques like these are useful for finding undocumented or edge case performance of a processor. If this hack isn’t enough Zilog for your liking, consider throwing one in your pocket as well!

Raspberry Pi Takes Over Volvo’s Integrated LCD

As [Luuk Esselbrugge] explains in a recent blog post, his 2002 Volvo S60 had an optional GPS navigation system and backup camera that used a motorized display that would rise out of the dashboard when needed. His particular car didn’t come with the hardware installed, but after getting his hands on a display module and doing some research, he figured out how he could drive it with the Raspberry Pi and a couple of microcontrollers.

Given the age of the display, you probably won’t be surprised to hear that it uses composite video. Not exactly high resolution, but in the demonstration after the break, we have to admit it looks more than up to the task. [Luuk] is running Android Auto on the Raspberry Pi 3 through the openauto project, which gives him a nice big display and access to all the navigation and media applications you’d expect. The display doesn’t support touch, but thanks to an ESP32 plugged into the CAN bus, he’s able to control the software by reading the buttons built into the Volvo’s steering wheel.

Composite video sources are switched with a simple relay.

To actually raise and lower the display, [Luuk] found you just need to fire a few bytes down the 1,200 baud serial bus that’s built into the display’s wiring harness. The ESP32 handles this duty as well, at least partly because it’s already plugged into the CAN bus and can tell when the vehicle is in reverse. This lets it bring up the screen to show the video feed from the newly installed backup camera in the event that the Pi hadn’t already asked to raise the display. Incidentally plugging in the phone normally triggers the system to wake up and raise the screen, and disconnecting it will command the screen to lower back into the stowed position.

The attentive reader or Volvo aficionado may be wondering how [Luuk] got the audio working. Since his car’s sound system doesn’t feature an auxiliary input, he’s using an Arduino to spoof the existence of a CD changer, which allows him to inject an audio signal into one of the pins on the back of the radio. Eventually he wants to move this task over to the ESP32, but he says a big change like that will have to wait until warmer weather.

This isn’t the first time we’ve seen the Raspberry Pi used to add enhanced features to a somewhat older vehicle. While some bemoan the increased complexity of modern vehicles, it seems some hackers can’t get enough of it.

Continue reading “Raspberry Pi Takes Over Volvo’s Integrated LCD”

This Week In Security: Perl.com, The Great Suspender, And Google’s Solution

Perl has been stolen. Well, perl.com, at least. The perl.com domain was transferred to a different registrar on January 27, without the permission of the rightful owner. The first to notice the hack seems to have been [xtaran], who raised the alarm on a Reddit thread. The proper people quickly noticed, and started the process of getting control of the domain again. It seems that several other unrelated domains were also stolen in the same attack.

I’ve seen a couple of theories tossed around about how the domains were stolen. With multiple domains being moved, it initially seemed that the registrar had been compromised in some way. One of the other victims was told that a set of official looking documents had been supplied, “proving” that the attacker was the rightful owner of the domain. In any case, the damage is slowly being unwound. Perl.com is once again in the proper hands, evidenced by the proper SSL certificate issued back in December.

The Great Suspender, Suspended

I was greeted by a particularly nasty surprise on Thursday of this week. One of the Chrome extensions I’ve come to rely on was removed by Google for containing malware. The Great Suspender automatically hibernates unused tabs, saving ram and processor cycles that would otherwise be spent on those 150 open tabs that should really be bookmarks. What happened here?

I’ll point out that I’m extremely careful about installing extensions. It’s code written by a third party, often very difficult to inspect, and can view and modify the sites you visit. You can manage what sites an extension has access to, but for a tool like the Suspender, it essentially needs access to all of them. The solution is to use open source extensions, right? “Well yes, but actually no.” Suspender is open source, after all. The link above goes to the project’s Github page. In that repo you’ll find an announcement from last year, that the founding developer is finished with the project, and is selling the rights to an unknown third party, who took over maintainership. If this sounds familiar, there are echoes of the event-stream debacle.

It’s not clear exactly what malicious behavior Google found that led to the extension being pulled, but a more careful look at the project reveals that there were potential problems as early as October of 2020. An addition to the extension introduced execution of code from a remote server, never a good idea. For what it’s worth, the original maintainer has made a statement, defending the new owners, and suggesting that this was all an innocent mistake.

The lesson here? It’s not enough to confirm that an extension checks the “open source” box. Make sure there is an active community, and that there isn’t a 6 month old bug report detailing potentially malicious activity.

Libgcrypt

It’s not everyday you see a developer sending out a notice that everyone should stop using his latest release. That’s exactly what happened with Libgcrypt 1.9.0. Our friends over at Google’s Project Zero discovered an extremely nasty vulnerability in the code. It’s a buffer overflow that happens during the decryption process, before even signature verification. Since libgcrypt is used in many PGP implementations, the ramifications could be nasty. Receive an encrypted email, and as soon as your client decrypts it, code is executing. Thankfully, an update that fixes the issue has already been released.

Android Botnet

A new botnet is targeting Android devices in a peculiar way — looking for open ADB debug ports exposed to the Internet. Google makes it very clear that ADB over the network is insecure, and should only be used for development purposes, and on controlled networks. It’s astounding that so many vendors ship hardware with this service exposed. Beyond that, it’s surprising that so many people give their Android devices public IP addresses (or IPv6 addresses that aren’t behind a firewall). The botnet, named Matryosh, has another unique feature, as it uses Tor for command and control functions, making it harder to track.

Google Solution to Open-Source Security

Google published a post on their open source blog, giving an overview for their new framework for the security of open source projects. “Know, Prevent, Fix” is their name for the new effort, and it must have been written by management, because it’s full of buzzwords. The most interesting elements are their goals for critical software. They identify problems like the ability of a single maintainer to push bad code into a project, and how anonymous maintainers is probably a bad idea. It will be interesting to see how these ideas develop, and how Google will help open source communities implement them.

Microsoft in My Pi

And finally, I was amused by an article lamenting the inclusion of the VSCode repository in the default Raspberry Pi OS images. He does raise a couple legitimate points. Amont them, you do send a ping to Microsoft’s servers every time you check for new updates.

The larger point is that the official VSCode binaries have telemetry code added to them — code that isn’t in the open source repository. What is it doing? You don’t know. But it probably violates European law.

Want to use VSCode, but not interested in shipping info off to Microsoft? VSCodium is a thing.

All The Best Computers From Cambridge Boot To Basic

The Raspberry Pi is a fine machine that appears in many a retrocomputing project, but its custom Linux distribution lacks one thing. It boots into a GNU/Linux shell or a fully-featured desktop GUI rather than as proper computers should, to a BASIC interpreter. This vexed [Alan Pope], who yearned for his early days of ROM BASIC, so he set out to create a Raspberry Pi 400 that delivers the user straight to BASIC. What follows goes well beyond the Pi, as he takes something of a “State of the BASIC” look at the various available interpreters for the simple-to-code language. Almost every major flavour you could imagine has an interpreter, but as is a appropriate for a computer from Cambridge running an ARM processor, he opts for one that delivers BBC BASIC.

It would certainly be possible to write a bare-metal image that took the user straight to a native ARM BASIC interpreter, but instead he opts for the safer route of running the interpreter on top of a minimalist Linux image. Here he takes the unexpected step of using an Ubuntu distribution rather than Raspberry Pi OS, this is done through familiarity with its quirks. Eventually he settled upon a BBC BASIC interpreter that allowed him to do all the graphical tricks via the SDL library without a hint of X or a compositor, meaning that at last he had a Pi that boots to BASIC. Assuming that it’s an interpreter rather than an emulator it should be significantly faster than the original, but he doesn’t share that information with us.

This isn’t the first boot-to-BASIC machine we’ve shown you.

Header image:  A real BBC Micro BASIC prompt. Thanks [Claire Osborne] for the picture.