Cat Feeder Ensures Fed Cats

Automatic cat feeders are a dime a dozen, largely because this is an easy problem to solve. Dry cat food is easy for machines to manipulate, and the electronics needed to accomplish the task to a bare minimum are plentiful and inexpensive. But just doling out food is only easy part of the problem. [Jason] wanted to make sure that his cats actually ate once the food was dispensed so he added a few extra features to this cat feeder.

The main addition to this feeder compared to off-the-shelf models is a weight sensor under the bowl. The feeder metes out a certain amount of food, and then a Raspberry Pi Pico W keeps an eye on the weight of the dish. If it goes down, presumably the cat has eaten all of the food. But just to be sure, an ultrasonic sensor was added beside the bowl to ensure something cat-shaped was there at the same time. There was some issue with this sensor blasting out noise in a cat’s audible range at first, but it seems like that problem has since been solved as well.

The build has a few other perks as well. The hardware has wireless communication ability, so it’s easy to keep an eye on when out and about. It can log data and is much more programmable than others. Like most cat feeders, though, it’ll only work for dry food. For automatically feeding wet food something like this robotic feeder that opens cans and dispenses them at set intervals would be needed.

Continue reading “Cat Feeder Ensures Fed Cats” →

ToothPaste Goes Where Your Password Manager Doesn’t

One of the easiest ways of improving security and privacy when using the Internet, and computers in general, is to use strong passwords unique to each site or service. A password manager makes this easy on your phone or computer, but what if you’re in a situation where you can’t install any software on the device you’re logging into? In that case, maybe it’s time to get out the Toothpaste.

The way this creation from [brisk4t] works is that an ESP32-S3 is programmed to act as a keyboard and mouse for any computer it’s plugged into. From there, it connects over an encrypted WEB-BLE connection to another device like a laptop or smartphone. This second device can send text to the ESP32 acting using an extension for Chromium-based browsers, and the ESP32 sends it over the USB connection as if it were nothing more than a standard keyboard. This is all done without having to install any apps or drivers on the target machine, since any machine in the last two or three decades can recognize a USB keyboard and mouse with no problem.

Not only does this allow for easy password input for awkward situations, this can also be used for BIOS where an app couldn’t be installed anyway, for air-gapped systems with no networking, or insecure systems the user doesn’t trust. If you don’t need quite as many bells and whistles, we’ve seen a similar technique pulled off with an ATtiny85.

2026 Retrocomputing Challenge: Custom RISC-V Processor For Retro System

Although once little more than an academic endeavor, the RISC-V architecture is slowly supplanting applications that would have normally gone to ARM. Even a few microcontrollers have chips running this open-source instruction set now, and we expect it to grow in the future since it doesn’t require the licensing of an ARM or x86 chip. [M_Jagadeesh97] is getting ahead of the curve with this retro gaming system built on a custom-designed RISC-V system.

Most of us, presumably including [M_Jagadeesh97], don’t have access to chip fabrication tools, but what we can get is any of various FPGAs. This RISC-V CPU is built on a Terasic DE0-Nano board with 32 MB of RAM available to it, and boots to a launcher with 32 games available. There are a few limitations with this low-power system which was largely solved by limiting the display to 64×32, which lets it maintain the same aspect ratio as the original DOOM as well as the same aspect ratio for many of the older games, while still maintaining 45 FPS.

The project writeup goes deep into the design of a system like this, from the bare metal, the CPU design, the timing of the video signals, and how to implement a Wolfenstein-like raycaster. After adding a small display it looks to be fairly portable as well and is an excellent demonstration of how powerful inexpensive boards like this  FPGA can be with the proper amount of effort.

Hacking The Modern Tamagotchi With UART

Although not technically the first virtual pet, the Tamagotchi handhelds certainly popularized the idea and made it a worldwide phenomenon. In the late 90s it was hard to go out in public and not see them dangling from backpacks and belt loops. They turned out to be more than a passing fad, too. There have been Tamagotchis in various forms since then, and one of the latest, the Tamagotchi Paradise, is uniquely hackable thanks to this custom UART interface.

The build starts with a simple and inexpensive CH340G UART adapter with a built-in USB interface. A custom 3D printed enclosure is used to house the adapter and also help to expose the interface to the Tamagotchi. This is done by wiring three pins to nickel strips, which are threaded through slits in the case and looped back around to create a pogo-style adapter for the Tamagotchi’s custom dock. Normally this would be used to link to other Tamagotchis, but in this case the USB-to-UART adapter mimics it, allowing for all kinds of in-game shenanigans. The project’s creator [Squalius] shows it off by connecting it directly to a browser tool in Google Chrome.

