Posts | Comments

Planet Arduino

Archive for the ‘arduino hacks’ Category

[MJKZZ] sends in this entertaining little tutorial on building a small automated cannon out of a syringe.

He starts the build off by modifying an arc lighter, the fancy kind one might use to light a fire on a windy day, so that it can be controlled by a micro-controller. The arc is moved to the needle end of the syringe with a careful application of wires and hot glue. When the syringe is filled with a bit of alcohol and the original plunger is pressed back in a small spark will send it flying back out in a very satisfying fashion.

Of course it wouldn’t be a proper hack without an Arduino added on for no reason other than the joy of doing so. [MKJZZ] adds an ultrasonic sensor into the mix which, when triggered appropriately by an invading object fires the arc lighter using a reed relay.

He demonstrates the build by eliminating an intruding coke can on his work bench. You can see it in the video after the break. All in all a very fun hack.

Interrupting while someone is talking is rude for humans, but smart for computers. [Ivan Voras] shows how to use interrupts to service the ESP32 analog to digital converters when sampling sound. Interestingly, he uses the Arduino IDE mixed with native ESP-IDF APIs to get the best performance.

Like most complex interrupt-driven software, [Ivan’s] code uses a two-stage interrupt strategy. When a timer expires, an interrupt occurs. The handler needs to complete quickly so it does nothing but set a flag. Another routine blocks on the flag and then does the actual work required.

Because the interrupt service routine needs to be fast, it has to be in RAM. [Ivan] uses the IRAM_ATTR attribute to make this work and explains what’s going on when you use it.

…the CPU cores can only execute instructions (and access data) from the embedded RAM, not from the flash storage where the program code and data are normally stored. To get around this, a part of the total 520 KiB of RAM is dedicated as IRAM, a 128 KiB cache used to transparently load code from flash storage.The ESP32 uses separate buses for code and data (“Harvard architecture”) so they are very much handled separately, and that extends to memory properties: IRAM is special, and can only be accessed at 32-bit address boundaries.

This is very important because some ESP-IDF calls — including adc1_get_raw — do not use this attribute and will, therefore, crash if they get pushed out to flash memory. At the end, he muses between the benefit of using an OS with the ESP32 or going bare metal.

If you want to know more about the Arduino on ESP32, we covered that. We also dug deeper into the chip a few times.

Interrupting while someone is talking is rude for humans, but smart for computers. [Ivan Voras] shows how to use interrupts to service the ESP32 analog to digital converters when sampling sound. Interestingly, he uses the Arduino IDE mixed with native ESP-IDF APIs to get the best performance.

Like most complex interrupt-driven software, [Ivan’s] code uses a two-stage interrupt strategy. When a timer expires, an interrupt occurs. The handler needs to complete quickly so it does nothing but set a flag. Another routine blocks on the flag and then does the actual work required.

Because the interrupt service routine needs to be fast, it has to be in RAM. [Ivan] uses the IRAM_ATTR attribute to make this work and explains what’s going on when you use it.

…the CPU cores can only execute instructions (and access data) from the embedded RAM, not from the flash storage where the program code and data are normally stored. To get around this, a part of the total 520 KiB of RAM is dedicated as IRAM, a 128 KiB cache used to transparently load code from flash storage.The ESP32 uses separate buses for code and data (“Harvard architecture”) so they are very much handled separately, and that extends to memory properties: IRAM is special, and can only be accessed at 32-bit address boundaries.

This is very important because some ESP-IDF calls — including adc1_get_raw — do not use this attribute and will, therefore, crash if they get pushed out to flash memory. At the end, he muses between the benefit of using an OS with the ESP32 or going bare metal.

If you want to know more about the Arduino on ESP32, we covered that. We also dug deeper into the chip a few times.

Ever wish you could augment your sense of sight?

[Nick Bild]’s latest hack helps you find objects (or people) by locating their position and tracking them with a laser. The device, dubbed Artemis, latches onto your eyeglasses and can be configured to locate a specific object.

