Smart Doorbell Focuses On Privacy

As handy as having a smart doorbell is, with its ability to remotely see who’s at the front door from anywhere with an Internet connection, the off-the-shelf units are not typically known for keeping user privacy as a top priority. Even if their cloud storage systems were perfectly secure (which is not a wise assumption to make) they have been known to give governmental agencies and police free reign to view the videos whenever they like. Unfortunately if you take privacy seriously, you might need to implement your own smart doorbell yourself.

The project uses an ESP32-CAM board as the doorbell’s core, paired with a momentary push button and all housed inside a 3D-printed enclosure. [Tristam] provides a step-by-step guide, including printing the enclosure, configuring the ESP32-CAM to work with the popular open-source home automation system ESPHome, handling doorbell notifications automatically, and wiring the components. There are plenty of other optional components that can be added to this system as well, including things like LED lighting for better nighttime imaging.

[Tristam] isn’t much of a fan of having his home automation connected to the Internet, so the device eschews wireless connections and batteries in favor of a ten-meter USB cable connected to it from a remote machine. As far as privacy goes, this is probably the best of all worlds as long as your home network isn’t doing anything crazy like exposing ports to the broader Internet. It also doesn’t need to be set up to continuously stream video either; this implementation only takes a snapshot when the doorbell button is actually pressed. Of course, with a few upgrades to the ESP circuitry it is certainly possible to use these chips to capture video if you prefer.

Thanks to [JohnU] for the tip!

UChaser Follows You Anywhere

If you’ve been making up for lost years of travel in 2023, you might have seen a fellow traveler in the airport terminal or train station walking with their luggage happily careening behind them. [Jesse R] and [Brian Lindahl] wanted more of that. They wanted an open-source, low-cost system that could be put in anything.

The basic principle is that they will have a transmitter that sends both a radio signal and an ultrasonic pulse. The receiver receives the radio signal and uses it as a reference for the two ultrasonic sensors. The time since the radio signal is compared between the two, and a distance and direction are established.

In practice, the radio is an ESP32-S3 using ESP-NOW (which we’ve seen relatively recently on another project), a protocol from Espressif that offers low latency 250 bytes payloads. The ultrasonic transceiver is based on Sparkfun’s HC-SR04. For prototyping purposes on the receiver, they just removed the transmitter to avoid populating the airwaves, as to listen, you had to transmit. The prototype was an electric wheelbarrow that would happily follow you around the yard wherever you go.

With the concept validated, they moved to a custom ultrasonic setup with a custom buffer amp and damp transistor, all centered around 20kHz. The simulations suggested they should have been better than the HC-SR04 from Sparkfun, but the 30-foot (9 meters) range went to 10 feet (3 meters). They ultimately returned to using Sparkfun’s circuit rather than the custom amp.

We’re looking forward to seeing the project continue. There are various challenges, such as variability in the speed of sound, echos and reflections, and ultrasonic line of sight. We love the peak behind the curtain that allows us to see what decisions get made and the data that informs those decisions. All the code and PCB design files are available on GitHub under an MIT and Creative Common license, respectively. This project was submitted as part of the 2o23 Hackaday Prize.

Video after the break.

Continue reading “UChaser Follows You Anywhere”

Weather Station With Distributed Sensors

Building a weather station is a fairly common project that plenty of us have taken on, and for good reason. They can be built around virtually any microcontroller or full-scale computer, can have as many or few sensors as needed, and range from simple, straightforward projects to more complex systems capable of doing things like sending data off to weather services like Weather Underground. This weather station features a few innovations we don’t often see, though, with a modular and wireless design that makes it versatile and easy to scale up or down as needed.

Each of the modules in this build use the ESP32 platform, which simplifies design and also takes care of the wireless capability needed. The base station gets a few extra sensors including those for carbon dioxide, volatile organic compounds, and nitrogen oxides. It also includes a screen which can be used to display a wide variety of data gathered locally but also includes forecast information fetched from the free OpenWeatherMap API. For the sensor modules, BME280 sensors are used for temperature, pressure, and humidity and each module includes its own solar panel and battery with the ESP32 chips set to operate using as little energy as possible.

One of the things that helps easily integrate all of the sensor modules is the use of ESP-NOW, which we have seen a few times before. It essentially eliminates the need for a router and allows ESP modules to connect directly with one another. The build also goes into detail about most of the aspects of this project including the programming of the GUI that the ESP32 base station displays on its screen, so for anyone looking to start their own weather station project this should be an excellent guide. Make sure to check out this one as well if you want to send all of your weather data to Weather Underground.

An Open Firmware For LILYGO’s E-ink Smart Watch

The world’s first quartz wristwatches were miles ahead of electric and mechanical wristwatches by most standards of the time, their accuracy was unprecedented and the batteries typically lasted somewhere on the order of a year. Modern smart watches, at least in terms of battery life, have taken a step backwards — depending on use, some can require daily charging.

If you’re looking to bridge the gap between a day and a year, you might look into a smart watch with an e-ink display. One option is the ESP32-based LILYGO T-Wrist. Of course, it’s not a smart watch without some software to run on it, which is where qpaperOS comes in.

Developed by [qewer33], this open source firmware for the T-Wrist is designed to get the most out of the battery by updating only once per minute. With a 250 mAh battery, it should last about five days on a charge. Of course, with the power of the ESP32 comes a whole host of other features including GPS, a step counter, and a weather display, although since the firmware is still under development, some of these features have yet to be implemented.

