Don’t you just hate it when dev boards have some annoying little quirk that makes them harder to use than they should be? Take the ESP32-CAM, a board that started appearing on the market in early 2019. On paper, the thing is amazing: an ESP32 with support for a camera and an SD card, all for less than $10. The trouble is that programming it can be a bit of a pain, requiring extra equipment and a spare finger.
Not being one to take such challenges lying down, [Bitluni] has come up with a nice programming board for the ESP32-CAM that you might want to check out. The problem stems from the lack of a USB port on the ESP32-CAM. That design decision leaves users in need of a USB-to-serial adapter that has to be wired to the GPIO pins of the camera board so that programs can be uploaded from the Arduino IDE when the reset button is pressed. None of that is terribly complex, but it is inconvenient. His solution is called cam-prog, and it takes care of not only the USB conversion but also resetting the board. It does that by simply power cycling the camera, allowing sketches to be uploaded via USB. It looks to be a pretty handy board, which will be available on his Tindie store.
To demonstrate the add-on, he programmed his ESP32-CAM and connected it to his enormous ping pong ball video wall. The video quality is about what you’d expect from a 1,200 pixel display at 40 mm per pixel, but it’s still pretty smooth – smooth enough to make his interpretive dance moves in the last few minutes of the video pretty interesting.
Many Hackaday readers will be settling back into their lives after a holiday period crammed into some family matriarch’s house along with too many assorted relatives, having given up their speedy internet connection for whatever passes for broadband wherever Granny lives. The bargain-basement router supplied by the telephone company will have spent the period wilting under the pressure of a hoard of teenagers watching other teenagers inanities on YouTube, and the Christmas ritual of Resetting The Router will have been performed multiple times.
Wouldn’t it be nice if your router simply reset itself every time it crashed or the Internet connection went down? [Cyb3rn0id] has a solution (Italian original here), in the form of an ESP8266 that pings an online service every few seconds, and turns the router off and on again via a power relay in the event that the ping attempt is repeatedly unsuccessful. It’s brilliantly simple, requiring only a single GPIO and a MOSFET to fire the relay with an LED indicator for good measure, and it’s built upon a piece of prototyping board. The router power is switched on the low-voltage side for safety.
The software is pretty basic and has the WiFi credentials hard-coded into it, so we’re guessing a version with a web interface could be built. But as a personal device for easing the pain of router crashes it gets our vote despite that shortcoming.
For all their capacity, shutting down a Raspberry Pi can be a bothersome routine depending on how you have it set up — historically and abrupt cut to the power risks corrupting the SD card. [madlab5] had to make a few changes to a Pi running in headless mode, requiring them to access it externally to shut it down to prevent any damage from pulling the plug. So, why not take the opportunity to whip up a soft shut-down switch?
This is a great beginner project to get one accustomed to working with a Pi. With this in mind, [madlab5] went through two revisions of this idea: the simple way, and the fun way. For the simple way just press the button and the Pi activates a script which shuts it down in thirty seconds. Job done. But, realizing there may be a few circumstances where they’d need more functionality, [madlab5] decided to take a second swing at this.
[madlab5]’s fun way involves a button with a built-in LED and a speaker to blare an announcement that the Pi will self destruct shut down after a short time. Setting the switch up this way takes a little more doing, but you get to add a little more character to your Pi with a custom shutdown report, as well as the option to cancel an accidental button-press.
For any newbies out there, [madlab5] is kind enough to provide their code and diagrams in their blog post. If remotes are more your thing, we have also featured a similar beginner project to shut down your Pi.
We all know feature creep can be a problem in almost any project. A simple idea can often become unusable if a project’s scope isn’t clearly defined in the beginning. However, the opposite problem sometimes presents itself: forgetting to include a key feature. [Zach] had this problem when he built a Raspberry Pi magic mirror and forgot to build a physical reset/shutoff switch. Luckily he had a spare Amazon Dash button and re-purposed it for use with his Pi.
The Raspberry Pi doesn’t include its own on/off switch. Without installing one yourself, the only way to turn off the device (without access to the terminal) is to unplug it, which can easily corrupt data on the SD card. Since [Zach]’s mirror was already complete, he didn’t want to take the entire thing apart just to install a button. There’s already a whole host of applications for the Dash button, so with a little Node.js work on the Raspberry Pi he was able to configure a remote-reset button for his mirror.
This is a similar problem for most Raspberry Pi owners, so if you want to follow [Zach]’s work he has done a great job detailing his process on his project site. If you’re looking for other uses for these convenient network-enabled buttons, he also links to a Github site with lots of other projects. This pizza button is probably our favorite, though.
Wafer level chips are cheap and very tiny, but as [Kevin Darrah] shows, vulnerable to bright light without the protective plastic casings standard on other chip packages.
We covered a similar phenomenon when the Raspberry Pi 2 came out. A user was taking photos of his Pi to document a project. Whenever his camera flash went off, it would reset the board.
[Kevin] got a new Arduino 101 board into his lab. The board has a processor from Intel, an accelerometer, and Bluetooth Low Energy out of the box while staying within the same relative price bracket as the Atmel versions. He was admiring the board, when he noticed that one of the components glittered under the light. Curious, he pulled open the schematic for the board, and found that it was the chip that switched power between the barrel jack and the USB. Not only that, it was a wafer level package.
So, he got out his camera and a laser. Sure enough, both would cause the power to drop off for as long as the package was exposed to the strong light. The Raspberry Pi foundation later wrote about this phenomenon in more detail. They say it won’t affect normal use, but if you’re going to expose your device to high energy light, simply put it inside a case or cover the chip with tape, Sugru, or a non-conductive paint to shield it.
Many people have their home network setup with a dynamic dns service in order to remote access their files, printers, or Pi based security camera systems. Many people also suffer from less than stellar internet connectivity and find themselves unable to access their home system due to a stalled signal.
netBOOT is an Arduino based device that automatically resets your modem for you, when you are unable to. Core of the system is a standard issue ATMEGA328p based Arduino board combined with a W5100 Ethernet module, and a relay module. The software on the Arduino periodically pings a list of IP addresses and listens for a response. If none is found within 3 tries the relay module, which is connected inline with the DC power of your modem, is clicked open for 10 seconds and then returned closed. Once your modem has rebooted and re-synced everything should be good to go.
We don’t remember seeing this feature in the list of specs for Google’s new OnHub. The ability to reset bad connections seems like a feature that should be built into future-thinking routers, right?
We’ve all have had to reset our routers or modems at some point because they were acting up. The typical scenario is; unplug the device, wait 30 seconds, plug it back in and wait for it to boot back up. While not hard, this can be an annoyance, especially if accessing the router or power cord is inconvenient. [Taylor] wrote in to tell us about his wireless router that seems to need to be reset more than he’d like. Although the simplest solution may be to get a new router, he thought it would be fun to do something a little more exciting by making a wireless reset controller.
[Taylor] started with an ordinary power strip. He spliced in a relay to the hot side of the AC line, connected to the common and normally-closed pins of the relay. That way, when the relay is not activated, the power strip is powered. Next, a wireless doorbell was re-purposed to act as the transmitter and receiver. The speaker was removed and the output lines connected to a mono-stable 555 timer circuit that [Taylor] made. When the circuit receives a signal from the door bell speaker lines, it will activate the relay for about 30 seconds. Since the relay was wired to supply voltage to the power strip when not activated, activating the relay cuts the power for 30 seconds effectively resetting the router. Now, whenever the router needs a reset, doing so is as easy as pushing the door bell button from anywhere in the house.