JSConf 2014At JSConf 2014, attendees had the option of building robots, rockets, or boats that could be controlled with JavaScript running in the Node.js interpreter. These “NodeBots”, “NodeBoats”, and “NodeRockets” would be constructed by small teams during the day, then tested through friendly competitions in the late afternoon. While the maker community includes software developers, many of the software developers I’ve spoken with don’t consider themselves makers because they don’t know how to create hardware. JSConf gives software developers a push – teaching them the basics of hardware in a day – so that they can have the self-confidence to work with hardware.

Two Liter Boat

A NodeBoat built into a 2 liter soda bottle

Last year I attended the first RobotsConf event run by JSConf organizers Laura and Chris Williams. I enjoyed seeing software developers having their first experiences with hardware, remembering how I’d had a similar experience when I first learned the Arduino platform and then rapidly built project after project with my newfound skills. I contacted Chris before JSConf to ask if I could help, and he tasked me to provide hardware assistance to those building NodeBoats. My JavaScript and Node knowledge was minimal, so I was a little apprehensive, but I knew that helping build boats would also help me learn more about JavaScript and Node.

The boats were propelled by a submarine motor, hacked for external power. Activity organizer Jon Hylands created a 3D-printed rudder assembly so that a servo could control the rudder on the submarine motor. Some teams used this assembly, while others used the servo to turn the submarine motor directly or created even more elaborate rudder systems. A few teams used no rudder, instead using multiple motors for differential steering.


Each attendee was given a Spark Maker Kit by JSConf sponsor Spark, and these wifi-enabled microcontrollers were used by the teams to control their boats. The Voodoo-spark RPC firmware (written by conference organizer Chris Williams) was loaded on the Spark Core to accept commands over Wifi from the team’s laptops running Node.js and the Johnny-Five robot JavaScript framework. Johnny-Five author Rick Waldron was assisting the NodeBots teams and was very helpful, answering our questions as we got started.

By mid-morning, the teams were getting frustrated as we’d asked them to learn the Spark Core, hack a submarine motor, control a servo, and create a circuit with an h-bridge. The frustration subsided as teams started collaborating and sharing their tips and code as they progressed past each milestone.

By the afternoon, the teams not only had working boats, they were controlling the boats with twitter messages, mobile phones, a Pebble smartwatch and even a “steero” – a steering wheel with a Sphero robot in the center.

Image by Matthew Bergman

Image by Matthew Bergman

As we headed out to the pool for some “racing”, another NodeBoat helper, Jon Gottfried of Major League Hacking, taped GoPro cameras onto two of the boats while NoatBoat helper Sara Gorecki helped organize a friendly race across the pool. As the teams setup for the race, we were all struck by not only how many teams completed a boat, but by the amount of creativity that led to so many different designs and control mechanisms.

After the race, and the next day at JSConf, I kept hearing the same sentiment over and over from those who had participated in NodeBots, NodeBoats, and NodeRockets- “I’m a software developer, I’d never touched hardware, and I made a working bot / boat / rocket!!”

I not only learned a TON about Node.js and Javascript overall by helping build boats and attending JSConf, I was very impressed by the team that organizes JSConf, including those that organized NodeBots (with a robot soccer game!), NodeBoats, and NodeRockets. I didn’t get to spend time with the NodeCopter activity (using Node to control Parrot AR Drones) – but I heard lots of great comments during the sessions the following day.

If you are part of a software development community, I strongly suggest you try one of these activities within your community – you can control robots with almost any language out there, so set sail on your robot adventure today!

Set Sail with NodeBoats