Images collected from the device are streamed to an NVIDIA Jetson AGX Xavier board, which uses a SSD300 (Single Shot MultiBox Detection) model to locate objects. The model was pre-trained with the COCO dataset to recognize and localize 80 different object types given input from images thresholded in OpenCV. Once the desired object is identified and located, a laser diode activates.

Probably due to the current thresholds, the demo runs mostly work on objects placed further apart against a neutral background. It’s an interesting look at applications combining computer vision with physical devices to augment experiences, rather than simply processing and analyzing data.

The device uses two servos for controlling the laser: one for X-axis control and the other for Y-axis control. The controls are executed from an Adafruit Itsy Bitsy M4 Express microcontroller.

Perhaps with a bit more training, we might not have so much trouble with “Where’s Waldo” puzzles anymore.

Check out some of our other sunglasses hacks, from home automation to using LCDs to lessening the glare from headlights.

We often like to say that if something is worth doing, then it’s worth overdoing. This automatic cat feeder built by [krizzli] is a perfect example of the principle. It packs in far more sensors and functions than its simple and sleek outward appearance might suggest, to the point that we think this build might just set the standard for future projects.

The defining feature of the project is a load cell located under the bowl, which allows the device to accurately measure out how much feed is being dispensed by weight. This allows the feeder to do things such as detect jams or send an alert once it runs out of food, as well as easily adjust how much is dispensed according to the animal’s dietary needs. To prevent any curious paws from getting into the machine while it’s doling out the food, the lid will automatically open and close during the filling process, complete with optical sensors to confirm that it moved as expected.

All of the major components of the feeder were printed out on a Prusa i3 MK3S, and [krizzli] says that the feed hopper can be scaled vertically if necessary. Though at the current size, it’s already packing around a week’s worth of food. Of course, this does depend on the particular feline you’re dealing with.

In terms of electronics, the feeder’s primary control comes from an ESP8266 (specifically, the Wemos D1 Mini), though [krizzli] also has a Arduino Pro Mini onboard so there’s a few more GPIO pins to play with. The food is dispensed with a NEMA 17, and a 28-BYJ48 stepper is in charge of moving the lid. A small OLED on the side of the feeder gives some basic information like the time until the next feeding and the dispensed weight, but there’s also a simple API that lets you talk to the device over the network. Being online also means the feeder can pull the time from NTP, so kitty’s mealtime will always be on the dot.

Over the years we’ve seen an incredible array of automatic cat feeders, some of which featuring the sort of in-depth metrics possible when you’ve got on onboard scale. But we can’t help but be impressed with how normal this build looks. If nothing else, of all the feeders we’ve seen, this one is probably the most likely to get cloned and sold commercially. They say it’s the most sincere form of flattery.

[Amirreza Nasiri] sends in this cool USB keystroke injector.

The device consists of an Arduino, a Bluetooth module, and an SD card. When it’s plugged into the target computer the device loads the selected payload from the SD card, compromising the system. Then it does its unique trick which is to switch the injector over to Bluetooth mode. Now the attacker has much more control, albeit local, over the system.

While we would never even be tempted to plug this device into a real computer, we like some of the additional features, like how an added dip switch can be used to select from up to eight different payloads depending on the required attack. The addition of a photo diode is also interesting, and makes us dream of all sorts of impractical movie hacker scenarios. [Amirreza] says it’s to trigger when the person leaves the room and turns the lights off.

[Amirreza] has all the code and design files on the GitHub. There are also a few payload examples, which should be fun to hack on. After all, one of life’s pleasures is to find new ways to mess with your friends.

For Game of Thrones fans, it’s an awkward time. The show has ended its run on HBO (not without a certain level of controversy), the planned prequel is still years away, and who knows when George R. R. Martin will actually get around to writing the final books in the series. Fans have no choice but to entertain themselves while waiting for further tales of adventure from Westeros, which is how we get things like this motorized clock from [Techarge].

