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.

Extreme Espresso, Part 2: An Inductive Water Level Sensor

[Mark Smith] must really, really like his coffee, at least judging by how much effort he’s put into tricking out his espresso machine.

This inductive water tank sensor is part of a series of innovations [Mark] has added to his high-end Rancilio Silvia machine — we assume there are those that would quibble with that characterization, but 800 bucks is a lot to spend for a coffee maker in our books. We recently featured a host of mods he made to the machine as part of the “Espresso Connect” project, which includes a cool Nixie tube bar graph to indicate the water level in the machine. That display is driven by this sensor, the details of which [Mark] has now shared. The sensor straddles the wall of the 1.7-liter water tank, so no penetrations are needed. Inside the tanks is a track that guides a copper and PETG float that’s sealed with food-safe epoxy resin.

Directly adjacent to the float track on the outside of the tank is a long PCB with a couple of long, sinuous traces. These connect to an LX3302A inductive sensor IC, which reads the position of the copper slug inside the float. That simplifies the process greatly; [Mark] goes into great detail about the design and calibration of the sensor board, as well as hooking it into the Raspberry Pi Zero that lies at the heart of “Espresso Connect’. Altogether, the mods make for a precisely measured dose of espresso, as seen in the video below.

We’d say this was maybe a bit far to go for the perfect cup of coffee, but we sure respect the effort. And we think this inductive sensor method has a lot of non-caffeinated applications that probably bear exploration.

Continue reading “Extreme Espresso, Part 2: An Inductive Water Level Sensor”

Pi Powered 1:35 Scale Panther Tank

Tank aficionado [Daniel Zalega] has enjoyed playing around with armored fighting vehicles in the digital realm for years, but only recently realized he had the technology and skills necessary to take his passion into the physical world. Albeit on a slightly reduced scale. So he bought a 1:35 plastic model kit for the German WWII Panther tank from Tamiya, and started working on a way to make it move.

Luckily for [Daniel], the assembled model is essentially hollow. That gave him plenty of room to install the geared drive motors, batteries, motor controllers, voltage regulators, a servo for the turret, and the Raspberry Pi Zero that controls the whole show. Those with an aversion to hot glue would do well not to look too closely at the construction here, but it gets the job done. Besides, it’s not like this little Panther is going to see any front line combat.

Another element of the model kit that made it well-suited to motorization is the fact that it had real rubber treads. That meant [Daniel] just had to pop some holes in the side of the tank, and figure out how to mount the drive sprockets to his gear motors. Unfortunately it looks like the wheels are static on this model, meaning the tread has to be dragged over them. That’s certainly robbing the tank of some power and speed, but in the video after the break, you can see its movement is still fairly realistic.

To control the tank, he points his phone’s browser to a simple page running on the Raspberry Pi. By simply dragging a finger on the screen, you can operate the tank’s two independent treads and rotate the turret. [Daniel] said his original plan was more elaborate, with the web page displaying a live video feed from an onboard camera as well as the readings from various sensors. But at least for now, things are kept as straightforward as possible.

This certainly isn’t the first souped-up toy tank we’ve seen here at Hackaday. From gorgeous steam powered machines to this Tiger tank with a laser-assisted aiming system, these small tracked platforms have long been a favorite of hardware hackers.
Continue reading “Pi Powered 1:35 Scale Panther Tank”

Espresso maker with added nixie flair

AI Powered Coffee Maker Knows A Bit Too Much About You

People keep warning that Skynet and the great robot uprising is not that far away, what with all this recent AI and machine-learning malarky getting all the attention lately. But we think going straight for a terminator robot army is not a very smart approach, not least due to a lack of subtlety. We think that it’s a much better bet to take over the world one home appliance at a time, and this AI Powered coffee maker might just well be part of that master plan.

Raspberry Pi Zero sitting atop the custom nixie tube driver PCB
PCB stackup with Pi Zero sat atop the driver / PSU PCBs

[Mark Smith] has taken a standard semi-auto espresso maker and jazzed it up a bit, with a sweet bar graph nixie tube the only obvious addition, at least from the front of the unit. Inside, a Raspberry Pi Zero sits atop his own nixie tube hat and associated power supply. The whole assembly is dropped into a 3D printed case and lives snuggled up to the water pump.

The Pi is running a web application written with the excellent Flask framework, and also an additional control application written in python. This allows the user to connect to the machine via Ethernet and see its status. The smarts are in the form of a simple self-grading machine learning algorithm, that takes a time series as an input (in this case when you take your shots of espresso) and after a few weeks of data, is able to make a reasonable prediction as to when you might want it in the future. It then automatically heats up in time for you to use the machine, when you usually do, then cools back down to save energy. No more pointless wandering around to see if the machine is hot enough yet – as you can just check the web page and see from the comfort of your desk.

