Shhh… Robot Vacuum Lidar Is Listening

There are millions of IoT devices out there in the wild and though not conventional computers, they can be hacked by alternative methods. From firmware hacks to social engineering, there are tons of ways to break into these little devices. Now, four researchers at the National University of Singapore and one from the University of Maryland have published a new hack to allow audio capture using lidar reflective measurements.

The hack revolves around the fact that audio waves or mechanical waves in a room cause objects inside a room to vibrate slightly. When a lidar device impacts a beam off an object, the accuracy of the receiving system allows for measurement of the slight vibrations cause by the sound in the room. The experiment used human voice transmitted from a simple speaker as well as a sound bar and the surface for reflections were common household items such as a trash can, cardboard box, takeout container, and polypropylene bags. Robot vacuum cleaners will usually be facing such objects on a day to day basis.

The bigger issue is writing the filtering algorithm that is able to extract the relevant information and separate the noise, and this is where the bulk of the research paper is focused (PDF). Current developments in Deep Learning assist in making the hack easier to implement. Commercial lidar is designed for mapping, and therefore optimized for reflecting off of non-reflective surface. This is the opposite of what you want for laser microphone which usually targets a reflective surface like a window to pick up latent vibrations from sound inside of a room.

Deep Learning algorithms are employed to get around this shortfall, identifying speech as well as audio sequences despite the sensor itself being less than ideal, and the team reports achieving an accuracy of 90%. This lidar based spying is even possible when the robot in question is docked since the system can be configured to turn on specific sensors, but the exploit depends on the ability to alter the firmware, something the team accomplished using the Dustcloud exploit which was presented at DEF CON in 2018.

You don’t need to tear down your robot vacuum cleaner for this experiment since there are a lot of lidar-based rovers out there. We’ve even seen open source lidar sensors that are even better for experimental purposes.

Thanks for the tip [Qes]

Faux Cow Munches Faux Grass On A Faux Roomba

Out in the countryside, having a cow or to two wouldn’t be a big deal. You can have a cattle shed full of them, and no one will bat an eyelid. But what if you’re living in the big city and have no need of pet dogs or cats, but a pet cow. It wouldn’t be easy getting it to ride in the elevator, and you’d have a high chance of being very, very unpopular in the neighbourhood. [Dane & Nicole], aka [8 Bits and a Byte] were undaunted though, and built the Moomba – the Cow Roomba to keep them company in their small city apartment.

The main platform is built from a few pieces of lumber and since it needs to look like a Roomba, cut in a circular shape. Locomotion comes from two DC geared motors, and a third swivel free wheel, all attached directly to the wooden frame. The motors get their 12V juice from eight “AA” batteries. The free range bovine also needs some smarts to allow it to roam at will. For this, it uses a Raspberry Pi powered by a power bank. The Pi drives a 2-channel relay board which controls the voltage applied to the two motors. Unfortunately, this prevents the Moomba from backing out if it gets stuck at a dead end. For anyone else trying to build this it should be easy enough to fix with an electronic speed controller or even by adding a second 2-channel relay board which can reverse the voltage applied to the motors. The Moomba needs to “Moo” when it feels like, so the Raspberry Pi streams a prerecorded mp3 audio clip to a pair of USB speakers.

If you see the video after the break, you’ll notice that making the Moomba sentient is a simple matter of doing “ctrl+C” and “ctrl+V” and you’re good to go. The python code is straight forward, doing one of four actions – move forward, turn left, turn right or play audio. The code picks a random number from 0 to 3, and then performs the action associated with that number. Finally, as an added bonus, the Moomba gets a lush carpet of artificial green grass and it’s free to roam the range.

At first sight, many may quip “where’s the hack” ? But simple, easy to execute projects like these are ideal for getting younglings started down the path to hacking, with adult supervision. The final result may appear frivolous, but it’ll excite young minds as they learn from watching.

Continue reading “Faux Cow Munches Faux Grass On A Faux Roomba”

Homemade Wall Stops Roomba And Other Vacuum Tricks

If you have a Roomba, you know they are handy. However, they do have a habit of getting into places you’d rather they avoid. You can get virtual walls which are just little IR beacons, but it is certainly possible to roll your own. That’s what [MKme] did and it was surprisingly simple, although it could be the springboard to something more complicated. You can see a video about the build below.

As Arduino projects go, this could hardly be more simple. An IR LED, a resistor and a handfull of code that calls into an IR remote library. If that’s all you wanted, the Arduino is a bit overkill, although it is certainly easy enough and cheap.

Continue reading “Homemade Wall Stops Roomba And Other Vacuum Tricks”

DJ Xiaomi Spins Beats And Brushes At The Same Time

Direct from the “Just Because I Can” department, this blog post by [Eddie Zhang] shows us how easy it is to get the Xiaomi robotic vacuum cleaner working as what might be the world’s most unnecessary Spotify Connect speaker. Will your home be the next to play host to an impromptu performance by DJ Xiaomi? Judging by the audio quality demonstrated in the video after the break, we doubt it. But this trick does give us a fascinating look at the current state of vacuum hacking.

For the first phase of this hack, [Eddie] makes use of Dustcloud, an ongoing project to document and reverse engineer various Xiaomi smart home gadgets. Using the information provided there you can get root-level SSH access to your vacuum cleaner and install your own software. There’s a sentence you never thought you’d read, right?

With the vacuum rooted, [Eddie] then installs a Spotify Connect client intended for the Raspberry Pi. As they’re both ARM devices, the software will run on the Xiaomi bot well enough, but the Linux environment needs a little tweaking. Namely, you need to manually create an Upstart .conf file for the service, as the vacuum doesn’t have systemd installed. There goes another one of those unexpected sentences.