Inspired by the now iconic opening sequence from the HBO series, elements of the 3D printed model spin around while the theme song is played courtesy of a DFPlayer Mini MP3 player module and small 2 watt speaker. The audio hardware, motor, and four digit LED display module in the front are all connected to an Arduino with a custom PCB shield, giving the inside of the clock a very clean and professional appearance.

Around the back side [Techarge] has two small push buttons to set the hour and minutes, and a large toggle to control the music and movement. As of right now it needs to be switched on and off manually, but a future enhancement could see it kick on hourly.  We’d also like to see an RTC module added to the PCB, or better yet, switch over to the ESP8266 and just pull the time down from NTP.

Who knows? By the time you’ve built one of these clocks for yourself, and the hand-made Iron Throne phone charger stand to go with it, maybe ol’ George will have slipped out a new book. But don’t count on it.

[minh7a6] loves the Adafruit Feather, but sees some room for improvement.

First is the matter of 5V tolerance. While just about everything is available in a 3.3v range these days, sometimes it’s just nice not to have to care. The main controller on the Feather is plenty powerful, but its intolerant pins just wouldn’t do so it was swapped for a chip from the ever popular STM32F4 line.

Then he wanted better energy efficiency when running from battery. In order to achieve this he switched from a linear regulator to a buck-boost converter. He also felt that the need for a separate SWD adapter for debugging seemed unnecessary, so he built a Black Magic Probe right in.

He’s just now finishing up the Arduino IDE support for the board, which is pretty cool. There’s no intention to produce this souped up Feather, but all the files are available for anyone interested.

Escape rooms are awesome for people who like to solve puzzles, see how things work, or enjoy a mystery. Everyone reading this falls into at least one of those categories. We enjoy puzzles and mysteries, but we have a fondness for seeing how things work. To this end, we direct your attention to [doktorinjh]’s “Bomb Disarming Puzzle in a Suitcase” Game, which is a mysterious puzzle box he built himself. I guess the mystery is mostly in the gameplay, which you can watch below because he shows us his build photos and describes the hardware inside.

At its heart is an Arduino Mega, a wise choice since our back-of-the-napkin estimation puts his I/O count over forty-five and the Mega can handle them all with a few pins to spare. Working inside the confines of a briefcase came with its own challenges, but we adore the way he used the hexagon theme in the top panel to allow for knob clearance. It was so subtle that we almost missed it.

The escape room theme is delightful, and we appreciate the mix of games, aesthetics, and techno-trickery in many forms.

If we’ve learned anything over the years, it’s that hackers like weird clocks, and they love packing as many multicolored LEDs into a device as is humanly possible. Combine both of those concepts into one project, and you’ve got a perfect storm. So as far as unnecessarily complex timepieces go, we’d say the “Crazy Clock 4” built by [Fearless Night] ranks up there among the all-time greats.

This Arduino Pro Mini powered clock syncs the current time via GPS, with a temperature compensated DS3231 RTC to keep it on the straight and narrow between satellite downlinks. Once the clock has the correct time, how do you read it? Well, at the top you’ve got a basic numerical readout for the normies, and next to that there’s a circular LED display that looks like it could double as a sci-fi movie prop. On the lower level there’s a binary clock for the real show-offs, and as if that wasn’t enough, there’s even dual color-coded analog meters to show the hours and minutes.

[Fearless Night] has provided everything you need to follow along at home, from the Arduino source code to the 3D models of the case and Gerber files for the custom PCB. Personally we think just the top half of the clock would be more than sufficient for our timekeeping needs. If nothing else it should help save some energy, as the clock currently pulls an incredible 20 watts with all those LEDs firing off.

Should you decide to take a walk down memory lane and check out some of the other interesting LED clocks we’ve featured in the past, you’d be busy for quite awhile. But for our money, it’s still hard to beat the impossibly obtuse single-LED clock.



  • Newsletter

    Sign up for the PlanetArduino Newsletter, which delivers the most popular articles via e-mail to your inbox every week. Just fill in the information below and submit.

  • Like Us on Facebook