Home automating the Roomba

Why?

For quite a while I have a Roomba. It's an old model (531) that came with no scheduling or remote control. Since things like that make noise, it would be great to have him cleaning while I'm out of house. A couple of years ago I already made some experiments with the Serial Interface/SCI (which btw. nearly every roomba should have) since you could do the scheduling via the interface. But a plain schedule is stupid :| I wanted something more sophisticated :)

How?

A good starting point is Spark + Roomba = Sparkbot. What I didn't like was the idea of having some bulky control thing on top of the roomba. So I decided that I'll add something that fits in the roomba shell. Also I'll use a DC/DC converter since the voltage divider is getting very hot and I don't want to lose power for heating the roomba. I was considering using an ESP2866 but I stuck to a Spark Core, since that's already capable of dealing with the 5V serial interface.

First testing, still using a LM340T-5.0 instead of the DC/DC:

Since I didn't like the idea of having to open the roomba everytime I screw up with the Spark Core, I placed it so that I can access it's USB port when I remove the dustbin, there's also a power switch in case I want to power down the Spark Core. Additionally I needed access to the 2 buttons on the spark, so I made a small slot in the roomba case:

Fun!

Now that I have access to the SCI, I'm not only able to control the roomba, but I could also get some interesting sensor readings like battery charge, battery temperature, driven distance. I'm collecting those in an InfluxDB and display them via Grafana (those big spikes/drops are errors during metric collection...):

Hey Siri, turn roomba on!

I made a very basic integration with my Home Automation (Homematic from EQ-3), so that I could do stuff like turning the roomba an, when I press a light switch, or when I open a window (o.O why should I want to do that?) or do the scheduling via the Homematic Control Unit. But wouldn't it be cool if I could start it up via "Hey Siri, turn roomba on?"... Yes it would be, and I did that in this post: Homebridge/Siri on Synology