Having an AI assistant is all the rage these days, but AI assistants usually don’t know about your automation setups and may have difficulty dealing with tasks asynchronously. Enter zclaw. It gives you the option to have a personal assistant on an ESP32 backed by Anthropic, OpenAI, or OpenRouter. The whole thing fits in 888KB, and while it doesn’t host the LLM, it does add key capabilities to monitor and control devices connected to the ESP32.
You communicate with the assistant via telegram. You can say things like “Remember the garage sensor is on GPIO 4.” Then later you might say: “In 20 minutes, check the garage sensor and if it is high, set GPIO 5 low.” It has an RTOS for scheduling tasks and is aware of the timezone and common periods. Memory persists across reboots, and you can pick different personas.
[Matt Denton]’s SpoolBot is a surprisingly agile remote-controlled robot that doesn’t just repurpose filament spool leftovers. It looks exactly like a 2 kg spool of filament; that’s real filament wound around the outside of the drum. In fact, Spoolie the SpoolBot looks so much like the real thing that [Matt] designed a googly-eye add-on, because the robot is so easily misplaced.
The robot’s mass rotates around a central hub in order to move forward or back.
SpoolBot works by rotating its mass around the central hub, which causes it to roll forward or back. Steering is accomplished by tank-style turning of the independent spool ends. While conceptually simple, quite a bit of work is necessary to ensure SpoolBot rolls true, and doesn’t loop itself around inside the shell during maneuvers. Doing that means sensors, and software work.
To that end, a couple of rotary encoders complement the gearmotors and an IMU takes care of overall positional sensing while an ESP32 runs the show. The power supply uses NiMH battery packs, in part for their added weight. Since SpoolBot works by shifting its internal mass, heavier batteries are more effective.
The receiver is a standard RC PWM receiver which means any RC transmitter can be used, but [Matt] shows off a slick one-handed model that not only works well with SpoolBot but tucks neatly into the middle of the spool for storage. Just in case SpoolBot was not hard enough to spot among other filament rolls, we imagine.
The googly-eye add-on solves that, however. They clip to the central hub and so always show “forward” for the robot. They do add quite a bit of personality, as well as a visual indication of the internals’ position relative to the outside.
The GitHub repository and Printables page have all the design files, and the video (embedded just below) shows every piece of the internals.
The kind of hardware available nowadays makes self-balancing devices much more practical and accessible than they ever have been. Really, SpoolBot has quite a lot in common with other self-balancing robots and self-balancing electric vehicles (which are really just larger, ridable self-balancing robots) so there’s plenty of room for experimentation no matter one’s budget or skill level.
Random numbers are very important to us in this computer age, being used for all sorts of security and cryptographic tasks. [Theory to Thing] recently built a device to generate random numbers using nothing more complicated than simple camera noise.
The heart of the build is an ESP32 microcontroller, which [Theory to Thing] first paired with a temperature sensor as a source of randomness. However, it was quickly obvious that a thermocouple in a cup of tea wasn’t going to produce nice, jittery, noisy data that would make for good random numbers. Then, inspiration struck, when looking at vision from a camera with the lens cap on. Particularly at higher temperatures, speckles of noise were visible in the blackness—thermal noise, which was just what the doctor ordered.
Thus, the ESP32 was hooked up to an OV3660 camera, which was then covered up with a piece of black electrical tape. By looking at the least significant bits of the pixels in the image, it was possible to pick up noise when the camera should have been reporting all black pixels. [Theory to Thing] then had the ESP32 collate the noisy data and report it via a web app that offers up randomly-generated answers to yes-or-no questions.
[Theory to Thing] offers up a basic statistical exploration of bias in the system, and shows how it can be mitigated to some degree, but we’d love a deeper dive into the maths to truly quantify how good this system is when it comes to randomness. We’ve featured deep dives on the topic before.
One thing some people hate about voice control is that you need to have a process always running, listening for the wake word. If your system isn’t totally locally-hosted, that can raise some privacy eyebrows. Perhaps that’s part of what inspired [SpannerSpencer] to create this 24th century solution: a Comm Badge straight out of Star Trek: The Next Generationhe uses to control his smart home.
This hack is as slick as it is simple. The shiny comm badge is actually metal, purchased from an online vendor that surely pays all appropriate license fees to Paramount. It was designed for magnetic mounting, and you know what else has a magnet to stick it to things? The M5StickC PLUS2, a handy ESP32 dev kit. Since the M5Stick is worn under the shirt, its magnet attached to the comm badge, some features (like the touchscreen) are unused, but that’s okay. You use what you have, and we can’t argue with how easy the hardware side of this hack comes together.
[Spanner] reports that taps to the comm badge are easily detected by the onboard accelerometer, and that the M5Stick’s microphone has no trouble picking up his voice. If the voice recordings are slightly muffled by his shirt, the Groq transcription API being used doesn’t seem to notice. From Groq, those transcriptions are sent to [Spanner]’s Home Assistant as natural language commands. Code for the com-badge portion is available via GitHub; presumably if you’re the kind of person who wants this, you either have HA set up or can figure out how.
It seems worth pointing out that the computer in Star Trek: TNG did have a wake word: “computer”. On the other hand it seemed the badges were used to interface with it just as much as the wake word on screen, so this use case is still show accurate. You can watch it in the demo video below, but alas, at no point does his Home Assistant talk back. We can only hope he’s trained a text-to-speech model to sound like Majel Barrett-Roddenberry. At least it gives the proper “beep” when receiving a command.
Meshtastic has been experiencing a bit of a renaissance lately, as the off-grid, long-range radio text messaging protocol gains a ton of new users. It’s been used to create mesh networks in cities, during disasters and protests, in small groups while hiking or camping, and for search and rescue operations. Although it’s connected plenty of people together in all of these ways, [GreatScott!] wanted to put it to work connecting some computing resources instead. He has a garden shed that’s too far for WiFi, so Meshtastic was used to connect it instead.
This isn’t a project to bring broadband Internet out to the shed, though; Meshtastic is much too slow for that. All he really wanted to do here was to implement a basic alarm system that would let him know if someone had broken in. The actual alarm triggering mechanism is an LED emitter-detector pair installed in two bars, one of which sends a 12V signal out if the infrared beam from the other is broken. They’re connected to a Heltec ESP32 LoRa module which is set up to publish messages out on the Meshtastic communications channel. A second module is connected to the WiFi at the house which is communicates with his Home Assistant server.
Integrating Meshtastic devices into Home Assistant can be pretty straightforward thanks to the various integrations already available, but there is some configuration to get these specific modules working as an alarm. One of the pins on the remote module had to be set up to watch the light bar, and although sending the alarm message out when this triggered worked well, the received signal never passed through to Home Assistant until [GreatScott!] switched to using the RadioLib library an an MQTT integration instead. But with perhaps more configuration than he planned for out of the way, [GreatScott!]’s alarm is up and running. Meshtastic projects often balloon into more than we had originally planned though, in more ways than one. You can follow along as our own [Tom Nardi] attempts to connect all of New Jersey with this new protocol.
As far as punctuation goes, the exclamation mark is perhaps the most eye-catching of the bunch. That’s why [Conrad Farnsworth] thought this form would be perfect for his Home Assistant notifier build.
The key to this build is the large bi-color printed housing in the shape of an exclamation mark. It makes for an attractive wall-hanging, but it also perfectly serves the purpose [Conrad] had in mind. Inside the enclosure is an ESP32, hooked up to a string of 16×8 LED matrixes which are commanded over I2C. These sit behind a white panel in the enclosure to nicely diffuse the light and make their output more readable. The ESP32 displays notifications on the LEDs that are fed from Home Assistant, such as when the mailbox sensor is triggered or if a vehicle is detected in the driveway. There’s also a bell on the unit to provide audible notifications, which us dinged with a solenoid fired via a 2N2222 transistor switching a 12 volt supply from a boost converter.
It’s a neat build that fits nicely into [Conrad]’s daily life and appears to have some genuine utility. If you’re looking for other ways to neatly display notifications where you can see them, you might consider whipping yourself up a smart mirror.
An orrery is a beautiful type of mechanical contrivance, built to demonstrate the motion of heavenly objects. LEGO happens to offer just such a device, built using its Technic line of blocks, shafts, and gears. Only, it has a serious limitation—it has to be cranked manually to make it spin the Earth around the sun. [Görkem] set out to fix this glaring oversight with some good old-fashioned hardware.
The setup removes just five LEGO pieces from the original design, eliminating the hand crank from the mechanism. In its place, [Görkem] installed a NEMA 17 stepper motor, paired with a custom PCB mounted on the back. That carries an ESP32 microcontroller and a TMC2208 stepper motor driver set up for silent drive. Rigged up like so, the orrery can simulate the motion of the Earth and Moon around the Sun in real time. There’s also a knob to track back and forth in time, and a button to reset the system to the correct real-time position.
The final build looks great, combining the LEGO Technic parts with some chunky electronics and 7-segment displays that make it a wonderful techy desk decoration. Down the line, [Görkem] hopes to offer a plug-and-play kit to others who wish to duly animate their own LEGO orrery sets (set #42179).