Only One Button? No Problem!

Sometimes less is more. This is especially true when dealing with microcontrollers with limited I/O pins. Even if you have lots of I/O, sometimes you are need to pack a lot into a little space. [Hugatry] was inspired by the simple interface found on a lot of flashlights: one button. Push it and it turns on. Push it again, and it switches modes. You cycle through the modes until you finally turn it back off. One button provides mutliple functions. The question is how can you use a power switch as an I/O device? After all, when you turn the power off, the microprocessor stops operating, right?

[Hugatry’s] answer is quite simple. He connects a resistor/capacitor network to an I/O pin (or multiple pins). When the processor turns on initially, the pin will read low and the capacitor will charge up. If you turn the power off, the CPU voltage will fall rapidly to zero, but the voltage on the capacitor will discharge slower. If you wait long enough and turn the power on, there’s no difference from that first power on event. But if you turn the power on quickly, the capacitor voltage will still be high enough to read as a logic one.

What that means is that the processor as part of its start up can detect that it was recently turned off and take some action. If it remembers the previous state in nonvolatile memory, you can have the code cycle through multiple states, just like a flashlight. You can see a video of the setup, below.

Continue reading “Only One Button? No Problem!”

A Laser Effect Projector Built With Safety In Mind

There’s just something about wielding a laser pointer on a dark, foggy night. Watching the beam cut through the mist is fun – makes you feel a little Jedi-esque. If you can’t get enough of lasers and mist, you might want to check out this DIY “laser sky” effect projector.

The laser sky effect will probably remind you of other sci-fi movies – think of the “egg scene” from Alien. The effect is achieved by sweeping a laser beam in a plane through swirling smoke or mist. The laser highlights a cross section of the otherwise hidden air currents and makes for some trippy displays. The working principle of [Chris Guichet]’s projector is simplicity itself – an octagonal mirror spun by an old brushless fan motor and a laser pointer. But after a quick proof of concept build, he added the extras that took this from prototype to product. The little laser pointer was replaced with a 200mW laser module, the hexagonal mirror mount and case were 3D printed, and the mirrors were painstakingly aligned so the laser sweeps out a plane. An Arduino was added to control the motor and provide safety interlocks to make sure the laser fires only when the mirror is up to speed. The effect of the deep ruby red laser cutting through smoke is mesmerizing.

If laser sky is a little too one-dimensional for you, expand into two dimensions with this vector laser projector, and if monochrome isn’t your thing try an RGB vector projector.

Continue reading “A Laser Effect Projector Built With Safety In Mind”

Waiting For A Letter? This IoT Mailbox Will Tell You Exactly When It Arrives.

If you’re waiting for a much sought-after letter, checking your mailbox every five minutes can be a roller-coaster of emotion — not to mention time-consuming. If you fall into this trap, Hackaday.io user [CuriosityGym] as whipped up a mailbox that will send off an email once the snail-mail arrives.

The project uses an Arduino Uno, an ESP 8266 wifi module, and an idIoTware shield board — making specific use of its RGB LED and light dependent resistor(LDR). Configuring the RGB LED on the idIoTware board to a steady white light sets the baseline for the LDR, and when a letter is dropped in the box, the change in brightness is registered by the LDR, triggering the Arduino to send off the email.

Continue reading “Waiting For A Letter? This IoT Mailbox Will Tell You Exactly When It Arrives.”

RC receiver to arduino converter for BB-8

Ask Hackaday: How Do You Convert Negative Voltages To Positive?

I have a good background working with high voltage, which for me means over 10,000 volts, but I have many gaps when it comes to the lower voltage realm in which RC control boards and H-bridges live. When working on my first real robot, a BB-8 droid, I stumbled when designing a board to convert varying polarities from an RC receiver board into positive voltages only for an Arduino.

Today’s question is, how do you convert a negative voltage into a positive one?

In the end I came up with something that works, but I’m sure there’s a more elegant solution, and perhaps an obvious one to those more skilled in this low voltage realm. What follows is my journey to come up with this board. What I have works, but it still nibbles at my brain and I’d love to see the Hackaday community’s skill and experience applied to this simple yet perplexing design challenge.

The Problem

RC toy truck and circuit with no common
RC toy truck and circuit with no common

