Inspiration

We grew up with Nintendo DSs and other such proximity based communication tools, especially PictoChat. Now that a few of our members hold strong networking skills/understanding we though it might be possible to re-invent these older tools and games for a newer audience and tech space.

What it does

BluQ is a Bluetooth communication Mesh network, capable of connecting devices without the need of an internet connection. This allows for mid range data, capable of text, image, and voice data transfer.

How we built it

We built BluQ using a few different tools and technologies. Firstly we have our Bluetooth mesh network, which is the backbone of our product. It acts as the way our devices are able to communicate with each other over a range and without the need of a network. Next we have a web app built with a web framework tool called Angular. This app is the GUI for the user to find others connected on the network, and allows for communication with them. From this app, you are able to send text, images, and even make voice calls with the other user all over the Bluetooth network. This angular frontend also has a complex backend Flask web server that intercepts Bluetooth data transfer and allows for the passing of data from web app through the mesh to the other users device.

Challenges we ran into

Initially our team wanted to use the devices provided to us by the Free-Wili team, and although these devices seemed nice and useful for some situations, our situation was unable to utilize them. We needed the ability to run python scripts on the bluetooth machines to help with the mesh networking, which the Free-Wili machines ultimately were unable to provide. So after spending a good few hours of the beginning of the project messing around with Free-Wili's, we had to divert to use strictly raspberry pi machines we brought from home.

Another challenge we ran into was setting up the network for setting up our raspberry pi's. Since we decided on using three of these machines, we needed to create a complex network to ssh into them, which essentially is connecting to them remotely, and then modifying them and setting them up with our Python scripts. This brought a lot of different challenges, and ultimately we found a way to have the network all connected to the internet as well as our machines, so we could effectively begin developing and building our Mesh.

Accomplishments that we're proud of

  • Around the 6 hour mark we had to completely scrap our original idea, so being able to rebuild with only 3/4 of the time left was a huge accomplishment.
  • Getting our nodes (PIs) to auto-run the server and connect to each other was a huge piece of making this work, and took us until 4 am.

What we learned

  • How to use the bluetoothctl command interface on linux to establish a per-to-per connection
  • How to interface with bluetooth devices via python
  • How to quickly improvise and adapt to change

What's next for BluQ

  • Allow users to send images
  • Implementation of a UDP-esc protocol that could enable voice, if not video, over our node network.
Share this project:

Updates