But that’s not all [Mark] has done. He also improved the temperature control of the water boiler, and added an interlock that prevents the machine from producing a shot until the water temperature is just so. Water level is indicated by the glorious bar graph nixie tube, which also serves a few other user indication duties when appropriate. All in all a pretty sweet build, but we do add a word of caution: If your toaster starts making an unreasonable number of offers of toasted teacakes, give it a wide berth.

Eyecam Is Watching You In Between Blinks

We will be the first to admit that it’s often hard to be productive while working from home, especially if no one’s ever really looking over your shoulder. Well, here is one creepy way to feel as though someone is keeping an eye on you, if that’s what gets you to straighten up and fly right. The Eyecam research project by [Marc Teyssier] et. al. is a realistic, motorized eyeball that includes a camera and hangs out on top of your computer monitor. It aims to spark conversation about the sensors that are all around us already in various cold and clinical forms. It’s an open source project with a paper and a repo and a how-to video in the works.

The eyebrow-raising design pulls no punches in the uncanny department: the eye behaves as you’d expect (if you could have expected this) — it blinks, looks around, and can even waggle its brow. The eyeball, brow, and eyelids are actuated by a total of six servos that are controlled by an Arduino Nano.

Inside the eyeball is a Raspberry Pi camera connected to a Raspi Zero for the web cam portion of this intriguing horror show. Keep an eye out after the break for the Eyecam infomercial.

Creepy or fascinating, it succeeds in making people think about the vast amount of sensors around us now, and what the future of them could look like. Would mimicking eye contact be an improvement over the standard black and gray oblong eye? Perhaps a pair of eyes would be less unsettling, we’re not really sure. But we are left to wonder what’s next, a microphone that looks like an ear? Probably. Will it have hair sprouting from it? Perhaps.

Yeah, it’s true; two eyes are more on the mesmerizing side, but still creepy, especially when they follow you around the room and can shoot frickin’ laser beams.

Continue reading “Eyecam Is Watching You In Between Blinks”

A retro, cylindrical monitor next to what appears to be a cassette tape with a USB cable plugged into it.

A Raspberry Pi-Packing Cassette Powers This ZX Spectrum Emulator

Sometimes we are vaguely aware of the inexorable march of technological progress. Other times it thrums steadily under the surface while we go about our lives. And sometimes, just sometimes, it smacks us right in the face.

Few projects can demonstrate the advancement and miniaturization of computing technology like putting an entire functional computer inside a storage medium that once only held mere kilobytes of data. And that’s exactly what [JamHamster] has done by stuffing a Raspberry Pi Zero W inside a cassette tape to run his ZX Spectrum emulator. It’s an impressive and clean build, and it pairs so well with a downright gorgeous, retro inspired, CRT-lookalike LCD monitor, which is another creation of his.

A Raspberry Pi Zero with several areas lightly trimmed away inside an open cassette tape.

The Pi did have to undergo a bit of light surgery; though he managed to lose only four GPIO pins in the operation. He also put a ton of love into a literally-highly-polished aluminum heatsink, which is entirely hidden within the case but does keep the computer cool in its claustrophobic quarters. Of course, [JamHamster] isn’t new to these cassette builds. You may recognize his work from the TZXDuino, a virtual tape loader for the ZX Spectrum.

Honestly, sometimes we just have to sit back and be amazed at the kind of computer power that can be packed into such tiny packages. The Pi Zero isn’t the smallest or the most powerful of options, but it is far more capable than the computer it is emulating here. So whether they’re hiding inside outdated storage formats or powering a stock-looking sleeper PSP, we just can’t help but be impressed.

Is That A Cat Or Not?

Pandemic induced boredom takes people in many different ways. Some of us go for long walks, others learn to speak a new language, while yet more unleash their inner gaming streamer. [Niklas Fauth] has taken a break from his other projects by creating a very special project indeed. A cat detector! No longer shall you ponder whether or not the object or creature before you is a cat, now that existential question can be answered by a gadget.

This is more of a novelty project than one of special new tech, he’s taken what looks to be the shell from a cheap infra-red thermometer and put a Raspberry Pi Zero with camera and a small screen into it. This in turn runs Tensorflow with the COCO-SSD object identification model. The device has a trigger, and when it’s pressed to photograph an image it applies the model to detect whether the subject is a cat or not. The video posted to Twitter is below the break, and we can’t dispute its usefulness in the feline-spotting department.

[Niklas] has featured here more than once in the past. This is not his only pandemic project, either.

Continue reading “Is That A Cat Or Not?”