Aquda.me to the rescue!

C'mon guys you have to start presenting your projects now... Our CEO was getting a bit annoyed with our delays. I'm just about done, I shouted, Just have to commit some changes, finish some styles... He knew none of us was going to finish in time, but that was fine, the goal was not to create perfectly finished products but instead to force us to realise how much we can achieve in such a short period of time.

As with all ideas this one started big; I wanted to create a mesh-network of little devices whose purpose was to broadcast a cry for help to a dear developer colleague, the first device on a room would also double as a web server that would be used to connect, and choose the colleague you need help from. Now, imagine doing all of that in about 72 hours.

Figure 1: Wild-Goose Chase for Internet (Long walk in the woods.)

It was March 30th and all the whitesmithers were a few miles from civilisation (meaning there was little to none internet) on a company retreat / birthday celebration, the board on the wall indicated the plans for today, Hackathon... Next to the agenda board were some ideas from other whitesmithers, we had to either choose one of them or make up a new one. I had brought my maker kit with me so I thought] it was worth making something with that; after some ideas and trials I came up with this idea called Aquda. The word comes from the word ajuda that means help in Portuguese, and aquda.me, the domain we got for it, would mean help me.

Aquda.me means help me in a language derived from Portuguese called Whitesmithian

The Problem

At Whitesmith, there is a great spirit of peer support, however, since everyone is usually busy with their projects it often happens that when you ask for help your colleagues can't offer it immediately, of course you can remind them from time to time but at some point it becomes sort of uncomfortable to do so. It would be nice to have something that could remind them every now and then in a non distracting way that you still need their help, or that you really really require their help at that moment.

The Solution

My idea was to create a little device that you could hang on the top of your screen, it would have two little flags on the back, and a small OLED screen at the front, if someone needed your help their name would appear on the little screen and one of the flags would rise and shake every once in a while to warn you that someone requires your assistance; there would be no flashing LEDs, no annoying beep sounds, nor popup alert notifications, it's just a simple flag saying Hey someone needs you, you could even customise the flag with anything you want, it is just a piece of paper.

Figure 2: Aquda 3d render

How it came not to be

So I mentioned we were having difficulties connecting to the internet, now to add in top of that imagine we had a product launch in the middle of the Hackathon, we did... Our website Remotes.in got starred on Product Hunt on Friday, April 1st, no it was not an April Fools Joke... however it was a rather large bump on some of the projects due to the last minute updates and fixes we had to deploy. If you don't know what Remotes.in is, shame... just kidding, but go read the blog post about it Remotes.in was Hunted.
Bumps and all aside this is how Aquda came to be; I'd started fiddling around with this new Arduino like chip for a while, it is called ESP8266, or nodeMCU, or some other nonsense name the Ebay seller decided to give it, currently that is the only way to get a hold of one of these. The amazing thing about these new chips is that they have built in WiFi and are programmed with the very simple Arduino Language, also did I mentioned they cost around $5?

These ESP8266 chips have built in WiFi and are programmed with Arduino Language, and they cost around $5!

So I started browsing through the examples and I found one called WiFiMesh, profit! so I thought... However, the way this mesh network is implemented is a bit brute force, each node simply creates its own network and connects to all nodes whose network starts with the same prefix (defined in the Arduino code), so far so good, the problem is when you select a WiFi network in your computer you see all the node networks cluttering the real networks... These networks should be private / hidden so that only nodes from the network could see them...

The turning point

The mesh network idea was a no go, however this could still work: the first node on a room would serve as a web server, and as a central node for all the other nodes to connect to. I started working on a very basic API to login each user, send requests to each node with the name of the person that was asking for help, whether it was a simple or urgent request, and to cancel the request (after the person got the needed help or because it was no longer needed). I also added the code to control the servo motor with the flags attached.

At this point I had an almost working prototype, but had no identity design nor a website to present it to the world. It was time to consult with our dear Master CEODA (the following conversation is a representation of the rather dull and boring real life happening):

Me

I don't think I'll be able to finish it in time.

That is why you fail.

Master

PERSISTENCE YOU MUST HAVE my young whitesmither.

Master

Hmm. What have you done so far. Hmph? What do you still have to do. Heh? What do you think you can do till the deadline. Heh? A whitesmither rests only when work is done.

Master

Me

I have this almost working prototype, but I have no website or any explaining graphics...

Me

What should I prioritise? I could either make a quick website explaining the concept or I could finish the prototype and have nothing to present it to the world.

So a prototype you have, then a website is what you need. Be aware the time is running out, you only have until the moon is at its highest...

Master

Me

All right, I'll try my best.

No. Try not. Do... or do not. There is no try.

Master

How far did it got

The clock was ticking, Master CEODA was getting nervous, everyone was still finishing their projects... It was late, very late, and the website was not online yet. I believe this was the fastest website I've ever programmed, nevertheless, I finished it in time, you can view it at aquda.me (it is best viewed in Firefox or Chrome).

It was time to present it to the others...

The response from my peers was quite good, even with this very basic MVP. It definitely has a lot to improve, and I still believe this is a good idea, specially now that more and more of us tend to turn on the Do Not Disturb option in Slack or similar chat apps, it becomes harder to get a hold of someone without much disturbance.

Next Steps

Since then, there has been lots of improvements on the ESP8266 support for Arduino and there is a new chip (ESP32) around the corner with some nifty new features like dual cores to control WiFi and logic code separately, and Bluetooth on-board!. It would also be nice to make this tool remote-ready (or remote-first), so that anyone could call for help of anyone around the globe, this would actually simplify things a bit because the main server would be elsewhere in the cloud and not in one of the aquda devices.

In conclusion, this was very bumpy project but a great overall experience and very successful hackathon; and I do believe there is a viable future for this project, maybe in the next hackathon we'll make it a reality.