I have an RC receiver that I’ve taken from a toy truck. When it was in the truck, it controlled two DC motors: one for driving backwards and forwards, and the other for steering left and right. That means the motors are told to rotate either clockwise or counterclockwise as needed. To make a DC motor rotate in one direction you connect the two wires one way, and to make it rotate in the other direction you reverse the two wires, or you reverse the polarity. None of the output wires are common inside the RC receiver, something I discovered the hard way as you’ll see below.

Continue reading “Ask Hackaday: How Do You Convert Negative Voltages To Positive?”

Arduino With A… PIC?

Before the Arduino took over the hobby market (well, at least the 8-bit segment of it), most hackers used PIC processors. They were cheap, easy to program, had a good toolchain, and were at the heart of the Basic Stamp, which was the gateway drug for many microcontroller developers.

[AXR AMR] has been working with the Pinguino, an Arduino processor based on a PIC (granted, an 18F PIC, although you can also use a 32-bit device, too). He shows you how to build a compatible circuit on a breadboard with about a dozen parts. The PIC has built-in USB. Once you flash the right bootloader, you don’t need anything other than a USB cable to program. You can see a video of this below.

You will need a programmer to get the initial bootloader, but there’s plenty of cheap options for that. The IDE is available for Windows, Linux, and the Mac. Of course, you might wonder why you would use a PIC device instead of the more traditional Arduino devices. The answer is: it depends. Every chip has its own set of plusses and minuses from power consumption to I/O devices, to availability and price. These chips might suit you, and they might not. That’s your call.  Of course, the difference between Microchip and Atmel has gotten less lately, too.

We’ve covered Pinguino before with a dedicated board. If you never played with a Basic Stamp, you might enjoy learning more about it. If you’re looking for more power than a PIC 18F can handle, you might consider the Fubarino, a PIC32 board you can use with the Arduino IDE.

Continue reading “Arduino With A… PIC?”

A Trove Of Arcade Projects

[Ryan Bates] loves arcade games, any arcade games. Which is why you can find claw machines, coin pushers, video games, and more on his website.

We’ve covered his work before with his Venduino project. We also really enjoyed his 3D printed arcade joystick based off the design of a commercial variant. His coin pushing machine could help some us finally live our dream of getting a big win out of the most insidious gambling machine at arcades meant for children.

Speaking of frustrating gambling machines for children, he also built his own claw machine. Nothing like enabling test mode and winning a fluffy teddy bear or an Arduino!

It’s quite a large site and there’s good content hidden in nooks and crannys, so explore. He also sells kits, but it’s well balanced against a lot of open source files if you’d like to do it yourself. If you’re wondering how he gets it all done, his energy drink review might provide a clue.

ArduWorm: A Malware For Your Arduino Yun

We’ve been waiting for this one. A worm was written for the Internet-connected Arduino Yun that gets in through a memory corruption exploit in the ATmega32u4 that’s used as the serial bridge. The paper (as PDF) is a bit technical, but if you’re interested, it’s a great read. (Edit: The link went dead. Here is our local copy.)

The crux of the hack is getting the AVR to run out of RAM, which more than a few of us have done accidentally from time to time. Here, the hackers write more and more data into memory until they end up writing into the heap, where data that’s used to control the program lives. Writing a worm for the AVR isn’t as easy as it was in the 1990’s on PCs, because a lot of the code that you’d like to run is in flash, and thus immutable. However, if you know where enough functions are located in flash, you can just use what’s there. These kind of return-oriented programming (ROP) tricks were enough for the researchers to write a worm.

In the end, the worm is persistent, can spread from Yun to Yun, and can do most everything that you’d love/hate a worm to do. In security, we all know that a chain is only as strong as its weakest link, and here the attack isn’t against the OpenWRT Linux system running on the big chip, but rather against the small AVR chip playing a support role. Because the AVR is completely trusted by the Linux system, once you’ve got that, you’ve won.

Will this amount to anything in practice? Probably not. There are tons of systems out there with much more easily accessed vulnerabilities: hard-coded passwords and poor encryption protocols. Attacking all the Yuns in the world wouldn’t be worth one’s time. It’s a very cool proof of concept, and in our opinion, that’s even better.

Thanks [Dave] for the great tip!