We are basically a bunch of creative students who thought hard about the small life hacks that people will like. Pebble was a new gadget for most of the team and we wanted to explore what we could do with it.
What it does
HotPebble is made up of 3 simple utilities function.
- Hands-free smooth scrolling of webpages by rotating the wrists.
- Control of media on the pebble, such as play/pause, previous and next song/video and volume controls.
- Control of PowerPoint presentation on the pebble.
- Imagine following a cooking recipe in the kitchen and using the scroll feature to follow the steps of the recipe.
- Reading an e-book/blog and not having to constantly reach for the trackpad on your laptop to view the contents.
- Many of us like to lie on our beds/walk around the house while listening to music from the computer. It is always a pain to walk right up to it to change tracks, adjust the volume or start/stop playing. With HotPebble, there is a simple and seamless solution to manage your media experience.
How we built it
There are two main components to this project, the client-side pebble application and the server scripts to handle client data. The client-side pebble application is built in pure C, the highest level language in the world ;). The server scripts are built in Python and caters separately to both macOS and Windows. The macOS scripts uses Python libraries such as pyautogui and pynput, whereas the Windows scripts uses the win32api.
The pebble app collects accelerometer data and performs on-device processing to eliminate jitter and smoothen out spikes in orientation values. The app then pipes the data via Bluetooth serial to a server listening on a laptop, which interprets the data to perform the various commands that HotPebble is capable of. This includes scrolling the active window, sending media keys such as Play/Stop, Next/Previous Track, volume control and simple presentation shortcuts.
Challenges we ran into
It was a difficult process to connect pebble applications to non-mobile devices as there was no official API support for direct connection. We had to rely on an external Python library (libpebble2) to accomplish it. The documentation was not very extensive and not much resources/examples were available online. Therefore, we had to spend a lot of time figuring out how to implement the functionalities that we desire.
Accomplishments that we're proud of
It was our first hackathon together as a team even though we had known each other for more than a year. It was an amazing experience as we got to learn about each other better.
We are super proud to have completed what we had set out to do. It will definitely be a memorable time and a start for many more great hackathon experiences to come.
What we learned
Learning to work well in a team. Finding workarounds to technical obstacles that we face. Helping each other solve problems. Managing our expectations and time.
What's next for HotPebble
- Implement server scripts to cater to the Linux platform
- Add more modules for greater functionality