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.
Twitter is not only a convenient way to consume daily news and converse with friends online, it has become an excellent platform for gaining insight on what’s important at any particular moment in time. With this in mind, Maker Chadwick John Friedman has decided to harness the social network’s data into web-connected physical representations with the help of Arduino and Temboo.
PrecogNation uses three 3D-printed geometric masks as real-time sci-fi future forecasters, which illuminate and change colors to reflect sustainability trends throughout the world.
The three geometric 3D-printed masks are wirelessly connected to the Internet via an Arduino Yún. The masks were printed using a Zortrax 3D printer and white Z-ABS filament. The masks are a remixed version of Stephen Kongsle’s “Low Poly Mask.” Each mask took approximately 16 hours to print. The masks are constantly scraping data from Twitter in real-time via Temboo Choreos. Temboo assigns special API keys for Arduino devices that allow the user grab real-time data from Twitter that would otherwise be difficult to gather. That live data is then fed to the Arduino Yún, which illuminates a specific 10mm super bright LED, connected to the masks.
One of the largest challenges in representing this overload of data physically was finding the correct terms and/or keywords that activate a specific color/thought in the Precog’s faces. The three colors present in the faces are scraping the Twitterverse for terms relating to sustainability, environmental threats, and political involvement. PrecogNation has its very own Twitter account, which allows the masks to scan through data specifically submitted by sustainability related users, corporations, and initiatives.
As seen in the video below, progress in sustainable development (green) is represented by keywords such as renewable energy, clean coal, water treatment and wind turbines. Threats to sustainability (red) include deforestation, global warming, record heat, extinction, pollution, pandemics and so on. Meanwhile, blue denotes an overload of data and contradicting results.
The overload of data in the color blue works like this… say the word ‘polar’ is found, but then the words ‘melting-polar’ are found, followed by the words ‘polar bear.’ This is an unreadable thread of information – it’s not really giving us threats or progress related to sustainability so the face reflects the color blue to signify that confusion. Coming up with the correct terms to represent the overload of information was especially tricky, and writing the code to reflect that confusion was equally as challenging. I eventually found a series of keywords and demands that elicited the response I was hoping for in this category.
It is important to highlight the fact that although the colors red and blue may be perceived as negative (and usually appear more than the color green), they also mean that there are discussions about those negative sustainability issues happening every time those colors are activated. This is, in fact, a positive outcome, as one of the main goals of this project is to highlight the importance maintaining a dialogue – even if that dialogue surrounds daunting threats to sustainability. It is important that the masks provoke a highlighted continuation of focus surrounding social and political sustainability issues.
What happens when a creative technologist wants his family to know he’s thinking about them? He creates a project with Arduino Yún! IMissYou is a simple project transforming a picture in a connected object thanks to a capacitive layer made with Bareconductive Paint and inserted behind the photo. The ‘touch’ is detected by the Arduino through the glass of the frame by a spike in the values (with a basic Capsense library), sent to the internet via wi-fi and delivered to a phone with Pushover.
Martin Hollywood, the Arduino user who made the project, wrote us:
Looking at the photograph of my family that I have on my desk one day, I missed them and wanted to be home. I touched the photo and realised that somewhere between those was the germ of the idea…
I wanted my family to know I was thinking of them, but I didn’t want to create two products; think GoodNight Lamp – I do love that project. In any case, there was no guarantee they would even notice a ‘blinking’ photo frame responding to my signal. Making the Receive a PUSH notification seemed like a no brainer, but the last time I developed for mobile was iOS 1! There are a number of service apps out there: Pusher, Pushingbox but I decided on Pushover. It had a 7 day trial period and good API support (I’ve since bought a license).
The mechanics were replaced with a servo and 3D printed parts designed to make the movement linear rather than arcing as in the traditional approach. The figures were fitted with magnets so that they could move without any obvious form of propulsion.
The electronics were based on an Arduino Yún, custom prototyping shield and an Infineon RGB LED driver shield. The whole thing is powered by a rechargable LiPo battery and a module from AdaFruit. Because the Arduino was deep in the middle of the house, I used fibre optics to bring the light to the top panel. A sensor was added into the roof so you could simply tap it to get it to update the forecast for you.
The project was build over a period of 16 weeks, the mechanical aspects were completed first and the 3D printing took several goes to get it right. The electronics build was fairly straightforward but fitting everything onto the proto shield was challenging and the high clearance for the Yún was also a challenge. The software was written as I went along with demo programs created to test each part. Getting the Yún to work on low power was fairly straightforward but getting a secure and validated HTTPS connection took a few attempts. tried to put as much of the processing into the Python script so that the C++ code was just handling the control. All in all a challenging project that pushed the Yún to it’s limits.
Tomas Amberg shared with us the link to an Instructable he published on how to build a Web-enabled, Arduino-based IoT Gauge with a REST API, and connect it to the IFTTT mash-up platform, via the Yaler.net relay service he founded.
The cool thing about this project is the connection with the Maker Channel of IFTTT which supports custom Webhooks, to integrate DIY IoT projects:
Inspired by WhereDial, a DIY Internet of Things classic, the IoT Gauge shows the current location of its owner. A bit like the Weasley Clock in Harry Potter. The design and code of the IoT Gauge is generic and could be used as well to display e.g. weather conditions. The logic resides in the Cloud, the gauge is just a servo with an API.
Check out the five-step tutorial and the ingredients you need at this link.
If you feel like experimenting with connected objects, a good idea could be to start from a funny project explained step-by-step in a tutorial. In the video below you can follow the instructions given by Dana, Documentation Hero at relayr, using an Arduino Yún, a gas sensor and relayr cloud to make a little Batman-shaped toy dance according to data:
I used a moisture sensor as an input and a servo motor as an output that I can control through a demo web application made using the browser-sdk.
The code in this repository will enable you to use your Arduino to build a prototype of a device and connect it to the relayr platform, much like the one created with the Particle.io Photon. It contains instructions and a demo app which will make your first few steps in the relayr-Arduino prototyping realm easy and fun!
Selfie Plant is an interactive installation taking pictures of itself using Arduino Yún, Facebook Graph APIs and then uploads them to Facebook. It was developed by a group of students at the Copenhagen Institute of Interaction Design during “The secret life of objects” course held also by Arduino.cc team. The final prototype was placed in the exhibition of the school, to see the interaction of the audience with it and you can see the result on Facebook.
The Selfie Plant is an attempt to provoke some thoughts above genre of expression. The Selfie Plant expresses itself in the form of nice-looking selfies, which it clicks according to its mood, weather or occasion. It mimics human behaviour, by giving it’s best pose and adjusting the camera angle to take the perfect selfie.
In the documentation on Github you can find all the details of the project composed by an Arduino Yún, controlling 2 servo motors and adjusting the positions of the plant and the camera stick; a python script (facebook.py) which communicates with Facebook’s graph API to post the captured photos on plant’s Facebook profile. In addition you’ll need also a LED Matrix, a Bread Board and 5 Volt Battery.
Comelicottero is a quadcopter based on Arduino Yún created during the Master in Computer Science at the Universita’ degli Studi of Milan (Italy) by Simone Castellani, Giovanni Intorre and Andrea Toscano:
The idea was to build a drone able to be controlled through WiFi from any PC, tablet or smartphone . Comelicottero is equipped with an accelerometer and a gyroscope for the stability obtained by a PID-based control system. Since Servo library is too slow for the quadcopter dynamics, an hardware PWM was implemented to obtain a 400Hz PWM signal.
The communication between the ground station on a PC and the quadcopter relies on WiFi and, in order to get better results, Bridge library was replaced with an efficient python script on OpenWRT-Yun. On top of that all the code was written to maximise Arduino Yún capabilities. The Navigation System has been designed, simulated on PC, implemented and tested. The autonomous navigation is going through an additional testing due to magnetometer interferences with motors’ magnetic field.
The user can control and monitor data coming from the drone using a gamepad attached to a laptop with a custom software installed.
The sketch and all the documentation will be soon available on GitHub and released with GNU license. In the meanwhile follow their Youtube Channel for updates.
The apparent lull on the Arduino front the last few weeks was just the calm before the storm that is the Bay Area Maker Faire (BAMF). Both companies claiming the Arduino name were there over the weekend, with news and new products in tow. Ironically, you could see from one booth straight over to the other. Small world.
Perhaps the biggest news from Arduino LLC is that hacker-friendly Adafruit is now going to be making officially-licensed boards in the US. Competing with this news, Arduino SRL brought its new boards, including the Yun Mini and ARM-powered Arduino M0. And [Massimo Banzi] and Arduino LLC seem to be taking an end-run around the Arduino SRL trademark by announcing the “Genuino” brand for European production. For all the details, read on!
The Adafruit Connection
As announced by [Massimo] in his “State of the Arduino” keynote speech at the BAMF, Arduino is licensing Adafruit to produce a range of the “most-requested” Arduino boards at their factory in New York. So those of you looking to support Arduino LLC with your purchases also get to help line [Ladyada]’s pockets at the same time. That’s a big win in our book.
It’s not a complete surprise that Adafruit should get tapped as a US fab for Arduino.cc. They’ve been selling the boards and producing copious Arduino-related tutorials since their beginnings in 2005. More recently, Adafruit partnered with Arduino LLC to create the Gemma board, which is basically an ATTiny85-based Arduino-a-like in a tiny round, wearable-friendly board. (If you’re familiar with the Adafruit lineup, it’s essentially a Trinket in the round format of a LilyPad Arduino.)
Indeed, after the deal is done and the dust has settled, it’s a bit surprising to us that this hasn’t happened earlier, what with both Adafruit and Sparkfun producing licensed boards and Arduino LLC looking for new manufacturers. Anyway, good job Adafruit and Arduino (LLC)!
(New) Hardware from Arduino SRL
Arduino SRL had its Yun Mini, which is essentially a smaller version of the Yun — a mashup of an Arduino Leonardo with an OpenWRT-capable router chipset. We’ve reported on these previously but it’s fun to see them in the flesh.
The M0 is interesting. Before the troubles began, Arduino designed an ARM-M0+ based board with Atmel. Now Arduino LLC has it listed on their website as the Arduino Zero, but still hasn’t got any for sale yet. Arduino SRL has the boards on their website as the Arduino Zero Pro, with a different name, but is now touting this version as the “M0 Pro”. What’s in a name? Not much. The circuit layouts and parts appear identical.
The Portal Battle
Both of the Arduino companies are working on getting your Arduino development into “the cloud”. (Conscience compels us to note that “the cloud” is actually just other people’s computers.) Anyway, this essentially means new web-based and browser-based versions of the IDE that tie into web services. Interestingly enough, the two companies have different takes on what that entails.
Meanwhile, Arduino LLC displayed previously announced their alternative development platform, Arduino Create. Arduino Create lets you write, compile and upload sketches “directly from the browser with the Arduino Web Editor”, and store your code in the “Arduino Cloud”. Arduino Create looks slick: certainly a lot better than the homely Java IDE that we’re all used to. It’s too early to tell what this “cloud” is all about, but it looks like it will include code sharing, schematic and wiring hookup storage, and easy sharing among users.
We already use blogs, Hackaday.io (shameless plug!), Github, and other “cloud” services to store our projects and code, so we’re not entirely sure what either of these portal offerings will bring to the table. It’s 2015, is anyone still hurting for project hosting space on the web?
Cynically, we note that both of these companies are in a battle to “own” the Arduino community and that getting people to host code and projects on their servers is an obvious strategy, and providing a web-based IDE to facilitate this capture is the tactic.
Finally, as if it weren’t bad enough with Arduino LLC and Arduino SRL, [Massimo Banzi] also announced that licensed boards for the European market will be sold under the new “Genuino”.
Actually, this is a pretty cagey maneuver, because it side-steps the European trademark issues (which [Massimo] referred to as “the bullsh*t” in his talk) and is a cute name to boot. “Genuine”, get it?
Our take? As [Massimo] almost said in this video interview with Make, “a rose by any name would smell as sweet.” If Arduino LLC loses the trademark lawsuit in Italy, they’ll not be allowed to sell boards using the “Arduino” name. The best way to limit the damage in the future is to make the switch now, while everyone is watching, and give the market time to adapt.
Planet Arduino is, or at the moment is wishing to become, an aggregation of public weblogs from around the world written by people who develop, play, think on Arduino platform and his son. The opinions expressed in those weblogs and hence this aggregation are those of the original authors. Entries on this page are owned by their authors. We do not edit, endorse or vouch for the contents of individual posts. For more information about Arduino please visit www.arduino.cc
You are currently browsing the archives for the Yun category.