Also, I've just moved a lot of the health driver projects I currently
maintain to the OpenYou organization on github. The hope is to
get more developers working on these projects, versus having the world
waiting on me to have time to work on things. There's more information
available at the post on openyou.org.

While this post still has relevant information, the engineers at
BeatBots have created a far more stable
firmware. I highly recommend using their MyKeepon firmware, as it fixes
a lot of the timing issues the KeepOff firmware had. The MyKeepon
firmware is available at:

While this post still has relevant information, the engineers at
BeatBots have created a far more stable
firmware. I highly recommend using their MyKeepon firmware, as it fixes
a lot of the timing issues the KeepOff firmware had. The MyKeepon
firmware is available at:

Yay! Thanks to mAngO on the comment thread for my last keepon post, we now know that grounding out the bus during keepon's powerup allows you to act as the master to the bus! This means we can now control the motors and sound, as can be seen in the video above. I'm just controlling motors there, using the Control Program for Android to send OSC messages to a python script I wrote. The python talks to the USB serial port, and the arduino turns the commands coming over serial into I2C to go to keepon.

All the source code for this is available in completely raw, uncommented form at

So, that's the first part finished. Now it's on to polishing things out and figuring out the rest of the parts of the hardware we don't have access to yet. I'm keeping the github issues list updated with things we have left to do.

While this post still has relevant information, the engineers at
BeatBots have created a far more stable
firmware. I highly recommend using their MyKeepon firmware, as it fixes
a lot of the timing issues the KeepOff firmware had. The MyKeepon
firmware is available at:

Keepon hacking has made a major step! Thanks to mAngO on the comment thread for my last keepon post,
we now know that grounding out the bus during keepon's powerup allows
you to act as the master to the bus!
There's a Proof of Concept video posted on youtube now..
I'm leaving the rest of this post as it was when I first wrote it for
history sake, but the information in it plus knowing that you just
need to hold down the I2C lines for a second when the keepon powers up
are enough to actually get control going. The reverse engineering
document and code in the keepoff repository will be updated to reflect
this information.

I'm really not sure I've never spent so much time cursing at something
so adorable. The past week has been yelling, crying, and generally
losing my emotional shit toward a few servos wrapped in a weird,
sticky plasticy skin, better known as the MyKeepon Dancing Robot.

How better to atone for my sin of the vivisection of the most adorable
christmas toy this year, than writing up what I found. That way,
future generations can avoid the pain inflicted on it, and the pain it
inflicted on me.

But good lord, it's so fucking CUTE.

Usually I wouldn't write this up until after I had things completely
finished, but I gave myself a week deadline for that, and that
deadline passed 2 days ago. I'm still in the middle of a few different
ideas for reversing it, but those could take a while (stupid real life
getting in the way of toy hacking), so I figured I'd dump what
information I do have now.

On this big day in UI development, let's take a look over the current
console controls landscape, and what it means to non-game
developers.

Why focus on game consoles controls? They've driven down sensor prices
like crazy, due to mass manufacturing and required price points for
game sales. They've established more than a few careers of
non-game-developers now. Uses of the kinect and the wiimote for
projects not pertaining to their original console have been all over
the media lately. Keeping a forecast of where development for these
technologies is going means we have a better idea of how to ride the
wave when it comes.