RoomboxMelbourne, Australia

  • 9 Commits
  • 9 Pushes
  • 6 Deploys
Launch Site


By Team N

Quick Intro

Turn your Roomba vacuum cleaner into a boombox (minus the boom) using node.js


Hi there,

Roombox is a node.js module that turns a Roomba vacuum cleaner into a boombox which can play some songs.

I'm trying to show that node.js can be used to communicate with a piece of hardware, and hopefully at the same time you will also see this as a fun and somewhat creative hack :). Where else would you see a vacuum cleaner playing Rocky and Beverly Hills Cop theme songs? Any Red Hot Chilli Peppers fan? This Roomba plays Scar Tissue opening guitar too :).

The reason why I wanted to do something with Roomba is because I have one at home with broken sensors. It can no longer autonomously clean up the carpet around the house. I want to use node.js to turn this broken Roomba into something more useful.

I tried playing Rick Astley's Never Gonna Give You Up on the Roomba, but it didn't sound good so I took it out from the demo song list. Yes, I failed to rickroll you. My apology, bow.

Judging Instructions

I understand that you might not have a Roomba vacuum cleaner to test out the Roomba, so hopefully the video above gives you some idea of what Roombox can do.

You need a Roomba vacuum cleaner with RooTooth wireless bluetooth, paired to your computer, then:

What they Used

How does it work?

Roombox parses the available music sheets, connects to Roomba via bluetooth, convert selected song's music sheet into Roomba data, slices it into 4 segments of 16 notes each, then registers those segments into Roomba via bluetooth, and plays those segments.

node.js modules used:

  • node-roomba

  • abcnode

  • bagofcli

  • async

  • prompt

Music sheets source:





Your Vote

Voting is now closed.

Other Votes

  • (4)
  • Cool hack! I'm also amused by the rickroll fail :)

  • contestant

    This is fun -- having a roomba play music would be cool, but its hard to demo to remote user and not super useful. Also not really sure where node fits in here, couldn't anything be used to serve this?

    Props for OS'ing it.

    It also seems complete.

  • contestant

    Hah now I need to get a Roomba. Great hardware project / hack.

  • judge
  • judge


    This was got innovation points for me as it never would have occurred to me to do this. Made me laugh and share with others.

  • contestant
  • contestant


    Nice idea! :)

  • contestant


    Most out-of-the-world idea on NKO :D

  • judge


    Neat. Not useful at all but kinda fun. Very creative. Appears functional and the source code is pretty clean & includes tests.

  • judge

    Completely useless but very innovative!

    • cliffano

      Thanks Sacha! :D node.js enables Rocky-theme-singing vacuum cleaner FTW!!!

  • contestant

    Hahah, funny idea. I don't have a roomba to try it out on, but it looks like it works pretty well from your video!

    • cliffano

      Thanks and I'm glad that you found it funny :D. From writing Roombox, I learnt that the limited range of tones is actually unsuitable for dubstep. Dubstep surprisingly has patterns, and random() is not enough lol.

  • contestant


    cool idea

    • cliffano

      Thanks for checking it out :).

  • contestant

    I could not test this by myself. But I laughed (5 stars for fun not utility... of course!).

    • cliffano

      Thanks :D. I'm glad you had a laugh cause fun and innovation are the target segments :p. At least you had fun out of it, mission accomplished :).

  • contestant


    Utility/Fun: 5 stars for fun, but 1 for utility so I settled on 3

    I would have given you 5 stars on innovation, but I once heard a hard drive play Darth Vader's theme song so there is a precedent.

    • cliffano

      Haha thanks. I had this idea of creating Gangnam Style background music with dotmatrix printers :D.

    • cliffano

      And I totally wish there's a fun segment separate from utility for Node Knockout 2014. Roombox is fun, but definitely not a utility for most people. :p

  • contestant

    sorry, I don't have a roomba. I think that I haven't fully understood the concept.

    • cliffano

      My bad. I've updated the entry details with more information. This entry is a fun hack to show that node.js can be used to communicate with a piece of hardware.

      Not many technologies are easy to use for hardware-related things. And node.js is able to do that. How many times have we seen a vacuum cleaner playing Rocky theme song? node.js made it easily possible.

  • contestant

    I wish I had a broken Roomba vacuum cleaner to test this ;).

    • cliffano

      You should totally get a Roomba for daily cleaning :), and you can use node to improve its movement pattern. Btw, Roombox works with unbroken Roomba too. :D


SEP 17
NOV 9-11 UTC
NOV 11-17
NOV 18

Thank you to our Platinum Sponsors