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.

A miniature Vectrex console being used

Finally, The Venerable Vectrex Gets A Mini Makeover

It appears that every great console is bound to get a miniature remake: we’ve had the PlayStation Classic, the Mini NES and SNES, and even a miniature Sega Genesis/Mega Drive. But one great console that was sorely missing from that list, at least according to [Brendan], was the Vectrex. So he went ahead and built a fully-functioning miniature Vectrex Console.

If the name “Vectrex” doesn’t ring a bell in your mind, you’re not alone: a commercial failure, it was quickly forgotten by most following the 1983 video game crash. But it has retained a cult status among enthusiasts due to its unique design featuring a monochrome vector monitor, onto which you can place transparent overlays to obtain a sort-of color display. Its games can now all be emulated using software like RetroPie, which is what [Brendan] chose to run on a Raspberry Pi Model 2 that he had lying around.

As for the display, he settled on a Pi-compatible 3.5″ TFT device. Hooking it up to the Pi was easy enough, but getting the image rendered in its proper portrait orientation was quite a headache, requiring endless fiddling with drivers and configuration files.

Once he got this working, [Brendan] set to work designing a miniature copy of the Vectrex’s original case. It took a few iterations and several 10-hour runs on his 3D printer before he ended up with a sturdy case that securely held the Pi and its display in place. A few more hours of printing later he also had a handheld controller, which he based on an Arduino Pro Mega. The Arduino reads out four regular pushbuttons and a joystick, and communicates with the Pi through a coiled USB cable.

The end result, as you can see in the video embedded below, is the cutest little Vectrex we’ve ever seen. It’s really the opposite of this big-screen Vectrex project. We’ve also seen a Vectrex projector, and even one with a real color monitor hacked in. Continue reading “Finally, The Venerable Vectrex Gets A Mini Makeover”

Raspberry Raven Pi Security Camera Does Double Duty

The worst thing about holiday decorations is that while you could leave them up all year, your neighbors probably won’t like you very much for it. Christmas lights on your house are one thing, but as far as Halloween decorations go, [MisterM]’s raven security camera is one of the few exceptions to this rule.

Nevermore will [MisterM] wonder who goes there. As soon as this raven lays its beady red LED eyes on whatever is lurking in the garden, it comes to life with a bit of head swiveling and some random sounds. The bird either goes CAW! or quotes Christopher Lee’s reading of Edgar Allen Poe’s “The Raven”.

Inside this bird’s chest cavity is a Raspberry Pi 2 and standard camera, a servo to swivel the head, and an audio amplifier and speaker. This bird is running MotionEye on top of the Raspi OS so it can run a script whenever it senses motion.

We like that [MisterM] was able to find right-sized bits of plastic to mount the servo in the neck and the horn to the head. It just goes to show that not everything needs a 3D printer, a CNC, or woodworking. Check out the scary demo after the break.

Want to scare the whole neighborhood? Check out the science behind good-looking house projections.

Continue reading “Raspberry Raven Pi Security Camera Does Double Duty”

Break Time Is Calling On The Rainbow Connection

Like some of us, [Mister M] is prone to staying glued to his seat too long in this new era of working from home. And you know what they say about a body at desk — it tends to stay at desk until it absolutely must rise up to find food or use the restroom.

Thanks to this nifty new break time reminder, [Mister M] has a third call to answer that demands he get up. Every hour, the NeoPixel ring in this old dial-deficient phone fills up completely and switches over to an attention-getting rainbow animation. If [Mister M] stays seated, playtime is over. All the lights start flashing red, and the phone starts beeping incessantly until he walks across the room and either pushes the momentary button or lifts the handset to reset the timer.

We love that [Mister M] incorporated all of the phone’s original inputs and outputs into this project, because it’s such a cool old dog and bone. No need to drop a dime, just whistle at the break button to check out the build video.

This grille-faced phone was probably part of an intercom system. Incidentally, you can make an intercom system with two standard-style phones of this vintage.

Continue reading “Break Time Is Calling On The Rainbow Connection”

Overclock Your Raspberry Pi The Right Way

