top of page

Jim Horwitz

Project Overview

The Good Wand is a connected smart wand aimed to give kids around the age of five the gifts of technology without screens getting in the way of meaningful social and educational interactions. 

What is The Good Wand?

Background

One of my mentors, Ram Fish, observed that his young daughter was spending too much time on screens, and not enough time with friends or learning. He brought together a team of people that ideated a startup called The Good Wand.

 

I joined a few months later, and about a year in we came to decide the project wasn’t commercially viable, and the project transitioned to be my master's thesis.

Main Features

/ 01

Choose a game to play through a custom set of cards.

Custom letter and number tiles enable math and reading-based games.

/ 02
/ 05
/04
/03

Unique light and sound animations between games

Voice and gesture controls provide a magical set of inputs for users to interact with

All tiles and cards contain NFC chips to enable tap-to-play with the NFC antenna on the wand.

  • The common IoT framework MQTT was used to interconnect 11 different services. The services are all written in Python and C++ and handle the abstraction of an IR TX/RX, UV Light, 6DOF IMU, microphone, speaker, a strip of WS2812 Neopixels, and NFC capabilities. 

  • A UV Light service written in Python enables the wand to reveal hidden messages written in invisible ink

  • The 6 DOF IMU is abstracted away through a service written in Python that publishes activity, position, and optional full data streaming directly over MQTT 

  • Audio is enabled on the wand through a speaker service written in Python through PyAudio

  • The individually addressable LEDs on the wand are controlled through a service written in C++ that utilizes the Raspberry Pi Zero’s DMA to drive the LED’s data in pin. The Paho MQTT C++ library was also integrated to add an MQTT client on a separate thread that listens for messages that control the lights through a defined API.

  • A NFC service was written in Python that translates scanned NFC tags to JSON packets published on a topic in MQTT.

  • Machine learning techniques are implemented to recognize six spoken keywords from the microphone and five unique motion gestures from the IMU. The keywords and gestures are published on individual topics and are used for integration with games on the wand. 

System Architecture

Reflections & Takeaways

The Good Wand gave me experience collaborating with code and hardware that was not my own.

As the largest system I've designed, it involved extensive discussions with the team on the system architecture and API. These discussions helped me grow as an engineer while emphasizing the importance of teamwork and clear communication.

bottom of page