In July 2016, the 3rd annual International NodeBots Day event was held in Norfolk, VA. An estimated 140 people – including children, parents, educators, technologists, makers, tinkerers, and artists – showed up at Old Dominion University’s Constant Hall ready to learn to build and program their first NodeBot. This was my third year organizing this event with the JavaScript development user group that I co-founded, Norfolk.js.

Each year, we join a dozen or more other cities worldwide to promote robotics development using our favorite programming language, JavaScript. Attendees are provided with individual robot build kits (known as “sumobots”). Expert volunteers provide instruction, helping attendees build and programming their robots. This, combined with a lot of creativity and hard work, results in teams of “battle-ready” robots by the end of the day.

This year, we took NodeBots Day to a new level, securing a larger venue and adding new robots – SoccerBots and Drones! Despite the exciting new technology additions, the event remained entirely free to the public thanks to volunteers and sponsorships from the community (757 Makerspace and Old Dominion University) and forward-thinking companies like Langa, 80|20 Consulting, Grow, Sparkfun, and my employer, Emerging Technology Advisors.

NodeBots Day 2016 Attendees in front of Old Dominion University's Constant Hall

NodeBots Day 2016 Attendees in front of Old Dominion University’s Constant Hall

The organizers get just as excited as the attendees when it's time for battle of the bots (Especially, Linda)

The organizers get just as excited as the attendees when it’s time for battle of the bots (Especially, Linda)

So, what exactly is a NodeBot and why is there a day of celebration? NodeBots are robots that are controlled by the JavaScript programming language. Node.js, JavaScript’s server-side runtime environment, connects to the hardware through the computer’s serial port and runs the JavaScript code that manipulates the robot’s actions and receives data from its sensors.

NodeBots are significant because they lower the barrier of entry into robotics, making it available to virtually anyone. Instead of requiring complex native code for the microcontrollers, developers can use JavaScript for the entirety of their robotics projects. JavaScript is an opportune language for NodeBots Day, as it is an easy programming language, perfect for those who are new to development. Existing NodeBots code libraries, such as Johnny-Five and Noble.js, further reduce the learning curve by abstracting out complex JavaScript code into easy-to-use commands to control a robot.

The battle-bots are ready for battle!
The battle-bots are ready for battle!

The battle-bots are ready for battle!

Not only do attendees build their own bots, but they also help their neighbors

Not only do attendees build their own bots, but they also help their neighbors

In Norfolk, we’ve seen local interest in JavaScript and robotics increase exponentially over the last few years. The success of NodeBots Day has led to spin-off groups and other workshops in the community led by Norfolk.js organizers. During the planning phase for our 2nd annual event in 2015, we considered the effort and funding it would take to support a 40% growth from the inaugural event which was “at most fifty attendees.” Fast-forward to that summer’s event, and there was actually an estimated 75 attendees crowded into our venue. The audience consisted of kids, parents, developers, tinkerers, artists, educators, and everyone in between. They were all eager to learn about robotics and to learn to build their first nodebot.

Two attendees are learning how to program and fly quadcopters using ETA's New daVinci Software

Two attendees are learning how to program and fly quadcopters using ETA’s New daVinci Software

While this growth is exciting, increased attendance (and repeat attendees) presented us with new challenges in planning our 2016 event:

  • How do we keep repeat attendees interested, while maintaining a beginner-friendly event?
  • How do we include newer technology without overwhelming our volunteer staff and attendees?
  • How do we ensure that everyone gets something from the event when there are over 100 people?

The first, and probably riskiest, change was an update to the existing robot kit. We’ve been very successful over the years using a variation of the open-source Sumobot-Jr wood-cut kit for NodeBots Day and other classes and workshops, but the required hardware has also steadily increased in price. During my last year working for Emerging Technology Advisors, I tested several pre-packaged robotics products for our client events and education initiatives. Robotics kits like the ServoCity Runt Rover and the MakeBlock mBot are relatively inexpensive and can be assembled with much less effort than our existing open-source kit. For future NodeBots Day robot kits, I wanted this assembly simplification, but without sacrificing the creative modifications we had seen with our classic wood-cut chassis. I also wanted to be able to share our design changes back to the NodeBots community that had provided us with our original kit design.

