Inspiration

Other Hand started with an idea, a train of thought for what we wanted to do. Hardware.

With this being our fourth hackathon together, and with us never having made a full embedded system as teammates, we knew Hack the North 2025 would give us that chance. We also wanted to explore something that would be interesting to us, rather than something that would be considered a "winning" idea. Winning was never our goal - we didn't want to focus on using an API or service that we personally weren't passionate about just to have a chance at winning. Instead, we were here to learn about something that caught our eye and might be able to be used in the future for a larger scale project. From that, we knew that our focus would be on hardware, because it's what both of us are extremely passionate about.

Once we knew we wanted to do hardware, another idea came to mind. "How do people decide which hand to wear their watch on".

That was when we realized something big: watches are terrible with inputs. After seeing a video about the Apple Watch, and how people can "type" on it by drawing letters, we saw how limited watches are when it comes to detecting inputs, and we wanted to change that. That's why we've developed Open Hand, a wrist-based wearable device that can easily send inputs to another program, whether those be for serious or lighthearted purposes.

What it does

Other Hand consists of two distinct elements: a wearable device and a python framework. The wearable device is intended to be worn on the user's wrist, and contains a dial and a keyswitch. Upon launching the device, it must be connected to its client program which enables its functionality. Following this, the dial can be used to cycle through various states, each represented by a different binary number. Pressing the keyswitch will send the state to the Other Hand website, and pressing the dial will change the colour of the state LEDs. If the device disconnects from the python framework, all LEDs will turn orange, and no inputs will be accepted until the device is reconnected.

The python framework consists of a localhosted website where, allowing for modules to be dragged and dropped to various states. If a module is placed in a state, and the value of that state is sent by the wearable device, the code in the module will execute. Additionally, modules can easily be created by the user within our python framework, so long as the general template of the other modules is followed. These modules can serve various purposes, such as launching websites, locking a computer, or playing sounds, with many other possibilities yet to be explored

How we built it

Adam started by working on the development of the device firmware using C++. The firmware consists of a simple main state machine used to track the state of the device, and which option is intended to be selected in the program. Based on which option is selected when the button is pressed, the desired state will be sent to the python program over Bluetooth. Adam also developed various python modules to showcase the potential of Other Hand, as well as worked on receiving a Bluetooth message from Other Hand using a Python script.

Gavin worked on the python frontend, which was the first frontend he has completed. He used Flask, Bootstrap, CSS, JavaScript, and HTML to create an aesthetically pleasing, easy to use frontend. Gavin also worked on creating a model for the device, and 3D printing the device into its housing. Gavin created the circuit and tested various components individually, with Adam fixing the circuit as needed to utilize a push button.

Challenges we ran into

AI can't do everything. When it comes to firmware, generative AI can help, but you still need to know a lot on your own. As such, we had to apply concepts we've previously learned in our classes, like main state machine design and C++ programming on the fly, rather than AI being able to do everything. This is especially true when it came to part selection, creating a solid model for the device, and developing and assembling the circuit, which heavily relied on our knowledge from university courses.

Similarly, building an entire website when you've never done web development before can be very, very challenging. As such, we had to learn web development on the fly in order to finish the website in time.

Accomplishments that we're proud of

I'm extremely proud of my developments in the device firmware. With this being my 5th hackathon as a hacker, and 6th overall, it was shocking to see how far I had come since my first hackathon at DeltaHacks X. This was during my first year of university, at a time when I didn't know any C or C++, and had only just learned introductory python. Thanks to various courses I've taken, as well as working on embedded firmware for the McMaster Mars Rover Team, I was able to complete most of the device firmware with minimal issues, which was a huge accomplishment! Despite the fact that the firmware was not as complex as it could have been, the fact that I was able to do this showed me how far I've come since my first events! I'm also extremely proud of my alterations to the circuit, as I knew we needed a pull up resistor to make the push button work properly. This was something I had learned from COMPENG 2DX3, a microcontroller course I took last year at McMaster. Without this course, I simply wouldn't have been able to complete this project, and it was amazing to use what I've learned in previous courses in a hackathon close to home - another example of showing how far I've really come! - Adam

I'm very proud of the front end! I got it to work very nicely, and was able to make it easy to use. It had animations, which I'm very proud of! I'm also definitely proud of all of the wiring in the circuit, since component selection took a lot of time, as well as planning ahead to determine which components we would use. I'm also really proud to have brought this idea to life! - Gavin

Most of all, both of us were very proud to be here in the first place. Growing up in Kitchener together, and having been best friends since high school, doing this hackathon together was nothing short of a dream come true for both of us! It gave us the chance to visit our hometown again, relive the memories we made here over the years, and get to participate in another hackathon together, even amidst our busy university lives!

What we learned

It's more fun to work on something that you really enjoy. Our excitement was palpable the entire week leading up to Hack the North. Not only were we getting the chance to come home, but we were getting the opportunity to work on a hardware project together, something we've been wanting to do together for a very long time. Our last hardware project together was Blink Twice if you Need Help back at DeltaHacks X in 2024, so it had been a while. This time, we were able to put together a full embedded system in a short amount of time, and while it was more difficult than many of our other projects in the past, it was an extremely fun experience, and it never for a second felt like work!

What's next for Other Hand

The possibilities for Other Hand are limitless! Now that the device firmware and python client have been completed, it is trivial for anyone with even limited programming experience to create their own modules. Using AI assistant tools such as ChatGPT and GitHub Copilot can also do much of the heavy lifting, allowing anyone to create their own modules either in our GUI or by creating their own python scripts manually. This is something that beyond the hackathon, we are keenly interested in doing, as we want to push this system to its limits and see what else it could be capable of!

Share this project:

Updates