The Raspberry Pi came upon us as an educational platform. A credit card sized computer capable of running Linux from a micro SD card, the Raspberry Pi has proven useful for far more than just education. It has made its way into every nook and cranny of the hacker world. There are some cases, however, where it might be a bit slow or seem a bit under powered. One way of speeding the Raspi up is to overclock it.

[Dmitry] has written up an excellent overclocking guide based upon Eltech’s write up on the subject. He takes it a bit further and applies the algorithm to both Raspi 2 and Raspi 3. You’ll need a beefier power supply, some heat sinks and fans – all stuff you probably have lying around on your workbench. Now there’s no excuse stopping you from ratcheting up the MHz and pushing your Pi to the limit!

We’ve seen several guides to overclocking the Raspi here on Hackaday, including the current record holder. Be sure to check out [dmitry’s] IO page for the overclocking details, and let us know of any new uses you’ve found by overclocking your Raspi in the comment below.

The Raspberry Pi 2 Gets A Processor Upgrade

A rumor that has been swirling around the Raspberry Pi hardware community for a significant time has proven to have a basis in fact. The Raspberry Pi 2 has lost its BCM2836 32-bit processor, and gained the 64-bit BCM2837 processor from its newer sibling, the Raspberry Pi 3. It seems this switch was made weeks ago without any fanfare on the release of the Pi 2 V1.2 board revision, so we are among many news sources that were caught on the hop.

The new board is not quite a Pi 3 masquerading as a Pi 2 though. The more capable processor is clocked at a sedate 900MHz as opposed to the Pi 3’s 1.2GHz and there is no Bluetooth or WiFi on board, but the new revision will of course benefit from the extra onboard cache and the 64-bit cores.

This move almost certainly has its roots in saving the cost of BCM2836 production in the face of falling Pi 2 sales after the launch of the Pi 3. It makes sense for the Foundation to keep the Pi 2 in their range though as the board has found a home in many embedded products for which the Pi 3’s wireless capabilities and extra power consumption are not an asset.

Avid collectors of Pi boards will no doubt be running to add this one to their displays, but given that the Pi 2 sells for the same price as a Pi 3 we suspect that most Hackaday readers will go for the faster board. It is still a development worth knowing about though, should you require a faster Pi that is a little less power-hungry. The full specification for the revised board can be found on the Raspberry Pi web site.

The Pi has come a long way since the morning in 2012 when our community brought down the RS and Farnell websites trying to buy one of the first models. This BCM2837 board joins a BCM2837-powered Compute Module as well as the Pi 3. It’s worth reminding you though that there are other players to consider, earlier this year we brought you a look at the Odroid C2, and of course the infamous Apple Device.

Pi 2 header image: Multicherry [CC BY-SA 4.0], via Wikimedia Commons.

Editorial Note: We originally covered this in Sunday’s Links article but thought it warranted another, expanded mention.

Hackaday Prize Entry: AutoFan Saves Tired Drivers With Face Recognition

Long distance driving can be tedious at times. The glare of the sun and the greenhouse effect of all your car’s windows make it hot and dry. You turn on the fan, or air conditioning if you have it, and that brings relief. Soon enough you’ve got another problem, the cold dry air is uncomfortable on your eyes. Eventually as you become more tired, you find yourself needing the air on your face more and more as you stay alert. You thus spend most of the journey fiddling with your vents or adjusting the climate controls. Wouldn’t it be great if the car could do all that for you?

AutoFan is a project from [hanno] that aims to automate this process intelligently. It has a fan with steerable louvres, driven by a Raspberry Pi 2 with attached webcam. The Pi computes the position of the driver’s face, and ensures the air from the fan is directed to one side of it. If it sees the driver’s blink rate increasing it directs the air to their face, having detected that they are becoming tired.

The build logs go into detail on the mathematics of calculating servo angles and correcting for camera lens distortion in OpenCV. They also discuss the Python code used to take advantage of the multicore architecture, and to control the servos. The prototype fan housing can be seen in the video below the break, complete with an unimpressed-looking cat. For those of you interested in the code, he has made it available in a GitHub repository.

Continue reading “Hackaday Prize Entry: AutoFan Saves Tired Drivers With Face Recognition”