Not only that, but this can also be used to modify the software running on the handheld entirely, with the video showing demos playing not only Super Mario but also DOOM (of course). This isn’t too surprising given that these games are built with modern 32-bit ARM microcontrollers. For the 90s purists, though, it probably won’t surprise anyone to know that these devices have been the subject of various hacks almost since they came out.

Continue reading “Hacking The Modern Tamagotchi With UART” →

Arduino Engine Runs Many Games

A few years ago, [Smashcat] ported a ZX Spectrum game called Manic Miner to the Arduino Uno. The Arduino has less memory than the original Spectrum did, so doing all this on an 8-bit microcontroller was no easy lift. Since then, parts of this original port have been adapted to produce a game engine, allowing [Smashcat] to port several other games to the Arduino Uno as well.

The engine is able to host a 2D map with the ability to scroll, at a resolution of 256×256, as well as up to nine sprites at the same time. The graphics are locked to 50 FPS, but only with a real Arduino Uno that has a crystal oscillator. Some replica boards do not have a timekeeping chip accurate enough to replicate the video signal, which is done without a framebuffer. That signal, as well as two PWM audio channels, are still generated directly as well, with only a few resistors needed to hook everything up to a monitor and a controller, including the option of using an NES controller.

With all of that running on the Arduino and it hooked up to the daughterboard that provides the controller interface as well as the resistors for the video signal to function and a driver for a speaker, the system now runs the original Manic Miner as well as three other games: Scramble, Space Invaders, and Pac Man.

The engine and the rest of the code are available on a GitHub page as well, and there’s even a WebAssembly version available to run various pieces of the software without the specific hardware. The original ZX Spectrum was an interesting machine too that still inspires builds like this, despite it being well over 40 years old now.

Hiding Virtualization From Other Software

The Kernel-based Virtual Machine (KVM) allows Linux systems to function as hypervisors without needing any extra software, but VMs created with it don’t behave exactly like real hardware does. Sometimes that’s important, though, so [sandwich] built a tool called vfio-native that obscures the fact that software might be running in a virtual machine.

There are plenty of the ways that virtual hardware differs from bare metal. The VM may behave slightly differently for obscure instructions in ways that are measurable, it may take slightly longer to perform some tasks, or the hypervisor may simply announce itself directly. vfio-native includes some kernel patches that solve some bugs which address the different behaviors, changes the way that the kernel identifies itself, and attempts to force the CPUs to behave in ways that real hardware would behave. With all of this applied to the virtual machine, it scores a 1/85 against a VM detection tool, with a standard KVM virtual machine scoring 10/85.

For anyone looking to test this out, it’s available in the AUR for Arch Linux. Also, it’s probably worth mentioning that there are more reasons to use this than cheating at Counter-Strike. For example, security researchers testing malware need to know how that software behaves when it thinks its on real hardware, and some may behave in benign ways when confined to virtual machines. Some licensed software also may disable itself when it detects its running in a VM, which can be a nuisance for things like software controlling industrial tools which only run on operating systems that are no longer maintained or hardware that can’t be found anymore. Some other tools we’ve seen before perform similar tasks as well.

Simple, Reliable RF Remote Control

Some of the first remote controls available to consumers used sound, visible light, or even just wires to communicate with their parent device. It was many years between these first rudimentary remotes before they standardized around infrared or RF signaling. Even then it was a while before remote controls were reliable enough to not have to think about anymore. They’ve gotten so good now that there are small modules available that let us quickly build these devices to perform all manner of tasks.

[Igor Brichkov] is demonstrating this project because his garage door remote control suddenly stopped working. The RF receiver and transmitter circuits are readily available and inexpensive, but they need some support circuitry to work properly. The transmitter is paired with an encoder which is provided a binary code by wiring various pins to power and ground. This “code” is sent to the receiver which has a decoder and listens for that specific code. When the codes match it changes the state of one of its pins, which is used in this case to short the garage door’s remote terminals and signal it to open the door.

Although the resulting handheld remote with its single button looks a bit like something from 1950s science-fiction, it’s an effective solution. Especially when compared to possibly trying to reprogram a proprietary remote, find one from a company that doesn’t exist anymore, or rebuild one that operates on a bizarre frequency. With access to the physical hardware, it turns out a lot of things are controlled by just shorting pins together, and anything can do that from wires to RF transmitters.

Continue reading “Simple, Reliable RF Remote Control” →