So you’ve likely seen the mods I’ve applied to the Doomba in previous posts and the monstrosity I created. The whole thing was very quickly hacked together and had wires going everywhere. Not very friendly at all and resulted in at least one burnt out Raspberry Pi.
What we’re achieving here is the following without damaging the Roomba in any way at all:
- Raspberry Pi for wireless computation and interface
- Power to all modules from onboard Roomba battery and so auto charging
- Audio in and out
- Video stream from webcam and FLiR (Heat Vision baby!!!!)
- Motor control/locomotion
The No Cut, No Drill, No Breakage, No Solder Roomba Mod
Moving ahead with the Roomba platform, I’ve achieved quite a lot in the arena of Roomba modding without actually damaging the Roomba in any way. So I thought I’d show off some of that here so anyone who isn’t the most comfortable with hardware can throw a platform together real quick and concentrate on the software side of things. Seriously though, hardware is super fun (even if you end up catching fire a few times and develop a noticeable twitch whenever someone reaches to turn on an appliance).
Since we’re not going to be cutting into anything/we can’t do any drilling/you’re concerned that Skynet might see you mangling its kin and send a Terminator to your house on the way to find John Connor, we’re going to need a way to secure our modules to it.
3m make these groovy wall fasteners for hanging hooks etc. without having to bang a nail into the wall and remove easily without damaging anything. Perfect for what we’re doing. There’s also a velcro variety that are super handy for anything you want to be able to remove and replace regularly while you’re doing maintenance or programming. Brace yourself, because we’re going to go all Power Rangers on this beast and strap on as much ridiculous crap as we can find in the old electronics box. I was a Voltron kid, so this feels wrong but…
IT’s MORPHING TIME!
If I Only Had A Brain
Very funny. I mean the Roomba, not me. The Roomba already has it’s own onboard brain but, let’s face it, the poor thing is basically licking the windows of the short bus to school. It does alright taking instruction through the comms port but, without that, it’s really only good at basic repetitive operation. If you’re looking at doing a lot with software and aren’t the most comfortable with hardware, chances are you’re already looking at a Raspberry Pi and that’s what we’re going to have making the intelligent decisions here. Their small footprint, low power usage, usb sporting, screen connecting, network connecting features make them ideal for this kind of thing.
I’ve put a cheap-ass USB wifi dongle in mine for wireless programming and control. You’re going to want to remove the Pi from the Roomba on occasion for operating system install or maintenance etc. so you might want to stick one of those 3m velcro doohickies to this. Ideally get the basic OS installed before you go attaching it and make sure you have remote access.
Mr Wizard, I Would Ask for a Heart
Now that brain isn’t going to be much good if it doesn’t have something pumping power through it. If you try to draw power from the Roomba’s comms port, you’re gonna have a bad time. The damn thing is current limited and disappointing. There’s 2 ways we can go about this.
Unless you’ve been under a rock for the past few weeks, you’ve probably seen the PokéZombies roaming the streets. Groups of 4 or 5 people, standing roughly 3 feet apart, facing the same direction, heads down focussed on their phones, trying to capture an imaginary
Damn “Pokémon Go” kids! GET OFF MY LAWN!!!
Usually they’re sporting a portable USB power supply, like the black one in the picture above, so they can cram more game time in. They’re great and will do the job, but have the added hassle of needing to be charged all the time. That little red thingamy next to it there is a little better though. It can step down higher voltages to output a nice clean 5volt USB power port. Let’s get some voltage to that.
Turn your Roomba over and open it up to get access to the battery. I’m not gonna tell you how to do this, it’s in the maintenance details that came with your Roomba. So RTFM. Grab a couple of wires (we’re not pulling massive current here, so I felt comfortable using some much smaller gauge stuff) and give them a twist around the Roomba terminals as seen above. For the love of time saved, remember which wire you attached to negative and which to positive. Maybe label that, yeah?
In case you’re wondering about the skin condition my Roomba appears to have in the above pic, that’s what happens when you use the cheap stuff instead of the brand name. Thus I use 3m when I can. Anyway, there’s a series of little gaps and conduits that you can weave the cable along to keep it all neatly tucked into the Roomba chassis and eventually out and up the tail end to the top. Get creative. Now you have 14 volt or so of unrestricted power ready to pump into the fun things you want to attach. No problems with current limits. But..be sensible. Only you can prevent Roomba wiring loom fires.
Wiring our 5 volt convertor in is as simple as plugging the wires into the screw down block terminals and…..screwing them down. Oh I should mention, don’t get the negative and positive the wrong way around but, if you’ve been following along so far and didn’t know that already, you would have caught fire at least once by now if you were going to mess that up. A small bit of the 3m fastener can be used to attach the power block to the Roomba now and we can put the Raspberry Pi on while we’re at it. Where exactly, is up to you. I almost always change my mind the moment the things are stuck on.
You can power it up now and check for signs of life in the Raspberry Pi if you like, so just a normal USB cable to power it up and some creative cable routing. If you’re super lucky you’ll have a super short USB cable. I, however, am not that lucky tonight. I just wrap it up and pretend I totally planned that. Now, since you’re probably reading this because you have the software side under control, I’m just going to assume you have the Pi wifi set to auto connect to your wifi and you know that this would be a good time to SSH in and confirm that your Pi survived the whole ordeal. Mine did.
Some Courage if it’s Not Too Much to Ask?
I find that if you can see where you’re going and what possible dangers lurk, there’s nothing to fear. So right about now you could plug a webcam into your Raspberry Pi and config it up with something like Motion for linux. Being a ridiculous human (and it also being late at night) I can think of no more appropriate way for the Roomba to take in the world around it and truly see what lurks in the dark than giving it a webcam, a microphone, and
God Damned THERMAL VISION!!!
I won’t go into the wiring of this ridiculous thing as I covered it in an earlier post. The only thing that has changed since then is a small amount of 3d printing and 2x 9g micro servos to give it some pan and tilt control.
Yeah, let’s position that thing nice and centre with some double sided tape. Yup, by this point I’ve realised I’ve run out of the 3m stuff and have resorted to double sided tape, which I will most like regret later. Hmmm could do with one more thing.
The Wizard of Oz Analogy Falls Apart
Yeah, I couldn’t really keep that Wizard of Oz thing going on much more. Unless you consider this next bit to be on par with the fact that the Scarecrow suddenly has a gun in one scene (Seriously, go back and have a look. No one ever really noticed that did they.) and we’re going to give this monster the power to put some fear into the enemy.
For this, I’m bringing back my little UE Boom speaker. The great thing about this little guy is the amount of bass you can get out of such a small package. In a previous post I’d put this to use with a webcam to detect motion and unleash the Predator cackle sound effect at a good volume creating a very spooky feeling of being stalked from the shadows.
Thanks to the little headphone jack output of the Raspberry Pi and the matching input of the UE Boom it’s plug and play again for this.
The Last Piece of What Has Earned the Name DOOMBA!
We’ve reached this point with no cutting, drilling, destruction of the Roomba and it’s all geared up except for one final piece. Now the only reason I’ve left this to last is because this is the only component I would suggest almost breaks the rules of the game here. Because no cable exists (that you will have laying around) to connect the Raspberry Pi to the comms port of the Roomba, you’re gonna have to cut up a cable for this part.
I’m gonna cop out on this bit because I’ve already covered this before with the Arduino to Roomba interface and there are so many tutorials on Instructables and Makezine that I really shouldn’t need to do that anyway. A test of the thermal and webcam has it all rocking and rolling. Hunter-Killer ready to be deployed for programming.
That’s all from me for tonight. It’s 1:30am here. GNIGHT!!