Free Your Pi With This Bare Metal Programming Environment

[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.

Perhaps not quite as complete as circle, but we’ve seen a fair few Raspberry Pi Bare metal projects over the years, like the Nerdsynth, based on the PiZero, and this neat little bare metal assembly language clone of starfox.

Thanks [Ruhan] for the tip!

Header: Aryan Patidar, CC BY 4.0/Evan-Amos, Public domain.

Pico Chording Keyboard Is Simultaneously Vintage And New

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.

Isn’t it cool that we live in a world of relatively big keyboards with few keys and tiny keyboards with all the keys?

Continue reading “Pico Chording Keyboard Is Simultaneously Vintage And New”

Chonky Palmtop Will Slide Into Your Heart

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 the “Chonky Palmtop” created by [Daniel Norris] AKA [a8ksh4] 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. [a8ksh4] 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 [a8ksh4] 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.

Continue reading “Chonky Palmtop Will Slide Into Your Heart”

A Real GPU On The Raspberry Pi — Barely.

[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.

Continue reading “A Real GPU On The Raspberry Pi — Barely.”

Lofipi Keeps The Chill Beats Coming

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.

Meet The RouterPi, A Compute Module 4 Based GbE Router

[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.

A view underneath shows off the RTC, power supply, and more.

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?

This CM4 based project is a wonderful contrast to Cisco’s first network product, which in itself was innovative at the the time, but definitely didn’t have Gigabit Ethernet. Thanks to [Adrian] for the tip!

Bare Metal Gives This Pi Some Classic Synths

We’re used to seeing the Raspberry Pi crop up in a wide range of the projects we show you here, but it’s fair to say that they usually feature some sort of operating system. There’s another way to use a Pi, more akin to using a microcontroller such as the Arduino: by programming it directly, so-called bare-metal programming. MiniDexed is an example, and it copies a classic Yamaha professional synthesiser of the 1980s, by emulating the equivalent of eight of the company’s famous DX7 synthesisers in one unit. It takes almost any Pi, and with the addition of an audio board, a rotary encoder, and an LCD display, makes a ready-to-go unit. Below the break is a video of it in operation.

It’s fair to say that we’re not experts in Raspberry Pi bare metal programming, but it’s worth a diversion into the world of 1980s synthesisers to explore the DX7. This instrument was a staple of popular music throughout the 1980s and was a major commercial success for Yamaha as an affordable FM synthesiser. This was a process patented at Stanford University in the 1970s and subsequently licensed by the company, unlike other synths of the day it generated sound entirely digitally. It’s difficult to overestimate the influence of the DX7 as its sound can be heard everywhere, and it’s not impossible that you own a Yamaha FM synth even today if you have in your possession a sound card.

Curious about the DX7? Master chip-reverse-engineer [Ken Shirriff] exposed its secrets late last year.

Continue reading “Bare Metal Gives This Pi Some Classic Synths”