A mailbox with a solar cell on top

IoT-Enabled Mailbox Lets You Check Your Mail Without Leaving Your House

Whether you live in an apartment downtown or in a detached house in the suburbs, if your mailbox is not built into your home you’ll have to go outside to see if anything’s there. But how do you prevent that dreadful feeling of disappointment when you find your mailbox empty? Well, we’re living in 2022, so today your mailbox is just another Thing to connect to the Internet of Things. And that’s exactly what [fhuable] did when he made a solar powered IoT mailbox.

The basic idea was to equip a mailbox with a camera and have it send over pictures of its contents. An ESP32-Cam module could do just that: with a 1600 x 1200 camera sensor, a 160 MHz CPU and an integrated WiFi adapter, [fhuable] just needed to write an Arduino sketch to have it take a picture every few hours and upload it to an FTP server.

A pile of components making up an IoT Mailbox
The components inside: a solar cell, battery, power controller, LDO and ESP32-Cam module with WiFi antenna

But since running a long cable all the way from the house was not an attractive option, the whole module had to be completely wireless. [fhuable] decided to power it using a single 18650 lithium ion cell, which gets topped up continuously thanks to a 1.5 W solar panel mounted on the roof of the mailbox. The other parts are housed in a 3D-printed enclosure that’s completely sealed to keep out moisture.

The enclosure had to be made from a material that does not degrade in direct sunlight, which is why [fhuable] decided to try ASA filament; this should be very resistant against UV rays, but proved tricky to process. It warped so much during cooling that the only way to get a solid piece out of the printer was to enclose the entire machine in a cardboard box to keep it warm inside.

The end result was worth it though: a neat little extension on the back of the mailbox that should keep sending photos of its insides for as long as the Sun keeps shining. The camera should also give a good indication as to the contents of the mailbox, allowing the user to ignore any junk mail; this is a useful improvement over previous IoT-enabled mailboxes that use proximity sensors, microswitches or optical sensors.

Continue reading “IoT-Enabled Mailbox Lets You Check Your Mail Without Leaving Your House”

An “unbusy” USB-C Port Doubles-up For JTAG Programming

Board space is a premium on small circuit board designs, and [Alvaro] knows it. So instead of adding a separate programming port, he’s found a niche USB-C feature that lets him use the port that he’s already added both for its primary application and for programming the target microcontroller over JTAG. The result is that he no longer needs to worry about spending precious board space for a tiny programming port; the USB-C port timeshares for both!

In a Twitter thread (Unrolled Link), [Alvaro] walks us through his discovery and progress towards an encapsulated solution. It turns out that the USB-C spec supports a “Debug-Accessory Mode” specification, where some pins are allowed to be repurposed if pins CC1 and CC2 are pulled up to Logic-1. Under these circumstances, the pin functions are released, and a JTAG programmer can step in to borrow them. To expose the port to a programmer, [Alvaro] cooked up a small breakout board with a USB-C plug and separate microcontroller populated on it.

This board also handles a small quirk. Since [Alvaro’s] choice of programming pins aren’t reversible, the USB-C plug will only work one of the two ways it can be plugged in. To keep the user informed, this breakout board sports a red LED for incorrect orientation and a green LED for correct orientation–nifty. While this design quirk sacrifices reversibility, it preserves the USB 2.0 D+ and D- pins while also handling some edge cases with regard to the negotiating for access to the port.

Stick through [Alvaro]’s Twitter thread for progress pics and more details on his rationale behind his pin choices. Who knows? With more eyes on the USB-C feature, maybe we’ll see this sort of programming interface become the norm?

[Alvaro] is no stranger to Hackaday. In fact, take a tour back to our very first Supercon to see him chat about shooting lasers at moving targets to score points on a DEFCON challenge in the past

Bend It Like (Sonar) Beacon With A Phased Array

Ultrasonic transducers are incredible, with them you can detect distances, as well as levitate and peer through objects. They can emit and receive ultrasonic soundwaves (typically above 18khz) and just like all waves, they can be steered via a phased array. [Bitluni] was trying to accurately measure distances but found the large field of view of the sensor was just too imprecise, so he made a phased array of transducers.

The inspiration came from a Hackaday Supercon talk from 2019 about phased arrays. [Bitluni] walks through an excellent explanation of how the array works with a bucket of water and his finger, as well as a separate simulation. By changing the phase offset of the different array members, the beam can effectively be steered as interference muffs the undesired waves. Using a set of solenoids, he created a test bench to validate his idea in a medium he could see; water. The solenoids fire a single pulse into the water creating a wave. You can see the wave move in the correct direction in the water, which validates the concept. A simple PCB sent off to a fab house with a stencil offers a surface to solder the transducers and drivers onto. An ESP32 drives the 8 PWM signals that go to the transmitters and reads in the single receiver via a small amplifier. Still not content to let the idea be unproven, he sets up the receiver on his CNC gantry and plots the signal strength at different points, yielding beautiful “heat maps.”
bitluni's heatmap for his sonar array

It sweeps a 60-degree field in front of it at around 1-3 frames per second. As you might imagine, turning sound wave reflections into distance fields is a somewhat noisy affair. He projects the sonar display on top of what we can see in the camera and it is fun to see the blobs line up in the correct spot.

We noticed he built quite a few boards, perhaps in the future, he will scale it up like this 100 transducer array? Video after the break.

