The humble USB-C port has brought us so many advantages over its USB ancestors, one of which is as a handy display output for laptops. Simply add an inexpensive adapter and you can hook up everything from a mobile phone upwards to an HDMI display or projector. There’s a snag though, merely having USB-C is not enough as the device has to support the display feature. It’s a problem [Gunnar Wolf] had to face with a Lenovo ARM laptop, and his solution is unexpected. Instead of an adapter, he’s used a Raspberry Pi 3 and some software tricks.
The obvious route to an off-board Pi mirroring onboard video is to use VNC, which he tried but found wanting due to lagginess. As a user of the Wayland compositor he found he could instead use wf-recorder and send its output to a stream, and thus capture his screen in a way that the Pi could read over the network. It’s not quite as convenient a solution as a pure-hardware adapter, but at least it allowed him to share the screen.
[Rene Strange] has graced these fair pages a short while ago with a sweet Raspberry Pi software based poly synth, with a tantalising reference to it being a bare metal application. So now, we’ll look into circle, the bare metal programming environment that it is based upon. The platform consists of a large set of C++ classes to access the hardware as well as perform tasks such as task creation and scheduling in the cooperative multitasking, multicore environment. Supporting all Raspberry Pi boards from version 2 onwards (not including the Pico!) in both 32-bit and 64-bit flavours, the environment is pretty complete. Classes are provided for USB, networking, FatFS, as well as more mundane tasks such as dealing with interrupts. On top of these classes there are a pile of application-specific libraries, covering functions such as display interfacing, GUIs using a variety of frameworks, and some more esoteric applications such as interfacing to a Pico, and even sending the system log to a remote web browser!
Classes and libraries however, don’t always help by themselves, which is where the 42 (yes, we know) code examples come in very handy. They’ve provided example applications for some fun stuff like drawing Mandelbrot fractals to the display, as well as some more mundane tasks that we have to deal with such as getting that pesky DMA controller to play nice with the SPI hardware. All-in-all, this looks like a great set of tools for taking full advantage of some fairly beefy hardware for your next embedded project that needs plenty of resources, but not all that unnecessary operating system stuff.
On paper, chording — that’s pressing multiple keys to create either a single character or a whole word — looks like one of the best possible input methods. Maybe not the best for speed, at least for a while, but definitely good for conserving the total number of keys. Of course, fewer keys also makes for an easier time when it comes to building keyboards (as long as you don’t have to code the chording software). In fact, we would venture to guess that the hardest part of building your own version of [CrazyRobMiles]’s Pico Chord Keyboard would be teaching your fingers how to work together to chord instead of typing one at a time.
[CrazyRobMiles] took inspiration from the Cykey chording design used for the Microwriter and later, the Microwriter Agenda that also featured a qwerty blister keyboard. Both featured small screens above the six keys — one for each finger, and two for the thumb. While the original Microwriter ran on an 8-bit microprocessor, Pico Chord Keyboard uses — you guessed it — the Raspberry Pi Pico.
We love that [CrazyRobMiles] went with four 14-segment displays, which gives it a nice old school feel, but used transparent keycaps over Kailh switches. This is actually important, because not only do the LEDs show what mode you’re in (alpha vs. numeric vs. symbols), they also teach you how to chord each letter in the special training game mode. Be sure to check it out in the video after the break.
You probably know what a cyberdeck is by now, but you’ll find that people’s definitions differ. Some use the term rather loosely, applying it to things that are luggable at best. But we think you’ll agree that [Daniel Norris]’ chonky palmtop is without a doubt, quite cyberdeckian.
One of the hallmarks of a cyberdeck is that it folds up, often like a laptop in the screen-over-keyboard sense. Not only does chonky palmtop do that, but the split keyboard (more on that later) has this impressive pivot geometry and really satisfying slider mechanism thing going on. The whole thing folds up into a little brick, which [Daniel] says is about the size of an old Asus EEE laptop. (Remember those bad boys? Those were the days.)
Inside the brick is some stuff you might expect, like a Raspberry Pi 4 and a 7″ touchscreen. [Daniel] also packed in an AmpRipper 3000 LiPo charger, which is especially good for high voltage projects. Speaking of, there is a voltage button to check the battery level, which is then displayed on a trio of 7-segment displays that are smack dab in the middle below the screen.
Now about that split keyboard — that’s a Corne, which is kind of a happy medium between a lot of keys and too few, and 42 is probably enough keys for most people. Considering the overall size, we think that is a great amount of keys.
Not that you can tell by the keycaps on those Chocs, but [Daniel] is rocking the Miryoku layout and firmware. Slide past the break to watch chonky palmtop unfurl, boot into Ubuntu, and close back up in a brief demo video.
[Jeff Geerling] saw the Raspberry Pi Compute Module 4 and its exposed PCI-Express 1x connection, and just naturally wondered whether he could plug a GPU into that slot and get it to work. It didn’t. There were a few reasons why, such as the limited Base Address Register space, and drivers that just weren’t written for ARM hardware. A bit of help from the Raspberry Pi software engineers and other Linux kernel hackers and those issues were fixed, albeit with a big hurdle in the CPU. The Broadcom chip in the Pi 4, the BCM2711, has a broken PCIe implementation.
There has finally been a breakthrough — Thanks to the dedicated community that has sprung up around this topic, a set of kernel patches manage to work around the hardware issues. It’s now possible to run a Radeon HD 5000/6000/7000 card on the Raspberry Pi 4 Compute Module. There are still glitches, and the Kernel patches to make this work will likely never land upstream. That said, It’s possible to run a desktop environment on the Radeon GPU on a Pi, and even a few simple benchmarks. The results… aren’t particularly inspiring, but that wasn’t really ever the point. You may be asking what real-world use is for a full-size GPU on the Pi. Sure, maybe crypto-mining or emulation, or being able to run more monitors for digital signage. More than that, it might help ensure the next Pi has a working PCIe implementation. But like many things we cover here, the real reason is that it’s a challenge that a group of enthusiasts couldn’t leave alone.
These days, many people love having some lo-fi beats on when they chill and study. This has led to a cottage industry dedicated to producing said beats, and the format continues to grow in popularity. [Nicholas Sherlock] decided to build a custom audio device solely for the delivery of these comfortable tunes.
As seen on Reddit, the build relies on a Raspberry Pi 3B, paired with an X400 audio amplifier board and hooked up to a nicely-sized mid-range speaker. The hardware is assembled inside a case printed out of wood-effect PLA filament, giving it a nice old-school home audio aesthetic. As a bonus, the layer lines line up in such a way as to boost the woodgrain effect. Plug it in, and you will be immediately rewarded with lo-fi beats from boot.
Originally, the system ran a port of the code from lofigenerator.com, which algorithmically creates lo-fi beats from scratch. However, [Nicholas] could not in good conscience share the ported code, and has retooled the system to stream YouTube playlists using command line media player mpv instead. It’s set to stream typical lo-fi playlists, though could be repurposed to target anything on the platform.
It’s a nice build that really suits the lo-fi beats ideal. When you’re trying to study or focus, you don’t want to be mucking around with a YouTube tab open serving as a distraction. Instead, you can simply flick on the Lofipi, and vibe out.
The Raspberry Pi’s cheap price and great internet and media capabilities make it very popular for builds like these. They go some way to recreating the idea of receiving a broadcast, rather than forcing us into choice as per today’s modern on-demand media paradigm. If you’ve got thoughts on this, drop them in the comments, and if you’ve got your own great projects, do drop us a line.
[Zak Kemble] likes to build things, and for several years has been pining over various Raspberry Pi products with an eye on putting them into service as a router. Sadly, none of them so far provided what he was looking for with regard to the raw throughput of the Gigabit Ethernet ports. His hopes were renewed when the Compute Module 4 came on scene, and [Zak] set out to turn the CM4 module into a full Gigabit Ethernet router. The project is documented on his excellent website, and sources are provided via a link to GitHub.
Of course the Compute Module 4 is just a module- it’s designed to be built into another product, and this is one of the many things differentiating it from a traditional Raspberry Pi. [Zak] designed a simple two layer PCB that breaks out the CM4’s main features. But a router with just one Ethernet port, even if it’s GbE, isn’t really a router. [Zak] added a Realtek RTL8111HS GbE controller to the PCIe bus, ensuring that he’d be able to get the full bandwidth of the device.
The list of fancy addons is fairly long, but it includes such neat hacks as the ability to power other network devices by passing through the 12 V power supply, having a poweroff button and a hard reset button, and even including an environmental sensor (although he doesn’t go into why… but why not, right?).
Testing the RouterPi uncovered some performance bottlenecks that were solved with some clever tweaks to the software that assigned different ports an tasks to different CPU cores. Overall, it’s a great looking device and has been successfully server [Zak] as a router, a DNS resolver, and more- what more can you ask for from an experimental project?