We’re certainly no stranger to robotic vacuum hacking, though historically the iRobot Roomba has been the target platform for such mischief. Other players entering the field can only mean good things for those of us who get a kick out of seeing home appliances pushed outside of their comfort zones.

Continue reading “DJ Xiaomi Spins Beats And Brushes At The Same Time”

Doomba Transports Your Living Room To Hell

Despite being over 25 years old, the original DOOM is still a favorite among gamers and hackers alike. For years now, running the 1993 demonic shooter has been a critical milestone when hacking or reverse engineering a piece of gear, and at this point we’ve seen it run on everything from voting machines to cameras.

But this time around, DOOM isn’t actually running on the device being hacked. Instead, the Roomba 980 that [Rich Whitehouse] has doing his bidding is being used to generate new DOOM levels based on the maps it makes of rooms while going about its business. To be fair they’re pretty simplistic maps, and most of us don’t live in a home quite palatial enough to even fill out shareware trial of id Software’s classic, but it’s still a neat trick.

For those who might not be up to date with the latest and greatest in the world of robotic helpers, newer model Roomba vacuums are equipped with a camera and the ability to generate 3D maps of its environment using a technique called Vision Simultaneous Localization and Mapping (VSLAM). Ostensibly this capability is used to create accurate maps of hazards in the cleaning area, but of course it did set off some privacy alarm bells when introduced due to the possibility that scans of users homes could end up being used for nefarious purposes. Roomba manufacturer iRobot swears they aren’t doing anything suspect with the data their robots collect while traveling through the user’s home, but that hasn’t stopped [Rich] from using the technology as a portal to Hell.

Using “DOOMBA”, the user is able to download the mapping data off of their Roomba 980 (it might work on other models, but hasn’t been tested yet) over the local network and import it into Noesis, a 3D model viewing program developed by [Rich]. The imported map is essentially just a 2D diagram of the home’s floor plan, which on its own wouldn’t make for a terribly interesting DOOM level, so the software will take the liberty of seeding it with weapons, baddies, and all the other varied delights of the netherworld. The user can fiddle around with these settings to try and fine-tune their homespun hellscape, or just let “DOOMBA” randomize it all so they can get on with the ripping and tearing.

If you’ve got Roomba in hand but aren’t a DOOM fan, have no fear. We’ve seen plenty of hacks and mods for everyone’s favorite house-cleaning hockey puck which happen to be of the non-demonic variety. If you just can’t get enough DOOM, stick around for tomorrow’s 25th anniversary celebration article. You will want to copy the banner art and use it as your new desktop background.

Wiping Robots And Floors: STM32duino Cleans Up

Ever find yourself with nineteen nameless robot vacuums lying around? No? Well, [Aaron Christophel] likes to live a different life, filled with zebra print robots (translated). After tearing a couple down, only ten vacuums remain — casualties are to be expected. Through their sacrifice, he found a STM32F101VBT6 processor acting as the brains for the survivors. Coincidentally, there’s a project called STM32duino designed to get those processors working with the Arduino IDE we either love or hate. [Aaron Christophel] quickly added a variant board through the project and buckled down.

Of course, he simply had to get BLINK up and running, using the back-light of the LCD screen on top of the robots. From there, the STM32 processors gave him a whole 80 GPIO pins to play with. With a considerable amount of tinkering, he had every sensor, motor, and light under his control. Considering how each of them came with a remote control, several infra-red sensors, and wheels, [Aaron Christophel] now has a small robotic fleet at his beck and call. His workshop must be immaculate by now. Maybe he’ll add a way for the vacuums to communicate with each other next. One robot gets the job done, but a whole team gets the job done in style, especially with a zebra print cleaner at the forefront.

If you want to see more of his work, he has quite a few videos on his website demonstrating the before and after of the project — just make sure to bring a translator. He even has a handy pinout for those looking to replicate his work. If you want to dive right in to STM32 programming, we have a nice article on how to get it up and debugged. Otherwise, enjoy [Aaron Christophel]’s demonstration of the eight infra-red range sensors and the custom firmware running them.

Roomba-Riding Beer Butlers Will Serve Us All

[Josh] isn’t one to refuse a challenge, especially when robots are involved. The latest dare from friends and family? Build a beer robot that can bring beverages at everyone’s beck and call.

The build consists of two main parts: the refrigerated cooler and the butler part, which comes courtesy of a Roomba Discovery from a fellow roboticist. [Josh] is basing the design on double-walled and insulated restaurant coolers. He built the refrigerated beverage hold from two stainless steel trash cans, sized an inch or so apart in diameter, and filled the gap with expanding foam insulation. He then cut away several inches from the bottom of the liner can to make room for the cooling unit, reinstalled the drip tray, and made a [airflow-allowing platform] by drilling a bunch of holes in an antimicrobial plastic cutting board.

At first, he tried a Peltier unit from an electric Igloo cooler, but that doesn’t work as well as [Josh] hoped, so he’s redesigning the can to use a mini fridge compressor. This meant making custom evaporator and condenser coils from copper tubing to match the compressor’s load spec. Go through [Josh]’s build logs over on IO and you’ll get a free mini-course on expanding foam and refrigeration.

[Josh] is currently working on some different butler modes for this robot. These run the gamut from simply sitting nearby with cold beverages and opening with the wave of a hand to doing voice-triggered beverage butler-ing at everyone’s beck and call. We applaud his efforts thus far and will be following this one with great thirst interest to see how he handles navigation and voice control.