Posts | Comments

Planet Arduino

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.

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!


Filed under: Arduino Hacks, security hacks

MKRRobotTutorial

A few days ago, we launched the MKR2UNO Adapter, which enables you to easily turn an Arduino Uno form factor project into a MKR1000-based one. Simply mount your IoT board to the adapter, plug in any Uno shield and have a wireless device in no time.

Our newly-published tutorial provides a step-by-step overview of how to build a WiFi-controllable robot using the MKR2UNO Adapter with a MKR1000 and an Arduino Motor Shield.

MKR2Uno

This project combines the Arduino MKR1000’s web server and Arduino Motor Shield’s capabilities to drive a pair of different DC motors. A basic interface is hosted and hard-coded in the MKR1000, allowing the user to maneuver the robot up, down, left or right.

Check out all of the schematics and code here!

If you grew up in ’80s or early ’90s and owned a Nintendo system, chances are you’ve played Duck Hunt. In the classic light gun shooter video game, players would aim their NES Zappers at duck targets as they appeared on the TV screen. So what do you do when you still own the once-popular accessory? If you’re Warner Skoch, you turn it into a controller for your lamp and small devices.

The setup consists of a couple Arduino Pro Minis. Skoch embedded one board in the Zapper with an IR emitter and another in a box with an IR receiver, which also has an outlet for him to plug in his lamp or other gadget.

The receiver watches for a signal from the Zapper, which then triggers the relay inside the box on and off. The actual IR receiver part is separate, however, mounted behind a Duck Hunt duck made from Perler beads.

Spark up some NES nostalgia and watch Skoch’s project in action below!

[domiflichi] is human and fallible. So he can’t be blamed for occasionally forgetting the laundry in one of the machines and coming back to a less than stellar result. However, while fallible, he is not powerless.

What if his washer/dryer could email or text him about his laundry? It seemed simple enough. Add a vibration sensor to the side of the machine along with some brains. When the load is done it will bother him until he comes down to push the button or There Will Come Soft Rains.

img_2437cropped-resized_thumbnailHe started off with an Arduino-and-ESP8226 combination and piezo sensors. The piezos had lots of shortcomings, so he switched to accelerometers and things worked much better. We really like the way he mounts them to the side of the washer dryer using the PCB’s mounting screws as angle brackets. The case is a standard project box with some snazzy orange acrylic on the front.

It took some fiddling, but these days [domiflichi]’s clothes are fresher, his cats fed, and his appliances more aware. Video of it in operation after the break.


Filed under: Arduino Hacks, home hacks

If you’ve got a cartridge-based gaming system, this EPROM burner will let you load whatever game you want!

Robson Couto recently acquired an old SNES. A great console for its time, but it only came with one cartridge, a bootleg copy of Mortal Kombat. Legalities aside, he decided that he would experiment with his own bootleg cartridge creator via an EPROM burner made as an Arduino Mega shield.

His process involves finding an unwanted game cartridge (he prefers sports, though your results may vary), burn the ROM, then exchange the cartridge ROM for the newly-burned ROM.

According to Couto, EPROM is “easier to program than flash.” and you can see how he did it on his blog post here. Code for the project is also available on GitHub.

[Agp.cooper] saw a vintage 4Kx4 bit RAM chip and decided that it needed a CPU design to match. The TTL design fits on two boards and has a functional front panel.

This custom CPU project has a few interesting bits worth noting. First, it is small enough that you can wrap your head around it pretty easily. And [Agp.cooper] gives  a good account of the instructions set architecture choices he considered and why he settled on the final design.

arduino-testing-adapter-for-custom-cpu
Testing adapter design connects Arduino to the CPU boards

Another interesting twist is the testing. Each of the boards can mate with an Arduino which will exercise and test its functions. This allows each part of the design to test out before trying to bring up the whole CPU.

The PCBs are from EasyEDA, a service we looked at awhile back. The boards for this offering ran about $70 total, but [Agp.cooper] mentions the cost is reasonable for a one-off project, but the two-week turnaround begs for getting it right the first time lest your project sit dormant on the bench during a respin.

This is the same designer, by the way, that did the Wierd CPU, and he compares it with his 4-bit creation some in the build log.

Thanks to [starhawk] for the tip.


Filed under: Arduino Hacks, Microcontrollers

With a speaker on the back and a drum machine on the front, what can possibly go wrong?

After riding his bike home after a synthesizer get together, Sam Battle decided to actually combine these two pursuits, transforming an iconic 1973 Raleigh Chopper into a mobile synthesizer. Though his first try was rather crude, using an Oyster card stuck between spokes to trigger a switch, his aptly named “Synth Bike 2.0” looks pretty awesome.