With all of the code available, qpaperOS could make an excellent platform from which to build your own smart watch around. Or perhaps you could chip in and add some of the features on the whislity. The ESP32 is a capable and versatile chip, even capable of playing popular 8-bit video games, although we’re not sure this functionality would fit in a smart watch and preserve battery life at the same time.

The ESP32 Doesn’t Need Much

For those looking to add wireless connectivity to embedded projects or to build IoT devices, there is perhaps no more popular module than the ESP32. A dual-core option exists for processor intensive applications, the built-in WiFi and Bluetooth simplify designs, and it has plenty of I/O, memory, and interoperability for most applications. With so much built into the chip itself, [atomic14] wondered how much support circuitry it really needed and set about building the most minimalist ESP32 development board possible.

Starting with the recommended schematic for the ESP32, the most obvious things to remove are a number of the interfacing components like the USB to UART chip and the JTAG interface. The ESP32 has USB capabilities built in, so the data lines from a USB port can be directly soldered to the chip instead of using a go-between. A 3.3V regulator eliminates the need for many of the decoupling capacitors, and the external oscillator support circuitry can also be eliminated when using the internal oscillator. The only thing [atomic14] adds that isn’t strictly necessary is an LED connected to one of the GPIO pins, but he figures the bare minimum required to show the dev board can receive and run programs is blinking an LED.

Building the circuit on a breadboard shows that this minimalist design works, but instead of building a tiny PCB to solder the ESP32 module to he attempted to build a sort of dead-bug support circuit on the back of the ESP32. This didn’t work particularly well so a tiny dev board was eventually created to host this small number of components. But with that, the ESP32 is up and running. These modules are small and compact enough that it’s actually possible to build an entire dev board setup inside a USB module for a Framework laptop, too.

Continue reading “The ESP32 Doesn’t Need Much”

An E-ink display showing Conway's Game of Life, with a solar cell beneath it

Solar Powered Game Of Life Follows The Sun’s Rhythm

Conway’s Game of Life is a beautiful example of how complex behavior can emerge from a few very simple rules. But while it uses biological terminology such as “cells”, “alive” and “generation”, the basic game is too simplistic to be a model for any real-world biological process. It’s easy to add features to make it a bit more life-like, however, as [David Hamp-Gonsalves] has done by giving the Conway’s creation something of a circadian rhythm.

The basic idea is that the speed at which [David]’s Game of Life evolves is governed by the amount of ambient light. The game runs off a solar cell that charges a battery, with the battery’s voltage determining how long it takes to advance the game by one generation. The system is therefore highly active in full sunlight, and grinds almost to a complete halt at night.

An ESP32 runs the simulation and outputs the result to a 400 x 300 pixel e-ink display. The display is extremely power-efficient by its very nature; the ESP’s main processor core, on the other hand, is deliberately placed into deep sleep mode most of the time to save as much power as possible. The Ultra Low Power (ULP) co-processor, meanwhile, keeps an eye on the lithium battery’s voltage as it’s slowly being charged by the solar cell. When the voltage reaches 3.3 V, the main CPU wakes up and computes the Game’s new state. In bright sunlight this happens every few seconds, while on an overcast day it could take minutes or even hours.

[David]’s interesting idea of changing Life‘s activity based on the amount of energy available turns the Game into something resembling a cold-blooded animal. We’ve seen a similar approach in a “solar creature” that runs a Life-life simulation on a seven-segment LCD. If it’s speed you care about however, you’re better off implementing Life in an FPGA.

A wooden spin coating machine sitting on a desk

Hackaday Prize 2023: Homebrew Spin Coater Makes Micrometer-Thin Layers

One of the great things about the Gearing Up challenge of the 2023 Hackaday Prize is that it lets you discover tools that you don’t encounter every day. We had never given much thought to spin coaters, for example, until we saw [Jeroen Delcour]’s neat homebrew example. As it turns out, spin coating has lots of applications in fields like optics, semiconductor manufacturing or even art projects, where a thin, even layer of a material is required on top of a flat substrate.

The basic idea behind a spin coater is simple: you dispense a few drops of a solution containing the material to be deposited on top of the thing you want to coat, then spin the thing around at a constant speed. The balance between the centripetal force and the liquid’s surface tension ensures that the liquid turns into a film with a consistent thickness all across the substrate. The solvent evaporates, and you’re left with a nice solid layer just a few microns thick.

[Jeroen] built his spin coater out of a brushless DC drone motor, a programmable motor controller, and an ESP32. A rotary pushbutton and an OLED form the user interface, allowing the user to select the speed and spin times. The electronics are all mounted inside a laser-cut wooden enclosure, with the motor sticking out the top, surrounded by a 3D-printed splash guard.

Professional spin coating equipment typically comes with a vacuum chuck to hold the sample in place, but [Jeroen] wasn’t too excited about implementing vacuum systems on a spinning platform and decided instead to simply clamp down the sample using screws in a laser-cut piece of acrylic. This works well enough, and is easy to customize for different sample sizes.

In the video embedded below, [Jeroen] experiments with applying a layer of silicone rubber onto a PCB. Spin coating is an essential step when you’re making your own semiconductor devices such as solar cells, though you might also need more complicated equipment such as an electron microscope. [Jeroen]’s spin coater is at least able to process much larger objects than one we saw earlier.

Continue reading “Hackaday Prize 2023: Homebrew Spin Coater Makes Micrometer-Thin Layers”