Continue reading “Bend It Like (Sonar) Beacon With A Phased Array”

Backpack Board For OLEDs Boasts Fancy Features

Back when LCD character displays based on the HD44780 controller were the bee’s knees, a way to make them easier to work with came in the form of “backpack” PCBs, which provided an accessible serial interface and superior display handling at the same time. [Barbouri] has updated that idea with a backpack board that mounts to OLED displays using the US2066 display driver, and provides an I2C interface with powerful and convenient high-level functions that make the display simple to use.

On the software side, the backpack uses this I2cCharDisplay driver project which provides functions like cursor control, fading, display shifting, and of course writing characters or strings. While [Barbouri] designed the board specifically to accommodate Newhaven Slim Character OLED displays, it should in theory work with any US2066-based OLED character display. [Barbouri]’s design files for the Slim-OLED Display backpack board are available for download directly from the project page (link is near the bottom), or boards can be purchased directly from OSH Park.

OLED technology is nifty as heck; we’ve seen some neat tricks done by stacking transparent OLED displays, and even seen OLEDs made in the home lab.

This ESP32 Pico Wristwatch Has Plenty Of Potential

First hand-built prototype. Nurse! isopropyl alcohol, stat!

Prolific hacker [Sulfuroid] is a medical doctor by day, and an electronics hobbyist by night, and quite how he finds the time, we have no idea.

The project we want to highlight is an ESP32 based LED smart watch, which we’ll sure you’ll agree, looks pretty nicely developed so far, and [Sulfuroid] has bigger plans, as you may find, when you dig into the GitHub repo. This analog-style design uses four groups of 0603-sized LEDs, arranged circularly to indicate the passage of time, or anything else you fancy. Since there are four control buttons, a pancake vibration motor, as well as Wi-Fi and Bluetooth, the possibilities are endless.

In order to stand a hope of driving those 192 LEDs from a single ESP32-Pico-D4, it was necessary to use a multiplexed LED driver, courtesy of the Lumissil IS31FL3733 device, which can handle arrays up to 12 x 16 devices. This chip is one to remember, since it has some really nice features, such as global current control to reduce CPU overhead, automatic breathing loops for those fancy fade effects, and even includes a handy open/short detection function, so it can report back assembly problems, assisting in reworking your dodgy soldering!

Routing circular arrays is such a pain.

Power and interfacing are taken care of via USB-C, with a TP4054 single Li-Ion cell charger chip handling the battery. This is a Taiwanese clone of the popular LTC4054, but that chip may be a bit hard to get at the moment. There is the common-as-muck CP2104 USB chip dealing with the emulated serial port side of things, since for some reason, the ESP32 still does not support USB. The Pico-D4 does have RTC support, but [Sulfuroid] decided to use a DS3231M RTC chip instead. We noticed the touch functionality wasn’t broken out – that could be added easily in the next revision!

We’ve covered watches a lot, because who doesn’t want custom geek-wear! Here’s a slick one, a fun one with the brains on display, and finally one using charlieplexing to get the component count down.

 

Simple Dev Board Module Socket

When you’re building a quick prototype or a one-off project it’s nice to be able to securely mount the various modules and development boards. Sometimes these boards have mounting holes, but often they don’t. As an example from the latter category, digital music instrument maker and performer [DIYDSP] shows us how to build a simple socket to mount an STM32 Nucleo-32 module.

The socket is built on a standard pad-per-hole piece of vector board cut to the desired size. Pairs of female pin header strips are soldered down to the board. The inner pair of headers is for the module, the outer pair is for your interconnections. The headers are connected up with short solder bridges, and [DIYDSP] recommends you extend the outer pair several pins longer than necessary. These extras can be used for additional power or ground points, or on some boards they could connect to the debug header pins. He prefers to use female sockets because that lessens the odds that an accidentally bent pin will short something out.

Final step is to drill your mounting holes in the desired location, and no more development boards free-floating and held up only by wires. Do you have any tips for mounting these kinds of modules, either individually as shown here or onto PCBs? Let us know in the comments.

Continue reading “Simple Dev Board Module Socket”

IR Translator Makes Truly Universal Remote

Universal remotes are a handy tool to have around if you have many devices that would all otherwise have their own remote controls. Merging them all into a single device leads to less clutter and less frustration, but they are often not truly “universal” as some of them may not support every infrared device that has ever been built. If you’re in a situation like that it’s possible to build a truly universal remote instead, provided you have a microcontroller and a few infrared LEDs on hand.

This was the situation that [Matt] found himself in when his Amazon Fire TV equipment control feature didn’t support his model of speakers. To get around this he programmed an Arduino to essentially translate the IR codes from the remote and output a compatible set of codes to the speakers.This requires both an IR photodiode and an IR LED but little else other than the codes for the remote and the equipment in question. With that all set up and programmed into the Aruino, [Matt]’s remote is one step closer to being truly “universal”.

While [Matt] was able to make use of existing codes in the Arduino library, it is also possible to capture the codes required manually by pointing a remote at a photodiode and programming a microcontroller to capture the codes that you need. [Matt] used a Raspberry Pi to do this when debugging this project, but we’ve also seen this method used with a similar build which uses an ESP8266 to control an air conditioner via its infrared remote control capabilities.

Continue reading “IR Translator Makes Truly Universal Remote”