Featuring eight–yes eightArduino Nano boards, the music’s tempo can be controlled by how fast you pedal, or set up to use a built-in clock. Other electronics include a Sparkfun WAV Trigger, some analog synth circuitry, a sampler, a digital oscillator, and a Music From Outer Space Echo module.

Plenty of switches, dials, pads and knobs can be found on a control box mounted to the handlebars, while more pads are located on the bike’s top tube.

As awesome as it looks, all of this electronic gear seems to suck a lot of power, and it can only play for around 10 minutes at a stretch. A battery upgrade, however, is reportedly imminent!

ocat

Over the last couple of years, cat videos have become the undisputed champions of the web. Whether it’s kittens playing with their shadows to failed jump attempts to giving each another massages, we’re all guilty of watching a few of these clips from time to time (yes, even at work). Built with this in mind, oCat is a real-time tracker for feline-related activity on the Internet.

oCat consists of two parts: the oCat News Distractor and the Kitty o’Cat Twitter bot. Using Google’s YouTube API, the system works by continuously monitoring for new uploads, the number of new views each day, or a specific video that has received a remarkable amount of attention. It then tweets these stats and prints them out on thermal paper, stamping a paw print on the timeline for every 1,000 views.

Created by Annika Engelhardt, a digital media design master’s student at the University of the Arts in Bremen, oCat uses an Arduino along with an ESP Wi-Fi module, a servo, and an LCD screen. The aim of the project is to increase and reveal the amount of hours people spend watching cat videos online.

The cat is an altered Maneki-neko, holding a stamp using welding wire and hot glue. Even though I filled the stamp with extra ink, it did not work properly and I had to cut out the paw-shape from a sponge and glue it onto the original stamp.

The thermal printer used in the device needs a USB connection, so I used a Raspberry Pi to control it. I wrote a Python script that checks four different RSS news feeds for new posts every 15 minutes and prints one headline with a timestamp every minute.

The Twitter bot was programmed using Python and a library called tweepy. Most of the script is reading JSON files, juggling and comparing data and text files and in the end mixing up parts of a sentence to form a tweet. The bot will be enhanced in the future

fd014c44519451.5814af0a88949

Engelhardt exhibited the project at Galerie Flut in Bremen back in October. You can find more pictures and information on the project here.

If you’ve ever tried to tune a PID system, you have probably encountered equal parts overwhelming math and black magic folk wisdom. Or maybe you just let the autotune take over. If you really want to get some good intuition for motion control algorithms, PID included, nothing beats a little hands-on experimentation.

To get you started, [Clovis] wrote in with his budget propeller-based PID demo platform (Portuguese, translated shockingly well here).

The basic setup is a potentiometer glued to a barbecue skewer with a mini-quadcopter motor and rotor on the end of it. A microcontroller reads the voltage and PWMs the propeller through a MOSFET. The goal is to have the pendulum hover stably in midair, controlled by whatever algorithms you can dream up on the controller. [Clovis]’ video demonstrates on-off and PID control of the fan. Adding a few more potentiometers (one for P, I, and D?) would make hands-on tweaking even more interactive.

In all, it’s a system that will only set you back a few bucks, but can teach you more than you’d learn in a month in college. Chances are good that you’re not going to have exactly the same brand of sardine can on hand that he did, but some improvisation is called for here.

If you don’t know why you’d like to master open-loop control algorithms, here’s one of the best advertisements that we’ve seen in a long time. But you don’t have to start out with hand-wound hundred-dollar motors, or precisely machined bits. As [Clovis] demonstrates, you can make do with a busted quadcopter and whatever you find in your kitchen.


Filed under: Arduino Hacks

These toy cars are modified for sip-and-puff controls, where one lightly sucks or blows air as an interface.

If you have certain disabilities, use of your hands can be difficult if not impossible. An alternative is an interface known as sip-and-puff, which allows for control of electronics by producing a small air flow with your breath. In the build shown in the videos below, Bob Paradiso integrated this type of command into two types of RC vehicles.

To operate the first vehicle, one simply uses puffs to go forward, while sips make the car go backwards. The second is much more advanced, with a double-puff making the car go forward, a double-sip for backwards, and single puffs and sips to turn left or right.

There are many sip-and-puff controls on the market for various things, but they can be expensive or difficult to customize. What I’m showing here is an extremely affordable, simple to build, and fully customizable sip-and-puff setup used to control two different remote control toys that have very different controls.

You can see Paradiso’s writeup here and check out the code on the project’s GitHub page.



  • 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