When I compared parts and pricing, the largest hardware expense in our current robot kit was the continuous-rotation servos. A single servo was costing us around $13 whereas a set of hobby motors and rubber wheels would cost around $7 from our hardware sponsor, Sparkfun. A revised design would keep the look and function of the classic sumobot chassis, but would allow for side-mounted (and inexpensive) hobby motors and rubber wheels like the mBot. I also wanted to continue to support our current microcontroller, the Arduino Uno, but without adding any additional wiring complexity to control the motors. I started the task of creating the “motorized” chassis like many of my other new engineering projects: I reached out to the NodeBots community to see if this design already existed. Markus Leutwyler’s open-source sumobot had motor fittings that were very close to what we needed for the side pieces of our chassis. Then I visited our local makerspace for computer-aided drafting assistance to combine this design with our wood cutting plans from the previous summer. Several laser-cuts, adjustments, tweaks, motor-fittings, and test drives later, we had a sumobot chassis that would run with mBot motors and Runt Rover rubber wheels.

Once the chassis was finalized, the volunteer team collaborated for some additional changes to decrease the overall kit cost further and reduce the difficulty of assembly. We added a clone of the popular Adafruit motor/servo shield to eliminate the breadboard, lead wires, and H bridge for motor control. Instead of the 4 AA battery pack in the rear of the robot, a single 9-V battery improved the balance (and cost) to power the motors. The final design of the Norfolk.js “motorized” sumobot reduced our event budget by at least 20% per kit.

Since our new sumobot design was built on the shoulders of open-source giants, we published our cutting plans, materials list, code, and assembly instructions to a Github repository. One of the benefits of having many NodeBots Day events in the same month is that JavaScript user groups from other cities or countries can collaborate and share ideas. We shared our kit to the community with the goal of having it used and improved upon by NodeBots Day next year.

ETA's Troy Connor was in charge of the JavaScript Pokemon SoccerBots
ETA's Troy Connor was in charge of the JavaScript Pokemon SoccerBots

ETA’s Troy Connor was in charge of the JavaScript Pokemon SoccerBots

In addition to the shiny new motorized sumobots, we also added NodeCopters and Node Soccerbots areas. This allowed people take a break from their sumobot build and learn to fly a drone using ETA’s New da Vinci educational software, or to play a soccer game (supervised by ETA’s Troy Connor) using Bluetooth-enabled mBots and ETA’s open-source soccer library. We also had new microcontrollers such as the Tessel 2, Particle Photon, Edison, and Raspberry Pis available for people to try out in their projects or with their sumobot. Introducing these other controllers showed our attendees what is currently possible with JavaScript robotics, but also inspired them to think of new creative ideas. From an event viewpoint, it ensured that attendees were engaged and entertained throughout the day.

Just a few of the organizers and volunteers that helped make NodeBots Day 2016 possible.

Just a few of the organizers and volunteers that helped make NodeBots Day 2016 possible.

Once again, Norfolk’s NodeBots Day was a tremendous success. Next year, we will be asking our volunteers to come back to teach and share their creative ideas. We’ll maintain our community partnerships with Old Dominion University’s Human Factors and Ergonomics Society and 757 Makerspace, continue our collaboration with ETA and other sponsors, and make new connections during our planning phase in early 2017. We’ve already secured a new venue at Old Dominion University that will provide access to additional University resources, and allow us to increase attendance by another 100 attendees. Our NodeBots community will continue to build upon our robot designs and add new projects throughout the year. We love teaching robotics and JavaScript to anyone interested, and look forward to an even larger group of future roboticists in 2017.

Norfolk NodeBots Day kids competition winners

Norfolk NodeBots Day kids competition winners